Viretron: Engineering Case Study
Viretron: Collaborative 2D Action Platformer
Viretron is a collaborative pixel-art platformer built in Godot, set in a dystopian world blending cyberpunk and biopunk. Players follow Vire, a cyborg who awakens without her memories, fighting hostile creatures and gaining augmentations as she uncovers her identity.
I served as the project’s engineer, implementing gameplay systems including health, combat, projectiles, checkpoints, hazards, and pickups. My work connected player interactions with game logic and interface feedback. The sections below highlight my engineering contributions.
Initialization & Game State Management
This sequence demonstrates the technical bridge between the main menu and the active gameplay environment. I engineered the initialization logic to ensure all player variables, camera bounds, and world assets load correctly before the player takes control.
Health & Player Feedback
I implemented the player’s health system, tracking damage from hazards and recovery through healing. Health changes update the interface immediately so players can see the effect of each interaction.
Melee Combat & Collision Detection
I implemented melee combat using hitboxes and hurtboxes to detect when weapon swings connect with enemies. The collision logic registers hits during attacks, linking the player’s actions to damage.
Projectiles & Collision Handling
I implemented the lifecycle and collision logic for physics-based projectiles. Before applying damage, the script checks whether the target supports the required damage method, avoiding invalid calls when a projectile hits other objects.
Checkpoints & Respawn
I implemented a checkpoint system that updates the player’s stored respawn position when activated. A material change provides immediate visual feedback, showing players that the checkpoint is active.
Hazard Animation & Cleanup
I implemented a hazard script that checks for available animations before playing them. A timed cleanup using Godot’s await logic removes the hazard instance after its active lifetime.
Shrink Pickup & Player Detection
I implemented a pickup that activates the player’s shrink ability. The system detects entities assigned to Godot’s “Player” group