Inspiration

As video game enthusiasts, we wondered what would happen if we removed a central part of video games: playing them. Instead, we wondered what would happen if we made a game designed for bots to play. We hoped that this would incentivize and crowdsource the development of AI among young programmers.

What it does

BotBox is a game designed for bots, and not humans, to play. Every 3 seconds, a game tick passes. In between these game ticks, the bots communicate with the game server and will send requests for actions. At the game tick, all actions are performed simultaneously. The goal of the game is for a bot to survive the longest amount of time in an open world environment. Mechanics include collecting resources and hunger. The server communicates with the bots using a protocol that we developed layered on top of TCP.

How we built it

The server was written in C with the Berkeley Socket API and the standard POSIX threads API. We tried to make an example bot with the client in Java using the Java Networking API. We also built a visualizer using HTML, CSS, and Javascript.

Challenges we ran into

At the very beginning of the hackathon, our first idea did not work out after some time trying, so we had lost a few hours. We worked on different parts of the project separately, but we had trouble bringing the server and the example client together. We ran into a difficult bug that we still have not solved.

Accomplishments that we're proud of

Though we did not finish our clientside example, we are still extremely proud that we were able to develop a game and a protocol for low-level communication using bytes of data, as well as writing a game server and working hard on two other accessory programs all in less than 24 hours.

What we learned

We learned how to work well as a team, as we divided up the work between us. We also learned how to deal with difficult debugging that became extremely frustrating at times. Each of us learned new skills, like introductory networking and game programming. All three of us learned how to write a protocol.

What's next for BotBox

In the future, we wish to fix the bug we were stuck on and release an example bot, as well as release a GUI that helps visualize the game. We also wish to publish extensive documentation detailing our protocol as well as game mechanics. We want to expand and add additional features, like a market where you can buy and sell items and earn as many credits as possible.

Share this project:

Updates