Warning! Do not upgrade to Havok 4!
Thursday, January 24, 2008
Havok 4 is a new physics engine that Linden Lab is rolling out. Private island owners have the option of requesting an early upgrade to Havok 4.
Havok 4 contains several bugs which break En Garde. The En Garde game and its scoreboards will not work in any Havok4-enabled region. If you upgrade your region to Havok 4, any En Garde games rezzed there will stop working.
If you would like to communicate to Linden Lab that you would like this bug fixed as soon as possible, you can write a comment and vote for the bug here:
http://jira.secondlife.com/browse/SVC-1239
For those who have owned En Garde since the beginning, this is the same "llSetLinkPrimitiveParams" bug that killed En Garde the first time.
Please take a moment to follow that link, log in to JIRA, and vote for the bug (click the vote link on the left side). While you're at it, vote for this bug too:
http://jira.secondlife.com/browse/SVC-1146
That is a separate bug in Havok4 servers that is causing the scoreboards to malfunction.
En Garde Scoring -- will it never end?
Sunday, January 6, 2008
The new scoring has been up for a week now, long enough to take a look and see how it's doing.
In general, I like it. I think it's an improvement. First of all, it fixes the "can't play newbies" problem that dogged the previous scoring method. That really hurt me, because it discouraged teaching the game to new players. As always, my goal is to make the game accessible to new players and encourage its spread across Second Life.
Watching the list fluctuate, I think it's pretty close to a good "mixing" level. The names and ranks change, so it's fluid, but it's not chaotic. There's a balance to be had there. I don't want the high scores to be so chaotic that they completely change with every game. But at the same time, I don't want them to be static, with the same names always in the same places -- that would discourage new players. What I'm seeing now is, I think, pretty good.
But, of course, it's not perfect. Here are some questions that have been asked me online and in the comments:
It's too complicated! I don't understand how my score works!
Yes, I know. This was the biggest concern I had in implementing this system. I've tried to explain it as best I can in the blog posts below. I hope that, for most players, you don't really have to understand it; you just have to know that if you play well and beat a lot of people, you'll get a high score.
Why can't I see my ranking after I play a game? If I'm not on the board, I can't tell what my score is.
I'm sorry, I had to take that out temporarily. The reason is, it takes a long time to compute the new scores, and if the game waited around to give you that new number it could hang up my whole server. The next release of En Garde will tell you your score/rank at the start of the game (when you step on the piste) so you'll see it there, and you'll know the rank of whoever you're playing against.
Why does it only track your scores for two weeks?
There's two reasons. First, it adds fluidity to the board. I wouldn't want someone to get a super-high score, and then leave SL, and have their name stand there forever. The board could completely freeze up if that happened enough. So I put in a 2-week time limit. I figure, if you haven't played at all in the last two weeks, then you don't deserve to be on the list.
Secondly, the calculation is expensive (see above), and it gets more expensive the more games it takes into account. Right now there are about 500 games of En Garde played every week. So, after every game, it has to scan through 1000 games and adjust everyone's score.
Have I mentioned that the Procyon Games server runs on a rather low-end system? Well, the hardware is fast, but to save money I have to share it with many other people who have also purchased space on the server, so every CPU cycle counts. I've optimized and re-optimized the scoring system, trying to squeeze every last ounce of processing power I can, but I'm at the limit. Trying to calculate scores over a larger window would make the whole system grind to a halt.
My score can go up with no effort on my part!
Yes. If you beat someone, and then that person beats a lot of other people, your score will go up.
Here is how I think about it. How many points should you get for beating someone? Under the old system, the number of points you got was based on their ranking at that time. If they were ranked high, you got a lot of points. It's simple, but it only looked backward.
The new system says: when you beat someone, you get points depending on how good a player they are. And that definition of "good" can change over the 2-week window. If you beat a new player, the system doesn't know if he's good or not. So you don't get many points. Under the old system, it stops there. But under the new system, if that player turns out to be some sort of prodigy, then their rank will improve -- and you will be awarded more points for having beaten them.
PageRank can be gamed. You can't rely on it.
Any kind of scoring system can be gamed. My old scoring systems were gamed. Google wages a constant war against Search Engine Optimization companies. My move to this scoring is in part a response to gaming of the previous score systems. At some point, hopefully, we'll reach an equilibrium. Google has an army of software engineers on their side. I've just got me.
Logarithmic scoring?
Yes, PageRank is logarithmic. And so is En Garde scoring. This is a technical detail; it happens behind the scenes. The log scale tend to flatten out the numbers. If I didn't have a log scale, then the top players would have scores in the thousands, while people just below them would have scores less than ten. I've tried to adjust the scales so everything "looks right".
Dangling links?
In the PageRank algorithm, pages that have no incoming links are a problem, because every page is fed the ranking scores from all the pages that link to it. In EnGardeRank, every player feeds ranking scores to all the other players that have winning records against him. Google adjusts PageRank with a "damping" factor, which represents the random chance a user will move to another page without clicking a link (via bookmark, for example). EnGardeRank is adjusted by your overall score. In the two-week window, it adds your score in every game, and the scores of all your opponents, and that ratio is used to feed every player some small ranking. This represents the random chance you might beat someone that you've never met. So, even a player who hasn't defeated anyone will have a non-zero ranking score.
New En Garde Scoring
Tuesday, January 1, 2008
I've changed the World Champion scoring again.
Nobody liked the last change very much. The biggest problem was it made it too risky to play new, unranked players. If you lost, you could lose a lot of points. Another problem was, if two players never played each other, there was no good way to determine a ranking between them.
The new system is based on the Google PageRank algorithm. Google increases the search placement of pages based on how many other pages link to it, and how high those pages rank. In the new ranking system, you get points for having winning records against other players.
The actual math that determines your score is complicated. But here's some tips on how to get points:
Get winning records against lots of other people. This is the number-one thing you can do to improve your score. The system looks at all matches over the last two weeks. You have a winning record against a player if you've won more matches against him than he has against you. Every winning record improves your score.
Get winning records against good players. If you have a winning record against someone the system thinks is "good," then you get more points than you would against a poor player. Also, points get divided up. If you're the only person who has a winning record against someone, then you get more points than you would if that player had losing records against many people.
Win by big margins. You get more points for big wins that close matches. And there is also an "overall" component to your score, which takes into account your total score over the past two weeks.
Don't worry about losing games. You don't lose points when you lose a game -- except if that loss converts a winning record to a losing record against that opponent.
The scoring change is retroactive. The scores you see now are the current rankings, using the new system on all games from the past two weeks. This also affects team scoring as well, since team scores are just the sum of all world scores from team members.
Golden Frootcake Tournament
Saturday, December 29, 2007
Come participate in the Golden Frootcake Tournament 2007!
As part of Second Life Winterfest 2007, the Frootcake Diner will
host the Golden Frootcake Tournament. How good are you at passing
those cakes around the table? Now's your chance to find out!
Here is how the contest will work. For one week starting Sunday Dec 30,
all Frootcake players will be ranked, similar to the World
Champion ranking in En Garde. You can play as many games as you want.
The ranking system awards points according to who plays the best.
In general, points are awarded for:
- Winning games
- Placing high in multi-player games
- Beating people who are ranked high
At the end of the week, the top 5 players will compete for the
Golden Frootcake trophy.
Don't know how to play? I just released a new video teaching the
game. You can watch it at the Diner, or on YouTube here:
En Garde scoring, yet again
Friday, December 14, 2007
We've been living with the new En Garde scoring for several weeks now, and I think that's enough time to evaluate it. I've gotten comments from several people, and everyone pretty much agrees.
It sucks.
I'm sorry, I really thought it would be better than this. But sometimes you can't tell how something will play out until you see it in action.
There's several problems with the new scoring system. First of all, the three games per day limit can sneak up on you. You can't tell if a game you play will count in the scoring or not. This was originally intended as a diversity control: playing lots of games over and over shouldn't add to your score as much as playing many different people. My number one goal in designing a scoring system is to get lots of people to play as many different people as possible, and get new people playing that way.
The biggest problem is with the point loss system. When you lose a game to someone who is ranked lower than you, you lose some of your points. This was intended to provide a little fluidity in the rankings. What has happened instead is, people are afraid to play new players. That's terrible. But I can understand it. There's just too huge a penalty if you lose to a newbie, and the risk is too great.
So, I have to rip all that out, and come up with yet another scoring system.
I am working on a new system that I hope will fix these problems, and provide an accurate ranking of players while encouraging new play. The system is based on Google's PageRank -- the same system Google uses to rank the results when you do a web search, I want to modify and use to rank fencing players. There are many advantages to this. I think it can solve the problems I've listed above. There are disadvantages too. One disadvantage is that it's really complicated, and hard to explain to people. But I have to do something, and so this will hopefully be another small step forward.
I hope to have the new scoring implemented sometime in the coming week. Like all scoring changes, it will be retroactive, and can possible make radical changes in the current rankings.
FAQ for Macros, Tracking Devices, etc
Friday, December 7, 2007
I've had to deal with a lot of issues recently regarding macros, tracking devices, etc. I hope this can clear things up.
What sort of things are not permitted when playing Procyon Games?
Anything that gives one player an advantage over another is considered cheating and is not allowed during play. This includes, for example, macros, HUDs that track information (public or not), materials outside the game such as pencil and paper, and alternate accounts.
Really? I can't use pencil and paper?
Here's a rule of thumb you can use to help determine what's acceptable. Imagine if you were playing the game real-life, face-to-face across a table from your opponent. If what you're considering would be unacceptable in that setting, then it's unacceptable in Second Life.
What about after the game?
After the game, you can do whatever you want. It's acceptable to use pencil and paper between games of Zingo. And you can use alt accounts to play games, as long as you don't use two accounts simultaneously in the same game, or use them to manipulate global scoring.
What if someone is cheating?
If you are playing someone, and they're using an unaccepted method to gain advantage, you should ask them to stop. You can direct them to this blog post.
What if they refuse to stop?
If they refuse to stop cheating, then you can tell me and send me a chat log.
What if someone is distributing a cheating device?
Tell me about it, and I will investigate.
I'm not going to stop cheating. What are you going to do about it?
Any player who refuses to stop cheating will be banned form Procyon Games. Banning means your name will not appear on any high score lists, and you won't be able to play any of the games. This applies to all Procyon Games, not just the one you were banned for.
How long does banning last?
Bans will be lifted when a player tells me they won't cheat any more, or when the item is removed from distribution (if they were distributing some item)
You can't tell if I'm cheating. What's to stop me from telling you I won't, but keep cheating anyway?
Are you really the kind of person who would lie like that? If I find out someone has lied to me about cheating, then I'll have to put a permanent ban on them.
En Garde Statistics
Saturday, December 1, 2007
I keep a log of every game of En Garde played. Mostly it's to calculate the rankings, but it also allows me to calculate statistics like this:
| Week Ending | Games Played |
| Oct 6 | 119 |
| Oct 13 | 200 |
| Oct 20 | 169 |
| Oct 27 | 402 |
| Nov 3 | 216 |
| Nov 10 | 452 |
| Nov 17 | 295 |
| Nov 24 | 258 |
| Dec 2 | 304 |