Skip to content

Mirroware is an advanced raycasting engine that offers mirrors. You can simulate ray reflections to create fun games and impressive scenes.

License

Notifications You must be signed in to change notification settings

WebAxol/Mirroware

Repository files navigation

88b     d88 888888 8888888b.  8888888b.   .d88888b.  88       88        d8888 8888888b.  88888888
888b   d888   88   888   Y88b 888   Y88b d88P" "Y88b 88   o   88       d88888 888   Y88b 888     
8888b.d8888   88   888    888 888    888 888     888 88  d8b  88      d88P888 888    888 888     
88Y88888P88   88   888   d88P 888   d88P 888     888 88 d888b 88     d88P 888 888   d88P 888888  
88 Y888P 88   88   8888888P"  8888888P"  888     888 88d88888b88    d88P  888 8888888P"  888     
88  Y8P  88   88   888 T88b   888 T88b   888     888 8888P Y8888   d88P   888 888 T88b   888     
88   "   88   88   888  T88b  888  T88b  Y88b. .d88P 888P   Y888  d8888888888 888  T88b  888     
88       88 888888 888   T88b 888   T88b  "Y88888P"  88P     Y88 d88P     888 888   T88b 88888888 

Advanced TypeScript Raycasting Engine that renders mirrors

Mirroware - a mirror simulator

Main features (experimental)

  • 🏹 Raycasting
  • 🪞 Mirrors
  • 🎁 Textures
  • 🌒 Light-and-Fog Effect
  • 🎞️ Minimap
  • 🎨 Texture & RGBA layers
  • 🎮 Input handling
  • 🎥 Camera free displacement
  • 🎟️ Multi-layer Canvas Manager

Technical considerations

  • Implemented with PlugLightJS framework
    • Offers a microkernel architecture
    • Easy to integrate new services/systems
    • Can be a good base to make a new project

Limitations

  • Implementing inside an existing project that uses a different framework or architecture could be a challenge.
  • Only orthogonal (axis-aligned) lines and circles are supported as primitives
  • Geometry is static

What is Missing?

  • Raycast optimization
  • Complete and correct texturing system
  • Further test raycasting algorithms