This week my primary attention has been on figuring out an approach for handling v1.x style resource packages (PK3s and Snowberry boxes) natively in Doomsday. On the side I’ve been working on dynamically loading and unloading shaders from Doomsday 2 packages.
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. Continue reading Bird’s-eye view
Miscellany
Last week I was working on various odds and ends. It has been a nice change of pace after a few weeks of focusing only on the new model renderer.
That’s not to say I didn’t do anything model related. I made several minor improvements:
- The model definition can specify an offset to apply to the object origin (
worldOffset
). - Special built-in shader variables are made available for model rendering, for instance
uMapTime
that stores the time since the start of the map. This is useful for continous material animations. - Fixed a bug that caused lighting to be incorrect on scaled models.
- Autoscaling is no longer enabled by default. The assumption is that the model author has sized the model as intended. Enabling autoscaling will make Doomsday match the height of the model with the height of the thing’s bounding box.
On the Linux front, I upgraded my Fedora installation to 23 and was quite impressed with how it’s coming along. A few test builds showed that our CMake configuration wasn’t working quite right with the newest CMake versions (failed to enable C++11). Another issue that needed addressing was the incorrect linking of the FluidSynth plugin — it was causing a crash at startup.
I have decided to disable Oculus Rift support in the distribution packages. We haven’t updated Doomsday’s Oculus Rift code since LibOVR 0.5, so it has become incompatible with the current Oculus SDK. I think the wisest course of action is to revamp the code after Oculus releases the official 1.0 SDK. I have to say, though, that I am currently not planning to upgrade my Windows PC to be compatible with the Oculus Rift system requirements. It may take until a later time when Oculus Rift support is fully restored. (One can of course use the older builds with the older Oculus SDK versions.)
I also did a small fix on the dengine.net Forums: our phpBB style template was a bit broken and it wasn’t showing the attachment and poll creation options.
We have been releasing patch builds for the stable release on the first of every month. This means 1.15.6 is coming on Tuesday with a fixed OS X build, removed Oculus Rift support, and some source cleanup.
Prettier API docs, Source page updated
Time for another weekly update. This week I’ve been working on a new style for the API documentation and a couple of minor bug fixes. Continue reading Prettier API docs, Source page updated
Fog, shaders and 3D model scripting
Work on the new 3D model rendering is progressing at a good pace. It is turning out to also involve a lot of work on Doomsday Script improvements. Notably, this is now entering the territory of XG 2.0, where Doomsday Script bindings are added for accessing game world objects. Continue reading Fog, shaders and 3D model scripting
Wiki facelift
The wiki has received a major facelift. I admit I have a soft spot for pretty document styling, so I’ve been planning to improve the looks of the wiki for quite some time now. Since I’ve been fine-tuning things elsewhere on the site, I decided to align the wiki style with the homepage appearance as well.
There are also functional improvements: I’ve enabled a mobile view extension that works much better than desktop view on phones. Another new extension provides syntax highlighting for source code blocks.
There is still plenty of work left with updating the contents of the wiki. Many of the articles will become obsolete once Snowberry leaves the picture. The build instructions are also still for qmake, although we’ve switched to CMake. It would be great to have a revised, concise User Manual section in the wiki, too.
Consolidation
You may recall that last year, I decided to move my developer blog posts from the forums onto a separate blog. A number of other Doomsday web resources have also been sprouting outside dengine.net (like the bug tracker and commit tag index). When it came time to renew hosting of the website, I came to realize that it was time to sort out this situation and commit to the idea of a consolidated web presence for Doomsday — this was the motivation for moving to a domain of our own in the first place.
Maintenance needed
The 1.15.5 stable build wasn’t very successful. This is the problem with an evolving build environment: operating system, library, and toolchain upgrades eventually break the older code. Continue reading Maintenance needed
Progress with 3D model rendering for Doomsday 2
As previously planned, now that the stable 1.15 release has been dealt with, I’ve been continuing work on the new 3D model renderer. Here’s an update on what I’ve been doing.
OpenGL Window
Our reliance on the old QGLWidget
has been somewhat of a stumbling block now that the renderer is starting to embrace FBOs and other modern day OpenGL concepts. Fortunately, Qt 5.4 now offers a new way to manage the OpenGL surface in a way that is more compatible with OpenGL 3+ and the Core profile. Furthermore, since Doomsday doesn’t need the OpenGL surface to be an actual QWidget
, it will save resources not having to treat it as one. Continue reading OpenGL Window