From DoomWiki.org

< User:Jdowland
Revision as of 15:10, 24 November 2017 by Quasar (talk | contribs) (discussion)

Under construction icon-yellow.svgThis page is not actually a specification, but an example of how a wiki page might be used to write a spec.


Boom++ Specification

This is a draft specification for a set of extended features for Boom-compatible source ports.

About

rationale

Boom has served as a very successful de-facto standard set of features for doom engines, being adopted by the majority of advanced engines in use today. However, it has its limitations and modern day mappers are increasingly hitting up against them.

The intention of this spec is to outline some simple extensions to the Boom feature set that could be easily implemented by source ports and form a newer common standard.

ports planning to support this spec

Insert ports here! (we hope at least: gzdoom, prboom+, eternity; hopefully also 3DGE , doom legacy)

specification development

This specification is edited by ($INSERT_EDITOR(S)_HERE).

Discussion about the specification takes place in this doomworld thread.

Specification

sprites/graphics

  • 16 angle rotations (from the looks of it already supported by PrBoom+, definitely supported in ZDoom and I believe also in Eternity)
  • a well defined way to make hires replacement (definitely present in PrBoom+ and ZDoom, haven't checked Eternity for it)

generalised lighting

(https://gist.github.com/haleyjd/aa2220e680389d7dce88410630e73abf)

New projectile types

??

UMAPINFO

??

DECORATE lite

??

new Linedef types

  • more scrollers detail please!
    • simple downwards scroller: use y texture offset for scroll speed (so x remains for x offset alignment)
  • a 242-style effect which doesn't invert the purpose of the sector/control sector floor/ceiling textures, and is visible if the player is outside the sector, too (how Legacy used to incorrectly render it, and how Eternity currently incorrectly renders it, iirc)
  • (static) Apply front sidedef offsets to tagged sector/linedef upper tex
  • (static) Apply front sidedef offsets to tagged sector/linedef lower tex
  • Strife's animated doors. (can be taken from ZDoom.)

insta kill lines

  • WR - instant death on passing through

wake up monsters

Status: proof of concept available, uses temporary number 479 for a SR linedef, this is not a final type number choice!

When triggered, actors in tagged sectors are woken up, equivalent to if they heard a sound. Their target is set to the thing which activated the trigger.

Existing implementations

Strife: alarm types

ZDoom: implements strife's alarm types (150:WR Raise Alarm), see NoiseAlert etc.

discussion

what happens if a monsters triggers this, are they targetted by the monsters in the tagged sectors? is this desired?

  • Only players are allowed to trigger alarm lines in Strife. -Quasar (talk) 14:10, 24 November 2017 (CST)

new sector types

No damage to player

invincible, showing godmode eyes in hud

Kill anything that touches sector floor

Status: proof-of-concept available, uses interim type value 4096, this is not a final value!

For void deaths etc.

To affect players and monsters.

Deals 999 damage to players or 4*actor's current health per tic to any actor within the tagged sectors.

existing implementations

Strife: sector type 115, deals 999 damage to player on next tic, does not impact monsters.

ZDoom: supports Strife's type 115 for hexen format maps only.

Eternity: ? (couldn't determine from brief scan over eternity wiki)

discussion

What kind of death? normal or violent or gibbed? Fade to black? red? Instant death or on the damaging-sector timetable?

player only teleport to tagged sector when player touches the floor

sector grouping

grouped sector for special action (use to make multiple sectors behave the same - ie: multi-sector lift/door or crusher. If one sector of the group is blocked from moving, ll grouped sectors are also blocked). Grouping is done using the tag value.

new DEHACKED features

states

More states! [ ideally: we cargo-cult existing state table extensions from an existing port such as doom retro ]

Appendix

Out of scope features

The following objectives are out of scope for this effort

  • we are not planning to change the level format
  • we are not planning to define a new scripting language

The following features have been discussed and declared out of scope for this effort. Please do not waste time in the thread discussing them further.

  • a (new) embedded scripting language
  • TRIG-TAG stuff? (editor's note: I haven't kept up on this suggestion.)