The Game Title suggests being the first (Zero) in a mission to restore humanity, implying the protagonist's journey to save both themselves and others.
🔻 Time isn't just running out for humanity - it's running out for you. Will you expose their plan before your mind fractures completely? Or will you become another failed experiment in their quest for perfect control? 🔻
Tik Tok… Tik Tok… Hear that? It’s the sound of humanity’s last breaths. The fight for the future? More like a slow, twisted death rattle.
Protocol: CHIMERA-X Initiated. The first T-virus outbreak taught them a costly lesson. Their dream of a domesticated humanity was shattered by something they never accounted for - human resilience. A single girl with an antidote had dismantled decades of research. They wouldn't make the same mistake again.
The APEX-T Strain wasn't about creating zombies. It was about creating guardians - hyper-evolved enforcers to ensure absolute control. You were meant to be the first of their "Oversight Protocol" - a new breed of enhanced beings engineered to hunt down any spark of resistance before it could ignite. The rabbit genetics weren't chosen for speed or strength, but for their survival programming. The research files revealed their obsession with specific lagomorph traits: heightened threat detection, ability to function in perpetual fight-or-flight state without mental degradation, capacity to remain hypervigilant while appearing calm, and most crucially - the evolutionary adaptability to thrive in any environment while staying undetected. These traits, perfected over millions of years of evolution, made rabbits the perfect template for their perfect predator.
You were never meant to look like this - a grotesque hybrid of human and hare. The original blueprints showed something far more subtle: a perfect human appearance masking enhanced genetics. The final stage was supposed to rewrite your exterior back to human form while maintaining the internal lagomorph adaptations. But the quantum accident interrupted the sequence, leaving you trapped in this incomplete state. Now you're caught between forms - your mutated body a visible testament to their failed experiment. Your enhanced eyesight, augmented muscle density, and advanced fighting strategy capabilities weren't part of the plan. - they were meant to be internalized traits, hidden beneath human skin. Instead, you've become a walking warning of what they're trying to create.
But they never finished. The quantum reactor breach began as intentional sabotage - someone or something in the lower labs broke containment. But what followed was beyond anyone's calculations. The facility's AI detected an anomaly so catastrophic, it triggered a total systems failure. The last thing you saw through your containment chamber was emergency protocols failing as a massive wave of quantum-charged plasma erupted from the particle accelerator chamber - far more devastating than any planned breach could have been. The blast twisted everything it touched, warping the very fabric of space within the facility.
But you weren't the only thing that broke free that day. The quantum cascade ripped through the facility's classified sectors, shattering containment units across all thirteen underground levels. Through the chaos and sirens, you heard them - screams and roars that shouldn't exist in nature. The research logs you've found speak of other programs: APEX-V variants tested on wolves with predatory instincts enhanced beyond recognition. APEX-R subjects spliced with reptilian DNA, their thermal signatures completely masked. Some were deemed 'successfully conditioned' - loyal attack dogs ready to be weaponized. Others were marked 'failed containment protocols' - feral things driven mad by their own mutations.
They're out there now, hunting through the ruins. Some still follow their programming, acting as deadly sentinels protecting the facility's darkest secrets. These 'loyal' ones are almost worse than the feral - they hunt with calculated precision, coordinating their attacks with terrifying intelligence. But the feral ones... they're something else entirely. Driven mad by incomplete mutations, their bodies constantly shifting between forms, they attack anything that moves. You've seen the security footage: whole squads of cleanup teams torn apart by things that used to be human.
The truly haunting part? The logs suggest these weren't failed experiments at all. They were meant to be the cleanup crew - the failsafe if their perfect world of controlled humans ever started to crack. Living weapons designed to hunt down anyone who showed signs of breaking their mental conditioning. Now they're loose, their programming twisted by the quantum blast, creating a deadly maze between you and any hope of a cure.
You can feel them watching. Every shadow could hide a sentinel, every vent could harbor something waiting to pounce. And time is running out - not just for you, but for anyone trying to expose the truth. These creatures are spreading, adapting, hunting. Some are even showing signs of coordinated behavior, as if the quantum blast gave them a savage kind of collective intelligence. The facility's containment protocols weren't just trying to stop an accident - they were trying to prevent an exodus of apex predators engineered for one purpose: hunting humans who dare to think freely.
Now you're trapped between two evolutionary paths, and the clock is ticking against your survival. The fragmented research data tells a grim truth: your interrupted transformation is wildly unstable. Your cells are degrading faster than they can mutate. According to their projections, you have days, maybe weeks before total systemic failure - or worse, complete cognitive collapse. The human consciousness they wanted to preserve in their enforcers is slowly being torn apart by incomplete genetic sequences.
The truth was buried deeper in the scattered data. Project APEX-T was just the beginning - the enforcer program. They knew their plan for mass control would need guardians, and that's where you were supposed to come in. But the real horror lay in the fragments of what they called "Project SUBTLE REIGN." Unlike the original T-virus's obvious mutations, this was something far more insidious. The blueprints revealed a virus designed for invisible subjugation - a pathogen that leaves its hosts seemingly untouched on the surface.
No zombies. No visible mutations. Just perfectly normal human beings, going about their daily lives... except their capacity for independent thought would be surgically stripped away. The research logs were chilling: "Subject maintains all basic functions. Holds conversations. Performs complex tasks. Shows appropriate emotional responses. Yet exhibits perfect compliance to embedded directives."
You were meant to be part of their enforcement protocol - enhanced beings designed to silently eliminate anyone whose consciousness somehow broke through the viral programming. The perfect predators to maintain their perfect illusion. The quantum accident that transformed you also exposed their master plan: a two-pronged assault on human freedom. While SUBTLE REIGN would quietly enslave the masses, the APEX-T enhanced enforcers would eliminate any resistance.
The facility's ruins hold more than just hints of a cure. Every fragment of data reveals another layer of their scheme: automated dispersion systems, contaminated water supplies, modified food chains - all designed to slowly infect populations while maintaining the illusion of normalcy. A world of smiling slaves, never knowing they're imprisoned in their own minds.
Your degrading body is a twisted blessing - it's given you access to mutations they never intended, letting you pierce their veil of secrecy. But these same mutations are killing you. Each seizure brings another fragment of memory loss, each transformation tears more of your consciousness away. The theoretical PROTOCOL: GENESIS might be your only hope, if it exists at all...
| Key | Action |
|---|---|
Left Click |
Attack |
Right Click |
Use Skill |
Tab |
Use Consumable |
| Key | Action |
|---|---|
A |
Move Left |
D |
Move Right |
S (Hold) |
Drop Through Platform |
Space |
Jump |
| Key | Action |
|---|---|
Mouse Wheel Up / Down |
Switch Weapon |
Q |
Weapon Skill 1 |
W |
Weapon Skill 2 |
R |
Reload |
| Key | Action |
|---|---|
E |
Open / Close Inventory |
W / S |
Navigate Up / Down |
A / D |
Navigate Left / Right |
Space |
Select Option |
| Key | Action |
|---|---|
F |
Pick Up / Interact |
F |
Progress Dialogue |
| Key | Action |
|---|---|
Esc |
Exit |
P |
Log FPS |
L |
Profiler Output |
K |
Enable Profiler |
B |
Toggle Bloom |
O |
Debug Stats |
F4 |
Toggle Debug Visualizations |
F11 |
Toggle Scaled Window |
git clone https://github.com/josephchay/restoration-zero.git
cd restoration-zeroYou may choose to setup a virtual environment to manage dependencies.
pip install -r requirements.txtpython main.pyRegarding the modification of save.json file, refer to the Checkpoint Saves Guide for more information.
The level editor is a separate tool that allows you to create and edit stage levels for the game.
For more information on how to use the level editor, please refer to the Level Editor Guide.
When adding a new weapon, create a pixel art for that weapon and place it into the data/images/animations directory
with the pattern name: item_{weapon_name_without_space}, as well as into the data/images/weapons directory in pattern of {weapon_name_without_space}.
For more information regarding the data/images/animations directory, refer to the Sprite Asset Guide.
- Add config for the weapon to
data/config/weapons.jsonfile. - Add item information of the weapon to
data/config/items.jsonfile. - If a range weapon, add the weapon item projectile information to
data/config/projectiles.jsonfile. - If a melee weapon, add a new hitbox information to
data/config/hitboxes.jsonfile.
For more information regarding configuring the json files, refer to the Configuration Guide.
- For melee weapons, the
cartridge_capacityshould be set to-1. - For throwable weapons, the
cartridge_capacityshould be set to-2. - For other weapons, the
cartridge_capacityshould be set to the maximum amount of ammo (per cartridge) the weapon can hold.
If needed, add your weapon path to the locations list in the data/palette_swapper.py file and execute it.
For more information regarding the data/palette_swapper.py file, refer to the Palette Swapper section in the Data Guide.
When adding a new skill, create a pixel art for that skill and place it into the data/images/skills directory
with the name of {skill_name_spaced_using_underscore}.
- Add the item information of the skill to
data/config/items.jsonfile. - Add the skill usage to the respective weapon in
data/config/weapons.jsonfileskill_listattribute, where the first skill isskill_1and the second skill isskill_2.- Make sure to update the
max_rankattribute of the weapon to the number of skills it has.
- Make sure to update the
Note that the skill_1 and skill_2 unlock requirements are based on the weapon affinity as seen in the weapons.json file,
where the calculation for subsequent ones are from the rank property method in Weapon.
- Implement the skill in the
skills.pyfile with a new dedicated skill class that inherits from theSkillclass. - Add the skill to the
SKILLSdictionary in theskills.pyfile.
When adding a new weapon, create a pixel art for that weapon and place it into the data/images/animations directory
with the pattern name: item_{consumable_name_spaced_with_underscore}, as well as into the data/images/consumables directory
in pattern of {consumable_name_spaced_with_underscore}.
- Add item information of the weapon to
data/config/items.jsonfile. - Add the consumable as dropable in
destructables.jsonfile.
- Implement the consumable in the
consumables.pyfile with a new dedicated consumable class that inherits from theConsumableclass.
- The Unexpected Ending
- Realization that it was all an experiment on the protagonist, and see how they react to the entire fabrication of his reality. Everything from the quantum reactor breach to the fragmented blueprints and laid out resources was all part of the experiment.
- Back to Square One
- The protagonist finally (after winning) end up into another laboratory of the exact same layout and type of the old one, with doctors congratulating the protagonist for the success.
- Toast message system for displaying messages as a layer on top of the game world.
- Remove black color text outline from text.
- Respawn mechanic saved location for player after death.
- After normal death by kill.
- After falling to a certain threshold below the lowest possible tile of the map.
- Transition effect to the saved location of exact world map.
- Inventory menu
- Automatic vertical scroll (initial ones fading out and pulling the next ones) effect for items list after hovering over a certain item count.
- New option for each item to allow the user to drop the item (then back to the 'Item Drop' phase).
- New submenu containing
drop one,drop all, andbackoptions for each droppable item.
- New submenu containing
- Add inventory capacity limit.
- Main menu panel.
- Buttons for Play, Settings, and Quit.
- Interactive background without health UI, weapons, minimap, and player actions, etc.
- Settings panel.
- Enable toggle option for automatic / manual respawn upon death.
- Disable only making equipped weapon to be visible from the weapon list of the top left corner of the game.
- Grenade.
- Pixel art.
- Explosion effect with physics on surrounding items.
- Rare and only found in certain crates.
- When player throws the grenade, it should have the "pin" ejected like how the revolver shell is ejected.
- Tracker shown on the minimap when thrown.
- Allow user to
left_holdthe grenade to enable the cooking timer countdown before throwing it. - Add a new item hotbar box to the left of the center one with just slightly some space. This can be animated to show cooking time.
- Equipped weapons list
- Currently used weapon slightly larger than others.
- Sliding transition effect when switching weapons.
- Make the final "Superpower" (fourth) shot for the weapon special ability 2 "FOUR" also perform pushback on the player like the first 3 shots.
- Music and Sound FX.
- Item Drops
- Make disposed items such as pin and shells from weapons to be dropped as collectible items.
- Check the lowest tile by a certain chunk size instead of the entire map around the player's current position to determine death.
- Split up the grenade into a separate type of munitions.
- Key Commands
- Add a key command to toggle for debug visualizations in game.
- Particle Effects
- For grenades (and possibly future throwables) as they bounce off the ground, just like for the player walking.
- Bloom Effects
- Add bloom effect to enemy projectiles.
- Add bloom effect to melee weapon attacks (
Arcclass invfx.py).
- Portal (door) on far right in
outpost.jsonworld map config.- Fix it as its unseeable and uninteractable.
- Currently going through in a loop into
wz_4.jsonandoutpost.json. Create new world map to portal to.
- Interactables
- When player moves in-and-out of a certain range of an interactable, the interactable text animation looks glitchy.
- When multiple interactables are grouped together, player swaying left and right makes the interactable text animation look glitchy.
- Fix: When player interacts with an NPC, the player should not be able to move / and prior registered movement should be canceled.
- Entities
- Add a final boss (with cutscenes).
- HUD
- Upon death, make health bar, weapons list, and hotbar to fade out and come back upon granting respawn permission.
- Camera
- Enable temporary camera tracking onto piercing projectiles.
- Weapon and Skill Systems
- Do
TODO: attach weapon info to projectiles and hitboxes and use that data instead of checking current weaponinplayer.py. Currently, when a player kills an enemy, the game increases the player's "weapon affinity" value for the currently equipped weapon. - Create levels using tracked affinity value, bringing in more perks and abilities to the weapon as levels increase.
- Implement "Worn" and "Broken" weapon states - make the weapon degrade over time and use.
- Add shotgun
Franchi SPAS-12. - Add grenade launcher
M79. - Add crossbow.
- Obsidian Knife
- Skill:
Assassinate- Currently VFX (circle and sparks) are hard-drawn into the pixel art, make it dynamic with actual VFX code.
- Skill:
- Add AWM sniper.
- Skill:
Deadeye! Deadeye! Deadeye!- Shoot through multiple enemies.
- Skill:
- Add
Dirgemire Blade- blade that drips with sorrow, bound to the restless dead- Each hit causes the enemy to further take a percentage of the damage dealt twice.
- Have a unique flaming particle effect when its in idle state (equipped but not being used).
- Skill:
Incendiary Strike- For the next 5 seconds, each hit with the blade will ignite the enemy, dealing damage over time. - Skill:
Eidolon Moribund- Spawns an ally soul decoy that mimics and move, attacks like the player and distracts the enemies.- Use good algorithms, and tactics for the AI.
- Add
Bazooka- Rocket launcher.- Skill:
Rocket Jump- Shoot at the ground to propel the player into the air. - Skill:
Cluster Bomb- Shoot a tracking bomb which will first lock onto the enemy and then follow when shot.
- Skill:
- Magazine types
- short mag.
- standard mag.
- extended mag.
- drum mag (for explosive shooting weapons).
- Cycle wheel effect for weapon list when scroll switching.
- Add scope item for weapons that can be added with scopes.
- Improved accuracy and range.
- Do
- Weapon abilities
- Upon the unlock of any ability after hitting the required weapon affinity, use an aesthetic toast and particle effect to show the unlock.
- Cursor
- Different cursor crosshair for different weapons.
- Items
- Consumables
-
Veil Brew Potion- allows player to be invisible for a short duration.
-
- Consumables
- Shop System
- Maps dedicated as shops, where transactions can be made.
- Tokens / coins gained via itemdrops from destructables or enemies.
- Ally System
- Add prototype allies where the player can find and recruit allies to help them in combat.
- Can be bought with tokens / coins.
- Player Decoy
- Allow user player to "swap" bodies with the player Decoy.
- Death of player depends on last body (decoyed body will not cause player to die).
- Allow player to see inventory of decoy AI.
- Make decoy follow closely to the player.
- Allow user player to "swap" bodies with the player Decoy.
- Debugging
-
F4key command to toggle debug visualizations in game. - Debug visualizations for lowest chunk point in tilemap.
- Debug visualizations for grenade damage radius.
-
For a detailed changelog, please refer to the CHANGELOG file.