Back to Home

Mirador Blog

Development insights, tutorials, and updates from the Mirador project.

Mirador:

/ˈmir-ə-ˌdȯr/noun

A turret, window, or balcony designed to command an extensive outlook.A vantage point that provides a commanding view of the surrounding area.

Mirador is a modular, interactive game written in Rust, focused on real-time rendering, procedural maze generation, and immersive gameplay. It leverages modern GPU technologies and custom UI systems to provide a responsive and visually engaging experience.

Purpose

Mirador is a work in progress stealth game written entirely in Rust. It is designed to be modular, real-time, and memory-efficient. It achieves this by employing several rendering pipelines that each handle specific aspects of the game's visual and interactive elements, all of which leverage the computational power of the GPU via the WGPU graphics API. Whilst this project is still in development, it currently supports:

  • Real-time rendering using the WGPU graphics API.
  • Custom UI system with responsive buttons, menus, and interactive panels.
  • Modular architecture for game state, rendering, and UI.
  • Procedural maze generation and animation.
  • Responsive input handling and event-driven updates.
  • Audio system with spatial sound and music integration.
  • Upgrade system with collectible power-ups and progression.
  • Enemy AI with pathfinding and detection mechanics.

Architecture Overview

Mirador is organized into several core modules:

  • App: The main application object, responsible for initialization, event handling, rendering, and orchestrating the game state.
  • Game: Contains logic for player state, input handling, core gameplay mechanics, audio, and upgrade systems.
  • Maze: Handles procedural maze generation, storage, and rendering data.
  • Rendering: Manages all rendering pipelines including custom UI, text, and graphics.
  • UI: Implements custom UI system with buttons, menus, and interactive elements.
  • Math: Provides vector and matrix utilities for graphics and game logic.

The application initializes a WGPU instance and event loop, sets up rendering and UI pipelines, and manages all state transitions and user interactions through a central App struct.

Technologies Used

  • Rust (edition 2024): Core programming language
  • WGPU: Modern, portable graphics API for GPU rendering
  • winit: Cross-platform window and event loop management
  • rand: Random number generation for procedural content
  • chrono: Time and date utilities
  • glyphon: Modern rust API for rendering text on the GPU via wgpu
  • kira: Audio library for sound effects and music
  • image: Image loading and processing for textures and icons

Getting Started

Mirador is intended for developers and enthusiasts interested in graphics programming, game development, or Rust-based application architecture. To explore or contribute:

  1. Ensure you have a recent Rust toolchain installed.
  2. Clone the repository and build with cargo build.
  3. Run the application with cargo run.

The game features a stealth-based gameplay loop where players navigate procedurally generated mazes while avoiding detection by AI enemies. Players can collect upgrades to enhance their abilities and progress through increasingly challenging levels.

For the in code documentation, please refer to:
Rust Doc Documentation

License

Mirador is released under an open-source license. See the repository for details.

Latest Posts

2025-07-26
4 min

Understanding performance characteristics is crucial when developing a game like Mirador. The benchmarking library provides a simple way to measure...

miradorgame-development+1
Read more →
2025-07-23
7 min

When I first designed Mirador's progression system, I wanted to create meaningful choices that would affect how players approach each run. The...

miradorgame-development+1
Read more →
2025-07-07
9 min

Game audio is deceptively complex. Unlike a music player that simply plays tracks (although we do need that too), games need audio that responds to...

miradorgame-development+1
Read more →
2025-07-02
5 min

Mirador uses multiple coordinate systems to bridge the gap between 2D maze representation and 3D navigation. Understanding how these systems interact...

miradorgame-development+1
Read more →
2025-07-01
3 min

Large mazes create navigation challenges that can frustrate players. Without guidance, finding the exit becomes a matter of luck rather than skill....

miradorgame-development+1
Read more →
2025-06-30
8 min

Text rendering in games presents unique performance challenges that can make or break a smooth gaming experience. Poorly optimized text systems can...

miradorgame-development+1
Read more →
2025-06-28
17 min

The actual process that the program goes through to initialize the game and then update it every frame is relatively straightforward, but it has a...

miradorgame-development+1
Read more →
2025-01-01
2 min

Blog Posts This directory contains all the markdown files for the Mirador blog posts. Adding New Blog Posts To add a new blog post: 1. Create a new...

miradorgame-development+1
Read more →