Meadow Minds: An AI Literacy Game


Game Development | Unity, C#, Maya, Blender
Senior Design
2023

Functionality

This Unity web app is designed for middle school students, aiming to teach fundamental machine learning concepts like Large Language Models (LLM) and clustering.
My Role

This was a joint thesis project with Michelle Yavorskiy. 
My role was creating the enviornment and clustering game. 




Design Tools 🛠️: Figma, Unity, Autodesk Maya, Blender
Computing Skills💻:  C#

Demonstration



insert video here



Design Process


Objective ︎︎︎
Our main objective with creating MeadowMinds was to simplify the basic concepts of ML in to a playable 3D world.

Motivation ︎︎︎
Our motivation is to provide an engaging educational platform for middle schoolers that makes learning accessible and appealing.  We hope that this game can provide an early familiarity with computational concepts.


Problem Statement ︎︎︎
With the rise of artificial intelligence in our everyday lives, it is important to educate those from a young age on the functionality of ML in an inviting and effective manner.This understanding is crucial for young adults to responsibly harness its creative and practical aspects.


Activity Diagram: Shows basic start to finish game process.



Scene Diagram: Shows how the scenes transition in to each other, as the player walks through the game. 


Clustering Game Explained


The main points I wanted to emphasize were that there are centroids with user made clusters, where they have to look at produce to create groups based on an assumed characteristic. This alludes to the dea of unlabelled data as there is not a characteristic or tag that can easily be used to split the produce in to groups of 4.

The game developers are the one creating the query, so the user is acting like the machine learning algorithm to find what items in the clusters would best match the query.


Deployment Process


This game had two goals in regards to optimizing computer graphics. 
1) Minimizing 3D Model Rendering Run Time  
2) Code Optimization

Why is this important?
Our deployment process was based around building our project to be optimized for a 3rd party game server upload, where we chose itch.io, this server caps project uploads at 1000 files and 1 gigabyte zipped meaning that we had to take further optimize our memory to have a successful upload.



To minimize 3D model rendering run time, we opted to use low-poly models that would be less computationally intensive. A 3d model that has a very smooth look would be considered to have a high polygon count. The carrot below has quite a rigid look, meaning that its a low poly model which  decreases our storage consumption.







To optimize our code, we minimized memory allocations is to limit the content inside frequently called functions mainly the Update() function to avoid performance decreases. The beginning script in the bottom image is the default C # code that Unity gives you when a new script is created.

You can see that there is a start function that is only called once before the first frame updates and the update function which is called  once per frame. A better and more efficient method is to instantiate objects in the start function and continue reusing them.



When possible we also attempted to integrate efficient data structures and algorithms to minimize CPU load. some examples that could create better code performance is declaring variables at a higher scope and continuing to reuse them, precomputing calculation values, and using structs instead of classes.

There are some integrated memory and performance options for Unity WebGL but we found that they just were not sufficient enough to successful uploading our game.


I recorded the outcomes from a Unity Profiler Test on my First VS Final draft of optimized code to give us some more insight in how drastic code optimization can be to the performance of a game.

We can see that through these rendering tests, that making code changescreates a round 50% more efficient for each optimization method.
 









@Lydia Kim 2023  


Lydia Kim
︎


CREATIVE TECHNOLOGIST & ARTIST