Welcome!


Welcome!

This site showcases the thesis capstone projects for the Full Sail Mobile Gaming Master of Science program. Students completing the program post their end of program project self evaluation here examining what went right and what went wrong during production.

The site provides examples of all completed projects, without regard to the quality of work. Final faculty evaluation of your project is separate from your postmortem. It is a place to share student work and start dialogue with faculty about completed and upcoming projects.

If you are adding a postmortem for a completed project to this blog, please do your best to provide a meaningful meta-level evaluation of your project. This helps students currently in the program have a better understanding of the critical points related to independent production, game development and design and project management. The template for the blog content and instructions can be found in the first post from July 2014.

Thank You,
MGMS Faculty

Tuesday, October 18, 2016

Capstone Game Post Mortem: A Tail of Two


Capstone Game Post Mortem:

A Tail of Two

Joseph Whitworth

MGMS Program

Full Sail University

10/17/2016

Game App Icon:








Title: A Tail of Two

Genre: First Person 3d Survival/Puzzle Game

Platform(s): Mobile Devices/ Amazon Fire TV

Revenue Model: Buy Once

Development Tools:

Unreal Engine 4 Version 4.10.4
Blueprint (Visual Scripting System)

Game Audience: 17+ for mild game violence

Team: JWDesign (Joseph Whitworth)

Copyright:

Whitworth, J. (2016). A Tail of Two. (Version 1.16) [Mobile]. Syracuse, NY: JWDesigns.

Sound Bite: Stranded together, man versus the unfamiliar. What will you discover?

Executive Summary:

A Tail of Two is a first person open world 3D Survival/Exploration/Puzzle game for mobile devices with an intended release on the Amazon Fire TV. Some comparable titles would include No Man's Sky for the general atmosphere and game mechanics, with mild similarities to titles such as Never Alone for the companion element and Mine craft for the status management elements (Hunger, thirst etc.).
The Player begins near their ship, which has just crashed on a strange planet. The player having no memory of where they were going, will then with companion Dog, have to explore the world searching for items to repair the broken ship, and discover their purpose. During this mission, the player and Dog will encounter several creatures and areas to explore, such as signs of previous Alien inhabitants, new technologies and an unfamiliar language.

Inspiration:
           
            Inspiration for A Tail of Two was derived from a number of titles including No Man’s Sky, Never Alone, and Rust

Ideal:
The goal of A Tail of Two was to offer players an open world gameplay experience on mobile devices. This open world would provide a mysterious environment to encourage the player to explore.

Final Screencast Link:



What went right?

Design & Aesthetics:

The overall design of the game was to use a familiar feeling environment, while also providing a unique experience to show the player they are on an alien planet. 



I utilized pastel colors “earth tones” to provide this sense of familiarity. The environment elements are designed to be similar as well, but through the use of these colors they hold a unique appearance.




The grass was a difficult part to make work, but I needed something to populate the ground, as to not allow the environment to appear so empty.


 


The Ruins went through a few changes, from being a boxy building with an emissive Alien-esque material on it to a more stone-like ruin providing a bit more of an ancient alien feeling.




The orbs that you see change color according to what resource is required, and the amount of orbs that show up indicate how much of that particular resource is required to acquire the prize.

The Caves:

The cave design was meant to be simple, but effective. It is actually a change of level rather than a teleport so saving the players inventory and variables was the most important part of the change. This was to demonstrate my plans to implement different areas into the game allowing further exploration. This could include exploring large ship interiors, more cave systems, Alien ruins and so on.



Cave Puzzle:

The cave puzzle is constructed based on a color scheme. The player has to shoot the pillars in the proper order to unlock the red orb that will reveal the item within. Color is a universal language, so this puzzle makes sense in the context of Alien technology.



Ruin Puzzle:

The ruin puzzle focuses on basic math riddles with multiple choice answers of "0,1,2,3".

"I am something when nothing is there"
"By me I multiply and get myself"
"All of your counts, are half of mine"
"The two preceding are the sum of me"





Project Management:

Time management went well over the course of development. I utilized my time well with the development of features within the game. Even with the multiple overhauls A Tail of Two went through, I still managed to include most of the features I set out to initially.

(Show Original Screenshot)


(Show New Screenshot)


Version Control:

Initial development began with extremely large files so maintaining the Underdog repository would have been more trouble then it was worth. With that said I instead utilized USB drives and Dropbox to maintain all versions of A Tail of Two.

This method saved me from a catastrophic CPU malfunction which caused my computer to be down for a week. Utilizing dropbox I was able to acquire my project without having to worry about setting up a local repository and cloning to my Laptop. So as required by school I utilized Underdog when needed.

Development:

Landscape Tiles & Spawning:


The landscape system worked extremely well with the mechanics of the game. I required a system that would spawn infinitely, while occasionally spawning points of interest the player could interact with and spawning resources/consumables randomly throughout the world. This system became rather effecient thanks to Lari Norri with the recommendation of despawning landscape tiles as the player moves away from them. This required me also to set up a destroy function on items and consumables so the game objects wouldn't pile up during long term playing.

The landscape is made up of small sections that spawn on a 2000 cell grid. Each section is made up of a terrain and other assets as one static mesh. When the mesh is spawned into the world, the generator randomly chooses it's rotation based on 90 degree increments, a random leaf color based on a dynamic material instance with randomized float values as well as it's Z scale to create an extra random factor within the environment.

Grid made up of line traces to detect if mesh has already been spawned:


Resource Gathering:

Resource gathering was rather difficult before I updated the function of it. Before when the player would destroy a ore heap, the resources would fall on the ground for the player to collect. This was extremely time consuming and didn't add to the gameplay experience at all. My solution to this was to have the resources fly towards the player when the ore heap was destroyed, and on overlap they would be destroyed while also being added to the players inventory. This provided a visual que that the player was gathering the resources, without forcing the player to tediously gather each individual resource.

Inventory & Item Stacking:

The inventory system works extremely well in terms of sorting the particular items and placing them in their respected sections. Resources the player gathers goes into stacked sections within the resources section of the inventory. Items such as consumables and weapon upgrades go into the base inventory allowing the player to easily select and use them as needed.


Included in the inventory menu is a seperate crafting menu. This menu allows the player to craft bandages used to replenish health, and water pouches to replenish thirst. This list will be more extensive as development continues post-graduation, but to demonstrate the feature a few items were thrown in for the player to explore.

Testing:

Testing was both a success and failure. The testing I was able to get with my game was extremely helpful. All of my testers gave excellent feedback and I was able to adjust my game accordingly.


What went wrong?

Design & Aesthetics:

The User Interface still needs work.


While in terms of functionality, it works, but it seems random and messy. To fix this, I attempted to implement a visor type display that integrated the interface into it, but it caused issues with the thumb stick analogs and I did not have enough time to fix it so the feature was removed.

Fixing the Interface:

Feedback provided to me by Christopher Eklund and Lari Norri

The following images display a desired changes to the interface:





Clipping from the landscape sections:

At some point during development, the cell grid offset itself, which causes the landscape sections to overlap at certain points. This causes a flickering effect that is extremely distracting, but unfortunately this occured late in development and other features took priority over this.

Development:

Dog AI:

Dogs AI has had many overhauls. The initial setup of dog was for him to lead the player to resources and items they came across, while also notifying the player of when enemies are nearby. This became extremely annoying to play testers as Dog would be barking constantly. To fix this I removed those features and decided to treat dog as an service dog. He now notifies the player when their thirst is low, and proceeds to lead the player to a water pool in order to replenish the players thirst (hunger/health will be added later).

Another feature that was implemented but didn't function properly was Dog helping the player hunt the blue creatures in the world. The player would stun the blue creatures with their laser, and dog would move to the creature and attack, killing the creature and sending the resources to the player. The issue with this system was that Dog would get confused with other scripts the behavior tree was trying to run, so he wouldn't always go to the creature to attack.

Fire TV Failure:

The current build of the game runs extremely well on the Fire TV, with the exception of the inventory functionality. The gamepad script for the inventory did not function well. Play testers found navigating the inventory extremely confusing and sometimes it did not function at all. Through many attempts to solve this issue, more bugs would arise so to avoid wasting development time on it, I removed the Fire TV build temporarely in order to finish development for Mobile devices.

Enemy Damage:

To indicate where enemy damage was coming from, I attempted to implement a red indicator that would appear at different locations on the screen. This would show the player where the enemy was located around them, allowing them to react to taking damage a bit quicker. Unfortunately all attempts at implementing this failed, so I added in a basic red flash to comensate for the missing feature for now.

Tutorial:

I wanted to keep the tutorial to a minimum and allow players to explore the world and features on their own. In order to do this I kept the tutorial to a few pop up texts that the player can read to give them an idea of where to find elements they need.

Through recent feedback from play testers including my co-advisor Lari Norri, this doesn't seem to be a new player friendly method of creating a tutorial. To remedy this I have compiled a few images to represent my plans to implement a more thorough tutorial:




These are not implemented into the game yet, but these images show what the tutorial could potentially look like once implemented.

Testing:

Testing did not go as well as I had hoped. Finding first time users to play test my game was difficult. Once I discovered some that were willing to play test my game, they never got back to me with feedback. This made things a bit difficult because the majority of people around me had already played my game several times.

Summary:
A Tail of Two has been an extremely enjoyable game to make. The experience has taught me much about mobile design and game development itself. I can learn from the things that went right and the things that went wrong, applying that knowledge to future projects. There is not much I would change about the game in terms of design if I had to do it all again, but programming wise the knowledge I have now will only strengthen A Tail of Two as I move the project further.
  Future plans of A Tail of Two include the refined interface elements, implementing a more intuitive tutorial system, space exploration, full procedural planet system as well as beginning a PC build of the game in order to take further advantage of the visual style without limitations of a mobile device.

References:
Coulton, J. (2011). Code Monkey Jonathan Coulton. Retrieved October 18, 2016, from https://www.youtube.com/watch?v=kWrjYdD0Tg0
J. (2015). Infinite random landscape in Unreal Engine 4. (free demo project). Retrieved October 18, 2016, from https://www.youtube.com/watch?v=39uMosogVog 
Koenig, M. (n.d.). Free Sound Effects. Retrieved October 18, 2016, from http://soundbible.com/free-sound-effects-1.html 
Mixamo: Quality 3D character animation in minutes. (n.d.). Retrieved October 18, 2016, from https://www.mixamo.com/ 

Whitworth, J. (2016). A Tail of Two. (Version 1.16) [Mobile]. Syracuse, NY: JWDesigns.



No comments:

Post a Comment

Note: Only a member of this blog may post a comment.