On Week 25

edited 2011 Jun 27 in Developers
skyjake:

The past week I was focusing squarely on Hexen's multiplayer. The issue I was wondering about last week (player getting stuck on objects) was rather straightforward to fix: one #ifdef __JHEXEN__ was on the wrong line causing the collision check to never clear an object's status for being on another object -- once the player landed on something, it was impossible to get rid of it. I also fixed a number of other problems, such as clientside polyobj rotation, immediate plane moves, and a mix-up with which player should be visible in the current viewport.

A couple of noteworthy points:
  • Extra care is necessary when dealing with the fixed-point and angle_t angles. It is quite easy to mess up their signs when converting between fixed and float and (de)serializing them for the deltas. We should have dedicated macros similar to FIX2FLT() for these operations.
  • The engine's global displayPlayer variable is no longer writable through the API. The games were expecting that it specifically defines the local console player's display, but as we now have multiple viewports, it is no longer useful fo that purpose. A new public API function was added for setting the displayplayer for a particular player (R_SetViewPortPlayer).
Hexen is now looking somewhat better for multiplayer, but I still need to hunt down more issues with it. I've yet to try a game with more than one client; I'm positive that some issues will become apparent when I do.

danij:

This week I found myself somewhat preoccupied with real life and typically, deng development suffered somewhat. There was some progress however - as set out by my last update, I've since externalized the built-in Patch Replacement definitions for jDoom's game menu and intermissions into jdoom.pk3 which, allowed me to further clean up the internal API.

I also fixed a couple of bugs in the font renderer and further improved the viewport management, adding the new hook HOOK_VIEWPORT_RESHAPE which the engine calls automatically upon viewport dimension change.

Over the coming week I hope to find rather more time for deng. The plan is to continue with the UI refactorings, beginning by replacing the remaining static menu init with dynamic page construction procedures.
Sign In or Register to comment.