Skip to content

Repository files navigation

🛡️ Isometric Survivor (MonoGame)

A 2D Action-Survival game (Survivor-like) built with C# and MonoGame featuring an isometric perspective. This project demonstrates a complete game loop including procedural map generation, spatial partitioning for physics, a custom map editor, and a scalable entity component structure.

🎥 Demonstration

p4 p3 p2 p1

🚀 Features

  • Isometric Engine: Custom rendering logic converting world coordinates to isometric screen space with depth sorting (IsoMath).
  • Procedural Generation: Algorithms to generate infinite-feeling arenas with lakes, dirt patches, and walls.
  • Custom Map Editor: A built-in tool to create, edit, and save maps (.json) with tile placement and trigger zones.
  • Optimization: Implements Spatial Hashing (SpatialGrid) to handle collision detection for hundreds of entities efficiently.
  • Gameplay Systems:
    • Upgrade System: Level-up logic with random weapon/passive upgrades (RNG).
    • Weapons: Auto-firing wands, orbiting shields, and projectile logic.
    • Pathfinding: A* algorithm implementation for enemy navigation.
    • State Management: Robust Finite State Machine handling Menu, Game, Editor, Pause, and Level Up states.

🎮 Controls

Gameplay

  • WASD / Arrows: Move Character.
  • ESC: Pause Game.
  • Space/Enter: Confirm selections (Level Up).
  • Attacks are automatic based on weapon cooldowns.

Map Editor

  • Tab: Switch between Tile Mode and Trigger Mode.
  • WASD / Arrows: Pan Camera.
  • Left Click: Place Tile / Select Trigger.
  • Right Click: Erase Tile / Add Trigger.
  • Q / E: Cycle through Tile Palette.
  • Ctrl + S: Save Map.
  • Ctrl + N: New Map.
  • Scroll: Zoom In/Out.

📦 Installation & Build

  1. Prerequisites

  2. Clone and Open

    git clone https://github.com/g-brrzzn/IsometricGame-MonoGame.git
    Open the .sln file in Visual Studio.
    Build
    Press F5 to build and run the project.
    Ensure Content is built correctly via the MonoGame Content Pipeline if modifying assets.
    

🛠️ Tech Stack

  • Language: C# (.NET 8)
  • Framework: MonoGame
  • Data: JSON (Newtonsoft) for Map serialization.
  • Physics: Custom AABB implementation with Isometric projection.

Developed as a personal project to explore game architecture patterns and MonoGame capabilities.

About

An isometric engine and survivor-like game implemented in C# / MonoGame. Includes a robust state machine, custom rendering logic for isometric depth sorting, automated wave management, and an integrated level editor.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages