Lost Remembrances

Genre: Action/adventure
Engine: PICO-8
Solo project
Development time: 2 weeks

Written for B&W Jam, April 2021
Constraints: only black and white graphics allowed
Theme: You only realize the value of something when it’s gone.

Play on itch.io
Full game text (document)

The starting screen.
Room description text appears the first time the player enters an area.
Battle screen.

Design and Story

The player explores a surreal environment and encounters three NPCs who represent potential friendships that may or may not develop further. Each NPC is tied to an item that appears after the encounter with the corresponding character. To claim the items, the player enters a battle mode in which creatures erode the ground, which represents the protagonist’s memory. The player must maintain as much of the ground as possible to claim the item and save the friendship.

The adventure mode takes place across four screens, three of which are divided into two sections each. The divided screens feature an NPC in one section and the corresponding item in the other. The screens are not connected by direction, i.e., if you leave a room to the east, then return west, you won’t end up in the room where you started. This was done to convey the surreal nature of the world.

There are three endings, based upon how many battles the player wins. Once all battles are complete, the player can return to the starting room (the Shrine), where the outcomes of each relationship are given and a final object that leads to the ending.

Much of the story is conveyed through text. Each screen of the map features a text description that is displayed on first entry. Each relationship has four text boxes: the initial NPC encounter, the object encounter, and two versions of the final NPC encounter based upon whether the associated battle was won or lost. 

Lost Remembrances design notes
Some design notes for the adventure mode.

Implementation

All game logic is coded in Lua using PICO-8’s API. This includes game state tracking, player movement, enemy behavior, collision detection, and UI.

While only black and white pixels are displayed, I used a third color (from PICO-8’s limited palette) to act as an alpha channel. By default, PICO-8 uses black as its transparent color, but this is easily changed through the API.

Since the rooms aren’t spatially connected, I tracked navigation using data tables. Each room is associated with an “exits” entry that stores the area to load for each exit direction. I kept things simple by using a snow/static effect to transition rooms and always place the player in a predetermined starting location (instead of at the edge of the screen).

Art, music, and sound effects were created using PICO-8’s built-in editors.

Lessons Learned

Despite the simple design and gameplay, the narrative was a little too high-concept (read: ambiguous). Having grown up in the era of video games that came with printed manuals, I included a lot of the instructions and background on the game’s itch.io page, only to learn later that many players didn’t read it. Information needs to be better conveyed in-game.

The “tank” control scheme (left/right arrows to turn, up/down arrows to move forward/back) was the biggest criticism I received during the jam’s evaluation period. I chose this scheme because I wanted the player to be able to turn in place, but it resulted in a lot of player frustration. A better option might have been a scheme in which pressing an arrow key faces the player in that direction if they aren’t already; otherwise, it moves the player.

Players also didn’t like the surreal navigation of the world, the fact that the map didn’t connect cartographically. Rather than walking off the edge of the screen, a better solution may have been to provide “portals” to have the navigation make more sense.

Because the battle score and goal are hidden from the player, there was effectively no feedback as to how well the encounter was going, which frustrated some players. Again, because the information was on the itch.io page and not in the game, some players didn’t understand the goal of the battle at all.