Skip to content

the-mirror-gdp/the-mirror

Repository files navigation

What is The Mirror and why?

image

Freedom to own: The Mirror is a Roblox & UEFN alternative giving you the freedom to own what you create: an all-in-one game development platform built on Godot.

If you build on others like Roblox, UEFN/Unreal/Fortnite, and Unity, you don't actually own the full stack of what you build because you don't own the engine.

We're here to change that. 3D is arguably the next step of the internet and we can't let it be beholden to an oligopoly of companies that want to own your data and creations. The Mirror gives you the freedom to own what you build.

Akin to "Google Docs for game development", The Mirror is both the editor and the game that let's you build with friends in real-time. This saves you a plethora of time: Enjoy not having to write pesky things like infrastructure, backend HTTP routes, asset management, authentication, netsync, and various systems from scratch.

This repo is The Mirror's source code: the Godot app (client/server), the web server, and the docs in one place. We've included everything we can provide to help you build your games as fast as possible.

1. Join our Discord

2. Check out our Roadmap

3. Read our docs: Site, monorepo /mirror-docs

4. Check out our open-source announcement post

5. Follow us on X/Twitter

Features

  • All-in-one game development: The Mirror is both the editor and the game, providing everything you need out-of-the-box to quickly create and play games, digital experiences, virtual worlds, and more.
  • Editor: Built-in and networked: A lightweight, real-time, multiplayer editor to build in real-time.
  • Physics via Jolt, a AAA physics engine used by Horizon Zero Dawn.
  • Advanced networking: Keep your game in sync and rewind when things get out of sync.
  • Visual scripting: Even if you don't know how to code, you can implement game logic quickly and easily.
  • Traditional coding: GDScript in-world editor so you can live edit your game code.
  • Material editor and in-game shader editing.
  • An entire asset system built around GLTF, supporting seats, lights, and custom physics shapes all direct from blender.
  • We have our own UI elements, including a table class which can easily map any data to UI elements without duplicating state in a performant way.
  • Asset imports using GLTFs at runtime in your game.
  • Collision shape generation handling: Convex and concave supported.
  • Easily add audio to your game in real-time without opening the Godot editor.
  • Player controllers out-of-the-box: FPS, TPS, and VR.
  • VR-ready: Tested on Oculus Quest 2.
  • A simple game object abstraction called SpaceObject (this will be refactored with the aim of supporting any type of Godot node).

Get Started

  1. Git clone the repository (you do not need to clone with submodules; they are optional)
  2. Download the precompiled Mirror fork of Godot engine (required to use)
  • Windows: Download
  • Mac: v buggy; taking contributions for fixes :) Download. On Mac you will see a zip file; extract it and open the editor binary with CMD + Right-Click then select the Open option.
  • Linux: Download
  1. Open the Godot editor (The Mirror fork), click import, and choose the project.godot from the /mirror-godot-app folder. Note that if you see this popup, you can safely ignore it and proceed.

image

  1. Close the Godot editor and open it again, to ensure that everything loads correctly, now that all files have been imported.
  2. Hit play in the Godot editor!
  3. Create a new Space, and you will automatically join it. Or, join an existing Space.

Godot Fork

The Mirror is built on a custom fork of Godot and required to use The Mirror's code. The fork is open source and can be found here.

Documentation

The docs site (/mirror-docs) is our primary source of truth for documentation, not this README. We intend to keep this README slim since documentation is and will continue to be extensive.

Analytics Disclaimer: We use posthog and it automatically collects analytics in the open source repo. You can disable this manually by commenting out the mirror-godot-app/scripts/autoload/analytics/analytics.gd file methods. We will make this easier in the future to disable. The Mirror Megaverse Inc., a US Delaware C Corp, is the data controller of the Posthog instance. You are free to disable the analytics and even plug in your own Posthog API key to capture the analytics yourself for your games!