GoomiiV2 / Rampancy

A new level editor for the Halo games based on a CSG/Brush workflow, similar to Source/Quake level editing.
MIT License
36 stars 1 forks source link

[Long long term] Look into not depending on Unity #19

Open GoomiiV2 opened 2 years ago

GoomiiV2 commented 2 years ago

This isn't exactly a super serious thing but one I would like to do, largely also depending on how people use this tool (or not). This issue is to track things that are specifically tied to Unity and options that are less Unity specific that could be used.

I'm not the biggest Unity fan, despite this project, being in Unity :D but I won't go on about how i would want to use it personally for a substantial game.

The core reason for using Unity for this project was, Realtime CSG. I didn't find another CSG lib that was as stable and as performant as it, Chisel could be great as a replacement but its also Unity too. This is the biggest blocker, RCSG has most of its algo in a native dll, so I could try using it from a separate project and build the UI around that (with Veldrid and Imgui.net). It would be quite abit of framework setup for the rendering and UI, but it would be standalone.

The other option I looked at before RCSG was TrenchBroom and a custom or modified Q3 compiler to output halo mesh formats. I love Trenchbroom but the down side for this project is that its non realtime csg and non subtractive. The attraction of realtime and subtractive is that you get feed back much faster and with subtractive having a sealed mesh is easier to guarantee.

On the plus side, no Unity could mean loading the tags data directly for bitmaps / shaders and less working around Unity to get those things to work.

Its not been used yet but the other draw for Unity was the light mapper, esp the GPU one for Halo 1 maps. If not using Unity would like to find something else, maybe blender? I think there was a project already that was working on that?

Another plus for non Unity would mean distributing this is simpler, one download run and go, versus installing Unity and then this package.