Alpha 38: building forward

Spring is in the air, warm winds are blowing in, and a new release of Unvanquished has arrived. What’s new in this release? Plenty!

For our renderer, we now have auto-softening for all sprites, so that all particles now take advantage of the soft particle feature without having to explicitly call it. In addition to further refactoring of vertex shaders and deforms, as well as the removal of a load of old, non-functional renderer code, we now have a new building effect for human structures, showing them assembling piece by piece. We’ve updated our version of libRocket, and have fixed several bugs from our issue tracker, including a fix that should hopefully help those that can’t get server lists on Windows.

flamethrower

Gameplay-wise, we’ve totally reworked the radar system we inherited, removing the old 2D sprites and substituting it with our beacon system. Objects of interest, such as detected enemies, are marked with beacons that will fade in and out of view as appropriate. Hovering your crosshairs over the beacon will highlight it and provide some useful information, such as the distance to the target (in meters) and what sort of equipment or alien form it has. Beyond that, dretches can no longer attack turrets, momentum gains now depend on the number of players present, and spiker trigger conditions have improved.

Here’s the list of commits:

  • 5e7447b Simplify beacon highlighting, fix BCT_HEALTH appearing on players.
  • 5c65f0b Add info about the highlighted beacon to HUD & various fixes.
  • 846cd4c Remove CG_FormatSI to fix QVM compilation.
  • 7a9c889 Continue beacon status displays. Still WIP.
  • f119501 Move highlighted beacon UI update to seperate function.
  • baaf858 Add beacon icon to info display.
  • d4afdc0 Fix Mac .app build scripts
  • 54b34da Archlinux: Update starters and config.
  • 062ae32 Simplify beacon highlighting even more.
  • ffb8b44 Archlinux: Don’t handle unv:// URLs in starter script.
  • 446d10d Refactor display of highlighted beacons.
  • f1259b2 Fix buildable tags disappearing when tagger leaves team.
  • a54d15b Disable occlusion effects for beacons for now.
  • f2d5b5d Snap tag beacon origin to exact player location if known.
  • 682a217 Display clamped beacons for enemy players.
  • 515d529 Remove manual tagging of enemy players, add human radar auto-tagging.
  • d4be9e0 Add alien sense using implicit beacons.
  • de14734 Remove old human radar and alien sense.
  • 80d8438 Properly detach alien sense beacons on death.
  • 5f04a4f Fix high CPU load caused by glFinish #359
  • 2395859 Less scoreboard flickering #371, better aligned layout
  • 268cd7b larger and scrollable map list with max-height, fix #667
  • 83cf04e sort maps by internal bsp name instead of display name (do not sort by color code) fix #670
  • b4744f8 Vertex shader refactoring.
  • ad9fb44 Fix passing deforms to shaders.
  • 6c43f6f Rework VBO creation to accept data in final form.
  • 1be0331 Do autosprite deforms in GLSL shaders.
  • a3bf25e Add new shader flag to turn on autosprite in RegisterShader.
  • 5975e11 Consider durability of affected units when calculating spiker attack scoring.
  • 3d113ea Diverse fixes for autosprite: fix alpha-testing, pass texcoords.
  • 55e479a Fix MSVC not properly zero-initializing values in the default constructor
  • faee5ba Use a C++11 braced initializer instead of a bracket initializer when zeroing a struct.
  • 33166e2 Fix sky box rendering.
  • de08217 Fixes for heat haze on particle shaders.
  • acaf611 Don’t allow dretches to bite turrets.
  • 0af55af Improve Spiker trigger conditition: Consider current health for friendly units.
  • 4ff7248 Add serialization support for vector
  • d579e95 Remove unused projectionShadow deform.
  • 8b4adf6 Fix cg destruction and init bug.
  • 9d57bab Add a GLSL implementation of DEFORM_NORMALS.
  • 92cab70 Remove unused things from tr_types.cpp
  • 866a9e5 Remove a bunch of unused renderer stuff
  • 242b9bc Update the number of uniforms used besides the bones matrices
  • c517ba0 Use a custom serialization for refSkeleton_t and refEntity_t
  • a7c3a83 Use ReadSize/WriteSize, thanks Amanieu!
  • 51435b9 Fix compilation of null_renderer.cpp
  • a0719f7 Validate number of bones for refSkeleton_t IPC
  • c77f998 Pass proper shader time to GLSL.
  • 0ace454 Make sure cm.entityString is null-terminated, see #649
  • abceb12 Remove stencil shader keyword
  • 3792f29 Remove unused warnings
  • 51e2c82 Remove support for shader guide that were unused
  • 1d4d340 Remove more unused shader stuff from the renderer
  • 9e62bf0 Fix last commit
  • 6dbb61d Reduce complexity of deform calculations.
  • d818c00 Make Logger::Do*Code templated to avoid a heavy std::function creation
  • e570876 Make vertex color available to deforms.
  • 7702b72 Add include dirs, make all includes use absolute paths
  • 1c23a95 Fix last commit commenting out the operator new
  • a03b297 Would that fix travis?
  • 429bb6e Fix Travis by adding a PPA for a more recent version of cmake
  • 23b29d7 Make momentum gained for kills depend linearly on player count.
  • 6568fab Custom deform for human buildings.
  • 8286050 Add warnings when files needed by NaCl are not found
  • a9c6f0b Add message id in SyncMessage vs Message error
  • 246a5fe Only open the log file after initialization has created the singleton socket
  • 35fc519 Properly reset the terminal after sending a command to an existing instance
  • b242134 Add a better check for the presence of a real terminal
  • 26c5ef2 Remove usage of Com_Printf and Com_Error in common code
  • 0afa5ed fix sensor_player entity, ref #663
  • ca8eff2 Change blendfunc add to blendfunc GL_SRC_ALPHA GL_ONE for particles.
  • 6d4cd0d Fix mass driver crash.
  • 30eaf8c Silence a warning from a typo.
  • d91bf57 Fix mass driver crash.
  • 1555181 Silence a warning from a typo.
  • 3466853 Fix shaders for pre OpenGL 2.1
  • 812b5c3 Fix TCGEN_ENVIRONMENT shader.
  • 67fe9f5 Make Sys_Milliseconds() and trap_Milliseconds()’s implementations match
  • fa350d1 Version bump to alpha 38
  • c8d999f Roughly synchronize Sys_Milliseconds and trap_Milliseconds