On a simple car ride from Ottawa to Trent University, we were close to running out of ideas. The team really wanted to create a simple 2D game that involved machine learning. Ryan really enjoys childrens card games, and basically forced us all to implement this idea because he was our ride home.
What it does
Uncharted Realms is a collectible card game based around its very own neural network. All cards in the game are generated by the neural net, from card stats to name and image. As players pick cards, the neural net uses that pick information to balance the cards further and create continuously unique experiences.
How we built it
We used scikit learn to create our neural network for generating cards. A linear regression is created by fitting the stats of existing cards against their cost. Numerical values have a simple linear fit, but more complex stats like specific words had to be turn into numerical representations called "one hot". Cards were then generated for users to play games with, and these cards were then sent back to the network and were used to retrain the network and improve its confidence.
The game itself was developed with Love2D, a lightweight Lua game engine. It gets JSON data from our neural network through our backend done in Flask.
Challenges we ran into
Working with Love2d, our team needed to learn Lua and its paradigms. It presented a very different stlye of programming than we were all used to, so it took some time to familiarize ourselves with the quirks and common practices of the language.
For the neural network, we looked into many options and had to pick the best one with us having no experience in machine learning. We ended up going with Scikit Learn where we had to familiarize ourselves with more "from-scratch" machine learning concept than using some API like Google Cloud Platform or AWS.
Accomplishments that we're proud of
The biggest accomplishment of this hackathon was the implementation of the neural network using Scikit Learn and our ability to learn to build a simple game from scratch using Love2D.
What's next for Uncharted Realms
The next step for Uncharted Realms is to allow users to play with others over a network connection. With more players playing remotely, the neural network will be able to gather even more data and produce even more impressive results.