Bifröst Development Thread

Work on Eternity 3.40.50 "Bifröst" is accelerating toward 100% complete Heretic support with the following already in place:


  • Basic inventory logic - gaining, losing, and carrying items; querying the inventory for owned items of different types.
  • Conversion of keys, ammo, and backpack storage to the inventory.
  • Addition of "effect" definitions for health and armor pickups.
  • Lockdefs to control how linedefs are activated with keys .
  • Dropitems, in DOOM or Heretic style.
  • Player class "reborn inventory".
  • Work toward making pickup item definitions fully define how sprite-based pickups work.
  • Conversion of Heretic EDF to use of DECORATE states, and implementation of simpler pointers that implement the Heretic logic exactly without need to know a lot of parameters (the older parameterized functions still exist, of course).

Share this post


Link to post

\o/

Hooray for inventory and Heretic! It's about time ;) It's been great seeing all the progress made on this recently.

Share this post


Link to post
Quasar said:

  • Player class "reborn inventory".

Is there a more explicit description of this? I have no idea what it could mean. :)

Share this post


Link to post
Gez said:

Is there a more explicit description of this? I have no idea what it could mean. :)

Ability to specify the inventory items a player starts a new game or revives with; ie., in Doom, you start with 50 bullets, fist, and pistol. Currently you'll only find the 50 bullets being specified in playerclass DoomMarine, since weapons are a huge WIP at this point.

Share this post


Link to post

Ah, okay. The starting inventory. :)

Share this post


Link to post

OH HELL YES! I simply cannot wait. Nice to finally see Heretic will be supported. I can't wait to mess around with portals for Heretic mapping when this is released. I assume that it won't be too long now? Well done so far guys.

Share this post


Link to post
Holering said:

Can users submit code to improve eternity?

Why not?

I did, long ago. It ended up not being used directly, but the features I wanted to add with my patches were added nonetheless.

Share this post


Link to post

New update.

Bifrost is on its way out, though inventory/weapons and Heretic are not finished yet (that's going to take longer than I hoped), but the new release is going to be pretty monumental anyway, not for the least reason that frame interpolation is now supported (what most people mean when they refer to "uncapped fps").

Other features that are going to be included:

  • Force feedback support for XInput gamepads in Windows
  • Ability to customize some pickup effects (health, armor, ammo, backpacks, and keys)
  • Ability to have Raven-style item drops from enemies
  • Ability to have objects that spawn and item-respawn at a random spot
  • EDF lockdefs for controlling what keys are needed for locked lines
  • Ability to specify frames that get faster in Nightmare skill via DECORATE state syntax
  • Customizable gib health for thingtypes with proper default behavior depending on game mode
  • Increased support for high resolutions (Apple Retina displays and PC 2880x1620 monitors)
  • Support for multiline HUD messages
  • New version of SDL_mixer adds proper MIDI looping in Windows, and support for FLAC music
  • Support for grAb chunk in PNGs
  • Subtractive blending for monster sprites
  • New monsters available in EDF: PSX Spectre, Nightmare Spectre, and Pre-Beta Lost Soul
  • Support for single-patch textures between TX_START and TX_END
  • Bug fix to weapon drawing for ultra-widescreen 17:9 and 32:15 resolutions
  • Support for 8- and 16-bit mono Microsoft WAVE format sound effects
  • Reverb engine with partially ZDoom-compatible sound environment zone system
  • Runtime directory tree browsing in the wad loading menu
  • Ability to spawn Doom thingtypes in other games' maps using 6000-range DoomEd numbers.
  • Compatibility tweak available for maps that expect BOOM-compatible semantics for colormap rendering in deep water areas
  • HUGE number of bug fixes and some optimizations to boot

Share this post


Link to post

Shame about Heretic support not going to be complete for this revision but I love the sound of the new features. Nice to also see that the problem of slight freezing due to MIDI play back has now been sorted as that annoyed me a bit.

Share this post


Link to post

As Eternity nears a new release, I would like to discuss plans moving forward on this release in terms of the MinGW (Win9x) builds.

I started doing MinGW builds as a personal exercise to see if I could get Eternity to run in Windows 95. As you all know, Team Eternity managed to accomplish this - a binary that could work in all versions of Windows from 95 to 8.x, at least, that we know of. With OpenGL disabled, it's possible to play Eternity on old NT machines.

However, there are some issues in terms of SDL support and Aeon support:

SDL should be fine for now, but in the future we may have issues with DLLs not working because there is no solid system in place for building these. I received some new DLLs from the Odamex team, but they are quite flakey , with Sdl_Mixer being one of the worst offenders. The DLLs packed with the upcoming release will still be working in all Windows versions, but this may not be the case in the future. I wish to prevent that, so if anyone can help us with MinGW 4.7.2 (32-bit) builds of the libraries Eternity uses, this would be a tremendous help to the project.


Aeon support is still in implementation stages, but the likely candidate languages will be difficult to compile for MinGW, mostly due to lack of support from developers. There are several projects on the Internet to fix these issues (most notably Python-mingw), but even then, it might be difficult to port. This will require a group effort, so if you are willing to help with the porting work as soon as a language is set, please let us know.

I want to continue the MinGW side project as long as possible, most notably for the fact that MinGW is one of the few solid, Free implementations of a compiler toolchain for Windows. With the state of Windows development up in the air, and the fate of Visual Studio as a whole, it might be in the port's best interest to have a "Plan B". VS 2010 and VS 2012 work for now, but none of us can be sure of what future versions will be like, and what Windows versions will be supported, or if VS Express will be around a few years from now.

This is no problem for this release, however. a MinGW build will be available alongside the MSVC build, with a few changes:

The most notable part is that there are no code changes required for EE to compile with MinGW, so no special sources specific to said build will be included. The other thing to note is that I will no longer be making builds for specific processors, as this is no longer needed. That being said, the bare minimum will be a 200 MHz Pentium MMX processor, as the new sound code may lag on anything below that.

Share this post


Link to post
Quasar said:

  • New monsters available in EDF: PSX Spectre, Nightmare Spectre, and Pre-Beta Lost Soul
  • Ability to spawn Doom thingtypes in other games' maps using 6000-range DoomEd numbers.

All these things (also the PSX hook on chain and the sound environment thing) are now part of the Eternity config in SLADE 3.

Share this post


Link to post

Sounds great, Quasar. Shame about Heretic support not getting in, but interpolation! Reverb! PSX monsters and pre-beta lost souls! Can't wait to give this a go.

Share this post


Link to post
Gez said:

All these things (also the PSX hook on chain and the sound environment thing) are now part of the Eternity config in SLADE 3.

Do note the hook-on-chain isn't provided as a resource in eternity.pke though, so if somebody wants to use that they'll have to provide their own sprite for it. That's there for an entirely different purpose which sadly isn't complete enough for this release :>

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