GithubHelp home page GithubHelp logo

the-mirror-gdp / the-mirror Goto Github PK

View Code? Open in Web Editor NEW
977.0 14.0 90.0 186.98 MB

The open-source Roblox & UEFN alternative giving you freedom to own what you create. An all-in-one, real-time, collaborative game development platform built on Godot.

Home Page: https://themirror.space

License: Other

JavaScript 1.73% MDX 5.29% TypeScript 29.12% CSS 0.08% GDScript 63.33% Shell 0.10% GLSL 0.32% Dockerfile 0.04%
game-development gaming gdscript godot godot-engine godotengine mongodb mongoose multiplayer nestjs

the-mirror's Introduction

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!

the-mirror's People

Contributors

aaronfranke avatar codesmith-emmy avatar dependabot[bot] avatar eltociear avatar gh-action-bump-version avatar kluskey avatar revolupowered avatar vladimirlevadnij avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

the-mirror's Issues

Welcome! Get started here

Welcome everyone!

We're on a mission: give creators the freedom to own what they build and are thus open-sourcing The Mirror. If you haven't already, check out our blog post here.

How do I get involved?

License?

The permissive MIT license! We just require that you publicly include a copy of the license when you use The Mirror.

For assets such as 3D models and sounds, these are licensed with the CC-BY license, just requiring attribution.

Can I sponsor The Mirror?

The best way to support The Mirror is by using it and talking about it! We're rolling out our marketplace soon where you can sell any type of asset for a low fee. Our aim is to include anything built in Godot, though this functionality is semi-blocked by the needed SpaceObject refactor.

Enjoy! Thanks everyone.

[Planned Feature] Localhost/P2P multiplayer

The Mirror currently boots a server for every Space, which is quite inefficient (it was just from our original architecture). We're changing this to run a Space locally by default and connect via P2P multiplayer.

https://discord.com/channels/900537135998840852/900537135998840858/1219203173449728091

Acceptance Criteria:

  • Piecemeal: Add singleplayer/multiplayer localhost functionality (also so our remote scaler won’t get hit)
    • Later: Add multiplayer networking (like a Steam networking setup)
  • We need to completely stop usage of the scaler right now to improve boot time and not spin up a remote server for every Space. We’ll add this as a premium feature in the future.
  • The long Space load times are crazy: What big chunks we can fix?
  • After this, let's get a TM official release out on Itch

[Proposal] AArch64/ARM prebuilt targets for Linux and eventually MacOS

The proposal
Considering the rise of Armv8 (AArch64) CPUs on desktops and primarily laptops, it would be useful to provide prebuilt binaries for AArch64 CPUs on Linux, and when it becomes available again, MacOS.

Would you be able to implement it?
I wouldn't, as I do not have access to the hosts hosting prebuilt binaries.

Additional context
I myself am using an M1 MacBook Pro with Fedora Asahi remix installed. If you decide to implement this request, please ensure the binaries are built with 64k page size - otherwise it will be incompatible with certain hardware. 64k can work with any piece of hardware.

[Planned Feature] Multilingual documentation

To make the documentation easier to use for people from different countries, it is necessary to implement the functionality of multilingual documentation in https://github.com/the-mirror-gdp/the-mirror/tree/dev/mirror-docs

Recommended instructions https://docusaurus.io/docs/i18n/tutorial

In accordance with this issue, it is necessary to create functionality for multilingual documentation, adding, in addition to English, also, for example, Russian. In the Russian language thread, the first step is to copy the documentation in English and make a notification that the documentation is being translated.

Translation into Russian and other languages will be performed on separate issues for each version of the documentation.

[Planned Feature] Updating Docusaurus 2 to Docusaurus 3

Description

Before setting up Docusaurus to work with multilingual documentation (Issue #42), you must upgrade Docusaurus 2 to Docusaurus 3.

Acceptance Criteria

After updating Docusaurus 2 to Docusaurus 3, nothing will break and for the user the documentation will look the same as it looked before when it was implemented on Docusaurus 2.

[Cleanup] Fix user presence

What needs to be cleaned up?
This is working with our previous implementation with admin permissions for the Space via the WSS token, but it needs to be refactored for the localhost multiplayer setup.

Related: #20

Can you do this yourself? Contributions are greatly appreciated!

[Planned Feature] SpaceObject refactor

Context:
We have a lot of arrays and we're instancing all of our data as objects.

Note that we can do this in baby steps: a "light" refactor and then full. The full will allow for object parenting/grouping: #79

2 pieces of state: We have to sync between Zone.space_objects and InstanceManager.instances; this would allow for granular loading of objects (e.g. by distance).

Zone.space_objects: comes from mirror-web-server
InstanceManager.instances: The instanced version (Godot object).

It's causing performance issues with needing to update large arrays and update everything instead of 1 item.

Open Q's:

  • Should this be stored in a dictionary instead of an array?
  • Look into writing a Godot class that maps to the DB Mongoose schema. Explicitly define the properties that it receives from the database

Login isn't working + anon login request

OS: Windows 10

Reproduction:

  • launched windows version of Godot/Mirror editor
  • imported suggested project from the /mirror-godot-app folder
  • project opened with errors so restarted as suggested
  • pressed F5 to launch project and was blocked by Sign in screen (No mention of it in the readme)
  • tried to sign up (although that's already a sacrilegious act and questionable practice to see project actually working)
  • after filling blanks, nothing happened. console had error print [Firebase Error] >> Encrypted Firebase Auth file does not exist
  • no mention of that in the Readme too

Debug log showed extra errors

E 0:00:00:0099   OpenXRAPI::load_supported_extensions: OpenXR: Failed to enumerate number of extension properties
  <C++ Error>    Condition "((result) < 0)" is true. Returning: false
  <C++ Source>   modules\openxr\openxr_api.cpp:154 @ OpenXRAPI::load_supported_extensions()
E 0:00:00:0115   Node::rpcp: Condition "!is_inside_tree()" is true. Returning: ERR_UNCONFIGURED
  <C++ Source>   scene\main\node.cpp:733 @ Node::rpcp()
E 0:00:00:0119   Node::_validate_child_name: Condition "!node_hrcr_count.ref()" is true.
  <C++ Source>   scene\main\node.cpp:1269 @ Node::_validate_child_name()
E 0:00:02:0696   ResourceFormatLoaderText::load: Cannot open file 'res://player/cameras/voxel_viewer/camera_voxel_viewer.tscn'.
  <C++ Error>    Condition "err != OK" is true. Returning: Ref<Resource>()
  <C++ Source>   scene\resources\resource_format_text.cpp:1642 @ ResourceFormatLoaderText::load()
E 0:00:02:0701   ResourceLoader::_load: Resource file not found: res://player/cameras/voxel_viewer/camera_voxel_viewer.tscn (expected type: PackedScene)
  <C++ Error>    Condition "!file_check->file_exists(p_path)" is true. Returning: Ref<Resource>()
  <C++ Source>   core\io\resource_loader.cpp:276 @ ResourceLoader::_load()
E 0:00:02:0710   ResourceLoaderText::_parse_ext_resource: res://player/cameras/camera_manager.tscn:35 - Parse Error: [ext_resource] referenced non-existent resource at: res://player/cameras/voxel_viewer/camera_voxel_viewer.tscn
  <C++ Source>   scene\resources\resource_format_text.cpp:163 @ ResourceLoaderText::_parse_ext_resource()
E 0:00:02:0736   ViewportTexture::get_height: Viewport Texture must be set to use it.
  <C++ Source>   scene\main\viewport.cpp:136 @ ViewportTexture::get_height()
E 0:00:02:0740   ViewportTexture::get_width: Viewport Texture must be set to use it.
  <C++ Source>   scene\main\viewport.cpp:126 @ ViewportTexture::get_width()

image

[Bug] Long join time

Which environment? Mirror Official app (Itch/Steam/Epic), open-source docker, or open-source no-docker?
All

To Reproduce
Steps to reproduce:

  1. Join a Space
  2. It takes ~50-60 seconds sometimes. It should take just a few seconds

[Planned Feature] Kick a user from a Space

Description
Space owners should be able to kick someone from their Space.

Acceptance Criteria

  • Add a kick button on the users dropdown in Build mode and on the far-right of the scoreboard
  • Only show the button if the user has ROLE.OWNER permissions

[Bug] Crash when making a big amount of objects fall

Version 6.0.259
Environment Win 10

Steps to reproduce:

  1. Add a group of objects to the space
  2. Make all of the objects dynamic
  3. Make the group of objects fall (create a platform and then delete it or select the group and get off the ground)
  4. Pay attention to the crash that happens
crush_fallen.objects.mp4

godot (1).log

[Docker] Typescript errors

Hello,

I have been trying to fix the docker file and Dockers weird permissions kept getting in the way so I have changed a few ways it is ran now I am stuck with some typescript errors that I would like you to address I have My Repo here. Here is a file of the error I am having

Error:
message.txt

Thanks

R3ido101

[Bug] Speed up Space list using /discover-v3 route without popular Spaces arg

The Space list loading currently takes a long time due to our popular list functionality. It'd be better to just use it without the popular functionality since this will also be refactored with the new routes for locally-hosted multiplayer hosts to discover each other.

Acceptance criteria:

  • Discover is the new combined tab on the app
  • Cache so that it doesn’t rerun the Space list query each time
  • Add a refresh button between the sort and the search to rerun the query
  • Sorts: Top-rated (default), last updated. (Don’t include alphabetical)
  • Homepage: Show discover instead of popular for the top row

[Bug] Following instructions in README (for Linux), many errors shown in dialogs

Bug

errors in import of project on Linux Ubuntu 22.04

To reproduce

As import proceeds in engine, errors appear

Screenshot from 2024-03-17 12-30-50
Screenshot from 2024-03-17 12-31-10

Finally, Mirror launches. There is an additional warning about client being out of date:

Screenshot from 2024-03-17 12-31-10

The main menu loads, however, experienced hanging when trying to exit one of the games.

Workarounds

TBD

[Bug] Undo does not work as expected

As title says, Undo does not work as I would expect. A few undo features I have found do not work are as follows: Deleted objects should be restored, creating and making changes to a map should be able to be undone, and changed properties cannot be undone.

Deleting Objects: Expected behavior should be when I delete an object it is still available on the undo stack to be restored. Obviously keeping objects in the undo stack might hit performance after a while so I would expect it to stay on the undo stack until the undo stack hits a memory limit and pops off the oldest items on the stack, permanently deleting the items.
I also assume the undo stack is cleared on save and exit from build mode, but it would be nice if the undo stack was saved between build sessions.

Map creation: Expected behavior should be when when I make a new map, since the old map is deleted I should be able to undo and go back to the old map. I don't see this being an issue to implement as all maps created are saved in the my assets, so it should be a reversion to the previous asset.

Property Editing: Expected behavior should be when I edit any property of any node (object, map, environment, etc.) I should be able to revert it to the last value it was set to. Examples of this include: changing the sun's color, editing the size of an object, and editing the map size.
What is really weird here is some properties are added to the undo stack, such as transform and rotation of objects, but not rotation of environments

Primitive Builder: Expected behavior should be when when I create something in the primitive builder I should be able to un-create it. Currently if you make a mistake in the primitive builder you need to start over to fix it. This is one of the most annoying things I have found so far.

[Bug] Unable to load a new space

I installed according to the instructions, and attempted to launch a new Space. The game seems to become stuck.

Viewing the process activity in Perform, it doesn't really appear as if anything is happening other than the client attempting to connect to the server every few seconds. There also appear to be connections out to AWS, etc.

No disk activity of any kind.

Perfmon with network tab:

image

Perfmon with Disk tab:
image

MirrorGodotEditorWindows.exe console log output:

ERROR: Class Image already has a method get_mipmap_count.
   at: (core\object\class_db.cpp:1516)
The TRACY profiler is disabled.
ERROR: Remote Debugger: Unable to connect. Status: 1.
   at: RemoteDebuggerPeerTCP::connect_to_host (core\debugger\remote_debugger_peer.cpp:182)
Godot Engine v4.3.dev.mirror.41ba769ad - https://godotengine.org
Error [GENERAL |  | OpenXR-Loader] : RuntimeManifestFile::FindManifestFiles - failed to find active runtime file in registry
Error [GENERAL | xrEnumerateInstanceExtensionProperties | OpenXR-Loader] : RuntimeInterface::LoadRuntimes - unknown error
Error [GENERAL | xrEnumerateInstanceExtensionProperties | OpenXR-Loader] : RuntimeInterface::LoadRuntimes - failed to load a runtime
Error [GENERAL | xrEnumerateInstanceExtensionProperties | OpenXR-Loader] : Failed to find default runtime with RuntimeInterface::LoadRuntime()
Error [GENERAL | xrEnumerateInstanceExtensionProperties | OpenXR-Loader] : Failed querying extension properties
ERROR: OpenXR: Failed to enumerate number of extension properties
   at: (modules\openxr\openxr_api.cpp:154)
WARNING: OpenXR was requested but failed to start.
Please check if your HMD is connected.
When using Windows MR please note that WMR only has DirectX support, make sure SteamVR is your default OpenXR runtime.
Godot will start in normal mode.

     at: initialize_openxr_module (modules\openxr\register_types.cpp:145)
ERROR: Condition "!is_inside_tree()" is true. Returning: ERR_UNCONFIGURED
   at: Node::rpcp (scene\main\node.cpp:733)
ERROR: Condition "!node_hrcr_count.ref()" is true.
   at: Node::_validate_child_name (scene\main\node.cpp:1269)

Loading layers_table from path: `res://jolt_layers_table.tres`
WARNING: res://player/cameras/camera_manager.tscn:7 - ext_resource, invalid UID: uid://clraq8sj7pby6 - using text path instead: res://player/cameras/voxel_viewer/camera_voxel_viewer.tscn
     at: ResourceLoaderText::load (scene\resources\resource_format_text.cpp:448)
ERROR: Cannot open file 'res://player/cameras/voxel_viewer/camera_voxel_viewer.tscn'.
   at: (scene\resources\resource_format_text.cpp:1642)
ERROR: Resource file not found: res://player/cameras/voxel_viewer/camera_voxel_viewer.tscn (expected type: PackedScene)
   at: (core\io\resource_loader.cpp:276)
ERROR: res://player/cameras/camera_manager.tscn:35 - Parse Error: [ext_resource] referenced non-existent resource at: res://player/cameras/voxel_viewer/camera_voxel_viewer.tscn
   at: ResourceLoaderText::_parse_ext_resource (scene\resources\resource_format_text.cpp:163)
ERROR: Viewport Texture must be set to use it.
   at: ViewportTexture::get_height (scene\main\viewport.cpp:136)
ERROR: Viewport Texture must be set to use it.
   at: ViewportTexture::get_width (scene\main\viewport.cpp:126)
WARNING: res://creator/selection/inspector/primitive/inspector_subset.tscn:3 - ext_resource, invalid UID: uid://mnma6h0u7wla - using text path instead: res://creator/creator_ui.theme.tres
     at: ResourceLoaderText::load (scene\resources\resource_format_text.cpp:448)
WARNING: res://creator/selection/inspector/primitive/inspector_texture_slider.tscn:4 - ext_resource, invalid UID: uid://cccvxoqmskggl - using text path instead: res://creator/selection/inspector/primitive/inspector_local_texture.tscn
     at: ResourceLoaderText::load (scene\resources\resource_format_text.cpp:448)
WARNING: res://creator/common/asset_slot.tscn:4 - ext_resource, invalid UID: uid://bo13o3l1lwpgh - using text path instead: res://creator/common/asset_slot.gd
     at: ResourceLoaderText::load (scene\resources\resource_format_text.cpp:448)
WARNING: res://creator/tools/material_browser/material_browser.tscn:5 - ext_resource, invalid UID: uid://did286vqjm578 - using text path instead: res://creator/tools/material_browser/material_browser.gd
     at: ResourceLoaderText::load (scene\resources\resource_format_text.cpp:448)
WARNING: res://creator/common/asset_slot_subwindow.tscn:4 - ext_resource, invalid UID: uid://ybb31hjgjc5a - using text path instead: res://creator/common/asset_slot_subwindow.gd
     at: ResourceLoaderText::load (scene\resources\resource_format_text.cpp:448)
WARNING: res://creator/tools/material_creator/material_creator.tscn:4 - ext_resource, invalid UID: uid://b1k7prsgle0j7 - using text path instead: res://creator/tools/material_creator/material_creator.gd
     at: ResourceLoaderText::load (scene\resources\resource_format_text.cpp:448)
WARNING: Node 'Control/body/VBoxContainer/window_header/TITLE' was modified from inside an instance, but it has vanished.
     at: SceneState::instantiate (scene\resources\packed_scene.cpp:231)
WARNING: Parent path './Control/body/VBoxContainer/window_header/TITLE' for node 'MarginContainer' has vanished when instantiating: 'res://ui/teams/teams_window_play_mode.tscn'.
     at: SceneState::instantiate (scene\resources\packed_scene.cpp:178)
WARNING: Node './MarginContainer' was modified from inside an instance, but it has vanished.
     at: SceneState::instantiate (scene\resources\packed_scene.cpp:231)
WARNING: Parent path './Control/body/VBoxContainer/window_header/TITLE/MarginContainer' for node 'Label' has vanished when instantiating: 'res://ui/teams/teams_window_play_mode.tscn'.
     at: SceneState::instantiate (scene\resources\packed_scene.cpp:178)
WARNING: Node './Label' was modified from inside an instance, but it has vanished.
     at: SceneState::instantiate (scene\resources\packed_scene.cpp:231)
WARNING: Node 'Control/body/VBoxContainer/window_header/TITLE' was modified from inside an instance, but it has vanished.
     at: SceneState::instantiate (scene\resources\packed_scene.cpp:231)
WARNING: Parent path './Control/body/VBoxContainer/window_header/TITLE' for node 'MarginContainer' has vanished when instantiating: 'res://ui/teams/teams_window.tscn'.
     at: SceneState::instantiate (scene\resources\packed_scene.cpp:178)
WARNING: Node './MarginContainer' was modified from inside an instance, but it has vanished.
     at: SceneState::instantiate (scene\resources\packed_scene.cpp:231)
WARNING: Parent path './Control/body/VBoxContainer/window_header/TITLE/MarginContainer' for node 'Label' has vanished when instantiating: 'res://ui/teams/teams_window.tscn'.
     at: SceneState::instantiate (scene\resources\packed_scene.cpp:178)
WARNING: Node './Label' was modified from inside an instance, but it has vanished.
     at: SceneState::instantiate (scene\resources\packed_scene.cpp:231)
WARNING: Native icon not supported by this display server.
     at: DisplayServer::set_native_icon (servers\display_server.cpp:583)
ERROR: Invalid color name: .
   at: (core\math\color.cpp:402)
ERROR: Node not found: "VBoxContainer/Instructions" (relative to "/root/GameUI/CreatorUI/ScriptVariableEditor").
   at: (scene\main\node.cpp:1665)
ERROR: Node not found: "%CoverSpaceImage" (relative to "/root/GameUI/MainMenuUI/Pages/Home/Pages/EditSpace/VBoxContainer/HBoxContainer/Panel/TabsScrollContainer/BasicSpaceSettings").
   at: (scene\main\node.cpp:1665)
ERROR: Node not found: "%CoverSpaceImage" (relative to "/root/GameUI/MainMenuUI/Pages/My_Spaces/Pages/EditSpace/VBoxContainer/HBoxContainer/Panel/TabsScrollContainer/BasicSpaceSettings").
   at: (scene\main\node.cpp:1665)
ERROR: Node not found: "%CoverSpaceImage" (relative to "/root/GameUI/MainMenuUI/Pages/Build/Pages/EditSpace/VBoxContainer/HBoxContainer/Panel/TabsScrollContainer/BasicSpaceSettings").
   at: (scene\main\node.cpp:1665)
ERROR: Node not found: "%CoverSpaceImage" (relative to "/root/GameUI/MainMenuUI/Pages/Play/Pages/EditSpace/VBoxContainer/HBoxContainer/Panel/TabsScrollContainer/BasicSpaceSettings").
   at: (scene\main\node.cpp:1665)
Mirror app version:  Alpha Version Gravity v6.1.64-official
ERROR: Index p_column = 1 is out of bounds (columns.size() = 1).
   at: Tree::set_column_title (scene\gui\tree.cpp:4927)
ERROR: Index p_column = 2 is out of bounds (columns.size() = 1).
   at: Tree::set_column_title (scene\gui\tree.cpp:4927)
Trying to set concurrent http requests: 20
OpenXR: Initializing interface
OpenXR: Failed to initialize
ERROR: This function CAN be used only on the client.
   at: (modules\network_synchronizer\scene_synchronizer.cpp:1387)
ERROR: This function CAN be used only on the client.
   at: (modules\network_synchronizer\scene_synchronizer.cpp:1387)
ERROR: This function CAN be used only on the client.
   at: (modules\network_synchronizer\scene_synchronizer.cpp:1387)
ERROR: This function CAN be used only on the client.
   at: (modules\network_synchronizer\scene_synchronizer.cpp:1387)
ERROR: This function CAN be used only on the client.
   at: (modules\network_synchronizer\scene_synchronizer.cpp:1387)
ERROR: This function CAN be used only on the client.
   at: (modules\network_synchronizer\scene_synchronizer.cpp:1387)
ERROR: This function CAN be used only on the client.
   at: (modules\network_synchronizer\scene_synchronizer.cpp:1387)
ERROR: This function CAN be used only on the client.
   at: (modules\network_synchronizer\scene_synchronizer.cpp:1387)
ERROR: This function CAN be used only on the client.
   at: (modules\network_synchronizer\scene_synchronizer.cpp:1387)
ERROR: This function CAN be used only on the client.
   at: (modules\network_synchronizer\scene_synchronizer.cpp:1387)
ERROR: This function CAN be used only on the client.
   at: (modules\network_synchronizer\scene_synchronizer.cpp:1387)
ERROR: This function CAN be used only on the client.
   at: (modules\network_synchronizer\scene_synchronizer.cpp:1387)
ERROR: This function CAN be used only on the client.
   at: (modules\network_synchronizer\scene_synchronizer.cpp:1387)
ERROR: This function CAN be used only on the client.
   at: (modules\network_synchronizer\scene_synchronizer.cpp:1387)
ERROR: This function CAN be used only on the client.
   at: (modules\network_synchronizer\scene_synchronizer.cpp:1387)
ERROR: This function CAN be used only on the client.
   at: (modules\network_synchronizer\scene_synchronizer.cpp:1387)
ERROR: This function CAN be used only on the client.
   at: (modules\network_synchronizer\scene_synchronizer.cpp:1387)
Firebase Logged In As 65f5e1daf06b31992b3080a3
Waiting for login to complete before joining space
Server successfully has logged into the backend for web socket authentication
----------------------------------------
----------------------------------------
----------------------------------------
STARTING The Mirror Megaverse Server...
----------------------------------------
----------------------------------------
----------------------------------------
ERROR: Can't create the `D:/Projects/the-mirror/net-sync-debugs/dump/debugger.py` file.
   at: (modules\network_synchronizer\core\scene_synchronizer_debugger.cpp:154)
[ERROR] [GLOBAL] The registered node `/root/Zone/TMSceneSync` doesn't override the method `_setup_synchronizer`, which is called by the SceneSynchronizer to know the node sync properties. Pleaes implement it.
ERROR: Can't create the `D:/Projects/the-mirror/net-sync-debugs/dump/debugger.py` file.
   at: (modules\network_synchronizer\core\scene_synchronizer_debugger.cpp:154)
connecting ws to wss://api.themirror.space
SUCCESS Starting Mirror Megaverse Server! Listening on port: 27015
ERROR: Can't create the `D:/Projects/the-mirror/net-sync-debugs/dump/debugger.py` file.
   at: (modules\network_synchronizer\core\scene_synchronizer_debugger.cpp:154)
Legacy Code is using HTTP rather than WebSocket for Server Communication: { "key": 5, "url": "/user/me", "method": 0, "request_body": {  }, "use_base": true, "hash": 1083989383, "promise": <RefCounted#-9223371288020497519> }
ERROR: Legacy Code is using HTTP rather than WebSocket for Server Communication: { "key": 5, "url": "/user/me", "method": 0, "request_body": {  }, "use_base": true, "hash": 1083989383, "promise": <RefCounted#-9223371288020497519> }
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
Connected to server WS
WS Connected
ERROR: WS: Status code 404 result: { "eventId": "e96e82f1-54c1-4cfd-979f-e8a40d2504b4", "status": 404, "error": "Cannot destructure property \'data\' of \'response\' as it is undefined." }
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
ERROR: Critical: cannot start server: { "eventId": "e96e82f1-54c1-4cfd-979f-e8a40d2504b4", "status": 404, "error": "Cannot destructure property \'data\' of \'response\' as it is undefined." }
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
ERROR: Zone Server Socket ERROR, Event: zone_get_space, Id: 65f5e22bf06b31992b308e77 { "event": "zone_get_space", "data": { "id": "65f5e22bf06b31992b308e77", "eventId": "e96e82f1-54c1-4cfd-979f-e8a40d2504b4" }, "json_result": "" }
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
Zone Server Socket ERROR, Event: zone_get_space, Id: 65f5e22bf06b31992b308e77
Analytics (Client) Identify Email: user_id: 65f5e1daf06b31992b3080a3, email: [email protected]
Client connected: 2093675072
ERROR: server is ready? Server data received: false, files downloaded: true, zone preloaded files: false
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
ERROR: Server not ready for players to join
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
Client disconnected, peer id: 2093675072
Client connected: 1218115229
ERROR: server is ready? Server data received: false, files downloaded: true, zone preloaded files: false
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
ERROR: Server not ready for players to join
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
Client disconnected, peer id: 1218115229
Client connected: 456171315
ERROR: server is ready? Server data received: false, files downloaded: true, zone preloaded files: false
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
ERROR: Server not ready for players to join
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
Client disconnected, peer id: 456171315
Client connected: 170891026
ERROR: server is ready? Server data received: false, files downloaded: true, zone preloaded files: false
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
ERROR: Server not ready for players to join
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
Client disconnected, peer id: 170891026
Client connected: 1562127676
ERROR: server is ready? Server data received: false, files downloaded: true, zone preloaded files: false
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
ERROR: Server not ready for players to join
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
Client disconnected, peer id: 1562127676
Client connected: 1884998024
ERROR: server is ready? Server data received: false, files downloaded: true, zone preloaded files: false
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
ERROR: Server not ready for players to join
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
Client disconnected, peer id: 1884998024
Client connected: 845635059
ERROR: server is ready? Server data received: false, files downloaded: true, zone preloaded files: false
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
ERROR: Server not ready for players to join
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
Client disconnected, peer id: 845635059
Client connected: 129899215
ERROR: server is ready? Server data received: false, files downloaded: true, zone preloaded files: false
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
ERROR: Server not ready for players to join
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
Client disconnected, peer id: 129899215
Client connected: 1571712917
ERROR: server is ready? Server data received: false, files downloaded: true, zone preloaded files: false
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
ERROR: Server not ready for players to join
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
Client disconnected, peer id: 1571712917
Client connected: 1851107234
ERROR: server is ready? Server data received: false, files downloaded: true, zone preloaded files: false
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
ERROR: Server not ready for players to join
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
Client disconnected, peer id: 1851107234
Client connected: 401623420
ERROR: server is ready? Server data received: false, files downloaded: true, zone preloaded files: false
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
ERROR: Server not ready for players to join
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
Client disconnected, peer id: 401623420
Client connected: 877590860
ERROR: server is ready? Server data received: false, files downloaded: true, zone preloaded files: false
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
ERROR: Server not ready for players to join
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
Client disconnected, peer id: 877590860
Client connected: 41220217
ERROR: server is ready? Server data received: false, files downloaded: true, zone preloaded files: false
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
ERROR: Server not ready for players to join
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
Client disconnected, peer id: 41220217
Client connected: 984667329
ERROR: server is ready? Server data received: false, files downloaded: true, zone preloaded files: false
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
ERROR: Server not ready for players to join
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
Client disconnected, peer id: 984667329
Client connected: 1444118560
ERROR: server is ready? Server data received: false, files downloaded: true, zone preloaded files: false
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
ERROR: Server not ready for players to join
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
Client disconnected, peer id: 1444118560
Client connected: 2137508070
ERROR: server is ready? Server data received: false, files downloaded: true, zone preloaded files: false
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
ERROR: Server not ready for players to join
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
Client disconnected, peer id: 2137508070
Client connected: 79413178
ERROR: server is ready? Server data received: false, files downloaded: true, zone preloaded files: false
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
ERROR: Server not ready for players to join
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
Client disconnected, peer id: 79413178
Client connected: 959241410
ERROR: server is ready? Server data received: false, files downloaded: true, zone preloaded files: false
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
ERROR: Server not ready for players to join
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
Client disconnected, peer id: 959241410
Client connected: 729184170
ERROR: server is ready? Server data received: false, files downloaded: true, zone preloaded files: false
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
ERROR: Server not ready for players to join
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
Client disconnected, peer id: 729184170
Client connected: 507376214
ERROR: server is ready? Server data received: false, files downloaded: true, zone preloaded files: false
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
ERROR: Server not ready for players to join
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
Client disconnected, peer id: 507376214
Client connected: 1134976828
ERROR: server is ready? Server data received: false, files downloaded: true, zone preloaded files: false
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
ERROR: Server not ready for players to join
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
Client disconnected, peer id: 1134976828
Client connected: 1833070598
ERROR: server is ready? Server data received: false, files downloaded: true, zone preloaded files: false
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
ERROR: Server not ready for players to join
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
Client disconnected, peer id: 1833070598
Client connected: 426988123
ERROR: server is ready? Server data received: false, files downloaded: true, zone preloaded files: false
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
ERROR: Server not ready for players to join
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
Client disconnected, peer id: 426988123
Client connected: 835237004
ERROR: server is ready? Server data received: false, files downloaded: true, zone preloaded files: false
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
ERROR: Server not ready for players to join
   at: VariantUtilityFunctions::push_error (core\variant\variant_utility.cpp:1091)
Client disconnected, peer id: 835237004
Client connected: 1852911920

[Cleanup] We need to clean up the file mirror-godot-app/README.md

What needs to be cleaned up?

We need to clean up the file mirror-godot-app/README.md

I think there are different parts of the text that need to be changed, but the main thing is that there are a lot of irrelevant / broken links that lead either to a remote or closed repository in the group https://github.com/the-mirror-megaverse/

Can you do this yourself? Contributions are greatly appreciated!

It is better to carry out this work to the main team members who know exactly all the relevant information and relevant links.

[Proposal] Multi-Map Support

Currently when making a map in a space you are limited to a single map. It would be nice to have multiple maps and spawn locations for each to allow for the map to change between rounds or matches.

[Bug] Weapon transfer error

The error is that three weapons (shotgun, pistol, machine gun) that have a hand sign cannot be moved into the scene or, for example, placed above the table so that the player can come up and take their inventory.

Windows 10, Itch, Mirror version: Alpha version Gravity v6.0.259 - prod, docker open source.

  1. Go to Mirror.
  2. Press B to open the assembly user interface, Editor.
  3. Transfer the 3D model to the scene (shotgun, pistol, machine gun) where there is a hand sign.

Screenshots:
3
5

Device name: DESKTOP-LQO14G9
Processor: 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz
RAM: 8.00 GB (available: 7.69 GB)
Device code: A88A02A9-6C5D-4573-AD45-6CEA095BEEC6
Product code: 00331-10000-00001-AA015
System type: 64-bit operating system, x64 processor
Pen and touch input: Pen and touch input are not available for this monitor

[Bug]

Weapon transfer error.

The error is that three weapons (shotgun, pistol, machine gun) that have a hand sign cannot be moved into the scene or, for example, placed above the table so that the player can come up and take their inventory.

Windows 10, Itch, Mirror version: Alpha version Gravity v6.0.259 - prod, docker open source.

  1. Go to Mirror.
  2. Press B to open the assembly user interface, Editor.
  3. Transfer the 3D model to the scene (shotgun, pistol, machine gun) where there is a hand sign.

Screenshots:
3
5

Device name: DESKTOP-LQO14G9
Processor: 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz
RAM: 8.00 GB (available: 7.69 GB)
Device code: A88A02A9-6C5D-4573-AD45-6CEA095BEEC6
Product code: 00331-10000-00001-AA015
System type: 64-bit operating system, x64 processor
Pen and touch input: Pen and touch input are not available for this monitor

[Planned Feature] Control the camera from scripts

Opening this for discussions on camera control via scripts.

This will allow for numerous types of additional features, such as cutscenes, locked camera axis games (platformers, RTS, etc.), and more.

Create documentation for building a Godot fork

I'm creating an issue in this repository because this repository is an issue hub, but this issue concerns a Godot fork in a child repository https://github.com/the-mirror-gdp/godot

Since the Godot fork with expanded functionality is an important component of The Mirror project, it is necessary to place instructions in the official documentation in the "Open-Source Code" section for assembling working editor applications based on this Godot fork, at least for the main platforms Windows, macOS and Linux.

https://docs.themirror.space/docs/category/open-source-code

Currently there is a problem with using GitHub Actions for building, this is written in the issue the-mirror-gdp/godot#2

While building using GitHub Actions does not work, you can write the build process using SCons in the documentation.

Respected @aaronfranke on Discord commented:

I have only tested compiling locally on Windows and macOS, just with scons.

Prior to open sourcing, we only tested Windows, Mac, and Linux builds all without sanitizers. Some work will be required to fix building with sanitizers and on Android, iOS, and web.

It turns out that the first step in the documentation is to describe how to build without sanitizers, additionally indicating in the documentation the reason why sanitizers are not currently used, so that users of the documentation do not have unnecessary questions.

[Planned Feature] Screenshot should automatically save to My Assets instead of local disk

Description
Currently, taking a screenshot saves the file to local disk. However, it'd be a lot cooler if it saved to the user's assets so it could appear in the sidebar.

Acceptance Criteria:

  • When the screenshot is created, automatically upload it as an Asset using existing functionality
  • Thus, when a screenshot is taken, it should appear in My Assets

Nice to have:

  • Is there a way to not have the screen freeze when the screenshot is taken?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.