Tank Battle 3DTeam: Something Soft
Kevin Clow & Matthew Vaughan
Roles and ResponsibilitiesKevin Clow:• Artificial Intelligence Programmer• Level Designer• 3D modeler
Matthew Vaughan:• Project Manager• Graphical User Interface Programmer• Audio Programmer• 3D modeler
Tank Battle 3D!•3rd person tactical shooter with hover tanks
•Science fiction setting
•Enemy tanks, turrets, and mobile mines
•Player must fight through a maze full of enemies to reach the end goal
Gameplay Features• Mazes are dynamically created
• Multiple ammunition types
• Control tank using Xbox 360 controller or a keyboard
Target Market• Players who enjoy
• 3rd person shooting games
• strategy style gameplay
• maze style maps
Marketing• Free and low-cost advertising
• dedicated website for player’s to view, comment on, and download the game• domain will be through GoDaddy.com• links to social websites on game website
• social networking websites• Facebook, Twitter, Google+, etc.• be able to reach about one billion people
Competition• Introducing our competitors
• Wii Tanks for the Nintendo Wii
• Crazy Tanks for mobile devices
• Tank Recon 3D for mobile devices
We aren’t the only ones to think of this!
Competition: Wii Tanks
Image courtesy ofmonstersandcritics.com
Competition: Wii TanksSimilarities:
• Tank enemies• Obstacles (map-like)
Tank Battle 3D has:• Dynamically created maze maps• Much larger maps• Pickups & Power-ups • More types of enemies• Difficulty setting
Competition: Crazy Tanks
Image courtesy ofitunes.apple.com
Competition: Crazy TanksSimilarities:
• Large maps• Pickups & Power-ups• Difficulty setting
Tank Battle 3D has:• Differing types of enemies• Dynamically created maze maps• More types of power-ups
Competition: Tank Recon 3D
Image courtesy ofitunes.apple.com
Competition: Tank Recon 3DSimilarities:
• Large maps• Pickups & Power-ups• Difficulty setting
Tank Battle 3D has:• Differing types of enemies• Dynamically created maze maps• More types of power-ups
Development Methodology• Core development is done in parallel
• Kevin works on A.I., Matthew works on menu• A.I. and menu system integrated together
• Unity game engine (free version)• C# used for script development
• Most art assets are created using Blender• some projectiles created within Unity
Development Methodology cont.• Iterative Use Case Driven Development
• 23 cases total• 2 - 3 life cycles for each case• Use case requirements • development • testing
• Weekly Updates• Senior project instructor: Professor Duncan• Technical advisor: Professor Bahrt
Version Control• Google Code
• cloud storage
• Tortoise SVN (Subversion)• version control system
• WinMerge• manual file merging
Tools for more sane projects, and project teams
Testing• Testing occurred throughout each feature
implementation
• Play testing using multiple subjects for feedback
Does it do what you want? Why not?
Unity!• Compared to Unreal Engine 3, Unity gave
us:• ability to layer objects for collision
• on the fly variable changes using the Inspector
• on the fly compilation when executed in the editor
• rapid implementation of the game
Graphical User Interface• Link menu system to empty Game Object
• developed using Unity’s stock GUI system
• switch between menus using a delegate • a data type that references a method• behaves like method once assigned one
• HUD (Heads Up Display)• also uses Unity stock GUI system• textures used for health & power-up meters
and for ammo and power-up type icons
How we designed our Rooms
MS Paint
Blender mockup
Final Level 1
Artificial Intelligence
• Turrets• Arc rotation
• Mobile minesSeek, and destroy
• Tanks• Seek, and attack
• Group level behavior (future iteration)
Procedural Maze Generation• Room filling algorithm.
• Place starting point
• Determine if an additional room fits
• If so place it
• If the space is not filled repeat
• Otherwise exchange one of the rooms for the end.
Setting up for success• We have reached this point to better provide
for future implementations:
• more behavior states for the A.I.
• health bars for enemies
• finalize implementation of procedural level creation.
Lessons Learned• Developing the game using C++ and DirectX
• integration• knowledge
• Procedural Room Generation
• Explosion SFX• one reference script for each explosion
• We overcame each other’s differences
Demonstration
Q&A