Elysium Demo | Digital Game

Tools: Unity, C#, Figma, Clip Studio Paint, Inky, Notion

Skills: Programming, Game Design, UX Research, UI Design, Animation

Overview

A week before the final exam of my undergrad career I procrastinated on studying so hard that I made a visual novel instead. I programmed a framework in Unity that worked with a scripting language (ink) to add graphics, sound, and additional gameplay mechanics. During the entire development I followed an iterative process where I constantly collected and implemented feedback from my playtesters.

You can play the final demo on itch.io with the password "elysiumdemo". If you would like to view the source code, please reach out to me through the contact info provided on this site.

Starting From Scratch

I actually came up with the original concept for this game in 2019. However, a certain global event derailed my life and this project lay untouched in the depths of Google Drive until April 2022. In my efforts to avoid my final final, I stumbled upon the old documents and had a revelation: what better way to procrastinate than to procrastinate on something useful?

But I had no art assets, no music, and no idea how to use Unity to make a visual novel. Sure, I had a two-year-old script for the dialogue, but how can you make a game out of that?

Goal: Find a way to integrate a script with Unity in the format of a visual novel

Introducing ink

According to their website, ink is “a narrative scripting language for games”. ink is open source, documented, and has Unity integration—exactly what I needed for this project. I downloaded inky, the ink editor, and got to work on the script.

Before I even touched Unity, though, I needed to think about visuals. Since ink's framework is more similar to a choose-your-own-adventure story, there aren't any built-in commands for visual novel elements (backgrounds, character sprites, music, etc). I ended up using the tag system with my own syntax for Unity to parse and interpret commands, though there are certainly other ways to achieve the same thing.

Version 1: The Devil's in the Details

About four days after I started I ended up with something that could pass as a game. It implemented a system where players picked from three choices until they selected the right one to advance the story. I threw it up on itch.io and sat in on as many playtests as I could. I divided feedback into three larger categories: gameplay (game mechanics and game UX), creative (story, art, sound, and design), and technical (bugs and interface UX).

The most important feedback area at this stage was gameplay. Visual novels are very non-linear and story-focused, while adventure games tend to be more linear with game-like systems. Because the demo had a linear story with no gameplay, all of the playtesters fell into one of two camps: those who didn't like the game because they couldn't affect the story, and those who didn't like the game because it wasn't a game at all.

Story-driven players

  • Play a game for the narrative
  • Gameplay mechanics should enhance the story and not feel tacked on
  • Like branching decisions and choices that affect the narrative

Liked

  • The characters and setting
  • The "plot twist"

Disliked

  • The choice system (felt "mechanical")
  • The player couldn't affect the story

Gameplay-driven players

  • Play a game for the skill elements
  • Interesting gameplay is important to enjoy a story

Liked

  • The concept of gameplay (playing as a bartender and interacting with patrons)

Disliked

  • The gameplay; it wasn't engaging
  • Interacting with the patron character felt flat
  • Didn't feel like actions had consequences

Version 2: Players Should Be Drivers, Not Passengers

After I sorted through the feedback I got to work on the next iteration. This version didn't make any major changes to visuals, instead focusing on reworking the gameplay system (the “tab settlement”). Now, instead of choosing between three options with only one correct answer, the player instead chose dialogue options to affect the flow of the conversation. However, the only affected elements were the order and some lines of dialogue, not the outcome.

This version of the game also extended the script to accommodate the system. However, feedback indicated that this wasn't much of an improvement from the original in terms of gameplay. One playtester noted that some of the lack of agency stemmed from the player's character coming to conclusions on her own, rather than the player making those connections themselves. Furthermore, this lack of agency is negative for both groups of players (those who like interactive stories, and those who like games for their mechanics).

Goal: Find a way to incorporate satisfying player interaction into a linear story

Version 3: Power to the Players

With this new focus on player agency, I once again reworked the main gameplay to include more player interaction. The conversation “flow” remained the same, but this time the player's character only gathered information and did not make any conclusions on her own. Once the player explored all necessary conversation topics, they then made connections between related ideas to solve the mystery. I also added a score system based on how many mistakes the player made, where the score would then be used later on in the game to unlock extra stories.

This new format let players feel like they were the ones in control, not the character. Furthermore, since it was now possible to make wrong connections and lose points, players had motivation to engage with the story and find the right answer. And since wrong answers only affected points, story-focused players didn't need to worry about getting a “game over” and missing out on the rest of the game.

Story-driven players

  • Liked the extended narrative
  • Felt that making "connections" enhanced the mystery-solving aspect of the story
  • Thought the gameplay wasn't too challenging and that it didn't get in the way of narrative progression

Gameplay-driven players

  • Liked the "connection" system
  • Felt that their choices had more of an influence on the story
  • Appreciated the short / integrated "tutorial" since the system wasn't complex
  • Interested in the point system and getting better scores

A Fresh Coat of Paint

In the third version I finally started designing UI elements to replace the temporary versions. This included the logo, the dialogue box, popup menus, the main menu, and more. I again followed an iterative process to make sure that I got feedback on each element. At this stage I also implemented other requested features, such as a dialogue log and sound controls, since I found it made more sense to implement those features when I had polished assets to work with.

At this point I also started to implement many quality-of-life features on both the visual and the programming side. Many of them stemmed directly from playtest feedback, such as implementing a delay between text advancement to avoid accidentally double-skipping on short lines. I also rebuilt the game framework to improve both performance and functionality.

Finally, this version also implemented animated sprites. However, they were not implemented in an efficient or reusable manner, and the animation controller ended up becoming an unreadable mess. The sprites work, sure, and they look good, but this aspect of the framework needs to be revisited sooner rather than later.

Final Product

Initial playtests show that this version of the game is the best version so far. The visuals and additional UI controls allow for a smoother user experience, and players liked how the new gameplay allowed for both engaging player interaction and more interactions between game characters.

Next Steps

I am much more satisfied with the gameplay in the third iteration of the demo. Going forward I aim to expand on the framework's functionality and to complete the remaining chapters of the game. I also have received feedback on the points system and other aspects of the demo, and will continue to address player concerns throughout development. While much of what I created for the demo will likely not make it to the final version, I believe that the extra time I spent to create a demo and playtest it will be invaluable when it comes to making the final product.