Bird’s-eye view

This week I was largely focusing on non-Doomsday related things. Therefore, this is a good opportunity to take a bird’s-eye view on how we are doing on the road to the big version 2.0.

It has been roughly six months since we switched the master branch to version 2.0. Since then, my main focus has been on the new 3D model renderer that will support shaders, advanced surface materials with per-pixel lighting, and animation behavior controlled with Doomsday Script. Another bigger task has been the migration of the dengine.net website. While I’ve been fixing some long-standing annoyances with the site, nothing major has been changed yet. I do have some future plans particularly regarding how the autobuilder and Doomsday itself communicate with the site. The idea is to put together a new REST API on the website for accessing the builds repository and for running the multiplayer master server.

The roadmap for 2.0 currently lists a rather large number of issues, however I wouldn’t call all of them mandatory for 2.0. Disregarding bug fixes, I would say the really central enhancements for 2.0 are:

  • Load/manage add-ons from the home screen: Since Snowberry has been dropped in the 2.0 builds, it is very important that we have a new way to load and configure add-ons via the GUI. In practice, the Home screen will be improved so you can pick which packages to load when playing each of the available games. The biggest missing feature is a way for the engine to understand the format of the Snowberry add-on packages. Fortunately, the package mechanism already implemented for 2.0 should be flexible enough to act as a runtime adaptation layer. This is currently the strongest contender for my next focus area.
  • The new 3D model renderer: While the new model rendering code is already quite functional, it could still use some enhancements for advanced use cases, like additional scripting features, cube map textures, and improved positioning of player weapon models.

These big enhancements have a number of dependencies and required smaller features, many of which are already done or at least in progress. One additional UI related smaller improvement I’d like to see in 2.0 is full keyboard navigation within the UI, so that it is possible to access all the functionality of the client’s GUI with just a keyboard (or a gamepad).

After 2.0, I would say the primary focus switches to upgrading the map renderer to use the new graphics APIs developed for model rendering, so we can have shaders and better materials also for world surfaces.