itch.io is community of indie game creators and players

Devlogs

Making a Strategy Game with Chess-like AI in Pico-8 - 2#: Game Feel

Ziege
A browser game made in HTML5

I'm Ross. I'm a chemical engineer and I make tiny games in my spare time. I recently made a strategy game with Chess-like AI from scratch in Pico-8. In this series of posts I'll walk you through my design process and share what I learnt throughout.


Game Feel

Game feel is crucial to creating a game that's both fun and immersive. It refers to the way in which a game responds when players interact with it. While it's not apart of the actual gameplay mechanics, good game feel makes those mechanics way more satisfying and enjoyable to engage with.

A great example of the importance of game feel is showcased in this video by Jonas Tyroller.

It explores how to make a simple button fun to press by adding game feel and feedback, demonstrating how adding animations, sounds, and visual effects can turn even a basic interaction into something more enjoyable.

A lot of the game feel and visual-inspiration for Ziege came from the gameplay in Pico Checkmate. Its attention to the small details really influenced how I approached making each interaction in the game feel satisfying. In particular, I loved the way in which the AI interacts with the game. 

In Pico Checkmate, the AI takes control of the cursor during its turn, navigating it to the desired piece and making the move as if a human player were operating the interface. By mimicking how another human player would interact with the game, it makes the AI's decisions feel more natural to the player, seeing how it selects and moves pieces rather than just showing the end result. 

Another aspect of the AI's gameplay that made it feel more natural was the addition of "thinkdots" during the AI's move. These are visual indicators used to represent the AI's thinking process, with additional "thinkdots" being added to the GUI over time as the AI calculates its move. This simple representation of seeing the AI thinking, once again, makes the AI's decisions feel more natural to the player as a result.


Piece Feedback

Prior to adding these gameplay interactions to the AI's gameplay, I first focused on the players gameplay focusing on piece feedback in particular.

In this instance, the player interacts with the game pieces using a cursor. I found a simple way to make the cursor feel more responsive was to add a hover effect to any of the players pieces that cursor touched, by offsetting the highlighted piece 1 pixel upwards. Furthermore, I added a red highlight to the base of a piece when selected by the player . 

With Tafl being an unfamiliar game to most, I knew it would be important to clearly communicate the possible moves of a selected piece to the player. From my own experience playing chess online, Lichess handles this problem excellently, by marking potential squares that a selected piece can move to with dots. 

Similarly to this approach, I marked potential squares that a selected piece can move to with dots in Ziege, and additionally added a red highlight the dot that the player was about to select. Furthermore, pieces that can be attacked as a result of a players move were given a red flashing outline to clearly communicate the potential capture to the player.


Piece Movement

While significantly easier to make the game with a static board, animating the movements of the pieces was crucial for this project. Not only did this make the moves easier to follow, but as Tafl games aren't exactly action packed, incorporating movement animations helped to inject some life into the game and create a more tangible board game experience. 

Each piece is moved from its starting square to its destination square following a parabolic arc, mimicking the action of somebody picking up the piece and then placing it down again. 


Piece Captures

Capturing pieces. The peak moment of action in all Tafl games! Without any animations, however, the experience leaves much to be desired...

We can help remedy this through the addition of particle effects. Adding particle effects when pieces are captured makes the moment of capture much more visually impactful and satisfying. I’ve always been a fan of the death particle effects used in Celeste Classic, so I decided to add a similar burst of particles to pieces when they are captured in Ziege. 

To further emphasise the moment that a piece is captured to the player, in addition to the burst of particles, I added screen shake. 

Screen shake is a powerful tool that can add a sense of weight and impact to a player's actions. When used sparingly, it enhances key moments. However, it can become distracting if overused, especially during mechanically demanding gameplay where precision is needed. In the context of capturing pieces in Ziege, screen shake works well because it happens infrequently and aligns with the game's focus on strategy, rather than fast-paced action. 

Similarly to emphasise the impact of a win or loss, I added screen shake to the win and loss overlays that are displayed at the end of a game. 


Music and Sound Effects

While often overlooked, sound effects and music play a huge role in creating an immersive experience for players. In Ziege, the audio adds another layer of feedback to every interaction. Sound effects make actions like moving a piece or capturing an opponents piece feel more satisfying and impactful, while the music sets the tone for the entire game.

One of the biggest challenges I faced when creating the soundtrack for Ziege was deciding whether the music should reflect the gameplay, or the game's theme. On one hand, the gameplay is similar to that of a chess game, the music for which would likely be calming and reflective. In contrast, the music for a zombie-themed game would likely be something more intense, eerie, and foreboding. Striking a balance between these two tones, I settled on creating a soundtrack that was calm, yet eerie.

With this in mind, I listened to the soundtracks of the original Silent Hill and Resident Evil games for inspiration. One track in particular that stood out to me was "Save Room" from the first Resident Evil game which perfectly encapsulates the calm, yet eerie feeling I was looking to create.

The save room music conveys its calm yet eerie feeling through several key musical components:

  1. Sparse instrumentation
  2. A slow tempo
  3. Use of a minor key (specifically, the use of a minor 9 chord for all my fellow music theory nerds!)
  4. Repetition of simple melodies

Using these key components as a basis, I sat down to compose the soundtrack for Ziege. I started with a single piano piece as the foundation, creating an evocative melody around the minor 9 chord that captured the tone I was aiming for. Once the main composition was written, I layered in some slow-moving synth pads to provide background ambience. 


Translating this composition into the Pico 8 music editor, I dedicated 3 of the 4 available sound channels to the music, leaving a single channel available for sound effects.


With game feel covered, next up I'll be going over the techniques I used to make the AI opponent for Ziege.

Download Ziege
Leave a comment