Difference between revisions of "MBF21"

From DoomWiki.org

[checked revision][checked revision]
m (Highlights: Grammar.)
(full name and link)
(10 intermediate revisions by 5 users not shown)
Line 1: Line 1:
'''MBF21''' (or unabbreviated to '''Modder's Best Friend''') is a specification and standard specifically aimed at mod authors and mods in general. It builds on top of the possibilities shown in the [[Boom]] and [[MBF]] [[source ports]]. It defines a new complevel, {{c|-complevel 21}}, to introduce a range of new features that seeks to improve the possibilities possible in levels and mods, to be implemented in various source ports.  
+
'''MBF21''' (or unabbreviated to '''Modder's Best Friend''') is a specification and standard specifically aimed at mod authors and mods in general. It builds on top of the possibilities shown in the [[Boom]] and [[MBF]] [[source ports]]. It defines a new [[Source_port_parameters#-complevel_.3Ccompatibility_level.3E|compatibility level]], {{c|-complevel 21}}, to introduce a range of new features that seeks to improve the capabilities available in levels and mods, to be implemented in various source ports.  
  
MBF21 version 1.0 was finalized on May 30, 2021.  
+
MBF21 version 1.0 was finalized on May 30, 2021. [[Ryan Krafnick (Kraflab)]] received the special Codeaward at the [[Cacowards 2021]], in part for conceiving the overall idea and implementing the first version in his [[DSDA-Doom]] source port.{{cite web|author=[[Boris Klimeš (dew)]]|title=2021 Cacowards - Other Awards|url=https://www.doomworld.com/cacowards/2021/others/|publication=Doomworld|accessdate=19 December 2021}}
  
 
==History==
 
==History==
The idea behind the MBF21 specification arose from the need for a new complevel originally coined ''MBF+'' by [[Kraflab]] in a [[Doomworld]] thread titled: "Let's talk about mbf+ / a new complevel"<ref>{{dwforums|id=120616}}</ref>.
+
The idea behind the MBF21 specification arose from the need for a new complevel originally coined ''MBF+'' by Kraflab in a [[Doomworld]] thread titled: "Let's talk about mbf+ / a new complevel".<ref>{{dwforums|id=120616}}</ref>
  
 
The specification had the following goals to fulfill:
 
The specification had the following goals to fulfill:
Line 10: Line 10:
 
* Maintain backwards compatibility with the features of MBF
 
* Maintain backwards compatibility with the features of MBF
 
* Make it easy to modify previously hard-coded elements of the engine
 
* Make it easy to modify previously hard-coded elements of the engine
* Add "low hanging fruit" features for maps and dehacked that are in demand
+
* Add "low hanging fruit" features for maps and [[DeHackEd]] that are in demand
 
* Make changes that are easy to adapt into existing source ports and tools
 
* Make changes that are easy to adapt into existing source ports and tools
 
* Maintain the classical / conservative flavour of Boom/MBF
 
* Maintain the classical / conservative flavour of Boom/MBF
Line 18: Line 18:
 
* Instakill floors
 
* Instakill floors
 
* Better generalized line scrolling
 
* Better generalized line scrolling
* Granular control over [[monster]] [[infighting]] and projectile/splash damage susceptibility (e.g. you can make barons and knights infight, or make [[imp]]s immune to [[cacodemon]]s and [[barrel]]s, and all sorts of funky combinations)
+
* Granular control over [[monster]] [[infighting]] and projectile/splash damage susceptibility (e.g. you can make [[Baron of Hell|barons]] and [[Hell knight|knights]] infight, or make [[imp]]s immune to [[cacodemon]]s and [[barrel]]s, and all sorts of funky combinations)
 
* New [[actor]] flags, exposing a whole ton of previously-hardcoded actor behaviors (e.g. splash damage immunity and boss death triggers), plus a few new things like ripper projectiles and low gravity
 
* New [[actor]] flags, exposing a whole ton of previously-hardcoded actor behaviors (e.g. splash damage immunity and boss death triggers), plus a few new things like ripper projectiles and low gravity
 
* [[Weapon]] flags, make your weapons silent, customize autoswitch-on-pickup behavior, etc.
 
* [[Weapon]] flags, make your weapons silent, customize autoswitch-on-pickup behavior, etc.
 
* A proper "ammo per shot" field for all weapons, not just the [[BFG]]
 
* A proper "ammo per shot" field for all weapons, not just the [[BFG]]
* A lot of new [[DeHacked]] codepointers, with up to 8 customizable args. This allows mods to feature custom weapons and monsters easily
+
* A lot of new DeHackEd codepointers, with up to 8 customizable args. This allows mods to feature custom weapons and monsters easily
* Bugfixes & compatibility options:
+
* Bug fixes & compatibility options:
 
** Fixes for 3-key [[door]]s  
 
** Fixes for 3-key [[door]]s  
** Working generalized [[crusher]]s,
+
** Working generalized [[crusher]]s
 
** Ability to disable Boom's pushing-monsters-off-ledges behavior
 
** Ability to disable Boom's pushing-monsters-off-ledges behavior
  
Line 35: Line 35:
 
* [[DSDA-Doom]] (Version 0.19.0 from May 30, 2021 was the first port to officially implement the standard)
 
* [[DSDA-Doom]] (Version 0.19.0 from May 30, 2021 was the first port to officially implement the standard)
 
* [[Eternity Engine]]
 
* [[Eternity Engine]]
 +
* [[From Doom With Love]]
 +
* [[GZDoom]] (Version 4.7.0 from September 22, 2021 introduced beta support)
 +
* [[Nugget Doom]]
 
* [[Odamex]]
 
* [[Odamex]]
* [[PrBoom+]] (UMAPINFO branch by [[Graf Zahl]])
+
* [[ReBoom Experimental]]
 
* [[Woof!]]
 
* [[Woof!]]
  
Line 42: Line 45:
  
 
==Credits==
 
==Credits==
The MBF21 spec was developed in a collaborative effort over the course of 2 months with various members of the community. The core team responsible for the spec included the following members:
+
The MBF21 spec was developed in a collaborative effort over the course of two months with various members of the community. The core team responsible for the spec included the following members:
 
* [[Alex Mayfield (AlexMax)]]
 
* [[Alex Mayfield (AlexMax)]]
 
* [[Max Waine (Altazimuth)]]
 
* [[Max Waine (Altazimuth)]]
Line 54: Line 57:
 
==Trivia==
 
==Trivia==
 
* The name MBF21 is both a reference to the number of the new complevel (21) and the year development of the specification was started, 2021.
 
* The name MBF21 is both a reference to the number of the new complevel (21) and the year development of the specification was started, 2021.
 +
 +
==See also==
 +
* [[DSDHacked]]
  
 
==External links==
 
==External links==

Revision as of 17:39, 19 December 2021

MBF21 (or unabbreviated to Modder's Best Friend) is a specification and standard specifically aimed at mod authors and mods in general. It builds on top of the possibilities shown in the Boom and MBF source ports. It defines a new compatibility level, -complevel 21, to introduce a range of new features that seeks to improve the capabilities available in levels and mods, to be implemented in various source ports.

MBF21 version 1.0 was finalized on May 30, 2021. Ryan Krafnick (Kraflab) received the special Codeaward at the Cacowards 2021, in part for conceiving the overall idea and implementing the first version in his DSDA-Doom source port.[1]

History

The idea behind the MBF21 specification arose from the need for a new complevel originally coined MBF+ by Kraflab in a Doomworld thread titled: "Let's talk about mbf+ / a new complevel".[2]

The specification had the following goals to fulfill:

  • Fix bugs and miscellaneous issues in MBF
  • Maintain backwards compatibility with the features of MBF
  • Make it easy to modify previously hard-coded elements of the engine
  • Add "low hanging fruit" features for maps and DeHackEd that are in demand
  • Make changes that are easy to adapt into existing source ports and tools
  • Maintain the classical / conservative flavour of Boom/MBF

Highlights

To give an impression of what is possible with the MBF21 specification:

  • Instakill floors
  • Better generalized line scrolling
  • Granular control over monster infighting and projectile/splash damage susceptibility (e.g. you can make barons and knights infight, or make imps immune to cacodemons and barrels, and all sorts of funky combinations)
  • New actor flags, exposing a whole ton of previously-hardcoded actor behaviors (e.g. splash damage immunity and boss death triggers), plus a few new things like ripper projectiles and low gravity
  • Weapon flags, make your weapons silent, customize autoswitch-on-pickup behavior, etc.
  • A proper "ammo per shot" field for all weapons, not just the BFG
  • A lot of new DeHackEd codepointers, with up to 8 customizable args. This allows mods to feature custom weapons and monsters easily
  • Bug fixes & compatibility options:
    • Fixes for 3-key doors
    • Working generalized crushers
    • Ability to disable Boom's pushing-monsters-off-ledges behavior

Detailed Features

Supported ports

Support for the MBF21 specification will be implemented in the following source ports:

Additionally, the Ultimate Doom Builder level editor provides support for the MBF21 specification, but must be enabled first.

Credits

The MBF21 spec was developed in a collaborative effort over the course of two months with various members of the community. The core team responsible for the spec included the following members:

Trivia

  • The name MBF21 is both a reference to the number of the new complevel (21) and the year development of the specification was started, 2021.

See also

External links

References

  1. Boris Klimeš (dew). "2021 Cacowards - Other Awards." Doomworld. Retrieved 19 December 2021.
  2. Doomworld forums thread