Jump to content
  • Advertisement
Sign in to follow this  
  • entries
  • comment
  • views

A Game A Month #2 – Godot Platformer

Sign in to follow this  


Hello again! it’s time for a new announcement: This month I will deal with Godot 3.0, making a Platformer/Jump’n’Run!

For those who are new here: I try to create and release a new game every month, using another game engine in every project. Last month I’ve created the first game using LibGDX, which you can play here: Super Shot. Feedback and comments are welcome!

This time, the idea is to create a platformer with an atmospheric dungeon setting where a knight has to find his way through different levels, collecting treasures and fighting against enemies. Since I’m a big fan of Role-Playing Games, I would like to add some RPG elements. The player will be able to choose between different kinds of swords, armour and upgrades. To keep this simple, there will not be something like an inventory or skill system, but the player will be able to choose one of two upgrades, everytime he opens a new treasure chest.

I’ve already created some concept art and took a first look at Godot. After about one day of watching tutorials and getting into Godot and with just about 140 lines of code, the result looks like this:

Current progress

This includes a tile-based level, dynamic lights, a tile-based animation of the player and his movement, keyframe animations for the sword and the key.

What is Godot 3.0?

Godot is a free and open source community-driven 2D and 3D game engine, which comes with a GUI editor with many nice and intuitive features. After downloading the engine you can start directly without installing anything.

It’s very easy to create scenes like the one above with just a bunch of mouse-clicks. To implement game logic it is necessery to attach script files to objects and code in a python-like language which is called GDScript. You can also use MonoDevelop and code in C#. The documentation is included in the editor, which is very helpful.

A really cool feature is the possibility to download simple demo projects right from the editor, for me this was a great help when I was adding lights into the scene.

screenshot_godot_engine-1024x632.pngScreenshot of the Godot 3.0 Editor

In general Godot 3.0 provides everything a 2D and 3D game needs: Audio, physics, math, animation, input, file I/O, creating GUI, shading, networking and even AR/VR interfaces.

Useful links

Here are some links for more information about Godot:

Some tutorials I came across so far:


Defining the Gameplay Components

These are the main components that are necessary for gameplay:

  • Tilemap based levels with background and collidable tiles (done)
  • Player movement, player death (done)
  • Dangerous obstacles like spikes etc. (done)
  • Enemies
  • Combat system
  • Collecting keys, opening treasures (done)
  • Upgrade system (GUI for choosing new upgrade)
  • GUI showing hitpoints and stamina
  • Level transitions
  • Menu

Creating graphics and animations, and finding suitable sounds is also part of nearly every single point mentioned above. Hopefully I will be able to finish them by the end of month.

Let’s Move On!

I really like the current state and the way these things are achieved using Godot. My next step will be to start implementing the combat system and some enemies.

Come back in a week or two for an update and check out my Twitter for some screenshots!

Meanwhile you can try out my last game (online): Super Shot


Of course I created a Github repository for this project, too: Godot_platformer

Or simply download the project directly:


View the full article


Sign in to follow this  


Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement
  • Advertisement
  • Blog Entries

  • Similar Content

    • By hoahong
      Hi guys,
      I get the code from StackOverflow to convert RGB (camera image) to RGBA
      public static unsafe void RGB2RGBA_FastConvert4(int pixelCount, byte[] rgbData, byte[] rgbaData) { if ((pixelCount & 3) != 0) throw new ArgumentException(); fixed (byte* rgbP = &rgbData[0], rgbaP = &rgbaData[0]) { FastConvert4Loop(pixelCount, rgbP, rgbaP); } } static unsafe void FastConvert4Loop(long pixelCount, byte* rgbP, byte* rgbaP) { for (long i = 0, offsetRgb = 0; i < pixelCount; i += 4, offsetRgb += 12) { uint c1 = *(uint*)(rgbP + offsetRgb); uint c2 = *(uint*)(rgbP + offsetRgb + 3); uint c3 = *(uint*)(rgbP + offsetRgb + 6); uint c4 = *(uint*)(rgbP + offsetRgb + 9); ((uint*)rgbaP)[i] = c1 | 0xff000000; ((uint*)rgbaP)[i + 1] = c2 | 0xff000000; ((uint*)rgbaP)[i + 2] = c3 | 0xff000000; ((uint*)rgbaP)[i + 3] = c4 | 0xff000000; } } And Convert RGB to RGBA like this:
      byte[] rgb = new byte[800*600*3]; byte[] rgba = new byte[800*600*4]; RGB2RGBA_FastConvert4(800 * 600, rgb, rgba); But i need to convert RGB TO ARGB too, so anybody can please help me?
    • By lacky
      Hey everyone !!
      My name is Florian, and I'm a solo indie game developer, programmer, and digital artist. I've been working passionately on my very own game for quite some time now, and today marks the day of its announcement via Kickstarter! 
      The game is going to be a a challenging 2D platformer in a lovingly created pixel art world! Experience a packed story full of adventure, dangers and secrets! Exploring this vast world with all its mysteries, as well as challenging platforming gameplay and tough boss battles are the main focus points of the game.
      You can find tons of information on the game, as well as the game's trailer over at the Kickstarter project page!

    • By phil67rpg
      I finally got soil to load a png file. my next step is to animate a sprite using a sprite sheet I am unsure of  how to start. here is my code.
      GLuint textureBrick[8]; GLuint loadTex(const char* texname) { /* load an image file directly as a new OpenGL texture */ GLuint texture = SOIL_load_OGL_texture ( texname, SOIL_LOAD_AUTO, SOIL_CREATE_NEW_ID, SOIL_FLAG_INVERT_Y ); return texture; } void init() { textureBrick[0] = loadTex("C:\\Users\\Owner\\Desktop\\img.png"); } void renderScene(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glPushMatrix(); glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, textureBrick[0]); glBegin(GL_QUADS); glTexCoord2i(0, 0); glVertex2i(10, 10); glTexCoord2i(1, 0); glVertex2i(10, -10); glTexCoord2i(1, 1); glVertex2i(-10, -10); glTexCoord2i(0, 1); glVertex2i(-10, 10); glEnd(); glPopMatrix(); glutSwapBuffers(); glDisable(GL_TEXTURE_2D); }  
    • By RoKabium Games
      It's finally arrived, a new PC to test SAMA on in glorious 4K! Coming in true 'IKEA' style though, I hope all the pieces are there, and we don't have any left over bits at the end! :) #gamedev #indiedev #sama #newpc #4k
    • By JokerDDZ
      Hello. Today I released v1.0 of my project created in Unity "Dodge Them Ball". It's arcade game where you have to dodge many kinds of obstacles. You don't control player directly but through balancing the ball. There are 30 levels + endless mode. 
      Link to google play:
      Any feedback is welcome

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!