Full Name
Arduino Game ENhancement Tool 1.0 (AGEnT 10)
Inspiration
My friends and I are avid Airsoft players, but we also play Valve's Team Fortress 2. I thought it would be cool to see the King of the Hill game mode being played in Airsoft, yet that required some "computer-like" device to keep track of the state of the game like timers etc.
What it does
AGEnT 10 is a portable arduino-powered device with an intuitive user interface that brings King of the Hill and other game modes to the playing field for enhanced airsoft/nerf/paintball games. It features a 20x4 LCD and push buttons as the user interface. When powered, a menu allows the user to select the game mode to be played and tweak certain options before the game is started.
How I built it
The current prototype is a chocolate box with a wood panel on top that features the user interface electronics. On the inside lies an Arduino and a battery to power everything. The software is open sourced, and uses an Object Oriented approach that allows for modularity of game modes.
Challenges I ran into
I wanted to make adding new game modes to this device very easy and modular, so I had to come up with a design that allowed myself, as well as possible contributors to do so.
I also wanted the users to be able to tweak some setting of the game modes (e.g. amount of time in a count-down timer) before the game started, and that posed a significant design challenge. I have a current functional solution, but it still a goal of mine to make a better design for game settings.
Accomplishments that I'm proud of
I came up with an Object Oriented approach that solves the challenge I mentioned above. The code on GitHub mentions the design of the software and also instructs others on how to add their own game modes.
I'm also proud of the aesthetics of the product. The user interface panel is laid out symmetrically with paint and components, and looks more like a finished product than a prototype, even though it is far from complete.
What I learned
For an Arduino project, this is a fairly complex project, not because of libraries that it uses but because of the structure of the code. This project helped me better grasp principles of inheritance and how to use them to create code that is more modular and flexible, as well as how to better design non-trivial scalable software.
What's next for AGEnT 10
TL;DR add more game modes, sounds, pausing, and make a custom dedicated Arduino-based board
The full TODO List is on the project's GitHub

Log in or sign up for Devpost to join the conversation.