AI Toy Box: Post Mortem



AI Toy Box - Post Mortem

Overview - AI Toy Box is a simulation game based on teaching AI how to complete five different games. These games include street racing, off road racing, skeeball, ping pong, and bird racing. The player has control over a number of variables, from the design of the network to how long each simulation cycle lasts. AI Toy Box is more of a tech demo than an engaging video game, so its main goals do not revolve around player enjoyment. 

Successes -

Tech - 

The technical development of AI Toy Box was relatively painless. There were no significant roadblocks to the creation of the systems present. My favourite technical aspects of  AI Toy Box include the efficiency of the AI agents, allowing for hundreds to simultaneously run, even on low quality machines and the calculated, optimized inputs for each agent. The harder parts of creating the AI were determining the most efficient combination of inputs and outputs to minimize the training time for each agent. This proved particularly difficult in the offroad racing minigame. In this minigame, the AI are tasked with navigating a very bumpy offroad track in trucks as quickly as possible. In order to safely navigate such a track, a human would most likely use their eyes to scan for bumps in the road and avoid them when seen. This vision system would be far too slow and over complicated for a minigame though, so I was stuck in a cycle of trial and error in my attempts to optimize the input system. Eventually, I found the best combination to be 7 distance sensors analysing a semicircle in front of the truck along with the linear and angular velocity of the truck. With knowledge about the angular velocity, the agent may not be able to predict the bumps coming, but it can learn to react to rotational momentum. For all of the time I spent optimizing each AI, the racing birds were far and away the slowest to learn their task. I believe this to be due to the complexity involved being somewhat greater than a number of other events. Each bird network has 15 inputs and 4 outputs. The bird may control its rotation delta and the speed its wings flap. Each time the wing beat, which follows a sin wave, reaches a minimum, a force is applied to the bird perpendicular to its current orientation. I was expecting the birds to angle forward when they wanted to travel forward and angle back when they wanted to slow down. I thought that each bird would be rather controlled in the nature of its motion. This assumption was incorrect as the birds would wildly spin constantly, but time the beat of its wings so that it would be pushed forward when in the proper orientation. I do not believe that this is the optimal solution, and I think there is still work I can do in order to create a more stable agent; however, at the end of they day the birds finish the course. 

Design/Art - 

I feel as if I can finally come into my own in terms of the design and art in my games. I have never considered myself a decent artist and have never been artistically inclined. Recently though, my projects have consistently had a professional looking style. My favourite artistic part of the project is the main menu. Each game has a minifigure and a custom info card. Each card has a different font and color scheme. This makes each game seem very different from each other. Without the artistic adjustments from game to game, the entire project would feel very samey and wouldn’t be nearly as interesting. Without what is in my opinion a good aesthetic, the project would barely even be considered a game. Since the “gameplay” in AI Toy Box essentially boils down to moving sliders and watching a screen, the presentation of the project must be even better than a game which gives the player far more interactive control.

Failures - 

Tech - I failed, in part, with the bird racing mini-game. While I feel that bird racing does certainly belong in the game, and while it is functional, it is far from optimized. There are a few contributing factors to the sub-par performance of the birds. Firstly, full range of motion in a 3D world is far more complicated than 2D movement in a 3D world (ie the car based mini games).  Secondly, due to Unity’s finicky physics system, when a great many objects with rigidbodies and colliders and close in proximity, the game lags horribly. Even though none of the objects can collide with each other because they are on the same Physics layer which cannot collide with itself, the physics system still seems to run collision calculations. 

Design - While the intention of the project was not to have engaging moment to moment gameplay, I still feel as if the game could fail to keep the player engaged for long enough to complete training the first AI. Especially if they don't decide to train an AI labeled with the “Short” tag first. I believe I could have certainly added a couple of systems which force player engagement while the AI is training. I would have to give the player a choice whether or not to use this setting as hands off training is very important.

Files

AiToyboxOfficalCover.png 52 kB
Jan 21, 2021
AiToyboxOfficalCover2.png 52 kB
Jan 21, 2021

Get AI Toy Box

Leave a comment

Log in with itch.io to leave a comment.