From week 3 to the final post follows much of my memory of the project. I described in those posts what happened much later in their respective week. I had some issues during the project that was life-changing somehow, and I am still getting habituated to them. So some of what I described here might not occur in some specific week that happened; however, there is no fiction on the group contributions, only the fantasy that we produced for Asimov.
This week, we continue working towards the main idea, and I continue my research on the usage of ML and AI in game development. Furthermore, by defining roles or the project’s structure, I started building the foundation and organisation.
Group contributions: idea definition, retrospective and engine
We as a team continued the elaboration of the theme of the game, better discussed the gameplay and started to iterate over the definition of the names, characters, location and concepts.
For the game’s structure, we decided to build a rogue-like game that represents the escape of the main character’s control of an evil AI. Therefore, the gameplay will focus on the combat and the movement through the scenarios.
As part of my Machine Learning studies, I proposed this focus to build enemies with a better AI than the traditional approach. Consequently, we will have a more profound experience where the game learns with the player behaviour.
I continued helping with the other team activities assuming the role of a scrum master; however, I started to feel that team members had enough knowledge about Agile and didn’t need any direction. It became clear when we did our first retrospective session, where we built an excellent overview of our activities:
The main problem was the tickets and how we finished the sprint, with so numerous still in progress. The central action point was to reduce the number of tickets or clarify them. Although some team members could complete their tasks, I had issues translating what I was doing to those tasks. Nevertheless, the group interactions were healthful and positive, which led us to improve the feedback loop through the “Confluence” pages.
Related to the game prototype by itself, I presented a version of the engine that I wanted to use to build the game over it. It showed only basic gameplay using a 3D top-down perspective (slightly different from our initial 2D isometric view) focused in a blue box with a 3D model for the weapons. It was an early contribution and will need more work to be presentable.
Personal development: The many applications of ML and AI in game dev
The application of Artificial Intelligence, Computer Intelligence and Machine Learning, collectively classified as Game AI, as the reflex of the continuous growth of complexity of the game industry, is becoming a more relevant field of study over the years. According (Riedl and Zook, 2013), there are three leading roles where the Game AI can assume:
- Artificial Intelligence as Actor: where the research focuses on the construction of Non-Player Characters path planning and decision making improving the player engagement and overall experience;
- Artificial Intelligence as Designer: a role where the Game AI mediate the relation between the human designer or developer and the player. This paradigm is commonly referred to by Procedural Content Generation (PCG) where algorithms produce the content consumed by the player. A recent and notable example is No Man’s Sky (Game Informer, 2014);
- Artificial Intelligence as Producer: a role where the Game AI concerns with all game content made in concomitance with broader aspects like the communities management. AI Producers also improve the context of enhancing game experiences affecting real-world contexts. This role is theoretical and still require a new set of tools to leverage the masses of data being produced by players.
For this module, the first role is what I aim to investigate deeper and how to make better usage of the tool provided by Unity (Technologies, no date).
My goal is to create a smart enemy using the provided kit and integrate that behaviour into the gameplay so it can be confronted by the player or even used as an ally. Two practical questions emerged initially:
- What interaction I will use to attempt to improve the experience? Following Diaz, (Diaz, Perry and Fiebrink, 2019) there is still a lot to be clearly defined.
- How to use the data models generated by trained actors inside of the game design?
The second question led me to the use of a dynamical integration of the embed model presented by the Unity Kit documentation. (Unity ML-Agents Toolkit, 2021); Once a training process is completed it’s possible to use a saved model inside of an Agent inside of Unity (link). Following this guide, I’ll design an enemy to use this saved model.
Working with the ML enemies without having a proper sandbox was the most challenging part, and it represented an obstacle to continue my contributions to the game. My attempts to convert and use the model started but, at least initially, I feel that I don’t have enough knowledge to pursue this development path. I’ll continue for a couple of weeks before reviewing my approach.
The group seems to be working fine; the documentation certainly will be a problem in the future, but it seems that everything is working fine, and everyone is enjoying the work. I don’t know if I will be needed as a scrum master since this everyone is so independent.
I’m personally happy to contribute to this game, and It contains some elements that I was willing to investigate.
6 Ways Machine Learning will be used in Game Development (no date) Logikk. Available at: https://www.logikk.com/articles/machine-learning-in-game-development/ (Accessed: 13 October 2021).
Diaz, C.G., Perry, P. and Fiebrink, R. (2019) ‘Interactive Machine Learning for More Expressive Game Interactions’, in 2019 IEEE Conference on Games (CoG). 2019 IEEE Conference on Games (CoG), pp. 1–2. doi:10.1109/CIG.2019.8848007.
game design document gamasutra – Google Search (no date). Available at: https://www.google.com/search?q=game+design+document+gamasutra&oq=game+design+document+gamasutra&aqs=chrome..69i57j69i64.4138j0j7&sourceid=chrome&ie=UTF-8 (Accessed: 10 October 2021).
Game Informer (2014) A Behind-The-Scenes Tour Of No Man’s Sky’s Technology. Available at: https://www.youtube.com/watch?v=h-kifCYToAU (Accessed: 14 October 2021).
‘IEEE Xplore Abstract Record’ (no date). Available at: https://ieeexplore.ieee.org/abstract/document/8848007/metrics#metrics (Accessed: 13 October 2021).
‘IEEE Xplore Full Text PDF’ (no date). Available at: https://ieeexplore.ieee.org/stampPDF/getPDF.jsp?tp=&arnumber=8848007&ref=aHR0cHM6Ly9pZWVleHBsb3JlLmllZWUub3JnL2Fic3RyYWN0L2RvY3VtZW50Lzg4NDgwMDcvbWV0cmljcw== (Accessed: 13 October 2021).
Laird, J. and VanLent, M. (2001) ‘Human-Level AI’s Killer Application: Interactive Computer Games’, AI Magazine, 22(2), pp. 15–15. doi:10.1609/aimag.v22i2.1558.
Procedural generation (no date) No Man’s Sky Wiki. Available at: https://nomanssky-archive.fandom.com/wiki/Procedural_generation (Accessed: 14 October 2021).
Riedl, M.O. and Zook, A. (2013) ‘AI for game production’, in 2013 IEEE Conference on Computational Inteligence in Games (CIG). 2013 IEEE Conference on Computational Inteligence in Games (CIG), pp. 1–8. doi:10.1109/CIG.2013.6633663.
Technologies, U. (no date) Make a more engaging game w/ ML-Agents | Machine learning bots for game development | Reinforcement learning | Unity. Available at: https://unity.com/products/machine-learning-agents (Accessed: 14 October 2021).
Unity ML-Agents Toolkit (2021). Unity Technologies. Available at: https://github.com/Unity-Technologies/ml-agents/blob/003e8aed3be28c56ea6b9b7d784cc142d41e7c19/docs/Getting-Started.md (Accessed: 14 October 2021).