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 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 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 and 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 titled ‘Chase the Chalice’! This alpha demo is an exceedingly simple action-adventure game with a fantasy theme. You can play Heropath version 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.

The dreaded Atari Adventure (duck) Dragon

Version 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

Thoughts on Mechanics (Skills / Rules)

This post is a sixth and final part of the Heropath Thoughts series and will discuss Mechanics or Player in-game activity. Video Games are many things, but nothing is more essential than that of Player doing something and that requires Mechanics.

Mechanics or Play Mechanics are the ‘foundational’, technical layer of game development that supports Play Motifs and Fundamentals. Mechanics are divided up into four aspects, with the second two of the four being the focus of this post, them being Skills and Rules. As Raph Koster has written about in A Theory of Fun for Game Design, these Elements are fun to play with because they allow skill development and mastery.

While Tools and Obstacles are the in-game overt elements that the player uses to accomplish the on-screen goals, Skills and Rules are the alchemical mix of the Players abilities and Developers abilities that creates the magic known as ‘gameplay’.

Let’s talk about Skills, the first of these two Elements.

When I first was considering the definition of Skill I came across this old article that listed it as the player’s synthesis of complexity and depth. This definition intrigued me and while I think it is a pretty good start, I also think that Skill is more broader than that. This article by the outstanding Dan Cook outlines how skill development occurs and is the basis behind my own definition.

Skills consists of the following sub-aspects: Persistence, Precision, and Progress.

Persistence (of breadth/discovery) is the player’s determination to continue playing through. It is a combination of fascination with the less crunchy things like story, navigation of the world map, systems, etc. and the willpower to push through when things become difficult.

Precision (of depth/mastery) is the openness, intelligence, knowledge, dexterity, and hand-eye coordination that allows players to be effective in advancing in the game. This is the player’s refinement of their nervous system to be in alignment with the game. Precision is the development of player-ability of expertise in the form of hand-eye coordination, pattern recognition, planning, understanding, what Raph Koster calls ‘grokking’ of the game.

Persistence & Precision will lead to Progress, the third aspect, and is identified by in-game development of expertise. Classic examples of this are your RPG character gaining a new level, skill, spell, item, opening new levels/maps, etc. These are not the same as the Player’s own Skills.

Progress – this is improvement of the Player’s Tools that take place in-game. Examples would be a RPG character that increases in power by leveling or an Arcade spaceship that gets a second laser turret. While Persistence and Precision are the Player’s own efforts, Progress is the video game making the Tools more powerful and useful to overcome the Obstacles. A Level 10 RPG character is understood to be stronger and more capable than a Level 5 character but this has nothing to do with the Player’s own skills. But the Player would not have been able to get to this level of in-game Progress without Persistence and some Precision.

Progress is a commonly manifested mechanic in almost all video game genres and it is possible to adopt that concept to Skills. As a Player advances in Skill, they increase their Skill levels. Skill levels range from zero to four, with increased ability being associated with a higher number level. A Level 4 Skill is above Level 3 Skill, etc. Matching the Player’s Skills vs the video game’s Rules are critical as poorly matched Skills to the Rules will lead Players to become bored or overwhelmed, while properly matched Skills can lead to flow. Assuming that Tools & Obstacles are properly coded and balanced we get the following continuum of Skill:

Level 0 – Mundane (95% Persistence / 5% Precision) – This Skill level is always doable/available. Examples: Incremental, Hyper-casual, basic moves in a game, basic character traits in a RPG.

Level 1 – Beginner (75% Persistence / 25% Precision) – This Skill level is built on Level 0 and become available through Persistence. Examples: The double-jump, character experience levels, simple Arcade games like Pong, Adventure/RPGs.

Level 2 – Moderate (50% Persistence / 50% Precision) – The Tools become more intricate and specialized such as Power-ups and requires more player Precision. Examples: Action-adventure, FPS, Puzzle, Casual.

Level 3 – Expert (25% Persistence / 75% Precision) – The Tools become complex and require layers of understanding including tactics, coordination, and strategy. Examples: Deathmatch, MMORPGs, MOBAs, RTS, 4x, most Arcade games.

Level 4 – Mastery (5% Persistence / 95% Precision) – The Player has developed enough Tool Skill they are considered to possess Game Mastery. The video game then becomes a toy or a playground as a way to express oneself, akin to Michael Jordan. This highest level of Precision where Persistence is effortless. Examples: eSports Gamers, Speedrunners.

Now that I have defined Skills, it is time to turn to Rules.

Rules are the most complex Element of the Mechanics due to their layers of logic and balance issues. They are the most essential Mechanic that determines if a video game is fun and fair.

Rules consist of the following dualist sub-aspects: Logic/Balance, Limits/Exploits, Rewards/Punishments, and Emergence/Advancement.

Logic/BalanceLogic is the essence of code. Does it work? Does the defintions and If-Then statement logic deliver the desired results? If the Logic works, then comes the question of Balance or does it work well? While Logic defines the Tools and Obstacles it is the Balance that determines how they match up. When the video game has a greater the emphasis on Precision, the greater need for transparency of Rules. In competitive sports the Rules need to be a clear as possible so the players know how to play by them and the referees know how enforce them.

Limits/ExploitsLimits are those restrictions imposed on the Player and could be things like a limited number of lives like in many Arcade games, a count-down or time-trial, an NPC that can’t be attacked, an area that is blocked off from being reached. Exploits are cheats left in by developers (intentionally and not) allowing people to by-pass Skill development to allow faster player advancement.

Rewards/PunishmentsRewards are any form of encouragement and celebration delivered inside the game to encourage the Player’s ongoing engagement. This can be graphical animations, special effects, cut scenes, narrative reveals, or high score tables. A Reward could be any of the Motifs such as a cutscene or on-screen juice like explosions/screen shakes (Show & Tell), a new resource (Game), a new area to explore (Toy & Playground), a new element (Puzzle), or a ranking (Sport). Punishments are those consequences that happen when a Player fails at a game. Is there permadeath or a corpse-run? What happens when Players are cheating or being toxic and ruining the fun for others? The could risk possibly be banned from the game!

Emergence/Advancement– When Rules are revealed because the video game is applying the rules *to itself* then we have Emergence. The Player can then learn about how the Rules are being applied in the game-world. But as this article explains most video games choose Advancement as the way for Rules to be revealed to the Player as they progress in the video game. These two approaches are in opposition to each other but can be combined in the right genre of games such as 4X games and the odd historical exception.

Such an exception is one of my favorite games; Adventure for the Atari 2600 which was the first action adventure games, but it was also one of the first emergent sandbox games. As you move around the game world you interact with the various creatures and objects that would affect each other even off-screen from the Player. The irony is that despite its name, the game was not really an adventure that explored Advancement but really was an exploration about Emergence. It remains a feat of engineering and design.

We have come to the end of this series that delved into into greater descriptive depth of the Game Elements. This was a necessary exercise as it helped me think analytically about game development.