DEV Community

shb9019
shb9019

Posted on • Updated on

Code Character 2020 - An AI Programming Challenge

Code Character is an AI programming challenge which requires players to write bots in C++ to battle against other player's codes in a battlefield simulation (Inspired by MIT's BattleCode). Over a course of one week, players get familiar with the game mechanics and try writing smarter AIs using the API we provide. They are provided with helper AIs to practice against and can also battle their new strategies against previously saved codes. This provides players a platform to learn C++ and think of strategic solutions. We were a team of 12 people. I majorly worked on the Server and the Simulator (Takes player code, compiles and generates the rendered game). I helped by reviewing code on the other repos as well.

Image

Links
https://delta.nitt.edu/codecharacter/ (Currently facing hosting issues)
Player Documentation - https://delta.nitt.edu/codecharacter-docs/
CLI - https://github.com/delta/codecharacter-cli/releases/tag/1.1.0

Code
Simulator - https://github.com/delta/codecharacter-simulator-2020
Front-end - https://github.com/delta/codecharacter-web
Back-end - https://github.com/delta/codecharacter-server-2020
Renderer - https://github.com/delta/codecharacter-renderer-2020

How we built it?
The entire project uses a variety of languages, these include,

Simulator - C++ on a CMake Build environment
Frontend - React-TypeScript built with Webpack and state management using Redux
Backend - Spring Boot and using a MongoDB database
Renderer - JavaScript app which uses Pixi.js for rendering

Our entire team of students used IntelliJ products from the Github Student Developer Pack to take leverage of the futuristic IntelliSense. I used CLion, Idea and WebStorm products from the subscription.

Thanks to GitHub, we learnt a lot about and practised collaboration over the course of 3 months we took to build the project. We made 2 reviewers compulsory for pull requests, banned pushes to master by any member and made passing CI checks for tests and linting mandatory to make sure no bugs crept in.

Thoughts
Coding is not even close to what it is stereotyped to be. Programming can be the most fun and engrossing activity when you meet the right people. Nothing can match the genuine satisfaction and pride when a bug is fixed at 3am and you can finally sleep. Nothing can also match the guilt when you realise that a bug in production was because of you.

Top comments (0)