I am releasing a new small incremental alpha demo for Heropath. I should have released this more quickly but coding has been infrequent because of full-time work, other projects, and some vacation time away. When I was not coding, I was world building and writing on game development.
This new version of Heropath is the third version using Godot and is alpha build version 0.7.0.12. It represents a vertical slice of the game (inspired by Atari’s Adventure) that I am building towards. I started to learn coding in October 2021 and the previous alpha demo versions are listed here.
With version 0.7.0.12 we have a simple arcade-adventure game moving around a map where you can unlock a door with a key and kill the enemies with sword. The game’s win condition has changed to requiring the player to find and carry the chalice to the altar. Game length is about three to four minutes.
This version is thanks to Heartbeast’s Demo 2D Action RPG game tutorial titled Godot Action RPG series found on YouTube. Heartbeast’s Demo provided the following critical mechanics: 1) Draws a tilemap for the player to move in, 2) Move the player’s character around, 3) Monsters are placed across the map and chase the player if detected, 4) The player must avoid being killed with collision detection being implemented, 5) The player must find the sword and use it to kill the monsters, 6) A basic HUD with intro and stat keeping.
Below you see a screen shot of Heartbeast’s Demo 2D Action RPG game which is the code base for this version of Heropath. Heartbeast has developed an excellent YouTube tutorial titled Godot Action RPG series.
Using HeartBeast’s Action RPG game as a base, I added new items that expanded that game’s function which was brand new territory for me. The character and item graphics come from this outstanding homage/update to Atari 2600 Adventure. The world graphics and effects come from Heartbeast’s Godot Action RPG. Sounds and music comes from freesound.org and soundimage.org. This version will be the last using Heartbeast’s codebase as I have now run into too many issues with his code being beyond my comprehension and I need to rewrite the code to be my own.
The above screenshot is for Heropath alpha version 0.7.0.12 titled ‘Chase the Chalice’! This alpha demo is an exceedingly simple action-adventure game with a fantasy theme. You can play Heropath version 0.7.0.12 with a web browser, keyboard, and mouse here:
Instructions: You control Sir Bloc with the keyboard WASD/arrow keys. You must recover the chalice and bring it to the altar. You must find the the key to get past the gate, and the sword to destroy the Duck-Dragons. You need to bump into items to pick them up and then drop the item using the space bar.
Version 0.7.0.12 currently has the following features:
– Load small world and environmental objects
– Load character
– Load monsters
– Load items (sword, key, chalice)
– Load environmental objects (altar, gate)
– Logic for character movement
– Logic for monster movement and chase behavior
– Logic for monster-player collision
– Logic for monster-sword collision
– Logic for item pick-up and drop
– Logic for gate open with key
– Logic for altar and chalice win condition
– Logic for intro, win, and lose states
– Some updated graphics with the Duck-Dragons having an animated biting attack (3 new assets)
– Some updated music / sound with sword sound cutting the grasses and slicing the dragon
– Some tweaking of object placement on the previous 600 x 600 pixels map with cliffs, brush, dirt, and grass.
– Drawing and updating the placement of Player, Duck-Dragons, Sword, Gate, Key, Altar, and Chalice. (4 new assets)
– Updates of Intro, Win, and Lose screens
The next steps for future versions in order of priority:
- Upgrade to Godot 4.0 from Godot 3.4.3
- Complete a full re-write of the code. The physics and object detection has become very janky as I have piled on new game objects on the original code and it is not working well. I will employ game programming patterns to help me structure my code.
- Add randomizing elements to move the map, player, monsters, and items round. Currently the demo becomes quickly repetitive.
- Add enhanced Duck-Dragon intelligence which flees, guards, and chases as Warren Robinette wrote in his book.
- Remove Player HP so the game plays the same as Atari Adventure. I left the HP in place from Heartbeast’s demo as they are useful for testing.
- Add a UI-HUD with a character traits panel.
- Add more items like Atari Adventure’s Magnet and Bridge.
- Add more characters like the Atari Adventure’s Bat.
- Add encumbrance so when the character picks up an item the character’s movement slows down.
- Add a ‘instill’ mechanic that will centre the plot and story.
- Add The Dremiurge, The Devai, and The Heropath characters to the game to frame and narrate the plot and story.
Working with Godot remains very enjoyable and its many features such as built-in collision detection, physics, animation, editor, tile-mapper, and more has allowed me to accomplish so much in a short period of time. Godot Forums and Git have also been very helpful with coding.
I anticipate that the next release will take me quite a while to do and would estimate to have the next release by end of December 2023. Game Development is exceedingly challenging as it takes a lot of work to deliver a small amount of play. But there is a delight in getting the code to work and immerse ownership in conceptual challenges like this.
“One of the most difficult tasks people can perform, however much others may despise it, is the invention of good games.” – C.G. Jung