Skip to main content

Posts

Showing posts with the label GoDot

GameDev on Steam Deck

I've got the 64GB og steam deck, After almost a year of using it i had to start using the deck as a development machine as well not just for gaming. I wasn't sure how it would pan out, theoretically everything should be possible but i had couple of major blockers .. I was running out of internal storage I needed to make sure that the engines i use work on SD. Cocos Creator (Windows / Mac) Godot Engine (Windows / Mac / Linux) Unreal Engine (Windows / Mac / Linux) Unity Engine (Windows / Mac / Linux??) The Internal Storage: Since this was a 64 GB version, i kept running into the disk space issues, i had to take the leap and upgrade the ssd. Fortunately i was able to find one on amazon which decently priced. I followed the IFixit's guide to upgrade the ssd: https://www.youtube.com/watch?v=GSvdsic4_dk This was crucial if i wanted to use the deck without thinking too much about what i was going to install on OS. So if you are like me and are really afraid of breaking something ...

Building an Endless Jumper using Godot engine

Godot has a lot of features that are specifically designed for the 2D game development. This also means that there is almost always more than one way to implement a game.  You can play online before you read any further: https://vkrishna.itch.io/color-jump Things I wanted to achieve: Flexibility to design chunks of gameplay Build a procedural system to use these chunks A workflow for quickly treating it the chunk changes Attempt 1: I created an array of strings which would represent each rite if the world. Though this sounds ridiculous at first it works for a jumper game as the horizontal movement is limited. var block = [ “[___________]”, “_______” ] The advice structure worked fine but I quickly ran into a problem. It was getting hard for new to visualise  what The chunk was going to look like. So I wanted to leverage the tile map editor from engine to do the level design as well Attempt 2: I had good format for describing the chunk but it ...

Godot (GDScript) Memory Management

I've been working with the cocos2d-x engine for a while and have gotten used to one of the important features in the engine.. the autorelease(). It's basically a reference counting implementation which automatically deletes any object that is removed from a scene. Unless ofcourse you called a retain on it. So when i was working on DotDot a simple 2D game, i created a crosshair animation everytime the user got a perfect alignment and removed the object once the animation was done. It worked great and for a while i assumed that everything was fine. I was showing off the game to people on my android device when i started noticing slowdowns once in a while.. and as the score got higher it got worse.. surely the engines' fault i assumed.. but then i thought ill' give Godot the benefit of doubt and checked the documentation about freeing the memory. That is when i discovered that the objects removed from the scene are not actually removed from memory. Basically every tim...

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

Godot H5 build

The Godot engine is a pretty good alternative for any of the 2D/3D open source engines out there. One if the features that got me excited about the engine was the Html5 support. With one click of the button you can export the game onto any of the platforms android, iOS, mac, Linux and html5. The only problem... The h5 exporter didn't work right out of the box for 1.0 version of Godot. I looked at it and was unable to figure out what was going on. I searched their forums, Facebook page and the only answer I got was that it was broken and that the devs knew about it. The html5 exporter was based on emscripten . I downloaded the source code and tried to compile for h5. The platforms is described as JavaScript. The compilation was working fine but linking not so much. It would report a lot of unresolved symbols .. The basic things like gd script were not working. I had to look up how scons worked. Had to figure out why the existing build wasn't working. ... Then I came ac...

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 expos...

GoDot (Dont Touch Spikes)

Last time i basically explained what it felt like using the GoDot engine gui while i was creating the simple game of Dont' touch the spikes. In this post i will cover how i went about setting up the scene and issues i faced. The Scene Setup Coming from cocos2d-x i'm used to Layers, Scenes as container objects to setup a gameplay scene. In GoDot however i was unable to find any such nodes. Instead i just had to use a Node2D . This is pretty much the starting point of the game scene structure. I then added a RigidBody2D named it Player. This was going to be the physics body for dealing with user inputs etc. I then added a Sprite to the RigidBody. If you have used unity you would start wondering where do i add the collisionbox component to the rigid body. Simple answer is .. you dont. You actually have to add a node called CollisionShape2D  as a child to the RigidBody2D to be able to detect physics collisions in the simulations. So the Scene tree looks lik...

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 th...