Chase the Chalice

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.

Heartbeast’s Action RPG

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.

Heropath Chase the Chalice screenshot
Heropath Chase the Chalice

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:

https://heropath.com/demo/alpha-v0.7.0.12/heropath.html

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.

The dreaded Atari Adventure (duck) Dragon

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

Destroy the Duck-Dragons

I’m pleased to release a new alpha version of Heropath, the second version using Godot and is alpha build version 0.3.0.18. It represents the first actual vertical slice of the game (inspired by Atari’s Adventure) I am building towards since I started development a year ago.

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 statkeeping. Below you see a screen shot of Heartbeast’s Demo 2D Action RPG game which is the code base for this version.

Heartbeast’s Action RPG

After building HeartBeast’s Action RPG game, I changed the characters and music and sound and began changing how the game functioned. This was new territory for me and really challenged me but I got to know the Godot engine much better and make it more of my own project. The character and item graphics come from an 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.

Destroy the Duck-Dragons
Heropath Destroy the Duck-Dragons

The above screenshot is for Heropath alpha version .3.0.18 titled ‘Destroy the Duck-Dragons’! This alpha demo is an exceedingly simple action-adventure game with a fantasy theme. You can play Heropath version 0.3.0.18 with a web browser, keyboard, and mouse here:

https://heropath.com/demo/alpha-v0.3.0.18/heropath.html

Instructions: You control Sir Bloc with the keyboard WASD/arrow keys. You must find the sword and use it to destroy the Duck-Dragons. You need to bump into sword to it pick up and then drop it using the space bar.

Well, what exactly is a Duck-Dragon? When Warren Robinette drew his original dragons for Adventure they did look like ducks. In a way it fits since birds are related to reptiles/dragons.

The dreaded Atari Adventure (duck) Dragon

Version 0.3.0.18 currently has the following features:

– Load small world and environmental objects
– Load character
– Load monsters
– Load items (currently only a sword)
– Logic for character movement
– Logic for monster movement and chase behavior
– Logic for monster-player collision
– Logic for monster-sword collision (new code)
– Logic for item pick-up and drop (new code)
– Logic for intro, win, and lose states (new code)
– Updated graphics
– Updated music / sound
– Updated basic HUD
– Drawing expanded map (320 x 180 pixels to 600 x 600 pixels or 5x bigger) with cliffs, brush, dirt, and grass (existing assets in new map)
– Drawing and placement of Duck-Dragons (new assets)
– Drawing and placement of Sword and Player (new assets)
– Drawing and placement of Intro, Win, and Lose screens (new assets)

With this version I’ve moved along from a very simple puzzle game to a very simple arcade game to a very simple arcade-adventure game. This is fitting since Atari’s Adventure combined both arcade action along with item/map puzzle play, being the first ever action-adventure game.

Some ongoing Godot observations:

Working with Godot remains enjoyable and I’m appreciating its many benefits with built-in collision detection, physics, animation, editor, tile-mapper, and more. I definitely see the immense value of using a game engine to develop Heropath. There is no way I would have released this demo as quickly as I did by using JavaScript.

  • Adopting Godot was the right thing to do since I’ve steadily learned the tool and it has become easier to use.
  • Godot Forums is a big help!
  • I’m using Git for code rollback redundancy which has been critical when I break the code.
  • I have a bizarre bug with sound sometimes not playing which means I could not get the sword slice sound running when the Duck-Dragons are hit. I think it will be fixed by the next version.

Next steps for future versions in order of priority:

  • Add Duck-Dragon sprites for attack and dying.
  • Add castle walls and gates to the maps that are not passable.
  • Add keys to map and allow them to be carried.
  • Add key function to open up doors.
  • Add chalice to map and allow it to be carried.
  • Add shrine to the map and when the chalice is placed on it, it triggers the win condition.
  • Add randomizing elements to move the 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 them 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 the Atari Adventure 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.

I anticipate to do this in small incremental builds by adding more items and objects and would estimate to have the next release by end of March 2023. Updates for Heropath can be found at the version history.

Definitely part of the reason why development has been so slow is because I’m also doing lots of conceptual work behind the scenes related both to game development and Heropath’s world and plot.

Finally, I’ve updated my personal blog that outlines more about my personal experiences with game development. It has been over a year since I’ve undertaken this project and I’m astounded at the amount of time/effort to develop 2-3 minutes of gameplay! I suspect that a year of part-time work I’d have been able to write a few songs, paint some pictures, write a story, etc. While they might not be particularly accomplished pieces they’d be much longer than 2-3 minutes of basic game play! Game development is simply one of the hardest creative undertakings, and while rewarding, it is evident I need to temper my expectations.

“One of the most difficult tasks people can perform, however much others may despise it, is the invention of good games.” – C.G. Jung