mocha-engine/mocha

Tracking Issue: New Editor

xezno opened this issue · 1 comments

xezno commented

A game engine's editor is an integral part of the game development workflow. It provides developers with a powerful tool for creating, editing and testing game assets, levels, and mechanics. A good editor should be intuitive and user-friendly, and should make it easy for developers to create and edit a game without having to constantly switch between different applications.

The current Mocha editor is lackluster. This issue outlines the high-level features required for a significant overhaul of the editor, containing various different tools and features to help take the development experience to the next level.

These improvements will take place on the new-editor branch. Some of these features are long-term and will eventually get their own issue.

UI overhaul
ImGui is proving to be lacking in some areas, and we are going to end up contorting it in various ways to suit our needs. Instead, we should think about finding a better framework, or creating our own solution.

  • Evaluate available frameworks, find one that suits us best OR start looking at making a custom one

Material editor
We want to be able to maintain mmat files in a nice UI interface

  • Texture sets: diffuse, normal, AO, metalness, roughness
  • Parameters: scale information, physics data

Model editor
Model importing is currently a big pain, having a UI for this would greatly streamline the process

  • Material sets: what materials are used where
  • Physics information: allow users to specify physics mesh, hull, or shapes

Scene editor
A way to add a scene / level to a game

  • Scene outliner: what entities exist in the scene?
  • Scene viewport: what does the scene look like?
  • Manipulators: transform, rotate, scale entities
  • Play / pause: users should be able to launch their games in the editor (PIE) with ease, as well as pause the game to switch back to the editor so that they can investigate bugs etc.
  • Basic level editor tools / mesh editing: similar to Source's Hammer

Build & deploy tools

  • Display tips & hints to user with "fix now" buttons for easy deployment
  • Target platform (x64 windows for now, others later)

Code improvements

  • #33
  • Find a way to nicely split the editor into its own "game" so that it can be hotloaded and managed separately
xezno commented

After thinking about one of MuffinTastic's suggestions, I've updated this with a point about integrating a different UI framework or creating our own bespoke editor framework. I don't think ImGui is going to be good for us in the long term as it doesn't quite suit our needs. I'll update this with more information after some more thought and research, which will likely be done after #52 / #53.