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
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: ZygobotHerington, 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.
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.
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.
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.
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.