"A Day in the Life of a Delivery Robot" was created as my senior capstone project at Oregon State University. Our team of four was tasked with developing a driving simulator, and we chose to let players control a robot delivering food orders on campus while navigating AI traffic and obstacles. The goal is to reach the delivery location on time while avoiding collisions. The project was directly inspired by the actual food delivery robots we had on the OSU campus during our time there. If you'd like to try a build of the game, check the links below.
My primary responsibility in this project was to design and build a map environment for our player-controlled robot to drive in and deliver orders. I focused on creating an authentic representation of part of the Oregon State University campus, while making adjustments to fit the gameplay.
One challenge I encountered while designing the level was determining how to handle the boundaries of the map. I tried several approaches:
You can see the overall finished map design above, with the implemented approach I went with (dirt and fence perimeter).
I am not primarily an artist and this was my first time 3D modeling on a larger scale, so I had to start by researching lots of tips and techniques. I found that artists often taken reference photos and since my goal was to recreate parts of our university campus, I started by capturing over a hundred images with my phone. Not only were these helpful for modeling, but they ended up being useful as textures later on (after modifications). I used Blender to model streets, buildings, and sidewalks, before applying seamless textures I created from my images inside Quixel Mixer and an online synthesis tool.
The first thing I did for the UI was creating a mockup on paper for what I thought it should look like. Then after some thought, the challenge was to design a user interface that remained simple yet informative for the expo audience, many of whom had little gaming experience.
The next step in iterating on my designs was to invite playtesters to find any problems with the game, especially if related to clarity.
This game project was very involved, but it was very rewarding in the end, especially when showing it to family and peers. Working as a group of four students with other classes and jobs, we had little time to communicate and work effectively as a team. This was easily the hardest part for me, but I think our goal of developing a fun and short game was successful in the end.
In terms of technical knowledge, I significantly improved my skills with Blender, particularly in modeling, texturing, UV editing, and exporting. I now understand how to synthesize textures in different applications and edit them in Quixel Mixer. Also, learning about seamless textures, tiling, and techniques like adding noise and random rotations has helped minimize repetitive patterns on my created surfaces. In Unity, I learned about using mesh colliders on imported objects and their interactions with rigid bodies based on topology. I improved my programming skills in C#, became better at testing features that need to be balanced (partly through conducting playtests), and learned how to do lighting.
Overall, I think there are a lot of necessary improvements for this project if it were to be revisited in the future. With our time crunch and poor communication habits, the final version of the game has several large bugs and poor performance. Features added towards the end did not have enough time to be properly tested, the map has a couple of collision issues, and the difficulty was harder than intended. With more time, better planning, and an in-sync team, I would love to implement a larger map, a better physics system, fix bugs, balance more appropriately, and adjust scenes for better performance.