Last week I was making rather good progress on addressing some long-standing issues. Deviating slightly from the plan, I spent most of my time away from multiplayer debugging. Instead, I focused on issues related to player movement and turning.
A few years ago when I was making changes to player controls, some of them were converted to use the so called "fractional ticks", or in other words they were rewritten to work in continuous time rather than the 35 Hz ticks of the original Doom engine. However, while making the changes I didn't take into account that the "feel" of the player behavior is very much dependent on the exact 35 Hz ticks. After some investigation we decided to revert player turning back to the original ticks so that it syncs up with the movement of the player mobj. While this is a marked improvement, we are still looking closer to solve some remaining details of the behavior to make it exactly match what we have in the current stable release (1.8.6).
After last week's psprite fixes I haven't yet been able to reproduce the Hexen weapon pickup bug (see multiplayer bugs
), so I would appreciate it if someone could try it out and let us know.
When I was looking at the 1.8.6 sources I came across the code for the old FMOD audio driver. It was removed in favor of SDL_mixer at some point in the 1.9-betas, which in hindsight was not a very good move when it comes to audio playback quality. So, during the weekend I took some time to look at FMOD Ex and I must say that I like it a lot. I started writing an updated dsFMOD plugin that provides sfx, music and CD audio playback. In the Roadmap the plan was to first upgrade our plugin architecture (and switch to C++), but since those items will not make it for the stable 1.9.7 it would be nice to have a new FMOD plugin for the current audio plugin architecture.
My plan for this week is to continue working on the updated FMOD plugin.
I didn't have a great deal of time for Doomsday last week due to Real Life obligations. However I did mange to implement many of the core classes needed for cleaning up the game side UI/HUD implementations in branch ringzero+master. The Doomsday API now has a set of base objects for 2D displays; Rectangle, Point and Size (both integer and floating point variants (double) exist for each) and a set of "raw" POD type parallels for these instanceable objects. The core paradigm with the UI types is that the instanceable objects are used for high level logical interactions, while the "raw" versions are used during object construction and as a binary representation suitable for performance drawing, serialization, etc. Each instanceable object can return a "raw" representation to the caller when needed.
Additionally, I encountered a bug in map loading in the master branch when initializing the "objlink blockmap" (see here
). This issue has been fixed for today's build #336. In the process of addressing this I realized that I hadn't actually completed the work I began on re-implementing the AI and path-trace algorithms since we switched to floating point a few years back. Since then I have been working on completing the job in a fork of the master branch.
This week I intend to complete work on the aforementioned branch (there is only a couple of days work here at most) and submit it for consideration for merging to the master for Friday's release. After which I intend to return to the UI work in branch ringzero+master.