Development update #7

06-12-2021 It’s been a while since the last update. Last time the game was pretty much in disarray, which has since been fixed. Therefore another demo video was created which can be found at the end of this article.

Hiring new characters
With the upgrade function in place it was time to make it possible for the player to hire extra characters during the game. All this time the knight has been battling enemies on his own and the other characters were getting kind of antsy. So in the current version of the game a new character can be hired after every battle. For now, a ‘Hire’ button was added to the interface which allows the player to get an extra fighter in between rounds. The party has a maximum number of five slots and right now the type of character that is hired is determined randomly.

In the future, hiring characters will be a bit more interesting and less frequent. An example would be: after a boss fight (every 5 levels) the party will have a special encounter; 1-3 characters present themselves and the player is allowed to pick one (or none!).
Characters can also be dismissed from the party, so the player should have a lot of control what types of characters the party consists of.

Upgrading characters
Although it was possible to upgrade the knight character, as shown in the previous development update, this functionality had to be expanded to also pertain other party members. There still is only one type of upgrade, a flat 200 bonus to health, but in future updates there will be more variety and more importantly… balance.

Saving party member stats
A logical next step after implementing previous functionality was to expand the save file to contain the entire party. The game is now saved after the player presses the ‘Done’ button. This button is only active during the upgrade phase of the game. This may still be changed as it does allow for some “save scumming”, because the player can theoretically quit the game when a battle is turning sour and retry it endlessly. On the other hand, if the game is saved after upgrades are done, a player can just try different upgrades which may greatly influence the following battle.

Development changes
Disclaimer: everything stated below is susceptible to changes in the future.

  • Hire new character
    • New party members can be hired after each battle up to a maximum of 5 characters
  • Party upgrades
    • Upgrade functionality in between battles has been expanded to the entire party
  • Save feature
    • Stats are now saved for all characters after each upgrade phase

Current state of the game demo
The video below shows the game in its current state. Please be aware that some character stats have been boosted. This video purely for demonstrating the character upgrade cycle in between battles and the option to hire extra party members.

Future changes
NB: from now on, only short term changes will be mentioned here. For long term changes a seperate road map will be created.

  • Functionality to change party order / formation
  • Different types of stat and skill upgrades
  • New type of enemy: Familiar

Development update #6

24-09-2021 These past weeks Journeys has undergone a few backend changes and additions. Because of this the application has been in ‘disarray’ for a while and is not quite in a demo state.

Upgrading characters
As mentioned in previous updates, in between battles the player will get the chance to upgrade their characters. Right now, this functionality is still bare bone, but as of now it is possible to increase a characters health by dragging a ‘page’ item over the character (as shown in the animated gif below).

Drag ‘n drop functionality

Each character of course has their own story, but at the beginning of the game this story is still unwritten. As the player wins battles they will be awarded special ‘pages’ for their character’s story. So, in practice, a player will receive loot in form of pages containing pieces of story that grant bonuses to the character the page is given. For instance, the player finds a page containing a piece of backstory about “growing up amongst a knightly order.” Because of this background a character would then receive bonus to their attack stat. Backstories will come in a variety of types, each with different bonuses provided to the character (backstory, flashback, motive, etc.).

It has not yet been determined how this mechanic is going to work exactly. Right now there are two ideas on the table. One idea is each character having an empty book with a set amount of slots for these page items. The player then has to ‘mix and match’ to utilize the available pages and their bonuses. The other idea is simply just stacking pages onto characters, with no limit to how many pages a character can get.

There’s also a separate concept of having several page qualities (novel, mundane, masterpiece, epic, saga, etc.) and being able to upgrade pages. For instance, ‘novel’ quality is quite low, but combining three novel pages creates an ‘epic’ page.

On top of that there could be page qualities that indicate pages have negative side effects. For instance, the player finds a page of masterpiece quality, but it’s also ‘convoluted.’ This could mean a page gives a bonus health of 100 but it lowers the attack stat by 10.

Save functionality expanded
The game will now save game progress and character stats. This was necessary to move forward, as upgrading characters and reaching higher stages is closely tied to how the storage of information should work as well as to the hardening of the application to prevent corruption of save files.

Development changes
Disclaimer: everything stated below is susceptible to changes in the future.

  • Save feature
    • Current chapter is saved, so the player can continue from there after closing the game
    • Character stats are saved
  • Upgrade items
    • A basic item has been created that allow the player to upgrade a character
    • These items can be dragged and dropped on top of player characters to increase corresponding statistics

Future changes

  • Extra phase in between battles where loot can be used to buff the player party
    • This phase has been implemented, but still needs streamlining and tweaking
  • Defeated enemies / enemy parties drop loot
  • More character abilities
  • More types of enemies
  • Overarching game shell
  • Extra on hit graphic effects
    • e.g. character is engulfed in flames when hit by the knight’s fire attack
  • Mana
    • Mana will be represented in the character UI
  • Sounds
    • Characters will be provided with unique on hit and on death sounds
  • More speech bubble events
    • Speech bubbles will be randomly shown on attack, hit, death, etc.
  • Victory and loss conditions

Development update #5

20-08-2021 As more and more parts are added, the game is starting to take shape. The player can now choose their hero character when they start a new game and a system of progression was implemented for the enemy units. This allowed (mini) boss units to be added as well.

Choosing your hero
Upon starting a new game the player chooses their starting hero. What the exact differences will be between the three available characters will be fleshed out at a later point. For now, it was more important to put the systems in place that allow the game to save the chosen character and then be able to retrieve this information in a next session. The goal here is to have the game save the necessary data so it can reconstruct the exact state of the game it was saved at.

Some thought was also put into the actual backstory of hero characters and how that plays out in the game. One of the original ideas was to have the player choose from a set of backstories, which in turn determined what the object of that particular game would be. All of these backstories would basically be a variation on a ‘running from something’ theme with a final boss unit or nemesis being the pursuer. The player would have to run from this boss and try to build up their party and become stronger in the meantime. At some point the player could then decide to stop running and face their pursuer. This still seems like a great idea, the difficulty lies in conveying this story to the player without them having to read huge amounts of text. Also, the idea that the player creates their own stories seems to stick as well and perhaps having a pre-written story takes too much away from that. These will be some hard choices to make in the future.

Enemy progression
Each level (or ‘Chapter’ as they are called in-game) the enemies will grow stronger. For this, a point allowance system was created that generates a set amount of points based on the current level. In turn, these points are used to generate enemies and provide them with extra skills and stats.

So, here’s an example of the way it works right now; level 5 gives the enemy party an allowance of 25 points (lvl * lvl = 5 x 5 = 25). Creating a unit costs 10 points plus an amount based on the type of enemy. Stronger enemy types will cost more points. If there are enough points left, another unit will be created, if not, existing units will be assigned skills. The flanker ability for instance costs 4 points, an extra attack costs 8 points. Then, from the remaining points stats (attack and health) will be added until the entire point allowance has been used up. Right now, there are only a few skills, stats and enemy types, so the resulting enemy parties will likely be very similar. Of course, in the future, there will be a lot more different combinations.

(Mini) Boss units
Adding boss units within this system was actually quite easy. Thanks to a simple modulo operation the game can spawn a single boss unit every 5 levels, instead of multiple enemies. All the skills and stats generated from the point allowance will be used to create one huge creature. During preliminary gameplay tests it became apparent that after lvl 25 these boss units will start to become crazy overpowered, so proper balancing needs to be applied here. Likely, skills will be limited for boss units and perhaps adding a skill will also decrease attack or health. So an enemy unit might get the area of effect skill, however this will also lower their attack, making the skill less overpowered.

To differentiate between normal enemies and boss enemies, existing unit graphics were used and altered using shaders. Shaders are a great way to create special effects on any type of in-game graphic. There are shaders that generate moving clouds or perhaps just a simple outline for a character. For boss units a color replacement shader was added and used to create an alternate color scheme for existing enemies. Maybe in the future these bosses will get their own custom graphic, but for now this change in color scheme will suffice.

Left: regular version of an enemy unit
Right: boss version

Extra UI elements for units
Since enemies can now spawn with random skills, it was important to add UI elements to reflect these skills. Without, it would be quite hard to analyse a particular situation and act accordingly. So, the additions were made to the UI element below each character as shown in the image below:

Development changes
Disclaimer: everything stated below is susceptible to changes in the future.

  • Players can now choose their starting hero
    • With this addition the save file was expanded to also contain saved information about the player’s character.
  • A level counter was added to display the current stage the game is at
    • Since this game takes place inside a book, levels will be called ‘Chapters’
  • Small symbols were added below each character to display their skills:
    • Flanker ability: yellow cornered arrow
    • Area of effect: red star-like symbol
    • Extra attacks: shows the multiplier next to the character’s attack stat
  • A rudimentary progression system was added which uses a point allowance for generating enemy units. Each level this point allowance for the enemy party increases, resulting in more skills and stats and thereby stronger enemies.
  • Boss fights were added. Every 5 levels the player will encounter a boss unit.

Current state of the game demo
The video below shows the game in its current state. Please be aware that the knight character has its stats boosted purely for demonstration purposes. In the actual game a player will gradually increase these stats between battles. This video mainly shows how the enemy party grows stronger with each level.

Future changes

  • More character abilities
  • More types of enemies
  • Defeated enemies / enemy parties drop loot
  • Extra phase in between battles where loot can be used to buff the player party
  • Overarching game shell
  • Extra on hit graphic effects
    • e.g. character is engulfed in flames when hit by the knight’s fire attack
  • Mana
    • Mana will be represented in the character UI
  • Sounds
    • Characters will be provided with unique on hit and on death sounds
  • More speech bubble events
    • Speech bubbles will be randomly shown on attack, hit, death, etc.
  • Victory and loss conditions

Development update #4

05-08-2021 The last two weeks were mostly spent working on sounds and music and getting the game to run outside the Godot IDE (Integrated Development Environment). That last part was to be expected. Running a game inside an IDE gives it access to certain features it might not have when running a build of the game outside the IDE. In this case a few files couldn’t be loaded at runtime, which had to be fixed and, apparently, there’s a small bug in Godot that when you run multiple buses within your audio server it will prevent certain sound features from being accessed (e.g. volume can’t be changed). Besides the aforementioned areas, progress has also been made capturing the game state in a save file.

Error when running multiple audio buses
To explain this a little bit further; Godot has an AudioServer interface that can contain multiple audio channels called ‘buses’. There’s always a ‘Master’ bus that encompasses all sound, but it’s possible to add (sub)buses which can be used to separate music and sound effects. This allows the user to have different volume settings for sound and music. How the buses are arranged is captured in a bus layout file.
However, for some reason Godot does not like multiple buses in the default bus layout file, so a copy had to be made of this layout which has to be loaded at runtime to prevent errors when changing the volume or turning sound on or off. It’s a workaround but at least now the game functions as intended when build.

Sounds & Music
Having added a few sounds and music has added a lot of atmosphere to the game. It was important to explore this area of the game further. Finding out what kind of audio fits this theme and which direction to go with it.

The music was composed by Jonathan Shaw (www.jshaw.co.uk), a very experienced composer of game music. Highly recommended for any game developer that lacks resources in this particular area.

Saving the game
Before implementing a save feature, choices had to be made about the entire save system. Should the user be allowed to have multiple save games? Should users be able to have one or multiple profiles? How would being able to save impact gameplay (e.g. *save-scumming)?

To keep things simple the choice was made to have one profile per (Windows) user. The game will save progress on one story, which can later be loaded from the main menu. This save will be overwritten when the user starts a new game making it easier to maintain and develop, but will limit the user’s flexibility to a certain degree. This won’t prevent save-scumming though.

*Save-scumming: saving the game before a difficult part and reloading the game after every failed attempt until one succeeds. This circumvents part of the difficulty of a game. In some cases exactly what makes a game fun, in other cases it can provide hollow victories.

Development changes
Disclaimer: everything stated below is susceptible to changes in the future.

  • Added music for the intro, main menu and battle scene
  • Added sounds for the main menu, interface and characters
    • Buttons have on hover and on click sounds
    • Book opening/closing and page flip sounds
    • Characters now each have their own unique attack sound
  • Character Healing ability
    • Mana has been implemented (the fuel for casting magic spells and performing magic attacks). However, the UI does not yet show the amount a character has.
  • Added save functionality which can be expanded to include characters’ statistics, in-game progress and other relevant information.
  • Bugfixes:
    • On death sounds failed to play when a character died from an area-of-effect attack or incorrectly played when a character had already died
    • Build version of the game threw multiple errors concerning loading assets at runtime and the default audio bus layout

Current state of the game demo

Upcoming changes

  • Thorns ability
  • Character creation / random enemy party creation
  • Overarching game shell
    • The idea of the game taking place inside a book will be fleshed out more.
  • Extra on hit graphic effects
    • e.g. character is engulfed in flames when hit by the knight’s fire attack
  • Mana
    • Mana will be represented in the character UI
  • Sounds
    • Characters will be provided with unique on hit and on death sounds
  • More speech bubble events
    • Speech bubbles will be randomly shown on attack, hit, death, etc.

Development update #3

23-07-21 Sooner than expected another update! As work continues on different areas of the game, a few rather large additions and decisions were made.
As stated before nothing is completely set in stone, but for now the game is going to take place inside a book, the Book of Journeys. Each run-through will be its own story. Going through levels is basically flipping pages in the book, writing new chapters as you play.

To convey this idea of a game inside a book, graphics have been added as you will see in the video below.

Development changes
Disclaimer: everything stated below is susceptible to changes in the future.

  • New character ability: healing
    • Healing ability: every turn the character will heal all allies for a small amount of hitpoints
      • Mana has not yet been fully implemented, but will be used for healing. When the healer is out of mana, they will switch to their regular attack.
  • Speech bubbles
    • Upon entering the screen, one of the player’s characters will say something. This can be a battlecry, something witty or perhaps a quote referring to other media.
  • Character UI elements tweaked
  • Overall theme (buttons styles, fonts, etc.) has been updated

Speech bubbles
Speech bubbles seemed like a cool way to add flavour. Many of these might end up being well-known quotes from movies, series or even memes. However, there is some legal stuff associated with that, which needs to be addressed first.

More variations and outcomes
With the addition of healing and flanking (=attacking enemies at the back), battles have become a lot less predictable and the amount of outcomes has increased immensely. Though healing prevents one of your characters from attacking, the added survivability will turnaround many situations in your favour.

Upcoming changes

  • Thorns ability
  • Character creation / random enemy party creation
  • Overarching game shell
    • The idea of the game taking place inside a book will be fleshed out more.
  • Mana
    • Certain skills will use a character’s mana
    • Amount of mana will be shown below the character
    • Mana regenerates after battle
  • Sounds
    • Combat sounds on hit, death, pre-attack ,etc.
    • Button sounds
  • More speech bubble events
    • Speech bubbles will be randomly shown on attack, hit, death, etc.
  • Profiles
    • Used for saving the game state and settings

Development update #2

16-07-21 Development in these last 10 days have been quite fruitful. The game is coming along nicely. Therefore it seemed like a good time for another update. At the end of this article there’s a short video of the current state of the game.

Development changes
Disclaimer: everything stated below is susceptible to changes in the future.

  • Knight character attack graphic improved
  • 2 new character abilites: flanker, area of effect
    • Flanker ability: character attacks a random unit that isn’t at the front (unless there’s one opponent left)
    • Area of effect: pretty straightforward, the character attacks all units simultaneously
  • 3 new characters: wizard, rogue and cleric
    • Wizard: low health, low attack but has an area of effect attack
    • Rogue: medium health, medium attack, attacks the backline of your opponent’s party by flanking
    • Cleric: low health, low attack but will be able to heal the party (when the healing ability has been implemented)
  • UI elements displaying character attack, health, damage taken and death
  • Game can now be paused
  • Placeholder background with a few animated assets

The knight’s attack graphic was changed as his high aim made it look like he would completely miss the tuskrat unit (because of its short height). With this change, a flaming sword attack was added which also better conveys the actual motion of his sweeping attack.

With this came the idea to give all (player) characters a cool looking attack graphic and right now these might be used for mana-fueled ‘skill’ attacks. In other words, a unit will use this more powerful attack that costs mana until mana is depleted, then switches to normal attacks.

Mana can then also be used for the cleric’s healing ability. They will heal the party for a small amount each round at the cost of mana. Though, with this mechanic it might be possible to have a stalemate situation. If it’s just the cleric left and one opponent and that opponent has less or equal attack to the healing ability of the cleric, the battle will obviously go on forever. Therefore healing will cost resources and these resources will be finite.

Upcoming changes:

  • Healing
    • As previously stated the healing ability will be implemented next and accompanying that mana or a similar finite source of power
  • Thorns ability
    • In the last development update this was mentioned. It seemed quite complex to add this ability in the current gameplay loop so implementation was postponed in favour of the flanker ability. It’s still on the agenda though.
  • Character creation / random enemy party creation
    • Currently, the creation of all characters is hard-coded. This will be improved so the player can actually create their own (main) character and the opposing party will be randomly generated.
  • Overarching game shell
    • Right now the game consists of a single battle. Of course you’d expect to have many battles in a game like this and these battles should be tied together by an overarching system. Earlier there was mention of a world map. This idea is still on the table, but to keep things simple, at this stage battles will first be chained together sequentially. On the iteration after that the player will then be able to choose a path

Development update #1

06-07-2021 Before working on Journeys itself, a simple template project was created containing a main menu, a few options and screens and a basic flow between the game and the main menu.

From there parts of the Journeys game design were implemented. The idea is to have an autobattler with a deckbuilding phase in between battles and if time allows it, there will be a rogue-like shell around that. Think, a world map where the player can choose their next battle. Likely, the deckbuilding part will not contain actual cards. Perhaps a better name would be party-building.

After each battle your party will become stronger, but so will your enemies. It is up to the player to utilize everything the game offers to stay ahead of the curve.

Right now, the main game loop in its most basic form has been implemented. Two parties face off in a battle. Each unit attacks an enemy unit from front to back until one side wins. A message log in the top left corners shows the actual numbers of attack damage and such. At this point it’s there for development/game design purposes and will probably not be a part of the final game.

There are currently two unit skills available: multistriking and extra damage. Next up are thorns (reflect damage back to attacker), area-of-effect attacks and attack random target (as opposed to the standard attack front unit first). These skills will cover all the basic abilities you’d expect from a game like this. On top of these new and more original abilities will be added.

Harbinger Games website live

05-07-2021 The Harbinger Games website is now live. If you’re interested in news about the development of “Journeys” (working title), check back here for monthly updates.