Saturday, February 21, 2015

GoDot Engine

GoDot is an OpenSource 2D/3D game engine.
There isn't any shortage of game engines these days. It's just a matter of preference and getting the pipeline ready for that engine that takes a while. I've been using cocos2d-x for a while now for most of my 2D games.

GoDot Engine GUI
But Iv'e been thinking about using a GUI based integrated Game engines for future projects so the obvious choice was Unity engine. Its a pretty stable platform and has a bunch of plugins for every thing you want to do, and is pretty much the gold standard for mobile development. There are still a couple of things i still don't like about it.. which includes the lack of control and large build size.. well if something isnt' working.. there is no way for me to figure out if it was my code issue or something wrong in the engine. The community is almost always there to help but its' not a guarantee. I was still searching for an engine that would be easy to use and would give me the full control.. thats' when i came across the GoDot Engine.

Some of the features i love about GoDot Engine

  • Python based Scripting
  • C++ for core extending engine
  • exports to Html5
  • OpenSource
  • An integrated GUI env for game development.
Why not Unity?
As i tried to evaluate its' usability i quickly realised its' not yet ready for mobile game dev, let me explain.. integrating with 3rd party libraries like ad networks is pretty scare at the moment on godot engine. And there aren't many plugins available like there are for Unity.. so if you are ok with paying for the engine licence and need a stable dev platform for mobiles.. Unity is still the right choice. 

But i like the control that open source engines give and did i mention its' all free?.. it might be a little tricky to use but if i were able to use it for creating games and figure out how to do the integrations required, this could become the engine of choice for me.. So i soldered on to figure out how the engine works / learned the scripting over the weekend and tried to build a small game quickly.

The Game
The game of choice was ofcourse a popular game called Dont' touch the Spikes.
I am a big fan of the game and i figured it would be cool to try and use GoDot to create the game. So here goes the experience. 

The gui is kinda hard to get used to at first but lucky for me there are a bunch of wiki pages explaining everything in detail and also some you tube video tutorials as well .
Here is the link to the youtube channel which helped me a lot.

The SceneGraph
GoDot has a scene graph structure similar to cocos2d-x, There are Nodes, Sprites, AnimatedSprites and so on. so if you have worked with cocos2d-x you should be able to pick up this engine pretty quickly.
Here is how a scene graph would look in the editor.. 
Scene Tree
If you are making a 2D game there is separate view from the 3D window, just like in Unity engine. 

The Scripting
The inbuilt scripting window is pretty cool, the amount of documentation is comparable to what unity has, this in combination with wiki on the project git hub page you will not have trouble getting through any scripting trouble you might face.. 
The Scripting Window
As you can see, the help is built right into the editor. With the auto complete in the editor and the documentation right there, scripting is a pleasant experience. For communication between objects, there are multiple ways
  • Call functions on objects just like in Unity
  • Signal / Connection method.
The Signal / Connection method should be familiar to anybody who has worked with Qt's Signal/Slot mechanism. Basically the observer pattern that is easy to use :) 

The Animation Editor

GoDot engine has a built in animation editor, with timeline and ability to creating multiple animations. This looks and feels primitive, but i was able to achieve the required animations for the game. There is a UI overhaul planned in future may be it will become easier to use then. 

I'll go through the tutorial of how i made the game next time .. :)

Here is the basic tutorial for how to get Don't Touch Spikes game built in Godot.

Post a Comment