top of page
Under construction.png
itch_32_white.png
logo_github white.png

Production Date

Winter 2023

Production Duration

Current project

Project genre

2D, Action

Team size

03

Zombie Survivor is a 2D Action game inspired by both Vampire Survivor and Risk of Rain where the player must survive the incoming waves of enemies and grow always more powerful.

For this project, I worked on AI, UI, scene management , ensuring the respect of the Unity optimization guidelines and some aspects of the backend and various gameplay elements.

Project details
ALL VIDEOS AND SCREENSHOTS ARE PLACEHOLDERS

Programming

Unity optimisation & Update optimisation

Following the official Unity performance optimization guidelines for console and PC, one goal for this project was to implement as much optimization as reasonable.

Following the Unity guidelines for optimizing the Update loop, an update manager was implemented to centralize all types of updates.

 

This helped in reducing to a minimum the interops from C# into C++ every update tick.

Scriptable Object oriented architecture

Both scene data and Audio mixer parameters were moved under a scriptable object architecture.

A tool allows scene data scriptable objects to be created using the hierarchy of scene assets. Scene data use their respective scene asset name for easy management.

Audio mixer parameters can be used by creating a scriptable object asset which name will serve as the reference to its audio mixer's exposed parameter. This allow for a simple way to centralize the string based parameters.

Localization

A tab separated file was used to create and update localized lines of text for the UI and the tutorial.

The tab separated file is organized in a way that allows for an easy understanding of the context under which the line is localized with a note section and headers for each language to localize the line under.

Any tab separated file can be passed through the system to return a dictionary or lines localized under specific languages.

User login & Backend

This project allows the creation of a user account as well as the storing and retrieval of persistent data.

The tutorial, for example, will only be played once per account.

Back4App, a backend specific web application, was used as the external database.

Scene management

Scenes are loaded in an asynchronous manner.

An architecture of scriptable objects was used to create and use Scene Data.

The addressable system is used to manage the loading and unloading of the scenes.

 

The system allows for an easy switch from and to the default asynch scene loading.

Automated test

A system that automatically plays the game was created to grant an easy way to test the game for both developers.

The system uses an approach similar to that of the Chain Of Command pattern. Actions are added to the player controller based off of conditions for the specific test. If any test fails, the next one in the chain checks if it can be used and so forth.

Credits

Visuals

Who did what

  • Sébastien (Ludwell)

    • AI

    • UI

    • Scene management

    • Implementation of Unity optimization guidelines

    • Audio

    • User login & Backend

    • Level and game design

    • Misc

  • Marc-Antoine (Power Key)

    • Three Cs

    • Gameplay

    • Persistent data & Backend

    • Level and game design

    • Misc

  • Marie-Maxime Giguère

    • Characters arts

  • Benoit Laroche

    • Music

bottom of page