Do you believe it? We’ve hit 40 alpha releases! That’s a lot of monthly alpha releases.

Fortunately for us, we’re not that far from the long-awaited beta. We’ve already hit our map quota, we’re almost done with models, and our coding projects are approaching fruition. It wouldn’t be a long shot to say that we could realistically hit beta by our 50th release, or possibly beforehand.

As for this release, we have a new renderer effect, a new model, and the usual assortment of bug fixes and code cleanup. The new effect is screen-space ambient occlusion, or SSAO for short. It’s a bit resource-intensive at the moment so it’s off by default, but you can enable it in the options menu. The effect provides enhanced shading for every model, and even provides a subtle effect to maps as well. As for the new model, it’s the barricade, visible on the release shot next to the overmind. Have fun shooting it!

Commit log

f299b1c Add initial implementation of Vector class

a90bac0 Put vector in the Math namespace, add VecX to the prelude

55d7ab2 Add Data() method to vectors that exposes the internal data.

bd25e62 Allow mutating a vector through non-const Data and operator[]

212348d Fix compound assignment operators for vectors

761a16a Initial implementation of filters.

8d3057b Download script typo.

98c150a Reimplement weapon bobbing and inertia using filters (fixes #204 and #409).

06a210c Rename Filter.hpp to Filter.h.

003462a Clean up the filter code.

582112c Fix build error

7d6492c Some fixes for vectors

884f537 Add a way to convert a vector to a string

19fef52 Refactor CG_CalculateWeaponPosition to use the new vector library.

d928ff3 More filter code cleanups.

0c3b04e Fix a compiler warning.

5a482df More fixes for vectors

d88f140 Add projection, rejection and reflection to vector lib.

627c9aa Capitalize all vector functions’ names.

d03e179 Use GL_ARB_framebuffer_object instead of the old GL_EXT_framebuffer_object.

2a418e9 Ignore qtcreator project files

3e3bc19 Avoid reuploading the same colorgrading textures every frame.

a2adc9e Changes to make shader debugging easier. Support a -set shaderpath “c:/unvanquished/main” option. See app and git comments.

97251a9 Use runtime_exception as suggested by VadmimGit. Fix a compiler error regarding exception and some warnings.

f655753 More changes to address review comments and other tidy ups I noticed.

f148c92 Add headers in CMakeLists.txt to help some IDEs parse the project correctly.

9d6e379 Revert g_shaderPath changes.

990ff57 Address more review comments and more tidy up.

77f97e3 Revert accidental change.

a295432 More clean ups.

442918c For completeness fix review concerns about the performance of the StripComments function. Other small clean ups.

2c52ac5 Fix some compiler warnings re:unused variables.

5c7cfad Removed use shader_enabled flag. More tidy ups and renaming.

0d44e49 Re-order code and make gcc happy.

9181401 Fix another review issue.

443ca16 Address more view comments: delete new lines in log messages, use implicit includes (yuk), adjust error message etc.

84942a1 Fix missed review items more new lines and error things and re-use error codes.

d7b82fb Tidy up some shader logging loose ends.

03ad4c7 Fix some overly complicated logic and make it clear when we have reverted back successfully to built-in shaders because of errors with external ones.

46c3eb9 Small suggestions. Should be no functional change.

75531a4 Fix some int to char conversion warnings.

dcd98fc Add SSAO shader based on AMD’s HDAO algorithm.

5604bd8 Fix bug in file reading where caller will get junk if full read not satisfied.

5f4a541 A bunch of by value to by const reference changes to help performance and be more idiomatic. NFC intended.

9acc95f Fix bugs on /if command when used with string operators, or no ‘else’ command

9b28400 Remove shader comment stripping.

5650768 Remove comment stripping as no longer required. Remember to get latest shaders.cpp and /unvanquished/main/glsl folder when getting this commit.

0fab68a Fix a regression I made where missing binary shader file causes an exception where it shouldn’t.

34612f8 Fix syntax of prior commit and a few warnings.

93fee30 A few more changes as discussed on irc.

d208ee0 Don’t error out if a shader binary can’t be loaded

424a3fb Implement animations needed by the new barricade model.

0a3ad89 Fix a few issues with the barricade.

eb54592 Stop openAL ‘No Error’ spam

80cbaa8 Fix potential bug in zip file reading. If there’s an read error we can have valid data read to < length and we don't want to return random chunk.

3aac187 Fix CMake GLEW finding routine

2897cbd SSAO improvements.

42d72fc Turn SSAO off by default.

95db7f9 Add SSAO to options.

0cd03af Some suggestions for String.h. Update a few member values and functions to const.

33e239e Fix barricade model’s rotation.

c77f395 Make the client send the userinfo upon entering the game

5b28a16 Version bump for Alpha 40