We’re proud to deliver you Unvanquished 0.52, our first beta release. 😎
If you’re tired of defusing bombs, of being the last man standing from a never-ending battle royale, bored of punching dæmons one at a time or railing cyberpunk and nasty robots in arenas, or if you just want to try something different, Unvanquished is there for you.
Return to the origin
Unvanquished is a first-person real-time strategy game : Pick a gun, build your base, survive, save your team.
As a class based team survival game, Unvanquished features two opponent teams fighting for their life: a human squad outfitted with advanced weaponry and an infesting alien species, both trying to rip out the other one from the place as the only way to survive.
As a real-time strategy game, Unvanquished features some resource management mechanisms. As a player you’ll build up momentum to advance (and regress!) with your team through a kind of eras we call stages, unlocking new technologies providing more deadly means and other defenses to secure you and your base. You’ll earn your salary and receive bounties for your feats of arms, while trying to not feed the enemy. To expand your territory and secure it, you’ll extract some mining resources.
As a first-person shooter game, while playing Unvanquished you’ll see everything from the eyes of your character, in real time. As human you’ll enjoy escaping from a deadly encounter in a gloomy corridor thanks to your big freaking gun and exterminate the pest. ”Do your Part!” they said… As an alien, you’ll trap those emotive bipeds, make them forget they were humans once, hide eggs in dark corners and return bite them hard while they thought they were safe. In space no one can hear you scream? Well, on Earth as well: no one will hear the last soldier screaming to death.
Unvanquished is entirely free and open source, without having to pay to unlock core characters of the universe, without micro transactions, without loot boxes… Unvanquished is free to play, free to download, free to copy, free to share, free to study, free to modify, free to contribute to. We consider players as responsible and respectable human beings, and likewise contributors. You’re welcome in such a world!
Let there be light
It’s time to celebrate out first Beta! This is a huge milestone in Unvanquished development, with the 0.52 version we jumped from alpha to beta status.
We think the engine and the game experience are polished enough to remove the alpha flag and wear the beta one. Our game is playable since the beginning, but we use alpha and beta statuses to mark some milestones we want to reach.
Everything from the game, from engine to game code to data, is tracked in Git repositories. Our game is now open source in every aspect. Anyone can now produce portable release-ready builds of the game. We have a compatible level editor. We strengthened our infrastructure. The engine reached the level of quality we wanted, etc.
A game like Unvanquished is a huge project. It involves game engine development, gameplay, modeling, world design, but also all the underlying infrastructure to distribute the game and connect the players together. Explaining that infrastructure may require a dedicated article.
We now believe we can put the Beta label on our game because of all of this.
Sure, we know about this or that funny bug. We also decided to pull the complete replacement of all Tremulous assets from the Beta objective, because that has no impact on gameplay anyway… The road to our 1.0 release is still in front of us. But today is one of our biggest milestone in Unvanquished history. Our very good friend kharnov (a previous head of the project) wanted to see the 0.51 release to reach beta status, 0.51 was like our hidden beta and it rendered service as expected for more than two years. Now that 0.52 is there, yes, we’re at beta officially.
The version number does not carry the amount of work that is delivered. Up to the alpha 50 version we did monthly releases. The development pace never slowed down, and if we kept that release schedule, the 51 release would have been the 82 one, and the 52 release would be the 111 one… So our 52 beta is a 111 beta in disguise.
The songs of distant Earth
In the beginning, Unvanquished was started as a continuation of a good old game most of us enjoyed, called Tremulous. Tremulous was fun and developed a large player base, but after the first standalone 1.1 release in 2006, no 1.2 landed under the Christmas tree… So, the idea of continuing the project spawned in people’s minds. Many contributors of Unvanquished at the beginning were either original contributors of Tremulous itself or members of the community who were very well-known for their renowned production, like famous, enjoyable maps and an alternative engine with many improvements.
Unvanquished’s ambitions were larger than just a maintenance project: there was also will to improve the tooling around the game, and to go forward from some technologies and methodologies inherited from the ’90s, while carefully accompanying players and contributors with progressive changes, one by one and keep a progression curve and not closing the door for third-party content migration.
Unvanquished is based on the Dæmon engine we presented in our previous article. The Dæmon engine lives as a dedicated open source project, with development currently hosted on GitHub. If you want to base your game on the Dæmon engine, you’re welcome, it’s made for that!
We polished the user experience a lot. Now at first start, the game asks the player the nickname he wants to be called by, then redirects immediately to the server browser to get in action as fast as possible.
The on screen tutorial is believed to be complete, telling the newcomer how to do what and when. For example those on-screen instructions tell the player what keys to use to build something or to use the grenade they just bought. When the player is low on health, those on screen messages tell how to use the medkit or to return to a healing structure, the position(s) of which a beacon indicates on screen. This tutorial text can be disabled in “Player” preferences.
We revamped entirely the default key binds to be usable for newcomers without tweaking… We also provide alternative key bind presets according to your tastes, including the classic WASD layout and the ESDF one. The key bind system is independent of your language layout, so if you use an AZERTY keyboard, picking the WASD layout will properly configure it to be ZQSD instead, without requiring any tweaks by you, and the on-screen tutorial will display the right key name according to the native layout of your keyboard.
The user interface is now scaled accordingly to the user screen, making it readable starting with 640×480… up to 4K and beyond, and it adapts itself to whatever ratio your display uses, either the legacy 4:3, the common 16:9 or ultra-large ones like 32:9… We usually validate hardware with 4K resolution, but whatever your screen, the UI is expected to be properly readable.
We also provide deeply tested, graphic presets: lowest, low, medium, high, ultra. Basically, lowest preset is for very old and obsolete systems (it was even tested on old AGP cards!) using very low texture resolution, disabling particle bouncing, even disabling sky… low preset is a bit less ugly, but at least you get a sky. The medium preset enables multitexturing, so you get nice detailed surfaces with proper light reflections… without dynamic lights you would not see the difference with high preset. The medium preset is considered to be a good preset, providing players what we want them to have. Then the high preset enables dynamic lights and the ultra preset enables relief mapping. Relief mapping is a new feature introduced in 0.52. Not all textures have height maps yet but a bunch of ones where imported from the the Xonotic game for textures we have in common.
The circle menus were rewritten. In Unvanquished, circle menus are used for the human weapon and upgrade buy menu at the armoury, the alien evolution menu, the human and alien build menus, and the beacon menu. Those circle menus are now properly centered, and shortcut keys can now be used to select the items with number keys. On the human buy menu, the Tabulation key can be used to switch between weapons and upgrades.
The in-game guide was rewritten. It’s not perfect, but at least it is not talking about obsolete things anymore, and does not assume the player knew about Tremulous because now that time has passed, newcomers maybe introduced to this kind of gameplay by Unvanquished itself!
Just to make it clear, the game displays on the bottom left of the main menu a message saying the game is in development. Of course, this message is not displayed when playing, only on the main menu.
It’s now possible to run the game in borderless windowed mode, along full screen and classic windowed mode.
We favor the “release early, release often” method (though we have to work to get back to “often”), so bugs are meant to be reported. 🙂
No mans land
For server owners, we now distribute a set of working templates (
server.cfg file and things like that) and we also ship with the game a default map rotation list that is loaded if the server owner does not configure a custom one. Bots now receive proper fallback names, making it obvious they are bots if no custom bot names are set. This way, hosting games works out of the box.
About security, web servers hosting downloadable content require to also host a
PAKSERVER file on the server containing the
ALLOW_UNRESTRICTED_DOWNLOAD string. The client checks the presence of this file before downloading anything. This is to prevent possible wicked servers from telling clients to download stuff from web places they don’t own (like player’s local network)… We restrict curl to only allow
http:// to be used at run time (to prevent sneaky code to explore
file:// for example).
To be free
It would be hard to list all the changes and improvements that happened in more than two years, but let’s focus on some.
In comparison to the 0.51 release, 0.52 has better baked light maps, a visibility bug was fixed in Vega map, bots can now escape some traps in Parpax and try to save their life if they can, and tyrant bots can leave the alien Vega base. One place allowing building outside the map in Thunder was fixed. We improved the default layout (default buildable placement) for most of our maps.
About our better light maps, not only they look better, but the time to compile them is close to the time we spent to bake the ugly ones we had. Obtaining these better results required years of experimentation to get the best out of the Q3map2 tool. There is hope than one day we may be able to bake those lightmaps using Cycles but for now, Q3map2 reigns unchallenged. There are still possible improvements with Q3map2, like using better color space to reduce the remaining color banding.
There is so much to say about this screenshot. Not only the light maps are far better (Vega was the map that suffered the most from bad light maps), but also the normal map orientation is fixed (those materials used an uncommon
-X -Y Z normal orientation). You may notice slight translation of some pixels—that’s because we fixed a rounding error in the engine that traces back to a commit from XreaL dated from… 2005. The bug was probably hidden until 2008. That small patch fixed a long list of old annoying known bugs…
We tested Unvanquished and the Dæmon engine on a very wide range of hardware and software configurations (more than 60 GPUs and about 80 systems were tested). You can find the results on the Unvanquished GPU compatibility matrix. While the Dæmon engine supports OpenGL 2.1 GPUs, to play Unvanquished you need a GPU compatible with OpenGL 3, since our models are too heavy for OpenGL 2 cards.
About Unvanquished gameplay updates, the restrictions against aliens evolving near humans have become more forgiving. Nearby humans are only counted if there is a line-of-sight connection, so a player can sneakily evolve in the next room. Plus, evolution is allowed “in the alien base”, i.e. if the nearby humans are outnumbered by nearby alien buildables. Aliens can also devolve (return to inferior classes) near the overmind, and the advanced granger can trap careless humans. You can learn more about those gameplay changes from our previous blog post: Upcoming gameplay changes (now delivered).
By tracking some performance issues, we discovered some part of the user interface was still rendered every frame even when not displayed. On some computers fixing that issue doubled the framerate, while on some others, the computer reduced CPU frequency to keep the same framerate while saving power and reducing heating instead. That’s a big win.
Engine side, we deprecated our forward renderer. The tiled renderer is now the default renderer and all players previously using the forward one will use the tiled one starting with the 0.52 release. For the player, it means higher performance with dynamic lights.
Our launcher (and updater) received a lot of care. In anticipation of the 0.52 release, our launcher was released in January. If you already use this launcher, it will ask you to download the 0.52 release at startup! See the The Unvanquished launcher, and an engine hotfix blog post for more details.
And of course, after a huge data audit and having contacted many contributors, our game is now considered open source in every aspect. You can read the Now we are free! blog post and also the Story of a tree one about this topic…
Only time with tell
Besides the effort to migrate the virtual machine running custom game codes from Native Client to WebAssembly, `Ishq is working on migrating from libRocket to RmlUI, as a library to handle our game graphical interface.
Viech initiated a dedicated tracker for gameplay problems, feedback and suggestions.
Now that we are working toward our 0.53 version, it’s time to deeply thank all the people who made the 0.52 release possible.
Specifically, I thank all the people behind Unvanquished, and the various contributors and friends who helped us. I want to name slipher for his very sharp review skills alongside the excellent code he writes, gimhael for the precious advice on the renderer and things like that (along some great fixes like texture rotation and the support for DXT3/BC2), Fuma for knowledge on the navigation mesh code, ZTM for availability and kind answers when we ask questions, Amanieu for some IPC fixes, Gireen for the various gameplay experiments and implementations, and bmorel and afontain for many fixes through the code modernizing it, making it more robust and fixing bugs. I want to thank Dimitry for the precious efforts he is doing regularly by auditing our code with various static analyzers and providing useful fixes. He also fixed our KTX support.
Unvanquished being an open source project, you can easily discuss and submit improvements you want to see! Maybe we will thank you in our next version announcement?
If you want to know more about our engine, we wrote some days ago an article dedicated to the Dæmon engine. 👀
But for now it’s time to play, spread the word, tell your friends, download the game and join us on our servers, or host your own, and maybe, make your own mod?