Project outline
Quarx is a Quake-like multiplayer first person shooter.
You are a T-Posing monkey (surely a design decision and not because I did not want to animate it XD) running around with a "banone" that shoots bananas.
This was the last big final project of my school time and, in coding terms, honestly way more absurd than I gave it credit for back then.
Trailer
The trailer itself is not one of my favorites, especially compared to Speed of Needs, but it is still a good way to showcase what this thing actually was.
For some context: I do know that this trailer seems disorienting. What you are supposed to see is two players (red and blue) searching each other in the arena until they meet very dramatically.
I was not sure how to capture a multiplayer fight when recording this alone.
A multiplayer final project
Unlike Speed of Needs, this one was not just me doing whatever I wanted. It was a school assignment and it had to be multiplayer.
That was not exactly ideal timing.
This project was made in early 2021, so COVID had already messed with a lot of things and we never really got properly taught multiplayer development at school because of that. On top of that, Unity did not really have its own straightforward built-in multiplayer workflow for what I needed, so this project ended up relying on Mirror.
To this day, I thank my boy Dapper Dino. I genuinely believe that without those tutorials I would not have made it through the final exam.
The gameplay loop
You start in a lobby.
You choose whether you want to host or join. If you host, localhost:7777 starts listening and other players in the same local network can join. You also enter your player name there.
Inside the lobby, everyone can ready up. Once all players are ready, the actual match starts and a countdown begins.
From there, it is a straightforward team-based arena shooter. Red versus blue. Up to 10 players, so 5 per team.
After a certain amount of kills, the round ends and the winning team is announced.
Bananas instead of violence
One of the assignment constraints was that the game had to avoid actual depictions of violence and still make sense with a lower age rating.
So instead of soldiers or realistic weapons, the player characters became monkeys and the weapon became a banana cannon banone that shoots bananas.
Also, players did not really die. They got banan't.
The original idea behind that was basically that getting hit worked more like being tagged in paintball. You get hit, you are out.
Style and direction
Aesthetically, this was very much cyberpunk 2077 inspired.
Yellow glitchy UI, neon lighting everywhere, random NCS cyberpunk tracks blasting in the background, shiny surfaces, strong red-blue contrast, all that stuff. The lighting especially still goes kind of insane. Even now I think the level actually looks really nice.
That direction was not just in the environment either. The menus, lobby, HUD and naming screens all followed the same look, so even though the actual premise was a monkey arena shooter with banana weapons, the whole thing still had a surprisingly consistent presentation.
The lobby background video shows the environment in a more cinematic way than static screenshots can.
I still remember that getting the lighting right caused more trouble than expected since there were lightmap baking issues early on.
Based on some notes I've found I even had to check whether I was allowed to move to a newer Unity version just to get things under control. At some point I finally got it working, tested ProBuilder a bit more seriously, and from there the level started coming together properly.
Lobby background video
A lot of images
Fulfilling guidelines
A GDD was mandatory for the project too, but sadly I cannot find it anymore. Would have been nice to publish it here as well, similar to A Merchant's Life.
From the old backlogs I still have, the original scope was actually bigger than what made it into the final version. The plan included multiple levels, more weapons, projectile models, decorative objects, a jukebox, a buy system and an inventory system.
So yes, the final thing is already a lot, but it was also still a cut-down version of itself as it's relatively normal in game development.
Some difficulties
The multiplayer side was by far the hardest part.
At the time, that whole networking layer felt massive and honestly pretty overwhelming. Even getting a second player to join through localhost already felt like a breakthrough. Then of course came the usual weird stuff: transforms syncing, rotations behaving differently for observer clients, and all the other smaller issues that start appearing once one game suddenly has to exist on more than one machine.
I also remember the level building and lighting causing problems, but compared to the networking side, those felt more manageable.
What got cut
A few planned systems never really made it in the way they were intended.
The biggest ones were the buy system and the inventory system. There were also supposed to be more weapons, more projectile models, more decoration and around two to three selectable levels. In the end, time only really allowed one finished level.
I also got really sick during the last two weeks of development, which absolutely did not help.
So while the final result works and feels surprisingly complete, it definitely still has the roughness of a project that had to survive rather than a project that got polished forever.
What I learned from it
Of course, the biggest learning experience was multiplayer.
But more than that, Quarx was also one of those projects that showed me how much hidden structure a game can have once it moves beyond a few isolated systems. Speed of Needs, for example, had a car controller, some UI handling, timing, and a few surrounding scripts.
Quarx was a different beast entirely.
Coming back to it now, I see objects with what feels like ten scripts attached to them and barely remember what all of them were even doing anymore. That alone says a lot about how much more complex this project really was.
How I feel about it now
For a long time, I was weirdly not that proud of Quarx.
I think part of that was simply because I never liked the trailer as much as the one for Speed of Needs, and because the whole thing always felt a bit too chaotic for me to look at clearly.
But revisiting it now and writing about it again made me realize what a miracle project this actually is.
In pure coding terms, Speed of Needs is nothing against this. That is not meant as disrespect to Speed of Needs at all, it'll probably stay my favorite, but just as a reminder of how absurd Quarx really was for where I was at back then, My respect for this project has grown again by quite a lot.
Current state
The project itself still kind of works in the editor, but the actual build is broken by old Unity, Mirror and general project rot. Video support inside the project is basically broken, the Linux building process has dependency issues, and runtime lobby hosting runs into Mirror reader/writer errors.
Which is especially frustrating because this is a multiplayer game that could still be fun to play with friends if it was in a properly working state.
If I ever manage to fix that, I would like to clean it up, remove assets I am unsure about, and publish a final version somewhere. In contrast to some of the other old projects, a lot of Quarx was actually done by me.