"Game editor" is a very general term that can mean lots of different things:
A "world" or "scene" editor, which defines the initial state of the game
An "inspector" or "debugger", which allows you to view and modify the game while it is running.
Let's call these modes - scene editing mode, and live editing mode.
This issue will focus first on scene editing mode.
What is a scene editor?
The first question to answer here is what is a scene?
For a game with different levels, a scene could just mean a level, whereas an open world game might just have a single scene. Since we're a VR engine, we tend not to have huge (eg. at the scale of something like Elden Ring, or Red Dead Redemption 2) open worlds, but these still could be quite large (eg. around a square kilometre).
So we can then narrow a scene to be "the state of the game at some logical starting point". If we continue along the logic of #378 then we can simply say that the a scene should be identical to the contents of the ECS world at startup.
How will we build this?
This then defines the problem space quite narrowly: we need some program that can:
Load a scene from disk
Display a representation of that scene
Modify that representation
Persist the scene to disk such that it can be read again
Background
Here we go - the dreaded editor.
What are we trying to achieve?
"Game editor" is a very general term that can mean lots of different things:
Let's call these modes - scene editing mode, and live editing mode.
This issue will focus first on scene editing mode.
What is a scene editor?
The first question to answer here is what is a scene?
For a game with different levels, a scene could just mean a level, whereas an open world game might just have a single scene. Since we're a VR engine, we tend not to have huge (eg. at the scale of something like Elden Ring, or Red Dead Redemption 2) open worlds, but these still could be quite large (eg. around a square kilometre).
So we can then narrow a scene to be "the state of the game at some logical starting point". If we continue along the logic of #378 then we can simply say that the a scene should be identical to the contents of the ECS world at startup.
How will we build this?
This then defines the problem space quite narrowly: we need some program that can:
Okay, let's get started.
TODO