A Game A Month #2 – Release!
A few days ago I published my second game – Castle Adventure, A Platformer using the Godot Engine – and finally here are some news related to the development process!
As you have maybe noticed, it took me more time than just one month. Since I had exams in march I decided to take another month, because I was not really satisfied with the state and didn’t have enough time to finish the game.
So here it is! A simple Platformer with eight levels with a castle-like setting, where a knight has to collect coins, avoid obstacles, destroy woodboxes, fight against enemies like ghosts and skeletons, find keys and open treasure chests getting new weapons. The player has three lifes and has to restart a level when he looses them all. The goal is to get through all stages and collect as many coins as possible.
Progress
There are some new features since the last update:
- A menu, which is simply a playable stage with the title of the game at the top.
- Destroyable woodboxes with spreading particles
- Possibility to collect coins
- 6 new swords
- 3 new levels
- Soundeffects and background music
- A outro screen
Summary
Generally, most of the features I added were very simple to implement thanks to the Godot editor. My favourite was the animation of the enemies. For example, the movement of the skeleton is made with keyframe animations without a single line of code! The movement of the sword, the creation and the movement of the background, the lightning, all particle effects and the graphical user interface were also done simply with the help of the editor.
The most of the game logic is scripted in a file attached to the player. Like the movement and behaviour of the player and the events triggered by collisions with items or enemies. Generally, thanks to GDScript, a python-like language, and the useful code completition aswell as the included docs, scripting is very easy and clear, too.
One of the most time consuming features was the possibility to dynamically change the weapon of the player when a treasure chest is being opened. There are two types of swords: a short and a long one. Overall there are twelve different swords and with every sword comes a card which is shown in the pop-up window of the treasure chest.
Because the most things are done fast using the GUI Editor, I could focus more on graphical stuff and made my own castle tilesets for the platforms and the background, some obstacles like spikes, a circular saw and an animated zombie-hand and the swords, using Inkscape. Sounds, by the way, are all from OpenGameArt.org.
Problem: Html5 performance
Exporting the project into a Windows, Linux or Html5 Application is as simple as everything else in Godot. It is done with a bunch of clicks. But wait, why there is no Html5 version on the Itch.io page of this game? The answer is simple: the Html5 version was to laggy. Every level of the game has the most time approximately five lightsources being rendered at the same time. I think this is the main performace issue. Also the particle effects are slowing down the performace, everytime they appear.
There was no time left to solve this and also I still didn’t update the project to the new Godot 3.1, which was released just about two weeks ago. I’m curious if this will help. If this will be the case, I will of course update the game and maybe even upload a playable web version.
Conclusion
I’m happy to have finished another game but, as ususal, there are still more things I would like to add. For example more levels, a better ending scene and checkpoints where the player spawns after getting killed. Maybe I will update the game someday.
As mentioned many times yet, developing a game with Godot is very easy and fast in my opinion. There was no feature I struggled with for hours. The Engine is a good choice for both, fast prototyping of game ideas, and creating nice and polished games with every feature a game needs. The best thing is, that Godot is open source and still in development!
Personally, I like to code everything myself, therefore I used engines like LibGDX so far (like in my last game, SuperShot). So it was a new experience to me to mainly focus on the graphics/art and do everything else with a bunch of clicks without planning much time just for coding.
Like in LibGDX (which is based on Java) it is very simple to export games for all platforms. The only drawback in comparison to LibGDX is that you cannot just simply export and distribute a jar-File, which runs on Windows and iOS, but you have to export the project as an iOS application using a computer running the iOS operating system. Because of that i’m not able to distribute an iOS version of the game.
But being based on C++ Godot seems to achieve a higher performance than LibGDX, which is a big advantage.
Finally, I really like Godot, and I think I will use it in the future for my private 2D game projects!
Sourcecode
Of course this project is open source and you can check it out on GitHub or download it here:
Don’t hesitate to give me some feedback on the gameplay, the graphics and the sourcecode here in the comments or on Twitter!