An episodic 2D top-down survival role-playing game simulating quarantine protocols, resource scavenging, personal protective equipment (PPE) management, and biological pathogen defense.
- Project Overview
- Storyline & Episodic Progression
- Key Features & Mechanics
- Default Controls
- Technology Stack
- Project Directory Architecture
- Getting Started & How to Run
- Resolved Issues & Quality Improvements
- PBL Educational Value
- Credits & Attribution
Strain-X is an interactive 2D top-down story-driven RPG game built on the Godot Engine. Designed as an educational and immersive Problem-Based Learning (PBL) simulation, the game places players in the shoes of an everyday citizen during the sudden outbreak of a dangerous biological virus named Strain-X.
Players must balance family survival, community awareness, and hostile threats by:
- Scavenging essential rations and medical supplies from grocery stores.
- Donning appropriate Personal Protective Equipment (Cloth Masks, Surgical Masks, Face Shields).
- Defending against mutated infected creatures ("Volatiles") and boss entities ("Carnage") using sanitizing tools and UV weapons.
- Navigating interactive moral and quarantine decisions across a 3-day story arc.
| Episode | Objective | Key Events & Challenges |
|---|---|---|
| Day 1: The Outbreak | Secure essential supplies | Wake up to emergency broadcast; talk to family (Mom, Dad, Sister); venture out to the local grocery store; gather canned goods, cereal, and masks; safely return home before nightfall. |
| Day 2: Community Spread | Assist vulnerable neighbors | Rising infections in the street; interact with neighborhood residents; gather medical supplies and PPE; combat aggressive early-stage Volatiles. |
| Day 3: The Final Stand | Secure the bunker | High-stakes infected surge; confront the mutated apex organism Carnage in a multi-phase boss fight; protect family retreat into the emergency survival bunker. |
- Category-Based Items: Consumables (Vitamins, Cherries, Cereal, Canned Goods), Defensive Equipment (Cloth Masks, Surgical Masks, Face Shields), and Weapons (Alcohol Spray, UV LightSaber).
- Stacking & Equipping: Real-time slot-based inventory with drag-and-drop mechanics and statistical buffs (health restoration, speed modifiers, damage resistance).
- Alcohol Spray: Ranged disinfectant attack effective against airborne contagion and minor Volatiles.
- UV LightSaber: Close-range ultraviolet sterilizing blade to neutralize viral mutations.
- PPE Mitigation: Reduces infection tick damage and collision impact from viral hazards.
- Rich JSON-driven dialog system featuring typewriter text animations, portrait displays, character dialogue branching, audio cue triggers, and seamless scene transitions.
- Pixel-art aesthetics with dynamic lighting, day-to-night environment transitions, tension-building BGM, and sound effects for footsteps, combat, and monster screeches.
| Action | Primary Key | Alternate Input |
|---|---|---|
| Move Up / Down / Left / Right | W / S / A / D |
Arrow Keys |
| Attack / Use Weapon | K |
Controller Button |
| Interact / Pick Up Item | E |
Contextual Prompts |
| Inventory Toggle | I |
In-game UI Button |
| Dialogue Confirm / Next | Enter / Space |
Mouse Left Click |
| Pause Menu | Escape |
Pause HUD Button |
- Game Engine: Godot Engine v3.2.3 Stable
- Scripting Language: GDScript (Python-like language tailored for Godot)
- Data Serialization: JSON (
ItemData.json, cutscene dialogue scripts) - Renderer: GLES3 (OpenGL ES 3.0) with custom 2D pixel lighting & shaders
- Platform Targets: Windows (x64), Linux, macOS, and HTML5 WebGL
global.gd: Global state manager, active day tracking, player variables.JsonData.gd: Parses item databases and stats into runtime dictionaries.PlayerInventory.gd: Handles player inventory slots, item drops, and equipment.PlayerStats.tscn: Manages health points, damage calculations, and death events.
Strain-X/
├── .gitignore # Git ignore configuration
├── README.md # Master project documentation
├── Day 1/ # Core Godot project workspace
│ ├── project.godot # Godot engine project definition
│ ├── export_presets.cfg # Build target export presets
│ ├── default_env.tres # World environment settings
│ │
│ ├── addons/ # Editor plugins & extensions
│ │ └── dialogs/ # Dynamic JSON dialogue runner
│ │ ├── Dialog.tscn # Dialog UI container
│ │ ├── dialog_node.gd # Dialogue manager script
│ │ ├── *.json # Story & cutscene script data
│ │ └── Fonts/ # Typography (Overlock fonts)
│ │
│ ├── Assets/ # Raw & imported multimedia assets
│ │ ├── Effects/ # Particle effects & death animations
│ │ ├── Enemies/ # Volatile & Carnage sprite sheets
│ │ ├── Inventory/ # Grid slots & UI frames
│ │ ├── Item_Icons/ # Consumables, masks & weapons icons
│ │ ├── Music and Sounds/ # Ambient soundtracks & SFX
│ │ ├── Player/ # Character animation sheets
│ │ ├── UI/ # Health bars, cursors, menus
│ │ └── World/ # Tilemaps, interior & outdoor tiles
│ │
│ ├── Data/ # Configuration & item data
│ │ ├── ItemData.json # Item stats, categories, stack sizes
│ │ └── m5x7.ttf # Retro pixel game font
│ │
│ ├── Scenes & Scripts (.tscn / .gd): # Gameplay entities & levels
│ │ ├── Title Screen.tscn # Main game entry point
│ │ ├── Player.tscn / Player.gd # Main player controller & state machine
│ │ ├── MCHouse.tscn # House interior & family interactions
│ │ ├── Grocery.tscn # Scavenging & shopping center
│ │ ├── Outside.tscn # Streets, neighborhoods & enemies
│ │ ├── Carnagephase1.tscn / 2 # Multi-phase boss encounter
│ │ ├── MCHealthBar.tscn # Player HUD health gauge
│ │ ├── Inventory.tscn # In-game backpack overlay
│ │ └── GameOVer.tscn # Defeat screen & retry handler
│ │
│ └── logs/ # Godot runtime engine execution logs
│
└── Game/ # Export utilities & build tooling
└── Strain X/Others/rcedit-x64.exe # Windows metadata & icon injector
- Install Godot Engine 3.2.x (or Godot 3.5 LTS with Godot 3 compatibility) from godotengine.org/download.
- Clone or extract the repository:
git clone https://github.com/DaLouuu/Strain-X.git
- Open Godot Engine and click Import.
- Browse to the
Day 1/directory and selectproject.godot. - Click Import & Edit.
- Press F5 (or click the Play icon in the upper right) to launch from
Title Screen.tscn.
- JSON Syntax Error Fix in Item Database (
ItemData.json):- Fixed illegal trailing commas in JSON object dictionaries that caused
JSON.parse()to fail and crash item retrieval.
- Fixed illegal trailing commas in JSON object dictionaries that caused
- Fixed Dialogue Script Parse Errors (
Endofday3.json&NeighbotCutscene.json):- Corrected trailing commas before array closing brackets (
]) that previously aborted day transition cutscenes.
- Corrected trailing commas before array closing brackets (
- Restored Broken Dialog Plugin Font Path (
Overlock.tres):- Updated internal resource path to
res://addons/dialogs/Fonts/Overlock/Overlock-Black.ttfto prevent font loading crashes.
- Updated internal resource path to
- Resolved Missing Script Reference (
CannedGood.gd):- Created missing
CannedGood.gdscript handling area detection and pickup events forCannedGood.tscn.
- Created missing
- Resolved Missing Health UI Scene (
HealthUI.tscn):- Added wrapper scene linking
MCHealthBar.tscnto fix broken instance references inHealth.tscn.
- Added wrapper scene linking
- Cleaned Orphaned Import Metadata:
- Removed stale
.importfiles for removed image assets, silencing Godot engine import warnings.
- Removed stale
As a Problem-Based Learning project, Strain-X addresses critical real-world challenges through game-based simulation:
- Public Health Preparedness: Highlights the importance of masks, sanitizers, and proper safety equipment during contagion events.
- Resource Management: Teaches prioritization of basic sustenance and medical reserves under quarantine constraints.
- Community Responsibility: Illustrates mutual aid and social distancing protocols to protect vulnerable populations.
- Development Team: ACES Project Team / DaLouuu
- Framework: Godot Engine (MIT License)
- Audio & Assets: CC0 / Royalty-Free pixel art and ambient audio