Sunday, August 23, 2009

Almost Done

I think pretty much everything has been marked off my lists now. I'm going to do shadows tomorrow, then I need to run through a few maps and mods in order to make certain that nothing has been missed.

I'm not at all satisfied with the current structure of major parts of the render. For now the focus has been on bringing up something that (1) doesn't crash, and (2) draws stuff correctly. Unfortunately that means that there are huge swathes of code where performance and elegance took a back seat. Not that we've got slideshow framerates, but it has dropped about 5%-10% in relation to 1.6.3, and does need to be gutted, overhauled and rewritten.

I'm not however going to delay 1.7 for much longer on account of that. It's a very significant jump forward from 1.6.x in many other majorly important areas, which deserve release sooner rather than later. So watch this space!

Post 1.7 I think I'm going to follow the same pattern as for 1.6, and have some fairly rapidly emerging follow-up releases: 1.7.1, 1.7.2, and so on. I fully expect that there WILL be bugs I haven't caught this time round, especially given the completely new render required by the switch back to fixed functionality and doing proper alpha entity support.

Here's everything that's new since the last update list:

  • Resolved all animating texture Host_Errors by just switching the offending texture to non-animating and devprinting a message.
  • Resolved 16 char long texture names error.
  • Implemented non-recursive BSP node/leaf parent matching to resolve extreme BSP depths (this is clever...)
  • Resolved various automap rendering bugs and omissions, and implemented some optimisations.
  • Added reporting of which lump has the funny size (this is now a Host_Error so you can continue playing on another map).
  • Made r_novis take effect immediately instead of on a viewleaf change.
  • Added r_lockfrustum cvar (default 0).
  • Resolved long-standing issue of entities in server fatpvs showing through water surfs.
  • Added several optimized recursion cases.
  • Fixed crash bug where a static entity doesn't have a model.
  • Renamed sv_antiwallhack to sv_cullentities (compatibility).
  • Added r_normqrain cvar to enable user to disable Remake Quake rain model (default 0).
  • Generalised brush render functions for inline and instanced with or without alpha.
  • Added r_instancedlight cvar, set to 0 to revert to old ammo box lighting mode (default 1).
  • Added key_automap state with special automap keys to scroll and zoom.
  • Resolved several rendering issues and general all-round weirdness with the automap.
  • Resolved issue of inline brush models that have not been sent by the server not being visible in the automap.
  • Documented automap control cvars and commands.
  • Removed library replacement functions.
  • Switched all vsprintf to _vsnprintf to make buffers safe.
  • Replaced all uses of sprintf with _snprintf to make buffers safe.
  • Restored gl_flashblend 1 mode (0 is the default).
  • Removed net_vcr code; removed more old grotty modem and IPX code.
  • Removed 64 bit lightmaps.
  • Removed disgusting and buggy old file handles system.
  • Ensured that all memory allocated by DirectQ is marked non-executable.
  • Added autocompletion to changelevel, game, save and load commands.
  • Fixed sky fog (looks ugly on skyboxes because of corners, will need to project the skybox onto a sphere for to fix this).
  • Increased cl.levelname to 128 for those really long level names.

1 comments:

xaGe said...

..Sounds like fun for us! No worries whatever bugs you may miss some of us on this end will probably find them. ;-)