6 min read

What is the Atomic Game Engine?

The Atomic Game Engine is a powerful multiplatform game development tool that can be used for both 2D and 3D content. It is layered on top of Urho3D, an open source game development tool, and also makes use of an extensive list of third-party libraries including Duktape, Node.js, Poco, libcurl, and many others.

What makes it great?

It supports many platforms such as Windows, OSX, Linux, Android, iOS and WebGL. It also has a flexible scripting approach and users can choose to code in C#, JavaScript, TypeScript or C++. There is an extensive library of example games available to all users, which show off different aspects and qualities of the engine.

Image taken from: http://atomicgameengine.com/blog/announcement-2/

What makes it even greater for developers?

Atomic has recently announced that it is now under the permissive MIT license. Errr great… What exactly does that mean? This means that Atomic is now completely open source and anyone can use it, modify it, publish it, and even sell it as long as the copyright notice remains on all substantial portions of the software. Basically, just don’t remove the text in the picture below from any of the scripts and it should be fine. Here’s what the MIT license in the Atomic Game Engine looks like:

  Atomic Game  Engine MIT License

Why should I spend time and effort contributing to the Atomic Game Engine?

The non-restrictive MIT license makes it easy for developers to freely contribute to the engine and getting creative without the fear of breaking any laws. The Atomic Game Engine acknowledges all of their contributors by publishing their names to the list of developers working on the engine and contributors have access to a very active community where almost all questions are answered and developers are supported. As a junior software developer, I feel I’ve gained invaluable experience by contributing to open source software and it’s also a really nice addition to my portfolio. There is a list of issues available on the GitHub page where the issues have a difficulty level, priority, and issue type labeled.

This is wonderful! How do I get started?

Contributors can download the MIT Open Source code here: https://github.com/AtomicGameEngine/AtomicGameEngine

*Disclaimer: This tutorial is based on using the Windows platform, SmartGit, and Visual Studio Community Version 2015.

**Another Disclaimer: I wrote this tutorial with someone like myself in mind. i.e. amazingly average in many ways, but also relatively new to the industry and a first time contributor to open source software.

Step 1: Install Visual Studio Community 2015 here.

Visual Studio download page

Step 2: Install CMake, making sure cmake is on your path.

CMake install options

Step 3: Fork the Atomic Game Engine’s repository to create your own version of it.

a) Go to the AtomicGameEngine GitHub Page and click on the Fork button. This will allow you to experiment and make changes to your own copy of the engine without affecting the original version.

Fork the repository

b) Navigate to your GitHub profile and click on your forked version of the engine.

GitHub profile page with repositories

Step 4: Clone the repository and include all of the submodules.

a) Click the green Clone or download button on the right and copy the web URL of your repository.

Your AGE GitHub page

b) Open up SmartGit (or any other Git Client) to clone the repository onto your machine.

Clone repository in SmartGit

c) Paste the URL you copied earlier into the Repository URL field.

Copy remote url

d) Include all Submodules and Fetch all Heads and Tags.

Include all submodules

e) Select a local directory to save the engine.

Add a local directory to save the engine on your machine

h) Your engine should start cloning…

We’ve set everything up for our local repository. Next, we’d like to sync the original AtomicGameEngine with our local version of the engine so that we can always stay up-to-date with any changes made to the original engine.

Step 4: Create an upstream branch.

a)    Click Remote → Add →

                      i)        Add the AtomicGameEngine Remote URL

                     ii)        Name it upstream. 

Adding an upstream to the original engine

We are ready to start building a Visual Studio Solution of the engine.

Step 5: Run the CMake_VS2015.bat batch file in the AtomicGameEngine directory.

This will generate a new folder in the root directory, which will contain the Atomic.sln for Visual Studio.

AGE directory

At this point, we can make some changes to the engine (click here for a list of issues). Create a feature branch off the master for Pull Requests. Remember to stick to code conventions already being used. Once you’re happy with the changes you’ve made to the engine:

–       Update your branch by merging in upstream. Resolve all conflicts and test it again.

–       Commit your changes and Push them up to your branch. It’s now time to send a Pull Request.

Step 6: Send a Pull Request.

a)    Go to your fork of the AtomicGameEngine repository on GitHub. Select the branch you want to send through, and click New Pull Request.

b)    Always remember to reference the Issue Number in your message to make it easier for the creators to manage the Issues List.

Personal version of the AGE

Your Pull Request will get reviewed by the creators and if the content is acceptable, it will get landed into the engine and you’ll become an official contributor to the Atomic Game Engine!

Resources for the Blog:

__________________________________________________________________________

[1] The Atomic Game Engine Website

[2] Building the Atomic Editor from Source

[3] GitHub Help: Fork a Repo

[4] What I mean when I use the MIT license

About the Author:

RaheelHassim is a Software Developer who recently graduated from Wits University in Johannesburg, South Africa. She was awarded the IGDA Women in Games Ambassadors scholarship in 2016 and attended the Games Developers Conference. Her games career started at Luma Interactive where she became a contributor to the Atomic Game Engine. In her free time she binge watches Friends and plays music covers on her guitar.

LEAVE A REPLY

Please enter your comment!
Please enter your name here