I’m starting 2021 with a very nice laptop upgrade.
I made the mistake of using my 2018 MacBook Pro in the proximity of my 1½-year-old son, and amidst his toy-flinging the poor laptop’s screen got smashed. Only 80% of it works. Well, the thing was due for service anyway due its glitchy keyboard. But in a fortuitous turn of events, the new M1 MacBook Air that I ordered several weeks ago got delivered on the very same day.
It is a such a nice little computer. The M1 seems as powerful as people have been extolling and overall it feels great to use — running cool and fast. Having a physical function key row is a nice bonus. While I never hated the touch bar, it didn’t seem all that useful: what good is a small display in the keyboard that you never look at? Its value always seemed geared toward novice users who don’t know keyboard shortcuts.
Of course, getting Doomsday up and running was among the first things I did on it. I now have a native M1 build of Doomsday 3 that seems to work well enough. It took me three days after receiving the computer to resolve the immediate issues.
This version improves support for vanilla DOOM render hacks and adds more script bindings to manipulate things in the map.
DOOM render hacks.TNT: Evilution and The Plutonia Experiment use several render/map hacks to take advantage of quirks in the original DOOM renderer. Many of these effects are now supported (or fixed) in Doomsday. Examples: TNT MAP02 deep water, TNT MAP02 windows overlooking the deep water, TNT MAP09 transparent window, TNT MAP31 Arachnotrons inside pillars.
Scripting. Several new Doomsday Script bindings were added, allowing access to game, player, and thing properties. In addition to spawning things, one can now list things by type, check their state and flags, and perform state changes on them. Things can also have an “On death” script that gets run when the thing dies. Bitwise operators are now available in scripts.
Modding. Sprite renaming is supported via DeHackEd. In Heretic, ambient sound sequences can be redefined and new ones can be added via the Audio module. Changing the sequences is also possible during gameplay. The earthquake effect from Hexen is now also available in Heretic. It can be controlled via scripts.
Renderer. Player HUD weapon models may specify a custom FOV value for rendering so that model authors have more control over the appearance, for instance to replicate a 2D sprite appearance more faithfully.
I just pushed 1036 commits to the master branch. This switches it over to Doomsday 3.
Doomsday 3 in its current form is still quite unfinished and broken in many places. Especially the new renderer remains disabled by default, and cannot be enabled without recompiling. However, the basic things are running, and they’re running fast!
Even the classic renderer has gotten a boost. Although to be fair, it still has the same old bottlenecks as before. The difference is that the application event loop has been optimized, which raises the FPS ceiling even though the floor remains largely the same. On average, the game should be running more smoothly.
Most of the progress this year happened in the first quarter, while I was revising how DOOM render/map hacks are detected and applied. The way it works now should be more robust and have better performance during gameplay, as the hacks are primarily detected during the map setup phase and not dynamically while the map is being played.
The other major focus area was improvements in Doomsday Script and bindings for players and things. It is now possible to query and manipulate several properties via scripts. This enables new modding capabilities when scripts are used in state actions and when things get killed.
I’m looking forward to phasing out the 2.3 branch and switching over to 3.0. The Doomsday 3 codebase has been reorganized and cleaned up significantly, and is in many ways nicer to work with. There will almost certainly still be bug fixes for 2.3, but I expect most work to focus on the unstable 3.0 releases. However, the switch-over will still require some additional work in the distribution scripts because the build environment has once again changed (with Qt being gone, for one thing). It may take some time before all platforms have fully functional unstable 3.0 builds in the Autobuilder.
To accompany the upcoming release, the demo video on the dengine.net front page has been updated. It shows a few snippets of gameplay with the default settings, without any additional mods. This time with audio and in normal speed!
Version 2.2 is a relatively minor feature update. It comes with a number of bug fixes and a bunch of modding enhancements.