18/09/2026

Current Status

Project: RUSTWAKE

# RUSTWAKE — COMPLETE DEV LOG

## Current Status

**Reference version:** `v4.10.1_MAIN_MENU_VISUAL_FIX`

RustWake has evolved from an arena prototype packed with static assets into a much more focused structure:

**Top-down roguelite → modular Bodycraft → wave-based combat → enemy-generated wrecks/salvage → component choice → station → build modification → next sector.**

The project is not yet content-complete, but the core gameplay and visual direction are now much more clearly defined.

---

## 1. Technical Foundations and Build Cleanup

At the beginning, the project had become very heavy because of huge original assets, WAV files, historical versions, and development material included in the runtime folder.

A first major production pass was completed:

- music converted from WAV to OGG;
- oversized environmental images reduced;
- main assets brought down to more reasonable runtime dimensions;
- old tests, audits, and unnecessary material removed from the build;
- lighter complete portable versions created;
- separation introduced between full builds and incremental patches;
- `NEXT_CHAT_HANDOFF` documents introduced to maintain continuity between sessions.

From that point onward, every major version began to have a full build and, when useful, a separate patch.

---

# 2. First Phase: Arena Rich in Physical Objects

RustWake's first direction involved many physical objects in the arena.

Many environmental assets were created and integrated:

- destroyed vehicles;
- convoys;
- cranes;
- checkpoints;
- radar installations;
- factories;
- foundries;
- reactors;
- communication towers;
- ruins;
- military installations;
- laboratories;
- biomechanical structures;
- sector-specific landmarks for all five sectors.

The five sectors were:

**SCRAP → FOUNDRY → NETWORK → WAR → CORE**

The assets were not just images. Many were connected to:

- collision;
- HP;
- projectile damage;
- RAM;
- explosions;
- destruction;
- rubble;
- drops;
- hazards.

A different procedural distribution was also created for each sector.

---

# 3. Grounding and Removal of Fake Props

The main problem with that direction emerged visually.

Objects often looked:

- glued onto the asphalt;
- like they belonged to different art styles;
- too large;
- too decorative;
- ambiguous in terms of what actually had collision.

Several cleanup passes were therefore carried out.

Many fake decorative objects were removed from the renderer, such as:

- random scrap piles;
- spools;
- cables;
- purely decorative barricades;
- small props with no function.

What remained were mainly decals that were genuinely compatible with the floor:

- cracks;
- oil;
- skid marks;
- wear;
- burn marks.

Grounding was also improved with:

- contact shadows;
- dust blending;
- ambient tint;
- stronger shadows;
- more consistent footprints.

Despite this, some assets continued to degrade the overall image.

---

# 4. Fundamental Pivot: Enemy-Driven Arena

This is probably the most important design decision made so far.

After mathematically analyzing the value of obstacles, it was decided to **remove static environmental obstacles from the core of the arena**.

The new philosophy is:

**The arena is not full of wreckage before the battle.**

**The battle creates the wreckage.**

The role previously handled by obstacles was transferred to enemies.

New structure:

**clean arena → enemy spawn → combat → destroyed enemies → wrecks → salvage → arena transformed by the battle**

---

# 5. Mathematical Rebalancing of the Enemy-Driven Arena

The obstacles were not removed by simply deleting them.

Their contribution was calculated in terms of:

- spatial pressure;
- scrap;
- materials;
- cover;
- wrecks;
- hazards.

The new enemy curve was set approximately as follows:

**SCRAP:** +22%

**FOUNDRY:** +18%

**NETWORK:** +12%

**WAR:** +8%

**CORE:** +5%

The enemy pool was increased from roughly:

**40 → 48**

Wreck probabilities were increased:

**normal:** 30% → 45%

**heavy:** 72% → 85%

**boss:** 100%

An Enemy Salvage Budget was also created to replace the economy previously generated by structures.

Targets:

**normal wave:** about 26 scrap

**boss wave:** about 30 scrap

This made it possible to preserve the roguelite economy without returning to static obstacles.

---

# 6. Wrecks and Cannibalization Become Central

Enemy wrecks are no longer just decoration.

The system already allows wrecks to be used to obtain:

- scrap;
- repairs;
- coolant;
- recovery;
- run economy.

The future direction is to make this mechanic even more central.

The battlefield should tell the story of what happened.

An arena that starts clean can progressively become filled with:

- wrecks;
- debris;
- scorch marks;
- mechanical corpses;
- salvage.

---

# 7. Turrets: Complete Redesign

The old turrets were one of the longest-running problems in the project.

The first versions:

- were not consistent with RustWake;
- looked like they came from another game;
- had incorrect scale;
- were not readable enough;
- some changes had even introduced boot regressions.

After several rollbacks, an important rule was adopted:

**visual animations must not modify DeployableManager logic.**

The final turrets began following the same principle as enemies and chassis:

**authored top-down sprites + continuous rotation toward the target.**

Two separate families were created.

### Ballistic Turret

It has:

- tracking;
- continuous rotation;
- recoil;
- muzzle flash;
- casing/ejected shell;
- sparks;
- smoke;
- a readable barrel;
- a physical silhouette.

### Energy Turret

It has:

- pulsing core;
- charge;
- sparks;
- energy ring;
- impulse;
- arc;
- chain arc;
- post-shot dissipation.

Readability was later improved by moderately increasing scale and footprint.

---

# 8. Physical Turret Collisions

Originally, the Bodycraft could pass through deployed turrets.

This was fixed.

Currently:

**ballistic:** about 28 px collision radius

**energy:** about 26 px

The player now physically collides with turrets.

The following placement check was also added:

**TOO CLOSE TO BODYCRAFT**

to prevent a turret from being placed directly underneath the player.

Mines and bombs remain passable.

---

# 9. Deployable Selector HUD

Another important issue was that, when using a controller, it was unclear which deployable was selected.

A persistent HUD was therefore added with:

**LOADED**

and information about:

- deployable name;
- icon;
- cost;
- status;
- enough/not enough scrap;
- available slots;
- the full deployable cycle.

The current cycle shows:

**TUR → MINE → BOMB → ARC**

The system also displays the controller's actual bindings.

When the player switches input device, more noticeable feedback appears.

Example:

**LOADED // DEMOLITION BOMB // 20 SCRAP // READY**

---

# 10. SRADRAVEN Splash Screen

A branded opening screen was introduced before the menu.

The first implementations had problems:

- black screen;
- missing redraw;
- input being captured by the menu underneath.

After several fixes, the splash screen was turned into an independent overlay above the already initialized menu.

The correct concept is:

**game boot → menu built → splash CanvasLayer → input press → splash removed → menu already ready underneath**

This avoids altering the menu state machine.

The splash screen uses SRADRAVEN branding and accepts input from:

- controller;
- keyboard;
- mouse.

---

# 11. End-of-Wave Reward: Return to 3 Cards

During the enemy-driven pivot, the main components accidentally ended up on carrier enemies.

This caused a problem:

if a component had already been recovered during the wave, the game considered the reward resolved and skipped the classic three-card choice.

The correct loop was restored:

**COMBAT**

**↓**

**END OF WAVE**

**↓**

**3 COMPONENT CARDS**

**↓**

**CHOOSE 1**

**↓**

**EQUIP / KEEP**

**↓**

**STATION**

**↓**

**NEXT WAVE**

Main rewards are no longer consumed by enemies.

Bosses still retain the special module extraction system.

---

# 12. Main Menu: Separation Between Gameplay and Configuration

The previous menu displayed too many decisions at once:

- mode;
- chassis;
- protocol;
- campaign;
- tutorial;
- leaderboard;
- credits;
- options.

The result was hard to read.

A new hierarchy was therefore introduced.

The main menu should now primarily communicate:

**CONTINUE CAMPAIGN**

**NEW CAMPAIGN**

**ENDLESS**

and then, as secondary content:

**TUTORIAL**

**GUIDE**

**LEADERBOARD**

**CREDITS**

**OPTIONS**

**QUIT**

---

# 13. New Campaign

Important decisions should no longer be spread across multiple pages or mixed into the main menu.

The `NEW CAMPAIGN` screen brings together:

**CHASSIS**

**PILOT**

**CONTROL**

**PROTOCOL**

and finally:

**START CAMPAIGN**

The right side shows the resulting Bodycraft and the pilot profile.

This structure is much more consistent with a roguelite.

---

# 14. Continue Campaign and Roguelite Checkpoints

A checkpoint system was introduced to enable a true `CONTINUE CAMPAIGN`.

The checkpoint is saved during a safe phase.

It preserves elements such as:

- wave;
- sector;
- scrap;
- heat;
- chassis;
- pilot;
- protocol;
- control mode;
- equipped components;
- inventory;
- component integrity;
- relics;
- route modifiers;
- main run counters.

If the run ends, the checkpoint is deleted.

If the player starts a new campaign, the previous checkpoint is replaced.

---

# 15. Branding and Menu Visuals

The new RustWake logo was introduced based on the requested visual identity:

- white metal;
- rust/orange;
- black;
- energy cyan;
- post-apocalyptic industry.

A menu background based on the RustWake art/banner was also created.

Version v4.10.1 fixed several issues from the first iteration:

- background too neutral/beige;
- oversized logo;
- overlapping visual elements;
- old text still visible underneath the new layout;
- clipped buttons;
- weak hierarchy.

The current menu should still be considered **in the polishing phase**, not final.

---

# 16. Font

The rendering of the existing font was improved using:

- dedicated sizing;
- tracking;
- outline;
- stronger hierarchy.

A definitive new industrial font has not yet been introduced.

This is still an open point.

---

# RUSTWAKE ROADMAP

## P0 — Stabilization

Immediate objective: stop adding systems until the current loop is fully stable.

To verify:

- boot;
- splash;
- menu;
- new campaign;
- continue campaign;
- checkpoint;
- waves 1–30;
- 3-card reward;
- station;
- boss;
- endless;
- saves;
- controller.

**Definition of Done:** a complete run can be played without blocking bugs.

---

## P1 — Final Main Menu

Version v4.10.1 is an intermediate step.

To complete:

- final menu composition;
- proper licensed industrial font;
- final logo;
- light menu animations;
- more visible controller focus;
- transitions;
- more readable continue card;
- more cinematic new campaign screen;
- larger chassis and pilot preview.

**Definition of Done:** when entering the game, the player understands how to start or continue a run in under 3 seconds.

---

## P2 — Final Run Loop

The core loop must become bulletproof:

**menu**

**→ new campaign**

**→ wave**

**→ reward**

**→ station**

**→ route**

**→ next wave**

To test:

- 3-card reward is always present;
- no rewards are lost;
- station is always accessible;
- routes cannot be skipped;
- checkpoint is always consistent.

**Definition of Done:** no phase of the run can be skipped accidentally.

---

## P3 — Combat Feel

With a cleaner arena, the focus can now truly shift to combat.

To improve:

- hit stop;
- recoil;
- explosions;
- enemy death feedback;
- wreck spawning;
- controlled screen shake;
- RAM impact;
- muzzle flash;
- projectile readability;
- sound design.

Target:

**RustWake must feel heavy, mechanical, and violent.**

---

## P4 — Enemy Roster

Now that static obstacles are no longer the focus, enemies must provide the variety.

To develop further:

- swarm;
- ranged;
- tank;
- charger;
- artillery;
- support;
- jammer;
- repair unit;
- suicide/explosive;
- elite variants.

Each sector must have a distinct enemy signature.

---

## P5 — Wreck / Salvage 2.0

The wreck system can become one of the game's defining features.

Roadmap:

- light wreck;
- medium wreck;
- heavy wreck;
- boss wreck;
- unstable wreck;
- energy wreck;
- component salvage;
- coolant salvage;
- scrap salvage;
- cannibalizable carcasses;
- carcasses that temporarily become cover.

The arena must change during battle.

---

## P6 — Chassis Identity

Each chassis must genuinely change how the game is played.

Not just the numbers.

Examples:

**SCRAPPER**

salvage / economy.

**BULLDOZER**

RAM / armor.

**SIGNAL**

deployables / control.

**FOUNDRY**

heat / overdrive.

**ENGINEER**

utility / repair.

**WRAITH**

mobility / precision.

Objective: the player should recognize the chassis even without reading the stats.

---

## P7 — Pilots

Pilots must become a second roguelite layer on top of the chassis.

Each pilot should have:

- identity;
- portrait;
- passive;
- main advantage;
- disadvantage;
- chassis synergies;
- unlock condition.

The combination:

**Pilot + Chassis + Components**

must generate very different builds.

---

## P8 — Components and Build Diversity

The component system is central.

To expand:

- more weapons;
- thermal modules;
- sensors;
- reactor/core;
- processor;
- mobility;
- armor;
- utility;
- boss parts;
- anomalous tech.

Objective:

no run should always have the same optimal build.

---

## P9 — Bosses

Each sector must have a truly recognizable boss.

Boss roadmap:

**SCRAP:** machine assembled from wreckage

**FOUNDRY:** forge engine / molten machine

**NETWORK:** autonomous signal intelligence

**WAR:** siege platform

**CORE:** machine core / apex entity

Each boss should leave behind:

- a unique wreck;
- a boss module;
- specific VFX;
- dedicated music/beat.

---

## P10 — Sectors

Now that hundreds of obstacles are no longer needed, sector identity can be built through more controlled elements:

- floor;
- lighting;
- color grading;
- background;
- VFX;
- enemies;
- audio;
- hazards;
- UI accent;
- boss.

This is much more sustainable than creating 100 static objects.

---

## P11 — Audio

A proper audio pass is needed.

Focus:

- Bodycraft engine;
- weapons;
- impacts;
- ricochets;
- cannon;
- energy weapons;
- turret servo;
- electric charge;
- RAM;
- wrecks;
- salvage;
- UI;
- boss warning;
- music transitions.

Audio can do a great deal to increase perceived production value without making the visuals heavier.

---

## P12 — VFX

Create a coherent RustWake library for:

- sparks;
- smoke;
- fire;
- plasma;
- electricity;
- explosions;
- debris;
- dust;
- coolant;
- heat;
- salvage;
- boss effects.

Important: no VFX that look like they come from different art styles.

---

## P13 — Complete UI / UX

After the menu:

- combat HUD;
- deployable HUD;
- station;
- reward cards;
- route choice;
- boss reward;
- inventory;
- guide;
- leaderboard;
- results screen.

All of them must share:

- font;
- palette;
- borders;
- icons;
- spacing;
- hierarchy.

---

## P14 — Meta Progression

Strengthen:

- chassis unlocks;
- pilot unlocks;
- protocol unlocks;
- achievements;
- records;
- progression profile;
- possible codex.

But without turning RustWake into a permanent grind.

The run must remain the core experience.

---

## P15 — Endless

After wave 30:

- scaling;
- Apex waves;
- mutators;
- anomalous tech;
- escalating enemy mixes;
- boss remix;
- separate leaderboard.

Endless must become the ultimate test of builds.

---

## P16 — Performance and QA

Before release:

- profiling;
- enemy pooling;
- projectile pooling;
- wreck cap;
- debris cap;
- audio voice cap;
- memory;
- controller regression;
- resolution tests;
- 16:9;
- window/fullscreen;
- corrupted saves;
- crash recovery.

Target: stable frame time even during the densest waves.