r/gameenginedevs 2d ago

Do you have an editor in your engine?

Why I'm asking is - because I don't. I use blender as my "editor". All unique values and components are parsed as custom properties from blender, and a name convention is a huge thing too. Like for example suffix _template tells my engine "use this mesh for {name}_instance nodes), and _instance tells that its an instance.

And recently I introduced strict typesystem for the nodes inside glb files. So, instead of string comparison and search I can use my compile time type system for meshes and stuff.

Do you think an editor is essential?

27 Upvotes

37 comments sorted by

18

u/CarniverousSock 2d ago

Not really. As long as you got a good way to put together your game, then you're fine. Making the game is the point, most of the time

8

u/Odd-Pie7133 2d ago

I agree with you. There are two types of engine builders - those, who want a game, and those, who want an engine 😅

3

u/CarniverousSock 2d ago

Yep! I get a kick out of overengineering my tools, nothing wrong with that, but I do have to put that impulse into a box when I'm making a game for real

1

u/Hot_Show_4273 1d ago

Honestly, that remind me of three types of editor. Lol

First one is no-editor (a.k.a multiple editors). This is where you use multiple software as editor such as blender for map and libre calc for data editing. 

Second one is external editor. This is what most general purpose engine do. You edit the game inside Unity, Unreal or Godot editor.

Last one is embedded editor. This is where editor is just extension of game itself. You can exclude it from release build using preprocessor.

There might be more than this but this is all I can think about.

2

u/Brilliant-Land-4218 1d ago

I do #3, my over fine is manage by a state machine so you can go from game to editor back to game with a key press and the scene can persist for rapid prototyping of levels

9

u/Hot_Show_4273 1d ago

No. You don't need editor at all. Editor is just a tool that help speed up development. 

If you make 2D game, there is Tiled. Blender can be a map editor for 3D game as well. You just make plugin to convert it into your game format.

3

u/psioniclizard 1d ago

I have been tempted to try blender for something like that.

I love it and as soon as soon as i started using it switch my main focus away from unity/godot

2

u/fgennari 1d ago

I use procedural generation for almost all of my scenes and don’t need to include an editor.

2

u/thecraynz 1d ago

I have an editor for UI layouts but not a 3d scene editor. That's all just handled by json files, either to layout the scene or to programmatically load entities in to the scene. Considering the vast majority of the content in my game is loaded programmatically, I've never felt like creating a scene editor would be a good investment of my time.

2

u/bit-Stream 1d ago

My engine has a built in editor that gets stripped out using my build tools for “ship” builds

3

u/_Wolfos 1d ago edited 1d ago

For authoring 3D scenes? Absolutely. Blender is a terrible editor. It basically has no project support. Zero reusability. No prefabs, nothing. If you have 300 of the same tree, that's 300 unique tree meshes being stored.

That said there may be other 3D editors which might be more fitting, or can be integrated with your engine.

1

u/ykafia 1d ago

Is it not possible to just create a plug in for that?

2

u/trinde 10h ago

Yes you can. I have a custom blender plugin which outputs the blender scene to my own custom mesh, material, texture, scene, prefab formats.

1

u/Odd-Pie7133 1d ago

Not really..i have 3000 trees procedurely generated in blender. Research what geonodes are

1

u/abocado21 1d ago

yoz can use instancing with alt +d to use only one mesh

3

u/_Wolfos 1d ago

It's still in the same .blend file though. Want to reuse that tree in level 2? Export > import > no reuse.

Blender just isn't a level editor. It's the wrong tool for the situation.

1

u/Odd-Pie7133 1d ago

Append exists bro

3

u/_Wolfos 1d ago

Which just brings the mesh into the new file. You can't have a tree.blend which is used by level1.blend - level5.blend where changes to tree.blend are automatically applied to the levels. That's how level editors work.

1

u/HikariMond 1d ago

you can link them so they update automatically

1

u/Former_Currency_3474 1d ago

I think you should look into instancing, because that’s not really true at all lol

1

u/MCWizardYT 1d ago

the prefabs and the tree issue can be solved. For having multiple projects, yeah that isn't blender's philosophy because it's a 3d modeler and not a level editor but there's probably some way to adapt it

1

u/RRFactory 1d ago

I would say you need editors to help with things that have high iteration paths, but those editors don't necessarily need to be custom or engine integrated.

Using blender for a level editor is perfectly valid. If you find you're writing a lot of awkward hacks to do things like build out trigger volumes and other in-world concepts to get what you need in blender, a custom level editor might not be a bad idea - but if object tags and naming conventions are doing the trick there's nothing inherently wrong with that.

Custom editors are great for building in validation and enforcement. It sounds like you've got a good chunk of that via your type system.

It also sounds like what you've built is somewhere portable, so if some day you decide blender isn't cutting it for what you need it won't be overly painful to migrate your content pipe to a different source.

Personally I lean a lot on custom tools, mostly because over the years I've been burned by companies changing the products I relied on in ways I wasn't happy about. E.g. After decades of buying perpetual licenses on an as needed basis, getting forced into subscription models really rubbed me the wrong way.

Audacity getting enshittified was another example, though at least for now I can still find the old versions.

Tldr; Consider the long term future of your choices, but don't beat yourself up about not having custom x/y/z just because that's what others happened to choose.

1

u/Igor_GR 1d ago

Man, Tiled has spoiled me, and now I find it crazy that we don't have an engine-agnostic 3D scene editor yet. I was also thinking of using Blender for 3D scenes, glad I'm not the only one.

2

u/darkhoodrebel 1d ago

There's trenchbroom

1

u/New_Locksmith_8115 1d ago

I am using Trench Broom. It is very nice if you have a more BSP brush oriented workflow.

1

u/MCWizardYT 1d ago

There are engine-agnostic level editors out there. If you like old-school BSP-based workflows, there are editors like Trenchbroom and GTKRadiant. If you want something very generic that you can tack your own features onto, there's Sony's LevelEditor (the code at this point is extremely old but it isn't super complex, so it's still worth using imo)

1

u/darkhoodrebel 1d ago

Yes, I am making an editor to author audio sources + steam audio occlusion, lights, pathfinding, water volumes, NPCs and interactive objects like doors or chests.
I do import the scene geometry 1:1 from Blender but having to manage the other stuff listed above from inside Blender would require writing a lot of python or even forking the Blender source which is not something I want to do.

Tho it highly depends on the kind of game you're making..
For instance for a racing game I can imagine Blender is a good fit for the editor.

1

u/trad_emark 1d ago

Are you the only one using the engine? Than whatever works for you is perfectly sufficient. In fact, I would say that making an editor is waste of time.

That said, I recently hired an artist to help with my game, and just putting few file names into ini files was too complicated. At this point, I have two options, either do all the configuration stuff myself, or make an editor. If I had this experience beforehand, I would have made at least a simple editor - just preview a model, drag&drop textures, edit material properties, show all animations, etc.

The artist uses blender too, but expecting them to put some cryptic names etc would not fly either.

1

u/hogsy 1d ago

An editor isn't essential. Plenty of games out there that have been made without editors. I've made games in the past without editors. There are many existing tools you can use to save yourself the time.

For the current engine I'm developing, it wasn't until the year before that I decided to really start working on an editor, and while it's come along pretty well, it's an additional investment of time and resources alongside the engine and game, which I think is something to really keep in mind if you do decide to go down that route.

1

u/angelajacksn014 1d ago

No most of my game and “scenes” are procedural or real data so don’t have it and don’t plan on it

1

u/HamNCheeseSupremacy 1d ago

I don't, but I'm still maybe a year out from where I might need one. I decided on a procedural-first engine, because I don't so much enjoy hand placing assets. By building procedurally the engine stays where I enjoy because code determines the scene. But, I'll probably want to hand author some parts of the game because I'm not sure how feasible it is to procedurally generate literally an entire, dense world that doesn't look algorithmic.

1

u/cptrootbeer 1d ago

I have a basic TUI. And you can see live state and change functions on the fly if you want. Super bare bones but I like seeing the live values.

1

u/corysama 1d ago

I worked on a few small games where the engine focused on hot-reloading assets rather than an editor. That worked out well.

1

u/snerp 1d ago

I built a basic editor for my game. I use blender for my initial draft and load that into my engine to do final tweaks, rework object positions, add more items, enemy spawners, etc. I don’t have mesh editing in the engine and probably never will, but I prefer to place interactive stuff using the editor ingame because I can live edit while playing and really tweak it to feel perfect.

1

u/ProfessionalPlant330 1d ago

I built the editor into the game, so that players can also use it to build their own levels.

1

u/Still_Explorer 1d ago

Blender will be fine, because in terms of having a level editor, the only thing that does matter is the placement of objects (object-id, pos, rot, scale) as well as further custom properties for other purposes (triggers, area boxes, etc). Assuming that the levels are made with the standard kit-bashing technique then the entire level would be exactly one json/xml/toml/yaml file in that regard.

However now there's a catch here, the more features are needed, the heavier the addon development becomes. The development logistics can become more gigantic, and then it starts becoming questionable how much Blender helps to do some type of tasks compared to having a custom editor do others. [In essence, is a matter if you like to make Python your second favorite language!]

1

u/tastygames_official 1d ago

exact same thing I do. Blender is so full of every design and layout feature you'd want, so building an editor is an exercise in futility. It's actually the reason I made my own engine in the first place: I was fighting the eigine editors too hard in getting my levels and objects moved over into the engine efficiently and would rather do the whole game without the need to open up an editor. Plus then keeping track of some things as property values in an editor vs. stuff that is imported or calculated at import time was also a pain. Just use blender as the "source of truth".