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

Defining a new enhanced source port standard (Boom+/MBF+)

Recommended Posts

12 hours ago, VGA said:

The sane thing is to fork a Doom source port and make it support Heretic. But if you want to act insane, sure, extend BEX so you can implement Heretic support (especially the inventory system lol) throughit.

I don't think it's possible to implement Heretic out of BEX without modifying a source port, that's not my intent. Sorry if it came across like that.

In order to extend BEX you already need to fork a Doom source port anyway. I'm not making a separate dehacked program for DOOM.EXE.

 

I was intending to implement Heretic support in a PrBoom fork, I already separated the logic and made my own gameinfo_t, I can load doom and heretic wads without crashing but most of heretic is unimplemented yet.


The thing is that I thought maybe it's possible to expose some of the Heretic differing logic (coded in the engine fork) through BEX. I expect some of the ZDoom-specific extensions to BEX are already related to Heretic (and Hexen), like MF2_BOUNCETYPE. and it's likely this will also be the case for other engines that had support for Heretic (ZDaemon for example still uses a "DEHSUPP" lump for redefining the dehacked lookup tables to support Heretic/Hexen or custom iwads), so I thought it would be good if some of these extensions to BEX were to be part of the new standard.

 

And I specifically mentioned the inventory and the heretic status bar as examples of things that I would *not* add in the new BEX Doom standard, because most Doom-only engines wouldn't want to implement them and this discussion is about extending the standard in a way multiple engines can agree on supporting.

Edited by Ferk

Share this post


Link to post
On 2/25/2018 at 6:20 AM, Ferk said:

I hope this is not too offtopic, but I've been wondering: how doable would it be to extend BEX in such a way that it can be used as a bridge between Doom and Heretic?

I small part of the (very overdue) spec is to acknowledge that we have a half-dozen idTech1 games, and that some ports would like to be able to support those games. But at lot of work must happen before any DeHacked/BEX enhancement can take advantage of that. First of all, the engine itself must be able to handle all of the new things Heretic, Hexen, etc bring to the table, before even starting on any BEX extension.

 

I guess what I'm saying is that, what you want to do will hopefully become practical and possible down the road, maybe with BEX, or more likely with something nicer. But a lot of things have to happen first, before even considering how modding will work.

 

By the way, I'm still slowly moving forward. Sorry it's taking so long.

Share this post


Link to post

Bringing in the new codepointers, thing flags, and even thing types would be cool. Cyb's Void comes to mind as an example of what could be possible, reskinning the Heretic undead knight as the dark imp. Of course you'd have to give them editor numbers through dehacked to be able to use them without ACS to spawn them, but it's fine.

 

I'd even suggest using ZDoom's renamed sprites for them to make it easier to use them without conflicting with Doom stuff.

Share this post


Link to post
20 hours ago, Ferk said:

And I specifically mentioned the inventory and the heretic status bar as examples of things that I would *not* add in the new BEX Doom standard, because most Doom-only engines wouldn't want to implement them and this discussion is about extending the standard in a way multiple engines can agree on supporting.

 

 

So, you're basically thinking about adding thing flag support, and some new action pointers? This is a noble effort which I applaud. I must admit that defining these additions as a definitive new standard, on top of a partial implementation, is worrisome. I think you might run into situations where you'd have to compromise. Certain action pointers require helper functions that aren't available in Doom. And the new flags also require new engine support.

 

I am not trying to discourage your plan. Maybe I am worrying too much. Here's my main beef with the idea:

 

1. Will the additions to the standard still work for ports that want to fully implement Heretic, or will we need to have HereticBEX v1 (Lite), and HereticBEX v2 (Full-blown)? This can be handled with version numbers, but it does complicate things.

 

2. What will other Doom ports do when they encounter a Heretic BEX file?

 

Please note: These are not specific concerns about your plan - these issues would need to be considered with any additions to BEX. All I would ask is that any spec update takes these issues into consideration. It's hard to do: basically, you have to consider each and every situation that might occur, and ask "What will happen if...".

 

Don't get me wrong: I am very interested in your plan, and it coincides with my plans:

 

5 hours ago, Gez said:

Bringing in the new codepointers, thing flags, and even thing types would be cool. Cyb's Void comes to mind as an example of what could be possible, reskinning the Heretic undead knight as the dark imp. Of course you'd have to give them editor numbers through dehacked to be able to use them without ACS to spawn them, but it's fine.

 

I'd even suggest using ZDoom's renamed sprites for them to make it easier to use them without conflicting with Doom stuff.

 

This basically describes an optional addition to the CDEX standard - the adding of the other idTech1 weapon and monster codepointers, and the addition of/remapping of thing flags. This BEX upgrade plan would be able to work hand-in-hand with such an approach. But, as far as CDEX is concerned, it probably needs to be semi-optional, though I'm not sure where to draw that line. Adding fields to the actor structure does make actors bigger in memory, and less cache-tolerant, but, otherwise doesn't really cause any other problems for ports. Adding flags is tricky, simply because every port has added their new flags in different places (also manageable). And, finally, considering the inevitable plan to support actor definitions directly (vs. through BEX), we almost need to define a standard set of new actor fields and flags.

 

The obstacles of adding Heretic/Hexen/Strife codepointers and flags practically disappear if you also intend to support DECORATE, because the big obstacles of both are a lack of fields in Doom's actor tables, a bunch of cut+paste codepointer code, an agreed set of flags (with a remapper), a doomednum remapper, and some glue code.

 

@Ferk: Again, a cool idea! I'd love to see what you come up with, and I hope to be able to use some or all of it in the CDEX standard (with your blessing), if I can ever get it out there.

 

Share this post


Link to post

Progress report 02/07:

I made a lot of progress on the draft last weekend, and took care of some RL stuff that was really holding me back. It's starting to move from a collection of ideas into a cohesive whole plan. I had to add more than just the two sections I mentioned earlier, but it's getting close. I'm really going to need a lot of help with the specifics, but that's what a rough first draft is for, I guess.

Share this post


Link to post
On 08/03/2018 at 3:22 AM, kb1 said:

Progress report 02/07:

I made a lot of progress on the draft last weekend, and took care of some RL stuff that was really holding me back. It's starting to move from a collection of ideas into a cohesive whole plan. I had to add more than just the two sections I mentioned earlier, but it's getting close. I'm really going to need a lot of help with the specifics, but that's what a rough first draft is for, I guess.


That's great to hear. Once you've got something out I'd like to see whether I could get back to being involved. I did enjoy the simple proof-of-concept patches I wrote for insta-kill sectors and switchable "alert monsters".

Share this post


Link to post
8 hours ago, Jon said:


That's great to hear. Once you've got something out I'd like to see whether I could get back to being involved. I did enjoy the simple proof-of-concept patches I wrote for insta-kill sectors and switchable "alert monsters".

@Jon Absolutely I will be asking for your help - I'm going to need it. And we can include your patches! I made a huge, ugly list of every suggestion in this thread, the other thread, and from various other sources. We will need to decide on many things in the draft, including new actions such as those you built. I am going to need help organizing those decisions, and organizing spreadsheets of various new stuff. I am still bogged down with work. I'm going to release this draft, and then switch over to other priorities in my life (I am juggling time and projects). So, yes, if you are willing...be careful what you ask for...you just might get it :)

 

By the way, I did make some progress this weekend, so I'm moving forward. More on my progress later.

Share this post


Link to post

It would be very useful if Heretic have new format like Boom+Heretic featured translucent lines, generalized actions, new switches/animations, e.t.c. plus demo compatibility.

Edited by riderr3

Share this post


Link to post
4 hours ago, riderr3 said:

It would be very useful if Heretic have new format like Boom+Heretic featured translucent lines, generalized actions, new switches/animations, e.t.c. plus demo compatibility.

It's planned, other than demo compatibility for Heretic. That's up to ports to decide if they want to tackle demo compatibility, especially Heretic demo compatibility. Unfortunately, Heretic broke its own demo compatibility with the latest release, though I think I know what they did to break it (they altered the frame table, for one.)

 

I will probably be seeking assistance in cleaning up what I've got so far on this - I am still overwhelmed, I am tired of making everyone wait, and it's time to get this thing rolling. I'm going to give it another attempt or two first, and, depending on how far I get, I have a couple people I want to ask for some help formatting, proofreading, and releasing this thing.

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
×