StellarConquest
A 2D infinite world space shooter with story-driven gameplay, diverse enemies, hazards, and an extensive ship upgrade system.
StellarConquest is an immersive 2D infinite world space shooter developed in Unity. Navigate through the vastness of space, uncover a compelling story, and upgrade your ship to combat increasingly challenging enemies and hazards.
Embark on an epic journey through the cosmos with an arsenal of weapons and strategic upgrades!
Game Features
Rich Storyline
Follow the journey of a lone pilot venturing through uncharted space:
Discover the mystery behind an ancient alien civilization
Encounter diverse alien factions with unique motivations
Make decisions that impact story progression and gameplay
Uncover hidden lore through exploration and special encounters
Narration system with skippable story sequences (NarrationManager.cs, SkipStoryScript.cs)
Infinite Procedural Universe
Experience a boundless, ever-changing cosmos:
Procedurally generated star systems and planets
Diverse space environments with unique visual aesthetics
Dynamic difficulty scaling based on exploration distance
Rare cosmic phenomena with special gameplay effects
Diverse Space Hazards
Navigate through various challenging obstacles:
- Asteroid Fields - Dense clusters requiring precise navigation (AssetsAsteroid.cs)
- Black Holes - Extreme gravitational forces that can be used strategically (Blackhole.cs)
- Solar Flares - Unpredictable energy bursts affecting ship systems (todo)
- Gravity Wells - Areas that alter ship movement and projectiles (todo)
- Radiation Zones - Damage-over-time areas requiring special shielding (todo)
Enemy AI System
Battle against numerous enemy types built on a sophisticated balance triangle where each enemy prioritizes two of three attributes: Damage, Health, and Speed:
-
Glass Cannons (Damage + Speed)
- Bombers - Fast, explosive enemies that damage everything on death
- Void Rippers - Teleporting attackers with brief vulnerability windows
- Shrapnel Drones - Spread-fire enemies with strafing movement patterns
-
Harassers (Health + Speed)
- Swarmlings - Small, numerous enemies that overwhelm in groups
- Phase Shifters - Can move through obstacles to pursue the player
- Gravity Manipulators - Create fields that slow player movement
-
Powerhouses (Damage + Health)
- Tanks - Slow-moving but heavily armored with powerful attacks
- Juggernaut Mechs - Charge-up devastating attacks with audio/visual telegraphs
- Plasma Goliaths - Generate damaging fields around themselves
-
Support Units
- Healers - Provide support and healing to other enemy units
- Shield Drones - Project protective barriers around other enemies
- EMP Disruptors - Temporarily disable player systems
Implemented through the Enemy.cs, EnemySpawner.cs with a wave-based progression system (WaveSystemData.cs, WaveDisplay.cs).
The Balance Triangle Philosophy
The core of StellarConquest's combat design revolves around the "Balance Triangle" - a deliberate design philosophy that creates engaging enemy encounters:
-
The Triangle Principle: Every enemy is deliberately crafted by selecting two primary attributes from Damage, Health, and Speed, creating distinct tactical challenges:
- Damage + Speed (Glass Cannons): High threat enemies that require quick reactions but can be eliminated rapidly
- Health + Speed (Harassers): Persistent threats that pressure the player but deal minimal damage individually
- Damage + Health (Powerhouses): Major threats requiring strategic positioning and sustained firepower
-
Tactical Depth: This balance system creates intuitive enemy "types" that players can quickly identify and develop counter-strategies for:
Glass Cannons must be prioritized and eliminated before they can deal devastating damage
Harassers can often be temporarily ignored while dealing with more immediate threats
Powerhouses require planned approaches, utilizing terrain and movement to compensate for their devastating attacks
-
Balanced Encounters: The spawn system intelligently mixes enemy types to create dynamic combat scenarios:
Waves can be tuned for specific challenges (overwhelming swarms, elite mini-bosses)
Support units modify the effectiveness of other enemies, adding strategic prioritization
Progressive difficulty scaling introduces enemies in carefully designed sequences
-
Player Counter-Strategy: The upgrade system provides targeted tools to counter specific enemy types:
Anti-swarm weapons for Harasser-heavy encounters
Precision weapons for Glass Cannons
Shield-penetrating or high-damage weapons for Powerhouses
This systematic approach to enemy design ensures combat remains challenging yet fair, providing clear feedback to players about threats while rewarding tactical thinking and skillful execution.
Weapon Systems
Customize your offensive capabilities:
- Rapid-Fire Lasers - High fire rate with moderate damage
- Plasma Cannons - Slower but powerful area damage
- Missile Arrays - Tracking projectiles with explosion effects
- Beam Weapons - Sustained damage in a direct line
- EMP Systems - Temporarily disable enemy weapons and shields
Weapon management through WeaponManager.cs with projectile handling via BulletProjectile.cs and object pooling for performance optimization.
Dynamic Weapon Switching
The game features an intuitive hotkey-based weapon switching system allowing players to adapt their strategy on-the-fly:
- Quick Access Arsenal: Players can instantly switch between unlocked weapons by pressing number keys (1, 2, 3, etc.), creating fluid combat transitions
- Visual Weapon Indicator: The currently equipped weapon is prominently displayed in the bottom HUD, with clear visual feedback during weapon transitions
- Tactical Adaptation: The system encourages players to switch weapons based on encountered enemy types:
Rapid-fire weapons for swarms of weaker enemies
High-damage single-shot weapons for heavily armored targets
Area-effect weapons for clustered enemies
Specialized weapons for unique scenarios (EMP for shielded enemies)
- Upgrade Integration: Weapon effectiveness scales with player upgrades, with specialized improvements available for each weapon type
- Technical Implementation:
WeaponManager.cs handles the core switching logic and input detection
WeaponSlotUpdater.cs manages the UI representation and visual feedback
Seamless integration with the object pooling system for optimized performance
Event-driven architecture to maintain synchronization between systems
This system creates a layer of strategic depth by allowing players to quickly respond to changing combat situations without interrupting gameplay flow.
Technical Implementation
Player Upgrade System
A comprehensive upgrade architecture built on a modular, data-driven framework:
-
Stats Management (PlayerStats.cs)
Base stats system with applied flat and percentage bonuses
Event-driven recalculation of derived stats
Seamless integration with health and combat systems
-
Upgrade Types
MaxHealth - Increases player's maximum health
RegenRate - Enhances health regeneration speed
FireRate - Improves weapon firing speed
MoveSpeed - Boosts player movement capabilities
WeaponChange - Unlocks new weapon types and modifications
-
Progression System (PlayerLeveling.cs)
Experience-based advancement with level-up rewards
Upgrade points allocation for player customization
Hexagonal upgrade UI layout (HexagonUpgradesLayout.cs)
-
Scriptable Object Architecture
Data-driven design with UpgradeDefinition assets
Clear separation of data, state, and application logic
Flexible system supporting prerequisites and upgrade paths
Combat Systems
-
Health Management
Robust health component system (HealthComponent.cs)
Visual health representation (Healthbar.cs)
Damage type system with different effects (DamageTypes.cs)
Visual feedback for damage (DamageOverlayBridge.cs, FloatingTextManager.cs)
-
Weapon Mechanics
Projectile system with varying behaviors
Area-of-effect damage handling (SplashDamage.cs)
Shield impact visualization (ShieldImpact.cs)
Weapon slot management (WeaponSlotUpdater.cs)
-
Visual Effects
Camera shake on impacts (CameraShake.cs, CameraShakeManager.cs)
Dynamic line renderers for beams (LineRenderer2D.cs, CameraLineRenderer.cs)
Particle effect optimization (MassEmitParticle.cs)
Game Management
-
Core Systems
Central game state controller (GameManager.cs)
Pause functionality with UI integration (PauseManager.cs)
Scene transition handling (LoadingSceneManager.cs)
Timeline-based sequence management (TimelineSequencer.cs)
-
UI Framework
Heads-up display for player information (HUDScript.cs)
Interactive cursor system (CursorFollower.cs)
Sound management with UI feedback (ButtonSounds.cs, SoundManager.cs)
Audio mixer integration for pausing (SetupAudioMixerForPause.cs)
-
Performance Optimization
Object pooling for projectiles and effects
Distance-based entity activation
Efficient world object spawning (WorldObjectSpawner.cs)
Optimized collision detection for high-speed gameplay
The system architecture demonstrates software engineering best practices including separation of concerns, encapsulation of game mechanics, and data-driven design principles that allow for flexible expansion and modification.