Shroom Slayer - VR with Unity (2023)

Storytelling, Programming, Game Compositing, Virtual Reality Support + Optimization.

Shroom Slayer VR Game Trailer

An Immersive Virtual Reality Experience created with Unity + PlasticSCM. Assets created in Maya, Substance Painter, and FL Studio.

Shroom Slayer VR is an arcade-based combat game where you throw axes to kill mushrooms — alien mushrooms from another planet.

Shroom Slayer Stills

Area 1: The Cabin World

Area 2: The Wild World

Area 3: The Tutorial World

Production Journey

The Very Beginning

—————

In the beginning, our class split into two groups, and our group had the concept of an axe throwing game. With the combined efforts of the team, we incorporated quite a few of our implementations from our ideas into one core ideal game play mechanic. The biggest goal was to make it fun, and for this game to be a great gateway into virtual reality, and to inspire others to make virtual reality games. To start, the team is incredibly talented in creating beautiful content for virtual reality. For this, I wanted to build on a platform that could cultivate the creative minds of our team and allow us to rapidly develop the technical content with as little trouble as we could. Therefore, I chose Unity being the ideal method for our game development IDE of choice.

Importing Workflows & Collision Tests

—————

After a short period of time, we found our most ideal workflows. Models were meshed and textured, and when they got to me I implemented them and textured them in Unity (alongside Spencer with the textures he made.) I then realized that after we started importing assets, when ran with gravity implementation, the assets would fall out of the world. I worked on adding a collision system that fit the needs of VR’s intense optimization requirements by using convex meshes that had few points of collision entry.

Procedural Mushroom Generation + VR UX

—————

I added a system that allowed mushrooms to have procedural generation, and gave us the parameters to easily control what we want to change and where we want them to be able to spawn. Also, at this point, we had a temporary “dev room,” that allowed the team to QA test the newly implemented VR system — allowing me to improve the experience with critiques and recommendations. As a result, I created two systems for movement: a teleport trajectory system, and a locomotion system. Easily able to switch between the two, we were considering making this an option later in development for the user to switch between, as we figured out teleportation is better for new VR users, whereas locomotion is commonly known to cause nausea for those not yet used to VR experiences.

Map Creation & Multi-Scene Programming

—————

The map creation folks of our team kept in mind the poly count concern for native Oculus Quest 2 support. Since the Quest 2 is a standalone headset, the team came to the conclusion that if we got our game running smoothly on a Quest 2, it will run equally — or even better — on other “tethered” headsets. But, as I brought the Unity assets into the space, one of our driving narrative components — the starting cabin for the main character — began to make the game not perform as expected, with some lower frame rates almost certain to cause nausea. Luckily, I was able to split the parts of the game by scenes — the intro being in the cabin as a scene, and the gameplay in the forest being another! This way, we now divided the polycount between both scenes, and I coded a system that allowed the player to transfer between them, by grabbing the “slay” axe.

Game Core Mechanics Programming

—————

Well, I’m definitely not going to use this step as an excuse to say I programmed the rest of the game in this single step, am I? Ahhhh, while that would be mildly entertaining, I will rather explain what the “Core Mechanics” are in this game. The axe throwing! At this stage, I was creating the axe throwing mechanics. A physical object in space with collisions that allowed a VR user to grab the axe by pressing a button — then, being able to THROW the axe as a projectile to kill mushrooms. I coded this particular system, and had my teammate Alex help me QA test the throwing power to get it “just right” for the game’s release. The other core mechanic was making the mushrooms move. I was able to do that quickly by just moving the mushroom’s rigidbody with adding force, although this would definitely be changed in the future.

Previous
Previous

Masterpeace VR ~ Stroke Rehabilitation (2023)

Next
Next

Reflex ~ SCAD StartUp Solution (2022)