
In this isometric 3D stealth puzzler, you embody a computer virus. Infiltrate the system, evade antivirus and use your skills to outsmart the security systems!
Trailer
Goals
With V.I.R.U.S., we had one goal in particular. Create a full game from start to finish, without any crunch whatsoever—even if that means keeping the scope of the project small. The game still had to be fun and engaging to the player and have a reasonable amount of content. Our goal was for it to feel like a game that could get released, not just a prototype or vertical slice.
Specs
Screenshots
My Tasks
Introduction
I helped create the core vision and gameplay loop of the game in cooperation with the producer and the game designer while also helping to decide the visual theme of the game.
On V.I.R.U.S. I was alone as a programmer again. I was responsible for pretty much creating the whole game logic. This time including things like the character controller, a more sophisticated interactable system, a stealth system, pathfinding, AI, and a boss fight.
On top of that, I was yet again in charge of the whole GUI and main menu and lots of visual effects.
Pathfinding & AI
For the moving packages and some of the enemies in this game, I created a node-based pathfinding solution. The level designer could place nodes and connect them with each other.
For the actual pathfinding, I didn't use A* but the Dijkstra algorithm. Calculating the paths also runs on the main thread and is not multithreaded. It was way simpler for me to implement it like this back then and was sufficient for the project, since the levels are mostly pretty small and entities didn't have to calculate paths a lot.
Packages would drive along the defined paths like a car would on a road. Staying on the right side, blinking when approaching a turn, braking when an obstacle is right in front, etc. The sentry units that defend the system would also make use of the nodes, but since they are flying units, they are able to use shortcuts and use special nodes just for flying entities.
A heat system is in place that tracks how many times the player got spotted if a firewall exists in the current level. When the player gets spotted, an alarm signal gets scheduled that informs nearby sentries to look for the intruder.



Interactable System
The interactable system I created for NOLA got reused and expanded upon. Now we could define options on a per-object basis. This time the interactions with objects would invoke an ability from the player. Additionally, multiple options were now possible. For example, the player could use a scout ability on packages to attach the camera to the package and follow it for a short time. Or use other abilities to hijack or change the color code of the package. On security towers, the player could use the irritate ability to make them check for different color-coded packages and therefore send false alarm signals.
There were a lot of gimmicks, mechanics, and opportunities to explore with such a system, and we had quite some fun trying out different ideas.
Technical Art
For this project I was diving even more into shaders and particle systems. I created the fire effects of the firewall and the final boss. Created a nice generic background for all the levels so that the borders of the level aren't just a black void. And I created shaders for the FOVs of the security towers and outlines when approaching an interactable object.
Post Mortem
All in all, I have to say I am, to this day, very happy with this project. In the end we created a cute small game with a bunch of levels without having to cut much, if any. Of course we had a lot more ideas we would've loved to implement, but the time was just not there.
I started to get the hang of the Unity engine and writing code in C#. This game forced me to dive even deeper into C# delegates and events. I utilized the things I learned in lessons even more and implemented my own pathfinding solution and AI. Additionally, I got better and better at creating user interfaces and visual effects. I am quite proud and thankful for working on this project.
The game received quite a lot of positive acclaim and feedback and eventually helped me to secure my first job in the industry at Reija GmbH. It was actually planned to release the game on mobile devices under the name "Arknet: Virus", and a simple internal prototype got created. Yet the project sadly got cancelled.