Capstone Game Post Mortem: Last Night on Earth Companion
Capstone Game Post Mortem: Last Night on Earth Companion
Jason Frehner
MGMS Program
Full Sail University
Game Summary:
Author
Jason Frehner
Icon
Title
Last Night on Earth Companion
Genre
Board game Companion
Platform(s)
Android
Development tools/Language
Unity 3D, C#, Vuforia, Android Studio, Java, Filter Forge, Taiga, Jetbrains, Google Drive, Doxygen.
Game audience
Cooperative or solo tabletop games. Particularly those interested in zombies and the horror theme. Ages 12 and up. Players primarily fall into Bartle’s Achievers and Socializers player types (Schell. 2015, p 126).
Team
Nicky G. provided some art assets.
Copyright/Reference
Frehner, J. (2018). Last Night on Earth Companion [Android Application].
Copyright Jason Frehner.
Backstory:
Sound Bite
The living no longer plays the living dead.
Executive Summary
The Last Night on Earth Companion takes the role of Zombie player in The Last Night on Earth board game. This allows for a more cooperative group gaming experience or even solo play with the table top game. The AI uses a dynamic difficulty adjustment to ensure games do not become one sided and that the tension of the game is always building.
Inspiration
The motivation and inspiration for a board game companion app is table top gaming and other companion apps like Road to Legend (Fantasy Flight Games). These types of games and their digital companions allow for a range of uses from solo play to enhance the play of a group. The intention of this app was to bring some digital enhancements to a traditionally semi cooperative game.
Ideal
The ideal companion would provide an assistant taking over the role of the zombie player with an AI that adjusted to each game, so it never felt like a game was easily won or lost. It would assist in tracking of cards and effects removing cognitive load from the players. Provide new ways to play with solo and campaign options. It would also provide quick access to learning and common questions during gameplay.
The Critique: What went right…
Design & Aesthetics
The mechanics for the zombie turn AI works well. Moving through the different phases of the turn and playing cards, spawning zombies and presenting relevant information to the users. This is handled by the Zombie Turn Phases class, where the state of the phase is saved to a delegate so that returning from any UI menu picks up where it left off.
The radial basis function (RBF) network was one of the most interesting learning aspects of the project. The written material by McCaffrey and Heaton were helpful in understanding and implementing the final result (Heaton) (McCaffrey). I choose the RBF type network over the more traditional perceptron based neural network for its speed and thought that the lack of accuracy or fuzzy nature would be a benefit in this type of AI. The training and setup up the network is done within the Unity editor and outside of game. All inputs and details for creating the network are stored on a Google Drive Sheet using the Google Sheets for Unity plugin (Cyberian Software). For training and uploading the network paramaters I crated an editor interface.
The color palate, graphics and audio all add to the overall horror theme. The color palate used with the UI elements was inspired by the colors of the physical games box art.
The UI controls are clearly labeled and easy to use. Original I had just used more generic shaped UI images for the UI elements (Beffio). But recently update them to be more in line with the theme of the board game with stylized assets (Vital Zings).
AR functionality is simple to use and can be accessed from the options menu during a game. When enabled only requires the user to point the device at a hero cards to view additional information. This was a late addition to the project and utilizes Unity’s inclusion of Vuforia into their framework. I copied the basic trackable event handler and updated to the project’s needs of moving and updating a canvas object.
NFC functions on compatible devices with the saving and loading of a campaign state between missions. Originally this functionality was going to implemented with a Unity asset however, that asset became deprecated and no longer functioned with the current version of Unity. With some trial and error I was able to put together a plugin in Android Studio that I could use in Unity that allows the reading and writing to NFC tags. From the Unity side I use and NFC class for interacting with the plugin, along with checking and storing if the device is NFC enabled or not.
Project Management
I enjoyed using Taiga for organizing, collecting information, tasks, sprints and bugs. I would use it again for any small team collaborations or projects of similar scope.
Development
Unity and C# was a good choice for this project and the only time I felt restricted was with the NFC feature, which was a challenge, but the result still worked well within the Unity framework. I tried to keep my naming clear as to what methods did and provided additional comments where appropriate.
Testing
Usability testing helped to shine a light on aspects of the companion that were not clear to the user or functioning as intended. Like when players were expecting to see an immediate update to the game log when a zombie was killed or when they would miss text not know that it had changed from the previous time they saw the panel. Debugging and unit testing was also helpful for tracking down roots to bugs and problems, particularly with zombie cards as it was not always easy to duplicate exact situation otherwise.
Business Model/Plan
The project is currently in an open beta release on the Google Play store with some sharing of access on Facebook groups. This has helped to get a few additional users in over the last few weeks.
Other
The Critique: What went wrong…
Design & Aesthetics
The RBF network does not affect the AI in multiple ways. For the amount of tracking of the game state and running through a trained network, while fast, has limited impact on the game. The artist I tried to work with didn’t get as far as I would have like before he was unable to assist anymore, leaving the map tiles inconsistent with each other and will need to be updated.
Project Management
It felt like I did a considerable amount of planning before development, I constantly was mis judging how much I could accomplish within a sprint and there was often a feeling that I was behind.
Development
Evaluate challenges or problems attributable to the code structure/architecture, documentation, challenges, choice of AI/algorithms, databases, network functionality, engine/code choice, etc.
Testing
A lot more play testing could have been done, particular with the campaign, as this was a new feature not already part of the existing table top game. I did not feel I ever got the hang of the test first mentality, I felt I was getting better results using unit test to confirm a method was doing what I expected or to help track down problems.
Business Model/Plan
Other
Summary:
Moving forward I would like to update the map tile graphics before releasing to the Play store. Then testing and releasing for iOS. Beyond that I would like to continue to expand the content with compatibility with additional zombie cards, missions and zombie types.
References
Beffio. (2017). UI – Builder. From https://assetstore.unity.com/packages/tools/gui/ui-builder-29757
Cyberian Software. Google Sheets for Unity 2, from https://www.assetstore.unity3d.com/en/#!/content/15570
Heaton, Jeff. Artificial Intelligences for Humans Volume 1: Fundamental Algorithms. Kindle Edition. 2013.
Heaton, Jeff. Artificial Intelligences for Humans Volume 2: Nature-Inspired Algorithms. Kindle Edition. 2014.
McCaffrey, James. Machine Learning Using C#. Syncfusion inc. 2014.
McCaffrey, James. Neural Networks Using C#. Syncfusion inc. 2014.
Fantasy Flight Games. (2017). Road to Legend [Android].
Flying Frog. Last Night on Earth: The Zombie Game. from http://www.flyingfrog.net/lastnightonearth/
Frehner, J. (2018). Last Night on Earth Companion [Android Application].
Frehner, J. (2018). Last Night on Earth Documentation. https://lnoedoc.000webhostapp.com
Shell, J. (2015). The Art of Game Design: A Book of Lenses. Boca Raton: CRC Press.
Vital Zigns. (2017). Grunge UI Kit. From https://assetstore.unity.com/packages/tools/gui/grunge-ui-kit-53815