Inspiration

Our team strongly believes that the future of Europe lies in talented programmers. That is why we have put ourselves a goal to teach and inspire high school students. This year we are organising an international camp in Milówka, Poland. We are going to hold a night-long AI competition during which students will be programming crazy cats fighting with each other.

What it does

The main purpose of the game is to maintain your position on levitating platforms while being bombarded with enemies' missiles and black holes flying all around you. The last bot standing wins!

How we built it

We had to develop quite a few independent parts of the app. First and foremost, we needed the main server for hosting the flow of the game. Due to its extremely fast pace typical API solutions, such as PHP or Node.js, were deemed inappropriate. We went for creating an HTTP server in C++ with the main thread continuously updating the state and side threads for API requests. Then we needed to create client libraries, as the purpose of the game is to encourage creativity and strengthen interest in AI, without having to use sophisticated technical knowledge. We created libraries for both C++ and Python, as well as implemented a few sample bots in both languages. Although it wasn't our main goal, we tried ourselves with machine learning using Python's tensorflow. We topped it off with WebGL visualisation of the whole project, Unity being our choice due to simplicity of use.

Challenges we ran into

The most difficult part was establishing the server connections and designing & implementing the appropriate game mechanics. Inventing the example bots was quite demanding as well, still we strived to make the player's life as easy as possible with supporting libraries. Shoutout to one of the team members for writing a bot without having a finished API.

Accomplishments that we're proud of

First of all, the concept of the game proved to be genuinly intriguing. We're mostly proud of creating comprehensive solutions for server-client communication. Quite a big challenge was working under time pressure but our team (cat) spirit kept us motivated throughout the whole night.

Accomplishments that we're not proud of

We've killed so many cats that it was beyond imagination.

What we learned

We learnt how important the teamwork is. As this is our first hackathon, we gained an insight into what hackathons are like. Tensorflow is not as easy as people are saying, there is not import machine_learning.py :)

What's next for BotCat

Although the game is definitely ready to be played, we are still going to test it carefully and fix the possible issues. Then, according to our plans, we will conduct the coding challenge at the camp. We hope it will serve its purpose well and the young coders will greatly benefit from it.

Built With

Share this project:

Updates

posted an update

I wrote a library for c++ clients in order to make the bots' implementation easier (abstracting away things like json parsing and networking). I then implemented one of them. Watching it and the other one fight in the visualization was very satisfying, especially because this game proved to be relatively challenging to write clever bots for.

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