Welcome to our March release! The March release is our anniversary release, with our very first alpha having been made public on February 29th, 2012. We’ve certainly made a lot of progress since then, and it shows! Four years of constant monthly releases have brought us to this point, and we’re closer to beta than we’ve ever been before. We have a home-grown map pack, our model set is close to being finished, and our engine has taken on a life of its own, with other projects interested in porting over to it. Here is another step forward to our long-awaited goal!
In this release, we have a very large new feature in the form of our new renderer. This is a tile-based forward+ renderer, and brings with it a new method of doing lighting that allows for a much larger number of dynamic lights to be present on-scene at once without horribly degrading performance, without many of the drawbacks that come with a deferred renderer. We also have patches that increase the performance for those using our graphical effects, which should hopefully lighten the load on those with weaker hardware, as well as support for physical-based shading and many fixes to some old renderer bugs. Shadows currently don’t work on the tiled renderer, but that’s next on our agenda for it.
With the enormous amount of work we’ve done on our renderer, which was originally forked from a fork (!) of XreaL, and considering that it has undergone a very wide divergence from the renderer it initially came from, it would be more appropriate to call our renderer the Daemon renderer, which is how these articles will refer to it from now on.
Naturally, some new bugs will have evaded our testing, so be vigilant and report them on our GitHub issue tracker! The two renderers will co-exist for a few months while we add features, and you can switch between them by setting r_dynamicLight and r_staticLight to “2” for the new tiled renderer and “1” for the old one. Most of the visible differences in the current state of the tiled renderer will be in the form of the dynamic lights and improved performance.
By now you’re very likely sick of seeing “renderer” repeated, so here’s what else is in our release! We have two new models, with the new lucifer cannon and the new egg making their debuts. The lucifer cannon now looks cool and futuristic, while the egg is a cool blobby addition to your alien base. But wait, there’s more! The shape of the egg was specifically chosen to fit the bounding box better, and as a result, we’re allowing it to be built on walls, a very long-requested feature. All alien buildings should also display their proper icons on beacons and the circle menus. Finally, you can now see dynamic lights on the projectiles of the lucifer cannon and blaster, as well as the detonations of the grenade and firebomb.
We’re now done with alien base models as of this release, with human base models having been finished some time ago. Now, all that’s left would be the battlesuit for human player models, the dragoon for alien player models, and the HMG (chaingun replacement) and painsaw for human weapons. We can (and will) update models as we go along, but those four models are the last models that absolutely must be finished before we embark on getting all the sounds done. Then we’ll be finished with our asset pack, and before you know it, we’ll be swapping monthly alphas for beta release candidates. It’s getting closer than you’d think!
Thank you for reading these posts over the years, and for following the progress of our project. Now go download the game!
Commits
- 5e212f5 Fix careless mistake in console code
- 2fb9c0e Define color constants per compilation unit to avoid static initialization order problem
- 31077a4 Fix CID 134399
- 169550f Fix CID 134295
- ed12fc0 Fix CID 10077
- e9aba41 using typedef = using
- 83e5a4a Classier enums
- e285fb6 Fix appveyor
- e5c96b6 s/#define/static const/
- 773f32b s/(void)/()/
- c8b32c0 ‘Fix’ unused global
- 09999e6 Remove redundant log constant prefixes
- 37f1f36 Logging part 1
- 68b167f Logging part 2
- 2bf1076 Logging part 3
- e823edd Logging part 4
- 044d0b0 Logging part 5
- 9f669a8 Resolve ambiguity
- 856ab46 Address PR comments
- d415760 revert ssize_t to int
- a240251 Revert “Revert “Rework animation interpolation to avoid skipping frames””
- e57815c Remove assert. perturbed notes it is not needed.
- 993a6bb Suppress cvar already registered warning
- f5a11b6 Delete extra argument in kill messages.
- c51de70 Remove newlines in logs
- 471ee1a Update bot parsing’s copy of enums
- a25add4 Update other keybinding views when keybinding is set somewhere else
- 863663b Delete libRocket from repo. Add as submodule.
- 01aa192 Add some default light grid when the grid in the BSP file is invalid.
- 7f6f98f Fix previous commit for new enums.
- 61919c6 Add -qq to travis insall software properties
- 996b3c5 Fix another instance of too many format specifiers in a string
- e4d5c50 Update the ADM* functions for the newline log changes
- be52f84 Add back newlines to bot usage
- 10ff866 Fix more admin commands
- 182b9ed Add missing animation data for the new egg model.
- 511a783 Make buildshader.sh callable from other directories.
- 0eb665f Remove support for elliptical lights.
- fdd40f0 Add dynamic light effect to flamer.
- f2229b1 Make extension GL_ARB_framebuffer_object mandatory.
- 947ea44 Use FBOs instead of Copy To Texture.
- 4afee25 Optimize buffer clearing slightly.
- f1d1769 Run depth-only pass before shading.
- 6340f23 Add support for uniform buffer objects.
- 55ce562 Upload dynamic lights to uniform buffer.
- a931ad7 Add support for GL_EXT_texture_integer.
- 827daf8 Add tiled light-index renderer.
- 841fdda Particles were using the wrong depth map.
- 48fabc9 Lightmapping fixes.
- 2330e44 Support materialMaps (PBS).
- ddc6b4a Use conventional shadow mapping code for inverse lights.
- 054570d Fix light flares.
- 12cd044 Workaround for lighttile shader not working on MESA.
- f150b90 Fix autosprite2 shaders.
- 341002a Encode sprite corner in the lightmap coords.
- e70377e Make tiled renderer the default setting.
- 55b9eeb Fix noclipping as a spectator.
- da260d4 Fix depth mask if blending a diffuseMap instead of a colorMap.
- 21a769a Revert “Fix depth mask if blending a diffuseMap instead of a colorMap.”
- 7da45af Version bump to Alpha 49
- f0037f6 Fix blendfunc parser and and don’t reset depth write on opaque shaders.
- 95d0edd Remove unused variables + unsigned -> size_t
- 703122c Changes to run on an OpenGL core profile.
- 903dda4 Some bug fixes and incorporate changes from Kangz’ MacOS branch.
- 0a964a2 Rename r_glCoreProfile to r_glProfile and test for “core”/”compat” strings.
- a6defe7 Cache constant strlen outside of cycles
- eff03d6 Create and bind a VAO in a core context.
- d9747ab Minor cleanups/fixes to tiled lighting
- ae9477c Correctly set feature availability for core profile OGL contexts
- cb062d0 Remove ARB references that aren’t needed anymore
- 4e3efb6 Move more feature tests to GLimp_InitExtensions
- 895d1f6 Remove some cvars for disabling extensions that make no sense to disable.
- cbe4a87 Fix tiled depth map sampling in depthtile2_fp.glsl
- f12493a Fix incorrect use of GLEW_ARB_* macros.
- 03d8826 Workaround for the tiled renderer on systems without UBO support.
- fd3f4b3 Add GLEW version check and don’t try to load core profiles if < 2.0.0.
- 355035f Remove leftover lines from last commit.
- fda104f Don’t attempt to set the value of u_Lights when using UBOs
- 33fee2c Fix vertexlighting world dlights
- 45089b5 Fix texture coord calculation in depthtile2_fp.glsl.
- 4f7830e Revert “Fix tiled depth map sampling in depthtile2_fp.glsl”
- 1b25db1 Correctly scale offset in depthtile2_fp.glsl
- 20cd9aa ENable heat haze by default
- 5d5bd44 Add spot and directional light types to tiled renderer.
- a73b8fa Fix stupid syntax error in all shaders.
- f57dc71 Be more strict about placement of preprocessor directives.
- 39c7df5 Make egg buildable on walls.
- db64a1c Add some more dynamic lights.
- cdaabb6 Add new assets
- e57e853 Update luci shader to include 3rd person luci shader
- 736aa14 Adjust dlight intensity for old and tiled renderer.
- a729048 Add dynamic lights to grenade and firebomb.
Animations still dodgily implemented as usual (attack, walk, taunt etc.). Eggs on walls is a lie. Overmind has Z-clipping texture issues sometimes. Barricades are still somewhat not so useful because human can just climb over them with their wall-scaling ability.
Animation has nothing to do with the renderer. That will be addressed in a future update, we are aware of animation blending issues.
You need to be an advanced granger to build eggs on walls.
I have no idea what you’re talking about with the overmind? Nobody has mentioned that before. If you can reproduce it then take a screenshot and post an issue on the issue tracker.
The barricade is meant to take fire from a distance. If you can get close enough that safely jumping over it is possible, the alien base has other problems.
Happy birthday Unvanquished! Keep up the good work guys!
hi,
in the tar.gz archive, this diretory is empty Unvanquished-0.49.0/libs/libRocket and so compilation cannot be done.
Thanks
It’s rather impressive that the game runs at 30fps, 1080p in Fedora. That’s with the Open-Source graphics driver meant for Nvidia GPUs. Most AAA game devs don’t know how to develop a game in Windows at that quality level, let alone Linux.
There do seem to be a lot of issues in this patch. Perhaps it’s just my experience with Linux gaming so far, though. Not really up to signing into Github/making an account right now, but i’ll probably get around to it. Thing is though that since Fedora changes kernel versions more often than the Fedora devs change their underwear, it’s a bit redundant to document issues.
Commenting on own post. After installing proper Nvidia driver, FPS has nearly doubled, and sometimes more than doubled. (60~120 fps)
Congratulations guys, and happy birthday! Your endeavour is truly commendable and glorious! Keep it up!
Congratulations, empty servers with bots says a lot how far you have reached. Still doing fancy graphic improvements when gameplay is so completely broken that nobody wants to play. Well done.