Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
scifista42

Flexible Doom-like engine aimed to new game creators?

Recommended Posts

Given the decent speed of Doom's software renderer and whole engine, I always thought it would be awesome if this relatively simple engine (or a derived one) could attract more game designers to build their entirely new games on it. I know that it somewhat happened in the past, but honestly, not much extensively. In my view, the problem is that the engine has lots of hardcoded stuff. And even though some Doom source ports like ZDoom/Eternity/3DGE do an awesome job at extending feature support and general flexibility, some core Doom-specific stuff keeps being hardcoded / impossible to change. For example:

  • Game logic capped at 35 FPS
  • No direct access to renderer, game data and core engine functions (must be mediated by pre-made linedef actions, lump-based scripts etc.)
  • Game data structures are fixed and cannot be altered (for example, a sector cannot be altered to have unlimited number of tags, it must always have one)
Doom source port creators make their new features with respect to Doom modders and Doom itself, which is obviously the best thing for said purpose. But I feel that the direction could be shifted a slightly different way, to focus on the very core traits of the engine and improve its general flexibility. Theoretically all game genres could take advantage of such a flexible engine.

Why didn't a progress in this direction already happen, or did it? Any thoughts related to the idea? I'm afraid that (as of yet) I cannot contribute to realization of the idea, so I just leave it as food for thoughts. Feel free to share opinions.

Share this post


Link to post

Something UE4 related would be nice.

Edit: I've been wanting to make a new game that utilizes a newer engine that mappers could in fact make easy levels out of via an UnrealED like editor combined with Doom Builder like features. I have no idea how to start making it though.

Share this post


Link to post
BlackFish said:

Edit: I've been wanting to make a new game that utilizes a newer engine that mappers could in fact make easy levels out of via an UnrealED like editor combined with Doom Builder like features.

I also fantasized about a map editor with its own map format, which would be Doom-like sector based, and configurable and exportable to .map format of any game/engine that uses .map maps. Pros: Map creation as fast and easy as in Doom Builder. Cons: Some features would require workarounds, but the map format itself would count with them and make them easy to use anyway (because the "Export to .map" feature would be entirely in the editor's competence). I wonder if anything like that was ever created.

Share this post


Link to post

It's an idea that has occurred to me too, and I think the important thing is to distinguish between limitations that are strengths and limitations that are weaknesses. Weaknesses include the examples you've given.

Limitations as strengths might sound nonsensical so hear me out. I think the biggest strength is the Doom mapping format. The 2.5d flat-from-above format allows a reasonable degree of flexibility while also making levels easy to construct. I believe there's a big step up in complexity as soon as you transition to a true-3D format. Events like 32in24 are testament to how easy it is to hash out levels quickly and the quality of modern mapping tools.

The state machine used for monster behavior is also a nice way of allowing nonprogrammers to change game behavior in a table based way without needing to learn to code.

In terms of actual implementation the obvious approach is to stick to Doom's code but I'd perhaps suggest just starting from scratch and writing an entirely new engine that just uses the same formats. Focus on in-game edit ability and being asked to test things out in real time. I kind of feel like the legacy Doom codebase could be more of a burden than a benefit to making something like thus.

Share this post


Link to post

I was only recently reminded of an idea in my head about an engine that could use modern tech to draw really big maps with lots of actors instead of realistic graphics. Doom engine derivatives suffer from being Doom engine derivatives, in a sense that it was a technology developed and optimized for small simple maps. You can add some crutches to make up for the initial absense of certain functionality, but it's often clumsy and tends to lag like hell when overused.

It would be interesting to see a similar engine developed with modern demands in mind from the very beginning.

Share this post


Link to post

@Da Werecat: That sounds close to an exact opposite of my idea (simple engine for flexibility vs. modern engine for simplicity), but nevermind, it's an interesting one as well. Existing Doom ports with OpenGL renderers are close to that, I suppose (but I see, that's not it, it's just the rendering area).

Share this post


Link to post

It would only be modern in the sense that it would be engineered for modern machines and much bigger (than in Doom) game worlds. Other than that, I see it as a visually simple 2.5D engine with all of its features implemented elegantly, without any legacy features and formats forcing to do things certain way or bloating everything.

So I don't think that our ideas are mutually exclusive. Unless I'm missing something.

Share this post


Link to post
scifista42 said:

  • Game data structures are fixed and cannot be altered (for example, a sector cannot be altered to have unlimited number of tags, it must always have one)

This was recently addressed in ZDoom by adding the "moreid" field in UDMF. Now sectors and lines can have multiple tags.

Share this post


Link to post

As long as this hypothetical engine is FLOSS (FSF/DFSG compatible) ,made to run on as many systems as possible, has single-player, cooperative and competitive multi-player modes, and has a powerful demo recording system that covers the whole map (maybe not for single-player) and allows way-point camera recording, I'm happy.

Share this post


Link to post

For anyone wanting to make a brand new game, software renderers (be it DOOM or QuAKE) are essentially dead, or at best very very very niche.

I think the audience for such an engine is limited to communities like this one, and then it would have to be extremely compelling to get people to use it over ZDoom or PrBoom+

Share this post


Link to post

They just planned to use GZDoom (and only after removing its non-GPL content). The project was about cumulating artistic assets in the first place, then propagate the whole thing as an easy-to-use game making tool. At least that's how I comprehended it.

Share this post


Link to post

The main limitations have more or less already been listed:

- 2.5D engine (no room-over-room, etc.)
- No scripting (tagged sectors, hardcoded behavior, etc.)

2.5D has two components. A lot of work has been done on the GL renderer, and if you're super picky about how it looks, you can probably make it look almost perfect with shaders.

The second component is the map format, and that's kind of ugly. I don't even know what to do about that. There are various ugly hacks to get more advanced geometry into Doom (slopes, room-over-room, portals, silent teleporters, etc.), but it makes it really convoluted. Maybe it's worth adopting a preexisting format and toolchain.

Scripting is a large problem too; you *might* be able to reimplement all the physics in scripting without breaking compat, but it's kind of a big job.

But that's what the modern engines do anyway. All the tough, boring stuff (renderer, netcode) is in C++, and then behavior is all scripted.

Share this post


Link to post
fraggle said:

Limitations as strengths might sound nonsensical so hear me out. I think the biggest strength is the Doom mapping format. The 2.5d flat-from-above format allows a reasonable degree of flexibility while also making levels easy to construct. I believe there's a big step up in complexity as soon as you transition to a true-3D format. Events like 32in24 are testament to how easy it is to hash out levels quickly and the quality of modern mapping tools.

Exactly my opinion. Doom's engine is the golden balance between the 2D engine of Wolf3D clones (way too primitive, can't make something that looks great) and the full-3D engines (too complex; even making a square room is a bit of a chore.) Doom's 2.5D levels are easy to grasp and to design, while still offering a lot of variety and eyecandy, and sufficient for most possible visual themes.

Share this post


Link to post

It might not even be worth retaining the Doom file format. Maybe just the principle of a top-down 2.5D world is enough.

I kind of don't feel like Doom's plain geometry is good enough nowadays. I mean the idea that "grass" is a flat floor with a grass texture, or that a "brick wall" is a flat wall with a brick texture. It's really noticeable when you try to use a source port with advanced graphics: no matter how many textures you replace with hi-res versions, or how many fancy 3D effects you add, the flat nature of the underlying levels always sticks out.

What would be interesting would be a setup that would let you quickly draw out the structure of a level in a top-down way (like you can with a Doom level), and then rapidly add fine detailing. It would be interesting to have an editor that understands materials, so that once you have the basic structure in place, you can switch into a 3D view and dig piles of earth, knock bricks out of walls, smash up tiles, etc.

Share this post


Link to post

Why doesn't any port have bumpmapping to make some surfaces seem less flat?

Share this post


Link to post

Would be cool for a 3D editor to let you have separate "floors" to the level like drawing the layout as you would a doom level then elevating up and down however much you want to create rooms that would be above and below on separate layers like an art program of sorts. Hopefully something like that would be easy to understand and not leave me feeling helpless. Oh and of course different feels and shapes for stuff like grass and bricks mentioned earlier.

Share this post


Link to post

What happened to the proposal made here at dw a few years ago, where some intrepid doomer suggested an engine that created all world geometry with nothing but special line defs?

Did it turn out to be technically impossible, or would it violate the parameters set up by the op?

Share this post


Link to post
VGA said:

Why doesn't any port have bumpmapping to make some surfaces seem less flat?

Something else comes to my mind; Serious Sam (and presumably some other games) had a feature where a wall had a low-res texture, but when you approached it a high-res overlay would appear over the texture, so e.g. a stone wall would look like genuinely rough stone when examined from up close. Does any port support that?

Share this post


Link to post
VGA said:

Why doesn't any port have bumpmapping to make some surfaces seem less flat?



Because bumpmapping requires directional light, it doesn't really work with Doom's sector-based light model.

Share this post


Link to post
JudgeDeadd said:

Does any port support [detail textures]?

GLBoom+ does.

Share this post


Link to post

Already several engines available.
One is the CUBE engine, has the CUBE deathmatch and single-player games already.
I think another project has adapted it for another game.

Share this post


Link to post

Several games have been made with the Cube(and Cube 2) engine actually. Like Assaultcube, Eclipse and several others that are WIP right now. Its a great engine, and I think more people need to know about it.

Share this post


Link to post
Graf Zahl said:

Because bumpmapping requires directional light, it doesn't really work with Doom's sector-based light model.

Another limitation that a hypothetical new Doom-like engine could work around - Quake-style lighting. I mean, honestly, there are times I really wish I could just make geometry real quick-like in a Doom editor but then run it through some program that'd generate a proper lightmap instead of being stuck with drawing shadows manually.

Share this post


Link to post
Shadow Hog said:

Another limitation that a hypothetical new Doom-like engine could work around - Quake-style lighting. I mean, honestly, there are times I really wish I could just make geometry real quick-like in a Doom editor but then run it through some program that'd generate a proper lightmap instead of being stuck with drawing shadows manually.


Share this post


Link to post

Such new engine could probably also allow to disable automap and/or cheats.

This has been agreed to be a violation of human rights though.

Share this post


Link to post
Graf Zahl said:

Because bumpmapping requires directional light, it doesn't really work with Doom's sector-based light model.


How about cubic environment mapping? Unless I'm mistaken, that's centered around the camera's viewing point rather than the lighting system, it'd be a nice low powered alternative to using real reflection.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×