Video and Source Code
When we started this project we asked ourselves what the biggest things in the world right now were? So naturally, the first thing that came to mind was roblox. We wanted to use roblox in a way that was actually useful to other people, so we decided to simulate the spread of the coronavirus (or any disease really).
What it does
Our project essentially simulates a modern city in roblox studio. We added several features so the user could customize what type of environment the simulation could run on. This allows people to see the effects of masks and other preventative measures on infection rates. The user can also watch the simulation in progress along with graphs to gain a better understanding of what is happening.
How we built it
This entire project was coded completely in the Roblox Coding Studio, specifically the programming language Lua. We built the assets by hand. For the front end, assets like buildings were created using in-house Studio plugins. Trees were created using flat shading and low poly modelling in Blender, then exporting to Roblox. On the back end, we had several scripts that handled different aspects of the game. There was an initialization module that took in player input (conditions of the game like masks, hygiene measures, closure of parks). There a module in game that created NPC classes and spawned functions inside, giving the NPCs ages mirroring the demographic lines of New York City. All NPCs were also given a status function that denoted whether the NPC was healthy, sick, recovered, or a silent carrier. All NPC pathfinding behavior was handled by a single module script- and on the server side- to limit the lag that the client faces. The NPCs, based on their age, would pathfind to either a general location (a park, a restaurant, a store), or a special location (school, workplace).
Challenges we ran into
Our biggest difficulty throughout this entire project was dealing with the roblox coding studio. Building a game in roblox was completely unlike anything we had done before and we had to learn most of the game design, coding language (lua), and structure from scratch. Roblox also isn’t necessarily meant for large-scale projects and simulations so we put a lot of time into refining our path-finding and infection algorithms to reduce lag. At one point we even downloaded a virus from a community plugin which began deleting our assets and scripts.
Accomplishments that we're proud of
We are proud of executing such a creative idea and learning a new language to perform this simulation.
What we learned
We learned to always vet assets we find online before downloading them.
What's next for BLOXDOWN
We can improve BLOXDOWN by giving the user more conditions to choose from and expanding the simulation past the coronavirus. We envision a simulation where the user can select the type of disease, the size of the city, etc. so that they can truly understand the effects of different factors on the spread of a disease.