DilemmAI
DilemmAI is a first-of-its-kind gaming experience- rather than making tactical decisions yourself, you instead come up with a strategy that an AI agent executes on your behalf.
Players get to explore this mechanism with a classic thought experiment in game theory: the Prisoner's Dilemma. Two agents are placed into a situation where they can either work together for mutual reward or try to get a leg up on the other by betraying their partner. Our version is as follows:

Complex strategies emerge when players face the same person several times in a row- trust can be built, exploited, lost, and built again as both do their best to anticipate their opponent's moves.
DilemmAI changes the game by letting players describe a strategy to their own custom AI that will then do its best to execute on their ideas. The atomic decisions are taken out of the player's hands- once the game has started, all you can do is watch.
Flowthrough

How we built it
On the back end, we used Hugging Face to load and run LLaMA 2 models locally through llama.app in order to get low enough level access to run our own custom JSON Backus Naur form that returns a custom JSON payload.
In the process, we tested multiple code and chat AI models in the LLaMA family ranging in size from 7 to 70 billion tokens to find the best fit. Ultimately, we settled with a chat model using 7 billion tokens.
We used web sockets and Socket.IO with MongoDB to persist sessions, connecting it to SvelteKit on the front end. Figma and Tailwind CSS were used for styling.
Technical expertise is, of course, important. However, the speed at which we developed and more importantly what critical features vs. non-core features we deliberately decided to develop was essential to the development of a usable MVP.
Inspiration
We drew inspiration from a variety of sources- for example, Nicky Case's interactive version of the Prisoner's Dilemma The Evolution of Trust helped us think about how to design our environment to incentivize certain strategies over others. However, our primary inspiration was Veritasium's What Game Theory Reveals About Life, the Universe, and Everything- we sought to make a version of Axelrod's tournament accessible to anyone, even people who can't write their own code.
Challenges and Limitations
Most of our hold ups came from web development complexity. As mentioned before, running a 13 Handling bidirectional data flows presented quite the headache- Due to hardware limitations, we were force to test LLaMA models 7B to 70B without a Nvidia GPU. Though we initially favored a larger 70 billion token model, each iteration ultimately took too much time to run- we were forced to downsize to a 13 billion token model. This means that the AI is not quite as capable at implementing the user strategy as we had intended
Additionally, handling bi-directional data flow alongside SocketIO introduced complex system design that required thorough planning.
What we learned
Besides a stronger foundation of the tech stack as a whole, communicating and addressing blockers amongst each other as soon as possible (given one has already tried solving the issue themself) was critical to developing at the unprecedented pace we maintained throughout the hackathon.
What's next
We intend to maintain and scale the project for worldwide use of our web app. Potential features include stronger content moderation, more finer-tuned models, and integration of a cloud platform for hosting given that we do not have access to Nvidia GPUs.

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