TRAILER
Eruption is my capstone thesis: a 3D game where players are a volcano that earns fame by killing its island’s inhabitants and thereby earning their fear and respect. It was developed in collaboration with three classmates in the program. Art assets were developed by our team at San Jose State University and our composer is a member of the Game Audio Network Guild.
We demonstrated the game at MAGFest 2016’s Indie Videogame Showcase, where attendee feedback was so positive, we launched a greenlight campaign and were greenlit June 28th, 2016. After fixing bugs, adding new features based on player feedback, and establishing a studio we launched the game August 4th, 2017. One final update was made in January 2018 providing Steam Achievements, a level select screen, and a new ending cinematic.
NAVIGATION
I. Development
Development
Systems Design
Systems and Pillars: I designed and tested most of Eruption’s player-facing systems and mechanics including camera controls, the user-interface, the tutorial, and player actions. Designing player actions was an iterative process to find what made our idea fun, because few games used volcanoes in their core loop. We formed design pillars in the beginning to guide our thinking, though we never explicitly put them in writing:
Make the player feel powerful when they used the volcano's abilities (BLOW STUFF UP)
Allow the player to command their powers with ease and precision
Provide the player challenges with interesting decisions
Implementation and Iteration: Each feature I implemented used C# scripts with placeholder textures and models, and I incorporated the proper art assets once they became available. At the start of each week during production, we would present the game to our program manager, and he would provide direction to help me find the fun and keep the game within scope. At the end of each quarter, we presented the game to our Advisory Board - who had the power to approve or cancel our game’s development - and we incorporated their suggestions, which we’d present to them the following quarter along with our additional improvements and changes.
Incorporating feedback: We also presented our game to classmates, friends, and festival attendees. If we heard the same piece of feedback frequently enough, we would incorporate them into the game as long as the solution were within technical scope. Some requests were frequently brought up that could break the game, so I developed workarounds that addressed the core issue in players’ problems, but never broke the game’s balance.
Level design
A Unique Approach: Volcanos and liquid physics are found rarely in games, so I drafted the guidelines for our islands’ terrain (which would also inform how I designed the lava flow algorithm). My solution was to use miniature golf as the basis, then our main level designer used these guidelines to create three islands in our game. Based on player feedback, I added a new island with varied terrain for players to practice using their volcano powers.
Balancing Populations: I implemented eight of the eighteen levels and balanced every island’s distribution of volcanic abilities and procedural population in .csv files. Finally, I ordered game levels according to Nintendo’s application of the kishoutenketsu narrative style. This exposes players to new mechanics on an incremental basis, making each level feel fresh while ensuring players gain the skills they need to continue.
Level Testing: I needed to balance procedural population numbers against three islands with different terrain. I played through all eighteen levels on each island, altering my playstyle by adjusting my attention span. This would let me represent three unique skill levels, and I could ensure lower skill levels make it through early stages but preventing them from reaching more difficult ones.
tutorial design
Background: Our Advisory Board requested a tutorial due to the game's unique mechanics. I wrote 25+ steps across the first two levels to guide the player through the game. Camera movement and animated images were coded into the script to find objects and use the controls. The introduction of temples, Lightning, and Earthquakes were provided with a few images and summaries. The tutorial only appeared once, but we allow players to turn it on again in the options screen.
Writing Style: the original text was succinct, but our advisor told us that the language broke immersion, so I had to accommodate that through a bit of narrative design. Other feedback requested an in-game explanation for the player-volcano's need to destroy. The text went through four drafts, and the final result was a descriptive tutorial that instructed players while maintaining the immersion we wanted to provide.
Programming
Technical Design: I was responsible for implementing most of the systems I had designed: the user-interface, game lifecycle, power, and camera controls. I consider those the most interesting components of the game. Feedback from MAGFest attendees was overwhelming positive in regards to my work: players rarely speak about the controls of a game, but attendees found the game easy to pick up and play without the tutorial.
Visual Programming: Interpolation of custom camera movement and UI objects were programmed with the DOTween API. Its Sequence class let me hand-code end-game cinematics and tutorial components. After graduation I studied Unity3D’s rendering system and modified our shaders in ShaderLab to make lava textures move in a circular fashion that tricks the player's eyes into seeing lava flow.
postmortem
(note: this will only cover design aspects of Eruption, it will not cover programming, art, marketing, or publishing. I am happy to discuss these in person, though)
players liked
The User-Interface: The UI I developed was smooth, responsive to player input, and intuitive. With a few minor instructions, attendees at MAGFest 2016 immediately understood how to play the game.
Accessibility: The game’s simple interface through the mouse made it easy to control, even for the handicapped.
Viscerality: Players were genuinely excited to see and use the game’s volcanic abilities.
Originality: Players enjoyed an original title, with a premise they had rarely seen before.
Players Disliked
No Keyboard Controls: Many players wanted to rotate the island with keyboard inputs.
Shaking: One player wanted the option to disable shaking in the pause menu and mentioned it in a negative review.
Repetitive: Only three islands were built, never changing over 18 levels. Many players felt the game got boring quickly.
What we had to cut
Procedural Island Generation: We wanted the player to have a unique island for every playthrough. This had to be cut for two reasons. First, the Advisory Board and our Program Manager believed our tech generated islands had no aesthetic value, so we had to use Unity3D’s terrain system. Second, we did not know enough about Unity3D’s terrain system to adapt our current tech. So procedural islands were cut.
Volcano Simulator: The original core loop involved erupting the volcano to release pressure before it created a Krakatoa-like explosion, ending the game. Player strategy required biding time: the more time Islanders had to construct towns, the more destruction you could wield before the game over scenario triggered. But the Advisory Board did not want players to wait that long, so the core loop had to be changed. In hindsight, this was the correct decision and we’re glad we moved in a different direction.
What Went Right
Lava Works: The most difficult technical problem involved lava - its rendering and how it would traverse the island - our final solution makes it look realistic and the abilities fun to use and interesting to learn.
Game Was Well Received: The core loop was very satisfying and we had made a genuinely good title by the end of our program that had professional quality artwork, music, and sound. We received overwhelming positive feedback from attendees at MAGFest, our game passed Steam Greenlight, and we currently have a rating of Mostly Positive on Steam.
Eruption Survived The Program: Games can be cancelled in our program by our Advisory Board if they haven’t progressed far enough in development, and two games were cancelled at the end of the summer quarter. Eruption made it through all three Advisory Board reviews, and we had approval from our department to publish it on our own.
What Did not go right
Lack of Variety: Without procedural island generation, we had to design islands manually with Unity’s terrain tools. The tools did not work well with our lava traversal algorithm, so we lost a lot of time debugging each island to allow lava to flow properly in all directions. We wanted to ship 10 islands, but we could only achieve 4.
Deducing Flora Population: the density of forests and the miniscule sizes of bushes made it difficult for the player to assess the number of trees a single volcanic power could destroy in any given direction. A significant number of players found this frustrating in more difficult levels, where maximizing the damage each volcanic power causes is crucial for the player to reach their target goals.
Improvements for a sequel
Lava Rendering: I think we could render lava better using shaders to represent lava textures and movements. A “lava” layer could be added to the Terrain’s splat map, and we could also use flow maps to indicate how the animation is supposed to work for each island. Additionally, this would move a lot of our processing resources off the CPU and onto the GPU.
Island designs: To add gameplay variety we need, the game could swap the current Terrain for another larger and more varied Terrain after five or six levels. In addition I would want the player to have at least 6 islands to choose at the start of the game.
Islander AI and Procedural Roads: Procedurally drawn roads between locations of interest (villages, temples, etc), and AI powered islanders that can evade lava and traverse roads to reach safe locations. These two features would make islanders seem less “dumb” and players could rely more on their problem-solving skills to kill islanders instead of just waiting for them to run into lava flows based on a randomized algorithm.
New Abilities: Two powers I have considered are small pockets of steam underneath the island that burst when islanders step on them, and pyroclastic flows that could kill all people in a subsection of the island.
Lessons Learned
The Game is Typically Never Perfect the First Time: either due to conflicts between rules, unforeseen exploits, or systems being unbalanced. Accept that you will need to keep modifying systems after you think you’ve finished them. Correlatively, you shouldn’t be discouraged when the game or one of its systems is not yet up to the standards of your team lead, your manager, or yourself.
Get Feedback From as Many Playtesters as Possible: let them tell you what they think is wrong with it, and don’t be offended. Even if their suggestions won’t work, the reasoning behind their suggestions is still valuable and can help you decide what direction to take your game.
Enjoy the Iterative Process: our Program Manager told us that the best way to “find the fun” in your design work is to quickly find all the versions that aren’t fun and to discard them, to “fail fast;” discovering the right systems through iteration. So from my perspective if you want to enjoy game design, you need to enjoy this iterative process.
The Final Version Won’t Always Be What You Imagined: Our original vision for Eruption was very different than what you see in the release, but we believe this resulted in a more fun game. If your iterations change the game into something you did not originally want, if it produces a better game then it is not necessarily a bad thing.
MAGFest 2016