ML-Aided Game Production
"Face the power of artificial intelligence!"
As the word "AI-Aided Design" has become the most popular term in 2022, Game designers also realized the importance of Machine Learning.
Working with AI Designer Mitchell Foo, We created a VR game where players will fight AI agents. The agents are designed through a demonstration dataset given by the game. Using Machine Learning, they develop their own playstyles and improve their performance based on a rewards and punishment system.
Game Designer, UI/UX Designer, Gameplay Engineer, 3D Artist
Unity 3D, ML-Agents Toolkits (For Unity), Blender
What & Why
How did we begin this?
As the word "AI-Aided Design" has become the most popular term in 2022, Game designers also realized the importance of Machine Learning. Machine learning could be used for designing NPCs' behavior, Generating art assets & environments, and even creating some unique game features. Working with AI Designer Mitchell Foo, We Planned to make a VR game where players will fight ML-trained agents.
ChatGBT: The most popular application in 2022,
where you can chat with the AI
2D & 3D version of Pong game
When choosing the game theme, we both agree that we should simplify the game rules as much as possible. It would be redundant to have tons of text instructions or a tutorial level for a miniature VR Game. Then we found a nostalgia game - Pong Game. Having the form of controlling a panel to play against one opponent inside a symmetrical arena, Pong Game is ideal for being transferred to a VR Game, and developing AI-agents as well.
How did AI come alive?
In this project, I was responsible for coding the gameplay & interaction and creating all the art assets. And we did the game design together (My teammate worked on the machine learning part & sound design.)
Earliest prototype in Unity
Early-stage game flow draft
In addition to different types of AI agents, we also introduced an obstacle system to the game. Players can choose to add obstacles to their gaming arena for more fun and strategies. For the game flow, the player will begin the loop with 1. Enter the training gym > 2. Start Menu > 3. Select Agent > 4. Select obstacles (levels) >5. Start playing > 6. Defeated / Win. In the final delivery, we got 3 different agents and 2 types of obstacles design.
Different characteristics of our AI agents
The reward system we set for them
It's worth mentioning that the differences between those 3 AI agents entirely depended on the rounds of machine training & the reward system we set for them. Unlike setting complex logic for NPCs in regular games, our NPCs are naturally trained to gradually form the play style we set for them. Instead of being cold-blood scripts, The process they had been through is pretty human-like, which is trying and learning. And that's a fascinating insight for future game development.
We can see that AI changed its strategy over this time
One of the Time/Reward curve in our training, some interesting insight may be capture in this chart.
"I'm going to be the strongest player!"
Design For Better Experience
What makes a game?
In our playtesting, we found that if setting the ball's logic to [Mirror its vector of speed with the normal‘s direction of the wall as the symmetry axis], sometimes it will take an unreasonable time for the ball to pass the hallway. So we added an offset towards the player to the ball, and the player object (cuz we got two players) toggles after a hit. We believe this small change made the game more playable.
Adding an offset for the ball (the effect is exaggerated in this example)
We also realized that the ball's volume might be too small for players to spot, especially in VR view (with a lower frame rate.) So it was necessary to add a position indicator of the ball for the player. So we implemented a lit-up square with the exact x-axis location of the ball. And a ball trail as well.
Adding a lit-up square was a smart move for player's experience
Small but important
The game's user interface is a hybrid of non-diegetic and diegetic UI. Non-diegetic UI that indicates information such as lives, health, and score. Other UI elements, such as the entry and main menu, have been made diegetic so that they become a part of the game experience.
Initial thought for the diegetic UI
Performance in the game
Another diegetic UI we designed for the game is the NPC's expression system, which indicates player the status of the ongoing round. A sad expression indicates that it loses the round, and vice versa.
Expression chart for all the 3 agents
Performance in the game
To Be Continued!
I need to finish my shitty schoolwork first...