First Sights, First Steps

I’m excited to share my first development diary entry for Heropath. Thanks to Chris DeLeon’s course ‘Code Your First Game’ I’ve gotten an introduction to game coding. His course starts off with pong, then breakout, followed by a car racer, and then ends with a graphic adventure game.

The graphic adventure game would provide the launching point to create the style of game that I intend for Heropath to be, a top-down strategy-adventure.

DeLeon’s code would provide four critical mechanics: 1) Draws a grid map with different objects on it, 2) Move the player’s character around, 3) The character can pick-up items located on the map, 4) Use those items to pass obstacles on the map. Below you can see a screen shot of DeLeon’s adventure game.

DeLeon’s adventure game

One of the first things I did to make DeLeon’s game my own was update the graphics. I did this for three reasons: 1) It was super easy to do, 2) Gave me a sense of momentum, 3) Gave me enthusiasm seeing aesthetics that resonates with me.

The graphics come from an outstanding homage/update to Atari 2600 Adventure and are an inspiration for Heropath.

Heropath graphic update

These are the modest first sights and first steps of Heropath. What we have is an exceedingly simple puzzle game with a fantasy theme. You can play Heropath version 0.0.0.2 with a web browser and keyboard here:

https://heropath.com/demo/alpha-v0.0.0.2/heropath.htm.

Instructions: You control Sir Bloc. Collect the keys to unlock the doors to get the chalice.

It currently has the following features:

– Load grid map
– Load character
– Load objects (keys, doors, chalice)
– Logic for character movement
– Logic for key pickup and door unlock
– Logic for capturing chalice resets map
– Updated graphics
– Updated demonstration map
– Updated on-screen instructions

Updates for Heropath can be found at the version history and will include improvements and new features such as:

  • Fix collision detection as the walls and doors feel squishy which contradicts their appearance.
  • Add a nice UI with a character traits panel.
  • Have characters carry the key graphically.
  • Have the doors be replaced by an open door graphic instead of vanishing.
  • Add a monster that chases the character.
  • Add a weapon to defeat the monster.
  • Add encumbrance so when the character picks up an item the character’s movement slows down.
  • Have characters be able to drop the carried key and the object remains on the screen. This changes the item from a grid item that vanishes to an object that has some persistence and is interacted with.
  • Expand the setting with new maps.
  • Add win and end screens.
  • Add a ‘possession’ mechanic that will centre the plot and story.
  • Explore variations of game development fundamentals like camera-usage and time (real-time vs turn-based).

As I think about these improvements, I am considering adopting a game development engine like Godot or Unity to implement these things. While I can learn how to do this in JavaScript it will take a longer time, time that could be better spent developing skills with one of those engines.