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

Sunday, September 1, 2013

Capstone Game Postmortem: Dinotank AR

Corey Herington
MGMS Program
Full Sail University
April 29, 2018

Game Summary:
Developer
Corey Herington

Game App Icon












Titles
Dinotank
Dinotank AR

Genres
Arcade Shooter
AR Arcade Shooter

Platform(s)
Android

Revenue models
Free with in app purchases
Free

Development tools/Language
Unity3d 2017.3.1p2
ARToolKit5
ARToolKit6
EasyAR
Vuforia
Photon Unity Networking
C#

Game audience
Ages 13 and up

Team
Zygobot

Copyright/Reference - cite yourself
Zygobot. (2018). Dinotank [Android game]. Orlando, FL: Zygobot
Herington, C.M. (2018). Dinotank AR [Android game]. Winter Park FL: Full Sail University


Dinotank Backstory:
Summary
I had a unique experience while going through the capstone project process. I didn’t come up with a game idea to use for my own project, which was because I really didn't think that what I could come up with would really be good enough for my degree. So I was given the option to work on another project. After a few months of working on that project I was given my own project to work on which I worked on for multiple months.

I was given the option to work with the Zygobot team on their game Dinotank. I worked with them for 3 months making the daily rewards feature and helping with putting their tanks together. It was a new experience for me working with a team remotely and helping develop their features. 

There were some communication issues due to being remote but eventually those were fixed. A lot of the issues stemmed around the lag between emails. Either me or whomever I emailed might take a day or so to respond. This caused some issues when asking questions on what needed to be done. This was eventually resolved by checking emails more frequently and finding other ways of communication like Discord or other chat services.

Throughout the time I was working with them I was given specific tasks to complete and designs to follow. I was not given the freedom that a student normally would’ve had if they had been working on their own game idea. I do feel that this reflects on how it will be working for a company though. I will not have full control over most if any projects I might work on. So I have gained some more experience following others designs and learned how to do so effectively.

I learned a lot while working on the daily rewards feature. I learned that it wasn’t as easy as I initially thought it would be and that I had a lot to learn when it came to game development. I struggled managing my time with work and school while first working on the project. My time management skills were being tested very hard.

After a while I ended up having situations where I would have to wait on someone else’s work to get done to finish doing what I was doing or before I could get started. This led to me being assigned the demo project of Dinotank AR.

Below are some videos of the Daily Rewards system that I worked on for the Dinotank game. There are 2 games, the spinner wheel and slot machine. The game would be chosen randomly when the player started the game. The player was given one free spin per day. If they watched an ad after a spin they would get another spin after that spin they were able to purchase one more spin. The sounds and particles are just placement assets there to be replaced with the final assets later on.

The first 2 videos show the first iteration of the daily rewards games.



These next 2 videos are of the last iteration of the daily rewards. There was a button placed on the main menu to allow the player to access the games. They were able to switch between games before they used their first spin. The games are also spinning waiting to be stopped unlike before where they needed to be started.


Dinotank AR Backstory:
Sound Bite
Build your battle arena to help you defeat your enemies.

Executive Summary
Dinotank AR is an augmented reality game based off Zygobot’s Dinotank game. It allows the player to play anywhere with the marker and make it seem like the real-world effects the game world.

Inspiration
The inspiration for the game came from Zygobot’s game Dinotank and its main feature came from seeing Vuforia's smart terrain feature. Dinotank AR is a demo to help pull in users to Zygobot’s Dinotank game. Vuforia's smart terrain showed the real-world objects being put into the game world and made the idea of having the tanks be affected by them seemed great for the game.

Ideal
The game is a multiplayer game where the player sets up the play area and adds obstacles before starting the battle. Having the players build the play area and even adding real objects to the play surface is meant to have them feel like they are hiding behind and dodging around real objects.

Demo Screencast:



The Critique: What went right
Design & Aesthetics
The design was an easy kid friendly design based off of Dinotank. I was able to work with the Zygobot team and use their assets. Having Dinotank to work with made this process easy and all I needed to do was bring the assets I was going to use over to Dinotank AR.

Project Management
Being assigned the Dinotank AR game allowed me the freedom to manage myself and the whole development of the game. I wasn’t relying on anyone else and they would hold me up if I needed their work to complete my work. This gave me a lot of valuable experience with managing my time and tasks better.

Switching advisors allowed me to be able to change my focus from the surface detection feature. I was able to work on gameplay and the user experience more. I was also able to manage myself better afterwards since I was given some more freedom to what I was able to work on.

Development
Throughout the development life-cycle I learned a lot about AR and computer vision. I found out the multiple algorithms that can be used for marker tracking and plane detection. I also was really interested in how the different SDKs that are used for AR have so many differences in how they are implemented and their tracking capabilities.

I also learned about my strengths and weaknesses. Such as I'm still not able to do graphics programming effectively, but I am able to make gameplay mechanics rather quickly. When needed I was able to add changes and fixes fast as well. I was excited when I was able to put a new feature in the game and see that it worked and improved the quality of the game.

I was really excited when I put together my touch input code. I found a way to make the touch gestures be used and any custom functionality I wanted. For example I could make a function that uses the vector created by swiping my finger and have it called when the user swipes the screen. It was something that is really simple to use and allows for complete customization.

Another feature that was exciting to make and get working was the obscuring of the tanks behind invisible objects. This was something I was able to find the answer to online. I ended having to use multiple cameras and the edge detection camera effect to pull this off effectively. It ended up looking really good. The tanks actually look like they fell off the table or are hiding behind a soda can.

Using Unity was an immense help as well. I had prior experience working with Unity, so I was able to put things together faster than learning a new engine. Also, being able to use some of the tools and things from the asset store helped quicken the build process. Such as Photon Unity Networking which helped get the game to be multiplayer with out me having to do all of the networking.

Overall the development of the game gave me a lot of great experience and knowledge of how to develop multiple areas of a game using Unity and C#.

Testing
I found people who gave me good useful feedback. This helped me improve the game to what it is today. Using people with some technical backgrounds allowed my feedback to be more precise and help me determine things that needed to fix more accurately.

Business Model/Plan
The plan all along was free to play. There was never a thought of adding purchases or a price to the game sense it is meant to be a demo for the real Dinotank game.

The Critique: What went wrong
Design & Aesthetics
The design of the game was based around the surface detection feature that was based off Vuforia's smart terrain feature. This caused a lot of issues since I was unable to successfully replicate the feature. I had minor issues with the visibility of the game objects to allow it to seem like the tanks are hiding behind real world objects too.

When I worked on the Dinotank game I didn’t have too much control over what was going to be done. I had to follow someone else’s designs. This made sense because it wasn’t my game. When I was tasked with working on Dinotank AR I was given more freedom, but I still using the Dinotank assets. Then when I was tasked with the surface detection feature I had no real control over how this was going to get done and what it should look like. So, throughout the process I didn’t have a lot of control over the design initially.

Project Management
I ended up having to switch advisors part way through since I was being unsuccessful with the surface detection feature. Focusing on the one feature was causing the game to lack in other areas of development which I didn't like. I had multiple issues working with my advisors in the beginning. The miscommunication only partially went away and then the problems with the surface detection feature brought everything over the edge.

I also had issues with time management in the beginning of the capstone process. I had a tough time making sure I worked when and the max amount I could. So, since I didn’t spend as much time as I should’ve my work wasn’t the best quality it could’ve been.

Development
There was a lot of learning I needed to do to be able to make this game. The main thing that went wrong was the surface detection feature to put the real-world surface and objects into the game was too advanced of a feature for me to develop properly. I failed to do this for multiple months and ended up just changing things to make it better for the user to finish the game.

It was also hard for me to try to do so much work in such a little time. When I was assigned the Dinotank AR game I had 2 months left of development. So, I was rushing to try and get everything I could in as fast as possible. Then the final month I was tasked with the surface detection feature. I focused just on that and couldn’t really do anything else but that feature until I finally was able to change it.

I am not a graphics programmer and I have very little experience working with shaders. This is what I needed to complete the surface detection feature though. Since I couldn’t make shaders properly I was having to find work arounds for how I was doing everything. I didn’t like doing it this way but I didn’t feel I had enough time to learn how to write shaders and learn how to debug and make sure they’re working properly. Since it ended up taking me a lot longer than was intended to complete the game I should’ve tried to do it the right way by learning about shaders and using them to complete the feature.

I ended up having to use multiple AR SDKs throughout the lifecycle of the game. I started with ARToolKit 5 since it was free and open source. This worked great until the second month when it stopped working and just showed a black screen instead of the camera feed. I then tried out ARToolKit 6 which was in beta and that worked but the camera feed and tracking were not good. I then switched to EasyAR as it was another free SDK. This worked well, I had no problems with this. The only thing was that it didn’t have a lot of extra features to help with the AR of the game. So, I finally switched to Vuforia. This was the right option. It has great marker tracking and is already integrated into Unity.

Testing
It was hard to find testers in the age group that the game is built for. I ended having to use people over the age of 20 for most of my testers. This also caused scheduling conflicts and delays because of people being busy or not remembering they were supposed to help.

I was able to get the feedback I needed just not in as timely as a manner as I had wanted it. I had to do a lot of my testing remotely. Which made it harder to see everything that was going on and see the users reactions properly.

Business Model/Plan
There weren't any issues with this area. The game is a promotional demo for the actual Dinotank game, so it shouldn't cost anything to play.

Summary:
The capstone process has been a great learning experience for me and taught me a lot about the development process and myself as a developer. I learned a lot about AR and about different SDKs. I also found out how badly I am when it comes to graphics programming. I still feel like I am a strong gameplay mechanics developer though. This experience has helped shape me and made me understand how to manage myself and be more productive.

I was able to show how creative I can be when it comes to finding solutions to problems while working on Dinotank AR. I ran into multiple issues with the surface detection feature and later with the build process of the battle arena. I have always enjoyed figuring out hard puzzles and thinking outside of the box. I believe that I have been able to show this in my work on the game.

I feel glad that the game has turned into what it has now that I’m at the end of the capstone process. It has grown a lot and changed quite a bit throughout this process. I do feel that with it being a multiplayer AR game where the players build their own battle arena gives the game some more replay ability.

References



ARToolKit 6 [SDK]. (2018). Retrieved from https://artoolkit.github.io/portal/index.html
EasyAR [SDK]. (2018). Retrieved from https://www.easyar.com/
[Unity]. (2014, Aug 29). Unite 2014 – Developing with Vuforia Smart Terrain [Video File]. Retrieved from https://www.youtube.com/watch?v=l7o9H31lI0Q&feature=youtu.be&t=258
aldonaletto. (2012, September 11). Can I obscure an object using an invisible object? Retrieved from Unity Answers: https://answers.unity.com/questions/316064/can-i-obscure-an-object-using-an-invisible-object.html
KnightRiderGuy. (2015, March 1). Webcam Edge Detection C# Script Needs Converting. Retrieved from Unity Forums: https://forum.unity.com/threads/webcam-edge-detection-c-script-needs-converting.305046/
Exit Games. (2018). Photon Unity Networking. Retrieved from Unity Asset Store: https://assetstore.unity.com/packages/tools/network/photon-unity-networking-free-1786
PvTGreg. (2014, December 20). pick random point on navmesh. Retrieved from Unity Answers: https://answers.unity.com/questions/857827/pick-random-point-on-navmesh.html
Rego, C. (2012, January 10). DetectTouchMovement. Retrieved from Unity3D Wiki: http://wiki.unity3d.com/index.php/DetectTouchMovement
Unity Technologies. (2018). Unity® 2017.3.1p2. Unity Technologies.
Vuforia [SDK]. (2018). Unity Technologies.
Zygobot. (2018). Dinotank [Android]. Orlando, FL: Zygobot

No comments:

Post a Comment

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