Skip to main content

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
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 .. :)

Update:
Here is the basic tutorial for how to get Don't Touch Spikes game built in Godot.
http://gizmothunder.blogspot.in/2015/02/godot-dont-touch-spikes.html

Comments

Popular posts from this blog

Epic Games Store on Steam Deck

EGS ( Epic Games Store ) like it or hate it, has been giving away free games and if you like free games you would have picked up atleast a couple of them. So given that some of those games are Deck Verified / Playable, its fair to assume you would like to install the EGS on the Deck.  Installing EGS on Steam Deck Switch to Desktop Mode on your Steam Deck Download the EGS installer for windows from the Epic Store website: https://store.epicgames.com/en-US/download (using your web browser of choice)      Open Steam in the desktop mode and add the installer as a non-steam game                                In the browse window, switch from .desktop files to All files. Select EpicInstaller-xxx.msi and add it to steam library. Find EpicInstaller in your steam library and open its' properties by hitting the "Gear" icon on the right side of game details page. Set the proton compatibility to latest one. Now hit the play button and go through the install screens of EGS.  Once t

Flash animations in GoDot Engine

If you have not heard about GoDot game engine,.. you should check it out right away.. godotengine.org Last time, i wrote a blog post about my experience making a simple physics game to GoDot Engine. Though there are a bunch of free options announced during the GDC this year, i thought ill' contribute to the engine. The one piece that is most important for game dev is the pipeline for the engine. One of the most common tools used for 2D animations is Flash. I have been using a library called Super Animation for almost all the games we've made for android at TMG. It's  a  free tool which lets you convert swf files to .sam files. This file can then be loaded in Cocos2Dx using the Open source loader library  https://github.com/raymondlu/super-animation-samples I thought it would be a good idea to port this cpp library to GoDot so that i understand how to write custom modules for the engine. This is the video of the module in action. I have exposed

Vehicle Physics (Godot 2D)

I've always been fascinated with the vehicle physics used in games. I played so many racing games / the hill climb games and every single time i would wonder wow that must be really hard to do. Thanks to the new generation of game development tools, developing physics based games has become almost a second nature to most people. I didn't want to be left out so i gave it a shot.. I tried setting up vehicle physics in GoDot Engine for a 2D vehicle. Here is what the vehicle scene looks like.. 2D vehicle setup in GoDot As you can see the body collision shape is not right but the rest of the stuff just works. The idea is simple think of what parts move along with the body vs what doesn't. I was kinda stuck setting up the pinJoint2D in GoDot, it actually clearly takes two nodes under the properties. This makes sure that the wheels are hinged to the DampingSpring2D. The Damping Spring2D takes two physics bodies(Body and the PinJoint2D) and makes it work like shock ab