Create an account

Welcome, Guest
You have to register before you can post on our site.



Search Forums

(Advanced Search)

Forum Statistics
» Members: 4,564
» Latest member: oompaloompa
» Forum threads: 5,671
» Forum posts: 19,676

Full Statistics

Online Users
There are currently 75 online users.
» 0 Member(s) | 75 Guest(s)

  Much Ado About Elo: Part Deux
Posted by: Antibody - 08-03-2012, 09:36 PM - Forum: Xonotic - News - Replies (12)

It has been about two weeks since I talked initially about our Elo ranking system. How time flies! As that time has passed, I've collected lots of valuable feedback both from players as well as my fellow developers, and I'm very excited to tell you about some further tweaks I've made to the algorithm. There are two relatively big changes: one dealing with non-duel game modes, and another dealing with how S is calculated in the original formula. I'll talk about the ranking changes to the various game modes first.

Duels Versus...Everything Else

Let me start by saying duel is largely unaffected. Phew! It is naturally the most competitive game mode, thus it deserves a more pure, winner-take-all algorithm. It's a good match for the implementation I discussed in my last post.

Team games are a different animal, however. With team games we see win-switchers (switching right before the end to be on the winning team), stackers (loading up the talent on one team only), and quitters. While we really can't do anything about the latter, we can do something about the former two. The change I made to counteract those is to rank-compare every player in the game to everyone else regardless of team. The points gained or lost against each opponent are then summed to formulate the final net gain/loss. This means that you have to hold your own against everyone else to gain points instead of relying on just being on the winning team. Imagine that! This also means that you can still lose points when you win if you don't score equal to or higher than expected.

The Scorefactor

Wait, did you say score? Yes, I said score. In order to make individual comparisons work, I had to use the individual's score as a means of comparison in lieu of just win or loss (1 or 0 for the S value). Each player's score is first converted into score per second, which takes his or her alivetime in the game into account. The scores for two players A and B are then compared with the following formula to obtain the scorefactor, S:

[Image: scorefactor.png]

This formula yields a value between 0 and 1, which tells us the “winner” in the comparison. A value less than 0.5 means player A won, a value greater than 0.5 mean player B won, and a value of exactly 0.5 represents a draw. Note that the sum total of A and B's scorefactor here is 1, so B's scorefactor is simply 1-Sa.

The resulting S value is plugged into the original formula I covered in my initial post, which is then used to calculate the final points gained or lost. For the sake of completeness, I'll relist it here:

[Image: elodelta.png]

The big change here is that S can now take on a range of values between 0 and 1. It's that range that allows players to get an accurate points value for their contribution to the game, no matter the team they're on. It's a big improvement over the black and white algorithm that we had before.

In Conclusion

So what we have now for non-duel games is something that scales the points gained or lost according to how well you score versus everyone else in the game. For duel games, the initial algorithm remains in place. The end result is a ranking system that I think everyone can find fair, albeit imperfect. That being said, I suggest that you take all of the ranks and scores with a grain of salt: there is no number that is a true indicator of what you bring to the table as a player. Get in the game and focus on what is truly important: having fun! Happy fragging, and I'll see you out there!

Print this item

  Heads up for OSX Mountain Lion users
Posted by: merlijn - 07-29-2012, 12:32 PM - Forum: Xonotic - News - Replies (13)

A couple of days ago Apple has presented their latest version of Mac OS X: Mountain Lion (10.8). This latest release adds quite a few security measures, which can affect the use of Xonotic. In this post I'd like to address these issue and how they can easily be solved.

For users downloading a fresh copy of Xonotic from our website, they will get an error when trying to start the game for the first time. The error looks like this:

<a href="" rel="attachment wp-att-2866"><img class="aligncenter size-full wp-image-2866" title="Mountain Lion Gatekeeper" src="" alt="" width="418" height="202" /></a>

This is the new Gatekeeper verifying downloads when starting them for the <strong>first time</strong>. The simple solution is to right-click the Xonotic application, and select 'Open' - you will now be presented with a window where you can choose to specifically trust the Xonotic application (yes, you can trust us ;-). After doing this once, you can simply start the application the next time by clicking it directly.

The alternative is to disable Gatekeeper altogether, which can be done under the Privacy &amp; Security tab in the System Settings. We however do not encourage you to do this, as the workaround to whitelist specific applications is pretty easy.

For users running from git, we are still working out the kinks in order to be able to properly download and compile in Mountain Lion. Please get in touch with us on IRC if you have specific issue and we can look into it.

Print this item

  Much Ado About Elo
Posted by: Antibody - 07-22-2012, 05:15 PM - Forum: Xonotic - News - Replies (13)

I’ve had several players ask me about how the ranking system for XonStat works. This is my humble attempt to do so. If you have any particular questions that aren’t answered here, ping me in the Xonotic IRC or forums and I’ll try to answer it. If the wind is blowing in a favorable direction, I might also update this very post.

The Short Story

Did I mention that there is a short story and a long story to this? There is - how delightful!The short story is that I’m using the Elo rating system to gauge the strength of players in Xonotic. It’s similar, though not exactly the same, as what is used in many chess ranking systems. An excellent writeup of the history and mathematical details behind the Elo algorithm can be found on Wikipedia here: For those who want all the gory details, read that and become enlightened! Or read it and become more confused. It’s okay either way. Now for the long story.

The Long Story

Way back when I was first implementing XonStat, people would often approach me with an idea to incorporate global rankings into the system. I had no idea of how to do so until someone pointed out the aforementioned Elo system to me, also noting that several other popular FPS games had also done so. I looked into it and how it works. divVerent and I set out to implement it within our database.

The Elo system is based on wins and losses versus your opponents. You gain points from winning, and you lose points from losing. Sounds simple, right? It really is, but adopting the algorithm to Xonotic had a few nuances. The rating of your opponent also comes into play such that wins over stronger opponents will give you more points than wins over weak ones. This means that a win over a person rated higher than you yields more Elo points than a win over a person new to the game. The same principles apply to losses.

Let’s cut right to the chase and talk about how XonStat determines the points increase or decrease for each match. Unfortunately for this part we’ll have to look at the gory mathematical details. We’ll use a theoretical match between players A and B, and we’ll look specifically at the points increase/decrease for player A (forgive me for the bad screen caps):

[Image: elo.png]

In the notation above E is the expected outcome, S is the actual outcome (1 for a win, 0 for a loss), and K is the experience adjustment factor. We’ll talk more about K in a minute, but for now just think of it as a constant.

To get the points increase (or decrease) value for each match, we first have to start with what the expected outcome would be. Simply put, stronger players are more likely to defeat weaker players, and the formula for E is just expressing that in terms of a likelihood between 0 and 1. This may help you understand why winning against very weak opponents nets you very little points - if the expected outcome is near 1 (a sure win), it follows that what’s left over after subtracting it from 1 will not be very much, thus the amount of points gained will be low.

The Experience Factor

The more games you have under your belt, the more accurate we can say your Elo score is, and thus the less we need to adjust your score after each game. This is exactly what the K is for in the formulas above. We vary K along with how many games you’ve played. You start off with a K value of 200, but over the course of 32 games that factor decreases linearly down to 40. This means that new player will jump up and down in point value much more dramatically than a seasoned veteran until he or she reaches the requisite number of games.

In XonStat we also use the K value to account for players who have not played an entire match. Such players have their K value modified downwards by the percentage of the match they did not play. This is determined by comparing their alivetime value with the match’s overall duration. For example, if a player plays 800 seconds out of a 1000-second match, their K value will be 80% of what it would have been otherwise.

A Real Example

Enough with this A and B business. Let’s do an example with real values! Imagine I (Elo 350) play Mirio (Elo 450) in a duel and Mirio wins. Assuming both of us are experienced players with over 32 games played, we’ll each have a K value of 40. Since Mirio won, his S value is 1 while mine is 0.

Mirio’s points value from his win will be:

PHP Code:
40*(113.33/(13.33+7.50)) = 14.40 

My points from the loss will be:

PHP Code:
40*(07.50/(7.50+13.33)) = -14.40 

Now let’s turn the tables and see the points values for if I win the match! This time Mirio’s S value will be 0 and mine will be 1.

Mirio’s points from his loss will be:

PHP Code:
40*(013.33/(13.33+7.50)) = -25.60 

My points from the win will be:

PHP Code:
40*(17.50/(7.50+13.33)) = 25.60 

Take note of the points differences when the winners are transposed. If I won the match, I was rewarded with more points because I was expected to lose. Hooray to the underdog!

Team Matches

Thus far we’ve only discussed matches between two players. That’s fine and well, but what about team matches where there is more than one person to compare against? I handle this by running the above calculations between each winner and loser and averaging the result. For example, if a player has won a game against three individuals, the points he gets is the sum of all of the points from each individual calculation divided by three. The points gained is thus the average points gained from each individual a player has defeated, with the opposite being true for lost points.

In Conclusion

In this post I’ve covered the details of the Elo implementation within XonStat, the statistics database for Xonotic. I’ve covered individual and team games as well as how the basic structure of Elo is used to determine point gains and losses from matches. I also discussed a little about how experience alters the ratings. I hope you’ve found this subject matter entertaining! As always, you can contact me in the forums at or on IRC at #xonotic on Quakenet with any questions or comments.

Print this item

Exclamation New website skin!
Posted by: Antibody - 07-14-2012, 02:31 PM - Forum: Xonotic - News - Replies (60)

Hey everyone,

As many of you know, I've been steadily working on a new theme for our main website, As of just about two minutes ago, it's live! I hope you like it, and I welcome your feedback. You probably don't need the URL, but I'll put it here anyway: it can be found here.

One thing to note is that I'm not done. I realize that the media page (videos/pics) isn't what it should be right now, and the same goes for some of the older pages. I'll be getting to those in time! Thank you everyone for your support - you are all fantastic!

Print this item

  Farewell, FruitieX!
Posted by: CuBe0wL - 07-08-2012, 03:06 PM - Forum: Xonotic - News - Replies (25)

Team Xonotic would like to wish the best of luck to fellow developer FruitieX, who will tomorrow join the Finnish Defence Forces for a year of training.

Take care mate, and have fun with the new toys, but remember: there's no respawn in real life! Try not to overabuse rocketjumping with the RPG Wink

[Image: salute-500x400.jpg]

Print this item

  Teaser for Killing X-Zone - Xonotic Community movie
Posted by: CuBe0wL - 07-08-2012, 10:09 AM - Forum: Xonotic - News - Replies (13)

ZeRoQL released a small teaser for his incoming fragmovie titled Killing X-Zone, which will be 20min long and full of frag epicness!

You can download the teaser from one the following links:
Mirror #1: Hetzner Online (Germany)
Mirror #2: Maverickservers (California)

Print this item

  WoX-BloX Issue #4: Developer news
Posted by: CuBe0wL - 06-24-2012, 02:54 PM - Forum: Xonotic - News - Replies (33)

Yo all!

I'm happy to announce you all the 4th issue of WoX-BloX! You can read about the latest development news here:

Many thanks to fisume, who helped me in writing this blog!

Print this item

  Forum downtime today
Posted by: Mr. Bougo - 04-12-2012, 02:28 PM - Forum: Xonotic - News - Replies (9)

Sorry for the downtime! There have been some issues with one of the servers and it affected the forum's databases. Things should be alright now!

EDIT: Oh my. The way I worded this makes it seem that I had an involvement in fixing this. This wasn't the case at all. merlijn and divVerent are to thank!

Print this item

Exclamation Forum update discussion (Was: Forum down time April 6th)
Posted by: Antibody - 04-05-2012, 07:19 PM - Forum: Xonotic - News - Replies (75)

Hi! Mr. Bougo here. I'm shamelessly taking over this thread.

Notice anything off since the forum upgrade? Report it here!

The original message follows.

Hi everyone! I will be taking down the forums tomorrow at 8AM EST (that's 12PM UTC) for an upgrade. I'll post an update here when it is over, but for now be aware of the following issues after the upgrade:

- The "favorite" posts doesn't appear to be working (hasn't worked in a long time, actually)
- The "personal pad" area of the user CP shows a blank page (the personal pad doesn't exist anymore?)
- Post rating button isn't shown

None of these things are serious, and I hope to resolve each of them in time. Right now my primary concern is getting us better equipped to manage our incoming spam and growing user base. Cheers!

Print this item

  Xonotic 0.6 is now available!
Posted by: CuBe0wL - 03-08-2012, 06:03 PM - Forum: Xonotic - News - Replies (45)

The 7th of March was a momentous day for the developers, community members, and gamers of Xonotic - the project's second birthday! To celebrate this occasion Team Xonotic is happy to announce the next official release of Xonotic!

After six months of active development, Xonotic 0.6 brings many new features for both casual and die-hard players. It boasts new weapon models, new maps, massive new features, and a ton of bugs fixes.

While you're busy downloading the game, let's have a look at all the fantastic enhancements Xonotic 0.6 has to offer.

Download Here
Download via torrent
Download via HTTP

MD5: 2dac2c1ad4388255d3ad4d038dea3f77
Package size: 964MiB

Lower quality download via HTTP (602MiB, md5: 219aaa91eb8362e39e0851eb83bd3a1f)
Map editor download via HTTP (150MiB, md5: 0ccee66956043898a696f97df1a3f723)

You can also download and play Xonotic on Desura.

Client side networked players
[Image: nmymodel_dmgeffect-200x200.jpg]
Xonotic 0.6 introduces the long-awaited feature of ClientSide QuakeC (CSQC) networked players. With this change player entities are now controlled on the client instead of the server, which allows the client to control animation of the models and their level of detail. This conserves FPS and improves performance without any visual loss. Spawn damage particle effects on characters (bleeding, burning, gibbing etc.) are also possible with this approach. It also allows the player to enable forced enemy models: regardless of what playermodels others choose, you can set a different one locally, e.g. brightskins that are very popular among more competitive players.

CSQC networked players opens many more possibilities for the future, including ragdolls, animation blending/smoothing/segmentation, client side weapons (no latency when firing/attacking) and much more. The most important parts for this are included in the engine of 0.6, allowing servers running newer versions to push these future features to the client dynamically. This allows for much more flexible development and better testing.

Xonotic player statistics
[Image: xonstats_main1-200x200.jpg]
XonStats, the integrated statistics system for Xonotic, allows you to send game data (frags, deaths, captures, weapon accuracy, etc.) and store them online for later viewing (at You can search for yourself or your friends' statistics, watch overall rankings, server statistics and much more! Because we respect your privacy the system has been designed to be specifically opt-in, and on first launch of the game you will be asked whether you want your stats to be published. More features for the statistics are still being developed, so please get in touch with us if you'd like to see more data or would like to see data represented in another way.

sRGB lightmap rendering
[Image: srgb_g23_1-200x200.jpg]
Xonotic 0.6 comes with sRGB lightmap rendering by default so maps have more natural, realistic lights and shadows. We also released a new version of our official map creator software netradiant with updated support for the (now default) sRGB compile method. In general this means that maps will have less extremely dark corners, and lights don't have to be as bright as before to light up the room.

4 new maps to frag on
[Image: xonotic20120301234709-00-200x200.jpg]
Xonotic 0.6 ships with four new maps. Lightspeed is a fun, small CTF map best played with four people. Fans of Deathmatch, Freezetag or Minstagib will enjoy fragging in the blueish halls and corridors of Solarium. The competitive crowd will enjoy the 1v1 maps Drain and the remake of a classic Quake deathmatch map, Darkzone.

New weapon models
[Image: xonotic20120226230932-00-200x200.jpg]
The Laser and the Minstanex have new high quality models. This was needed especially for the Minstanex, as its model was more than 3 years old... Either way, they follow along nicely with the goal of improving the models/appearance of the game.

Menu redesign and translation updates
[Image: xonotic20120301233353-00-200x200.jpg]
We have redesigned and simplified the menu interface so it's clear and convenient to use. We also paid great attention to the various translations of the menu text. And now support several languages (like Spanish, French, German and Hungarian) in the in-game messages. The menu is now available in Greek and Ukrainian as well!

New game mode: Sandbox
[Image: xonotic20120306171033-00-200x200.jpg]
Xonotic 0.6 introduces the new, fun game mode called "Sandbox". Use your imagination to create funny scenes with the playermodels, add your own ones, and share them with your friends, even online! This can also be very useful for development, or easily trying new things without hacking the code or opening up a map to edit it. Though Sandbox is currently still a bit limited, expect new features coming to it later!

You can also view an extensive changelist of new features and bugfixes here. (note: may be incomplete)

Xonotic 0.6 demonstrates again the development power of a collaborative community of players and developers, where open discussions and knowledge commonly shared is the key for success. We'd like to grab the opportunity to shout out a very big THANK YOU for our beloved community, players and fellow developers who made this release come true! Without all your constant input, (positive) criticism, dedication and friendship, Xonotic wouldn't be what it is today.

Print this item

Latest Threads
Just a thank you for the ...
Last Post: Solid
2 hours ago
Last Post: Halogene
4 hours ago
[How To] Make this game m...
Last Post: Lee_Stricklin
10 hours ago
Hello from EU
Last Post: oompaloompa
Yesterday, 06:43 PM
Screenshots of what you'r...
Last Post: Cortez666
Yesterday, 04:31 PM
Last Post: Antibody
Yesterday, 09:09 AM
Spectator Follow Killer
Last Post: It'sMe
03-14-2018, 05:20 AM
Last Post: Smilecythe
03-13-2018, 06:44 PM
This needs an official Di...
Last Post: illwieckz
03-11-2018, 10:36 AM
Quick question ...
Last Post: devnexen
03-11-2018, 02:49 AM

Forum software by © MyBB original theme © iAndrew 2016, remixed by -z-