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

icon.png

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.

rbf editor.png
rbf training.gif

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.

colors.png

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