
Arenascale VR for Arcades

Fennec Labs specializes in a platform they develop called Spawnpoint, a software that permits easy and quick setup to hook up multiple VR headsets into one locally networked arena. Players can walk around the physical room space and see each others’ avatars synced with fun games or immersive educational simulations built for them to experience simultaneously. Fennec Labs still stands as the most stable and flexible platform for this compared to its competition.

DeadCorps Zombie Roguelike

Since the game needed a lot of entities, we conglomerated together Unity assets from Behaviour Designer, and A*Star Pathfinding Project Pro, which have fantastic integration with each other to quickly and flexibly develop enemy behaviours. These two projects gave us the best performance and scalability needed to let low end CPU hardware move about the zombies in a multiplayer networkable manner.
I was responsible for designing, implementing and programming the behaviour trees for the zombies, especially the Licker and Sludge zombies, which had to choose a zone on the map to launch their projectiles from. I even gave them fallback behaviour to choose a new zone if they lost line of sight of any players. The zombies also throw damage at barriers if they’re the foremost of their crowd.

VRCore for Education

Most of my time spent on this project was for performance assistance. Since the game arrived to our studio in an abandoned state, we wanted to ensure it could scale to up to 35 players from a single classroom all in one 300 square foot space. However the framerate of some of the experimental game modes were atrocious. Using Unity’s profiler connected remotely to the Android based operating system on each VR headset, I investigated the issue for days.
I eventually found the main problem was tied to physics. If all those players spawned in the arena without changing position (such as if a headset lost tracking), they could conglomerate to a single location, causing their colliders to overlap each other every frame; all those player models at once. After ensuring the player colliders would be turned off in that state, we fixed the main framerate issue.
Unreal and its JSON + Websocket Quirks
I was responsible for porting Fennec Labs’ Spawnpoint SDK from Unity to Unreal, a plugin of which needed to utilize WebSocket to communicate JSON messages to and from the Spawnpoint system. However, along the way, we discovered that Unreal’s current Websocket library hard codes the packet length value to 0, and its JsonUtilities library does not support nested object arrays either.
So I had to roll our own serializers for some of the SDK, and had to workaround the packet issues. All in all, for my first experience with Unreal C++, it was a worth while development as Fennec Labs was able to take on clients who provided their own games in Unreal Engine. Developers could have their games remote controlled by the Spawnpoint server in the arcade’s local network now in two engines instead of Unity alone.
All Spawnpoint screenshots and the game content therein are copyright (C) Fennec Labs 2024.

Leave a Reply