M.E.C.H.A. Bots

Vital Stats

Created By: Team 42 Inc.
Development Time: Fifteen Weeks (completed Dec. 2012)
Producer: Bryan Novak
Programmers: Culver Redd, Hao Wu, Bryan Novak

 


My Contributions Include:
* Building a complete client-authoritative networking system, including logic for creation of lobby and game join GUIs, game joining logic, and transfer of game mechanics information across the network
* Implementing a broad set of weapon firing mechanics, including splash damage, mortar projectiles with parabolic trajectory, and flamethrower damage and effects
* Saving customization data and loading that data onto bot models in-game
* Providing coding assistance to an artist working to implement the bot customization GUI
* Implementing logic for a broad set of character animations that would make use of mix joints and operate correctly for all parties on a network.
* Working with the NGUI Unity3D plugin to construct game menu appearances and logic

The TL;DR

M.E.C.H.A. Bots (Motorized, Expendable, Customizable, Heavily-Armed Bots) is a third-person multiplayer action game for iPads. M.E.C.H.A. Bots was built in the Unity3D game engine for the Michigan State University TC497 course. Players customize their bot, then battle against each other over the Internet in single combat in one of three arenas. M.E.C.H.A. Bots features a large range of aesthetic and gameplay-oriented customization options: from six different varieties of armor to twelve weapons to a full RGB color painting system. We plan to work through the GEL Lab at MSU to make M.E.C.H.A. Bots available on the iOS App Store in early January and continue working to polish and balance the game over the course of the spring semester.

Postmortem

M.E.C.H.A. Bots was by far the most ambitious project any of the team had yet undertaken in our experiences at Michigan State University. The time available for implementation was a broad fifteen weeks compared to our previous constraints of five to seven weeks, and simultaneously we settled on a project that had an enormous scope. Features like the iOS platform, networked multiplayer, character customization both cosmetic and gameplay-centric, and multiple-map arena gameplay were all beyond our experience at the start of the project, and implementing any one individually would have been an excellent design challenge, but we decided to go above and beyond to bring all of these features into a single innovative result.

Thanks to a team that was remarkably well-managed, universally passionate, ready to help teammates in need, and ready to step outside comfort zones in order to get the job done, we were successful in implementing nearly all of the major features that were initially proposed. Our awareness at the outset that our project scope was extremely large helped us maintain a consistently high work output from the project outset, a move that paid off down the road. 

On a personal level, the project helped me expand my horizons in a broad segment of the tasks for which gameplay scripts were needed. More importantly however, I had the time and creative space to specialize in the game's networked multiplayer logic and communications. When I began implementation of this feature, I approached with the primary goal of simply enabling two players to connect and inhabit the same space, but what I began to learn as the project progressed was how completely networking considerations extended to every other portion of a game's scripts. Speaking after the conclusion of the project's completion, I can see the flawed assumptions that were present my initial approach, how these assumptions were extended to affect the development of many other portions of the game, and how designing the network connection system with a broader whole-game perspective would likely have greatly helped streamline development of the rest of the game for myself and for the other programmers on the project.

For more information on the game and project updates, visit http://www.bendiefenbach.com/mechabots/

Check back in January for a link to our game's App Store page!

Code Sample

This code contains functions that synchronize the timing of bot spawning across the network, as well as assign bots to specific spawn locations.

MECHABots_Code.png

Follow @CodeRedd11 View Culver  Redd's LinkedIn profileView Culver Redd's profile