Project Talos

Welcome to Project Talos

Project Talos was a research project conducted during FALL 2020 at the University of Michigan for EECS 499. Project Talos sought to research into the application of machine learning in game development. Up to this point, machine learning has had a stigma in the game development scene due to its supposed unpredictability and complexity. However, with recent advancements in machine learning and the release of Unity’s ML Agents package, machine learning could finally find a place in the game development scene. With this research project, I sought to create a simple yet enjoyable game centered around machine learning agents. The end goal of the research being to document the process and hopefully show the viability of machine learning in game development.

Where It Started

During the early days of research, I sought to study General Video Game AI, a subset of machine learning that seeks to create machine learning agents that can play any game without prior experience. However, I quickly realized that the magnitude of such a project was far to great for the duration of the course. I also noticed that at the current moment, aside from a few prominent individuals in the research community trying to achieve this dream, general video game AI is currently far too early in its development to be a research project for an undergraduate. As such, part way through the semester I pivoted to what is now the current objective of Project Talos.

The Journey

The journey was rough, but it was intellectually engaging and I feel I learned a great deal more about machine learning than I initially knew. Throughout the semester, I went through multiple game prototypes, trying to create something fun. Along the way, I posted weekly developer logs documenting my journey from the highs to the lows. I covered the problems I faced and how I tackled them. I documented the optimal methods to train machine learning agents and the best practices for incorporating them into a game. As such, I hope these devlogs can be of use to future individuals seeking to look into machine learning and game development. Hopefully, this research can convince more people to try implementing machine learning into their own games.

The Results

All in all, I can look back at this project and say I am proud of what I was able to accomplish. I managed to create a game that when presented at the EECS 494 (UMich Game Development Course) Showcase, an event where students show off games they spent two months making in teams, garnered interest and positive feedback. I got multiple commments saying that the project was interesting and ambitious while still being successful in creating a fun and engaging game. Many players even stated that they would have been unable to tell the agents within the game used machine learning had it not been stated outright. As such, I can conclude that Project Talos was successfully able to create a fun and engaging game that used machine learning agents as a central game mechanic.

The Final Prototype Game:
The Flower’s Nightmare: Attack of the ML Hummingbots The Flower's Nightmare: Attack of the ML Hummingbots

The Final Project Github Repo:
ML Hummingbirds - The Flower’s Nightmare
Not the cleanest source code due to time crunches caused by the CoE Design Expo.

Visual Slideshow Showcasing the Final Results:
Fall 2020 CoE Design Expo - ML Agents in Games

The Path Forward

Project Talos was an attempt at a first step toward a future where machine learning is used regularly within the game development industry. As such, there is much to still be done to make this future a reality. As of right now, I see a few paths forward for student researchers to make this future a reality.

Possible Future Avenues of Research:

  1. Try creating games within other genres using machine learning agents.
    • Expanding the genres in which machine learning is used could lead to more developers trying it out in their own games.
    • Might be worthwhile trying to create a brand new genre of games where the central mechanic involves machine learning.
    • Slightly harder to get started with, but becomes easier as time goes on.
    • Leaves a lot of room for creative and intellectual freedom.
  2. Try incorporating machine learning agents into currently existing games.
    • Adding machine learning to pre-existing games could result in a lot more attention being brought to its possibility as a viable option in game development.
    • Would require a lot more work programmatically as reworking an old system to add a brand new central feature is usually fairly difficult and time consuming.
    • Doesn’t leave as much room for creative freedom, but does still leave the door open for a fair bit of intellectual freedom.
  3. Maybe take the current game I created and improve upon it.
    • Won’t bring too much added attention to machine learning in game development, unless the newer game is significant enough.
    • Arguably the easiest of the opinions as the base is also implemented. Should be easy for even a beginner to pick up and experiment with. Might require some code reworking though.
    • Falls somewhere in the middle on freedom intellectually and creatively as one could choose to change the base game to whatever they want.

For each of the above paths, it would arguably be a good idea to document the process and share it publicly to contribute the public knowledge space. Within academia, new findings are built on the backbone of previous research. As such, the more research readily available, the better for everyone.

Final Thoughts

All in all, I feel this site could be a valuable resource to future student researchers and anyone looking into machine learning in game development. Please feel to use anything you find on this site in future research or for private use. However, please don’t use haphazardly use the material found on this site for commercial products as I do not own the rights to all the assets and code I used during this research project.

To anyone who’s read this far, thank you for checking out Project Talos.