Overview

Keepsake box is a small interactive project built in Unity 5. In Keepsake Box, the player is presented with a cardboard box full of different objects. Each of these can be clicked on and then inspected. Additionally, a small snippet of text will appear below the object giving some context to either what the object is of how it got there. Instead of relying on explicit storytelling, the project requires interaction from the viewer who must put together all of the pieces within the box to form a cohesive story for their collection.

Windows download: 67MB .zip

The following simulates the experience of the project. Each object can be rotated and is accompanied by its description.

Found in a Dusty Basement

Countless Books on Tape

1914 amd .755 oz t Silver

Stamps from Around the Globe

60mm Box Camera

Wedding Favor Made of Pewter

A Walled City

Cave Paintings

Materials Used

The project was constructed using numerous digital mediums, from the initial photography of the physical objects (both for reference and texture), to the creation of the models in 3ds max, to texturing in Substance Painter 2, to the actual implementation in Unity 5. In a broader scope, the mediums of photography, text, and wholly digital creation all interconnect to accomplish two main goals: the creation of immersive and realistic objects and the contextualization of said objects within the project itself.

Conceptual Framework

Create replicas of 7-10 objects where are personally important to me in a 3D suite. These will have to modeled, unwrapped, textured, and ultimately implemented into a game engine for the final product. I already have all of the necessary knowledge in all components but Unity, so a large chunk of time must be spent there. Even so, the creation of this volume of assets will be no small task, with some of the more complex props requiring 4 days to push completely through the pipeline.

Background

The entire concept of the project came from the namesake of the project, the keepsake box. Throughout our lives, we tend to collect a box of objects which hold personal meaning to us for one reason or another. When these boxes are then found later by people with no understanding of why the objects hold meaning, or even necessarily what the contained objects are.

While the original concept still held true to the main ideas behind the project, it’s form was quite different. I had planned to make the project consist of found documents. While them working through this, it became apparent that the concept wouldn’t work so well, as there was little-to-no reason for such a text-heavy project to exist inside a game engine, as it would be far more apt for it to exist in a webpage. As such, I abandoned the document concept and moved on to the final object-based concept.

Ultimately, the rest of the project was mostly smooth sailing, aside from the implementation into Unity. As something that I had never worked with, Unity created a host of issues, that I had to work through. First was related to the importing of assets into unity and not having them look right, due to Unity’s base lighting. While this was certainly irritating and I used far more time that I would like to admit working through this issue, I eventually found how to implement IBL (image based lighting) in Unity, with took care of most of the ambient lighting issues, now I only had to add the light sources within the scene itself, which as a rather simple issue. The second issue I ran into began when I had to code the interactions for the objects themselves. Previous to the current version of Unity, all coding was done is JavaScript, but with Unity 5 a move had been made to mainly C#. while C# is actually an easier language to write in as a whole (partially because of my own great familiarity with C and C++ as compared to JavaScript, which while C-like has many strange, subtle differences). The issue is that all prior documentation and problems that came up in searches was written in the now-deprecated JavaScript, which required hand-translation into C#. Additionally, the move from Unity 4 to 5 had seem the movement of many features which had previously been locked behind the “Pro” version into the general version, which meant that many of the workarounds that I was now reading about were wholly incorrect for the current version of the program. The Final issue was related to way that Unity instantiates objects, and the difficulty in directly interacting with specific elements, as traditional object-oriented methods of transferring information between classes (the traditional public getters and setters) were not valid within Unity, instead they required strange workarounds that would be considered poor programming in any other object-oriented context (the direct manipulation of variables in another class)

Artist Statement

Keepsake box is an interactive game-like experience in which the player is tasked with constructing a story behind a collection of objects in a cardboard box. The purpose of this project was to have a piece of storytelling that mostly relies on environmental information and small bits of text as context as opposed to an explicitly available story. The concept was largely influenced by the use of environmental storytelling in games (and some games which go so far as to only rely on it such as Gone Home), as well as a personal fascination with found objects and the stories behind them. The project was constructed with 3ds max, Substance Painter 2, and unity 5. Each of the objects within the box was first photographed, them modeled, unwrapped, and textured before finally being imported into Unity at the end of the pipeline. Overall the project is in line with what I had envisioned at the beginning of the creative process.

Reflection

This project pushed me to create props (low-detail 3D models which are given their realism via texturing and normal maps) something which I had previously never done, and ultimately left we with a few new pieces to slot into my portfolio. Additionally, My inexperience with unity force me to learn about the ending and how it works, which will be an invaluable experience moving onto next semester with engines and platforms. As with most things for me, the most effective method of leaning is through doing. This project allowed me a space in which to experiment and ultimately better myself in manners that I wouldn’t have had I not been afforded the opportunity.

Since I am looking to move into the games industry after graduation, the experience making props (I previously had most of my experience in hard-surface modeling), texturing and implementing within an engine all tie together to create an invaluable learning experience for me.

While I am not sure how storytelling will feature in my life in the future (I could give some grandiose answer explaining how storytelling is a component of all facets of life and this gave me new insight into it), I ultimately cannot say how it will figure into my future. That said, the project did force me to look at storytelling in a new light, and I’m certain that that new perspective will be helpful somewhere down the line.