top of page

Blood To Ink - 2019

  • Role: UI Programmer

  • Platform: Mobile

  • Built in Unity

  • Team of 11

  • 24 weeks of development time

  • Category Winner Mass Digi Game Challenge 2019


Overview

A narrative-driven point and click adventure where the main character, a writer named A.E.C., is looking into the murder of Hollywood star Alfred Glenn, who supposedly "fell down the stairs" and died. The player talks with potential suspects through interviews and conversations driven by the different items the player finds in the environment of the Glenn manor. 

 

My work involved collaborating with artists and designers to implement UI designed from mock-ups and create a workflow for dialog to be added to the game. I did this by prototyping systems, adjusting for the needs of the art and flow of the game, and by creating guides and methods to be run from dialog commands.

My Work

UI Implementation

I worked with our teams artists to give a fresh new look and functionality to the game. While our UI artist made new layouts and wireframes, I tested simple protoypes in engine and developed scripts for new functionality. The systems I worked on were the inventory, journal screen, bios screen, phonebook screen and map screen.

Inventory

The original inventory screen for the game was a static screen, separate from the rest of the gameplay. With a new UI artist and programmer, the design team wanted something that would break up the gameplay less while the player collects items.

Through some discussions, we decided a carousel to scroll through the items was the best answer. This would feel natural as a feature on a mobile device, and would add some fun movement in a game that can feel "stop-and-go" with all the different screens and menus of the game
.

Getting it to look and match players input in a satisfying way was a priority in our goal of having good user experience. Clicking and holding anywhere within the carousel allowed it to be dragged left and right, with items reappearing to make a constant flow. Items could also be selected and examined by clicking on one.

inventory_popout3.gif
item_blurb.gif

The last major feature of the inventory to be made was a way for items to interact with the world. I added another state for items that if they were dragged more vertically than horizontally, they would pop out of the inventory and  be dragged to any point on the screen. When released, the inventory system would send a raycast into the scene and check if there were any objects in the 3D space of the world that could interact with the item.

The unfortunate part of this functionality was that it was scrapped at the end of the game. But, it set the fundamental piece for one last usage of the inventory in-game.

item_drag.gif

The last thing to be done with inventory was putting it in conversations. At first, this feature was more of a bonus than a critical system. This changed when we started implementing a large amount of conversations into the game. It became the cornerstone of causing plot points in the game to trigger, allowing the player progress through story.

conversation-inventory.gif

Guide Creation

In my time working with the design team, I had a lot to do when it came to helping others contribute narrative to the game. Towards the end of the project, I spent a lot of time making small documents to help teammates understand the specifics and quirk's of our game narrative and Unity integration.

The most prominent example of this was guidelines to writing dialog in the narrative scripting language, Ink. This document was more or less a "quick start" to writing with Ink, as well as a reference to our game's conventions such as commands that change character emotions, or set story flags for the game's plot points.

inkwriting-standards2.PNG
conversation_guide_example.PNG

Unity Scriptable Objects

For the systems I programmed in the game, I ran into an issue. To add content, you had to understand the entire system's codebase. Simple things like journal notes or inventory items were very hard to implement without being the one who coded it.

To solve this, I developed various scriptable objects for my teammates to work with. This benefited the game in two ways:

  1. It made collaborating in Git easier, since data for items and notes were originally tied to prefabs that multiple people could not edit at the same time.

  2. It was a simple way for others, such as the narrative team, to access everything they needed to add and change content. Also,  all these objects were centralized in the Resources folder where a lot of narrative content was being worked on anyway.


Journal Note objects contain this data: what the note says, the Story Flag needed for the note to appear, and the Story Flag required to cross out the note.

Inventory Item objects contains the item's reference name, the prefab of the item's image, the description, and the Story Flag that would put it in the player's inventory.

 

Most objects had their Story Flags set by the programmers, but all the other elements like names, icons, and descriptions were able to be filled out the narrative team.

bti_journal_scribtible_obj.png
bti_journal_example.PNG
bti_item_scribtible_obj.png
bti_item_example.PNG
bottom of page