Ducking out of Dodge

I’m pleased to release a new version of Heropath, the first version using Godot.

This short demo provides five critical mechanics: 1) Draws an arena for the player to move in, 2) Move the player’s character around, 3) Monsters enter from the side and cross the arena trying to eat the player, 4) The player must avoid being touched with collision detection being implemented, 5) A basic HUD with intro and scorekeeping. Below you can see a screen shot of Godot’s 2D game, Dodge the Creeps.

Godot’s Dodge the Creeps

I found working with Godot to be enjoyable but found Godot’s written tutorial lacking in steps. So I turned to GDQuest’s video tutorial which helped allot. Godot has many benefits with built-in collision detection, physics, animation, editor, and more. I can definitely see the immense value of using a game engine to develop Heropath.

After building the Dodge the Creeps game, I changed the characters and music. This is pretty easy to do but it allowed me to get to know the Godot engine better and make it more of my own project. The graphics come from an outstanding homage/update to Atari 2600 Adventure which is a great inspiration for Heropath. I really love its monochromatic, painted look.

So welcome to Heropath version 0.0.0.8 titled ‘Dodge the Duck-Dragons’!

Heropath Dodge the Duck Dragons

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

You can play Heropath version 0.0.0.8 here:

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

Instructions: Avoid the Duck-Dragons with the WASD keys to get high score!

Version 0.0.0.8 currently has the following features:

– Load arena
– Load character
– Load monsters
– Logic for character movement
– Logic for monster entrance and movement
– Logic for monster-player collision
– Updated graphics
– Updated music / sound
– Updated basic HUD

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

Some Godot observations:

  • Interesting that all pixel art should be facing right as default. I uploaded the dragons facing left and then had to flip it in-game.
  • Taking a screenshot of the enlarged image in Paint.net with Greenshot allowed me to have larger characters without blurring.
  • The tutorials on Godot’s main website are lacking in clarity at times, missing critical steps for somebody still learning the interface.

Next steps:

  • Expand the setting with new maps.
  • Add a nice UI with a character traits panel.
  • Add a monster that chases the character. Currently the monster simply passes through the map.
  • Add a weapon to defeat the monsters.
  • Add walls and doors to the maps.
  • Add keys to open up doors.
  • Add pickup of weapon and keys by the character.
  • 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.
  • Add win and end screens.
  • Add a ‘possession’ mechanic that will centre the plot and story.
  • Explore game development fundamentals like camera-usage and time (real-time vs turn-based).

I hope to have this ready by end of October, with an anticipated version 0.1.0.0 since it would represent a vertical slice of the action-adventure I am aiming for. Ongoing updates for Heropath can be found at the development schedule.

While I work on that, I intend to do some posts about what Adventure means to me and to the industry, get into its history, and outline remakes that have been done by fans.

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 here:
https://heropath.com/demo/alpha-v0.0.0.2/heropath.htm.
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

Ongoing updates for Heropath can be found at the development schedule 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.