darkswordsman.com
< Return To Home
RG Solutions
Echo's Home World

Retro Jam

RG Solutions is a VRChat game world that I created for Rollthered's PS1 Challenge game jam.
The fake PlayStation-style game cover that I made for the VRChat world thumbnail.
> The fake PlayStation-style game cover that I made for the VRChat world thumbnail.
The focus of the game jam was to create a retro-themed game within VRChat. The worlds would be part of a "demo disc" (not physical, but as a group), similar to the demo disks you would get with your PlayStation.My initial thought process with the game jam was to make something of a "horror" theme. Though I didn't really want to make a traditional horror game. Despite the fact that I do enjoy horror, I generally can't tolerate it as much as I wish.As such, I wanted to make an unsettling game that had scary elements, but that wasn't overtly "scary" with horrifying imagery per-say. The retro-style helped with achieving this goal.I unfortunately lost all of my Blender projects at some point so I can't show a lot of the original development. However, I can try to show other aspects of the development.

🛠 Development

This was the first time I had ever actually started and "finished" a video game project. The concept was simple enough, the scope was realistic (scope creep still happened 😅), and I was able to get it done within the time frame.
The Unity 2019 Project, showing the game running. This includes many audio sources (the spheres with wireframes) and an overhead POV of the starting area.
> The Unity 2019 Project, showing the game running. This includes many audio sources (the spheres with wireframes) and an overhead POV of the starting area.
This jam featured two hard limits (that I was specifically focused on):
  • No more than 15,000 polygons in the entire game.
  • Limited to a single 256x256 trim sheet.
These limits provided a challenge for me. I do enjoy optimization, but these types of limits did present functional restraints that means I'd have to think outside the box.I wanted to go outside the box because I wanted to make a largers or "open" world. I initially had much higher aspirations for what to incldue in the game, though that was limited by the amount of time I had.Either way, how do you achieve an open world within these restrictions?

✨ Reusing assets! ✨

I realized that I could just make a low-poly asset to use as the floor. Then I could tile this infinitely by spawning/destroying them.I believe I explored the spawn/destroy concept in the editor, but it provided subpar performance results. I also believe I learned that spawning/destroying objects was not permitted in VRChat anyways.Instead, I was able to just transform the tiles based on the player position. This unfortunately causes a rare bug where you fall through the floor, because the physics doesn't register your player capsule touching the floor while it's transforming. Despite this, it worked well for both function and performance.
> A video showing the automatic tiling feature in the game.
It is limited to a 4x4 grid here due to performance. The code would run very fast in Mono/IL2CPP, but Udon's assembly makes this particularly challenging. I spent a significant amount of time reducing the number of EXTERN calls and overall just optimizing the UASM. I probably could've gotten away with 6x6, but I also wanted to make sure it could run on Quest (since being Quest-compatible was part of the jam requirements).
© 2025 Kyle Barr - All Rights Reserved