[IDEA] Ranking

Post anything to do with editing Nexuiz here. Whether its problems you've had, questions, or if you just want to show off your work.

Moderators: Nexuiz Moderators, Moderators

Postby Ronan » Sun Sep 06, 2009 6:26 pm

merlijn's concept seems the more reasonable and feasible so far, I like it. :)
Ronan
Alien trapper
 
Posts: 292
Joined: Tue Mar 20, 2007 10:25 pm
Location: France

Postby Samual » Sun Sep 06, 2009 9:01 pm

merlijn wrote:I've been giving this idea some thought, and I feel that a global achievements setup is a somewhat weird setup. Most importantly because servers with modified settings will be discarded. Most of the servers run slight tweaks to make the game more interesting for certain players, and some of them do make it easier or even impossible to get a certain achievement. Also a lot of achievements only make sense for a certain game type.

Since I also host a couple of servers with odd settings (nexball/nexrun/lasersumo), it would be nice to have the ability to code your own achievements that only make sense on that particular server. Also the idea of sending my logs (with possibly privacy sensitive information) to a third party host doesn't appeal much to me, it wastes bandwidth and doesn't really provide that much protection.

Instead I would like to propose a concept where achievements are acquired on a per-server basis. Using some concepts of cryptography it is easy to secure this and store the information client side. The server would need a longterm keyphrase used to sign a certain achievement, and when it pushes the achievement to the client it sends this following data:

Code: Select all
achievementname, time, nickname, MD4SUM


The MD4SUM is already supported in DP and would be the sum of the concatenation of achievementname, time, nickname and the keyphrase. Clients could store this in a file and send to the server when they reconnect, if they messed with the file in between - the server can detect it and revoke the achievement. If it notices that the achievement is used by multiple people (they copied the files), it may also permanently revoke the achievement by means of the time field.

This system could easily be adapted and make it possible to add achievement detection in both the QC code and as a rcon2irc plugin. Also it can be adapted to the standards on a server, if you got all the stars for CTF/DM - that doesn't mean that you're any good at nexball.

As for displaying this client side, the best way would probably be to add another button in the serverlist where people can view their achievements for that particular server, and this can all be done locally without querying a server out on the internet.

Also I believe that this would be a LOT less work to create, as it needs less security for untrustworthy servers - their achievements only affect their server anyway. I could probably get the backend coded in a couple nights, just need to find the time for it :P.

If you code the backend, i'll make it pretty... Heh. :) --

Basically, the whole reason for using a master server with this information would be to have net statistics (A web page where you can see your score) - A web parser (With sanity checks, to prevent servers from cheating the system), and global statistics. Also, what if a server goes down? You can never access your statistics for that server again. What if the server changes? (Different balance settings or different addons). The point is, I think it would be much cleaner and much more solid to have a master server. With your method, I can't think of a good way to display _all_ statistics at once. (Can you?... Please?) I mean, I don't want to see my frags on each server. I want to see the total. I want to see how many airshots I got, total. Etc etc. How would this be done without querying MANY servers? To address the other part, how would we check to see if the server has changed balance? If it has changed, what should happen? Should the old stats be disregarded? Should they be kept even if the entire balance changed?........

With my system, it wasn't that the stats are simply discarded for a server with modifications. However, it simply excludes certain achievements under certain circumstances. (To be honest, I might not exclude A LOT of things when I think about it. I discovered it really ISN'T easier to get an airshot with jetpack or etc (It's actually harder).. So I think... It might not exclude things anyway.)

merlijn wrote:Also the idea of sending my logs (with possibly privacy sensitive information) to a third party host doesn't appeal much to me, it wastes bandwidth and doesn't really provide that much protection

Well I see your point there, but you misunderstand just how much information would be sent. All the master server would want is the actually useful information, and it wouldn't take the server log itself. It would take gameplay only. Basically, it would account for every hit/kill/situation in a small log, and then send that to the master server to be parsed at the end of a match. Then, while showing the scoreboard, it would retrieve the parsed information from the master server and display the achievements you completed.

To end, I would be glad to ditch my system if you can provide a way to display all statistics of all servers at once. That I would be fine with. BTW, forgive me if my post is a bit messy. - I'm pretty tired atm.

Anyway i'll talk to you about this on IRC I guess. Heh.
Do it yourself, or stop complaining.
(Developer Tracker) | (Nexuiz Roadmap)
Samual
Keyboard killer
 
Posts: 508
Joined: Mon May 25, 2009 7:22 pm
Location: Pittsburgh, PA

Postby merlijn » Sun Sep 06, 2009 9:32 pm

Samual wrote:
merlijn wrote:...

If you code the backend, i'll make it pretty... Heh. :) --

Basically, the whole reason for using a master server with this information would be to have net statistics (A web page where you can see your score) - A web parser (With sanity checks, to prevent servers from cheating the system), and global statistics. Also, what if a server goes down? You can never access your statistics for that server again. What if the server changes? (Different balance settings or different addons). The point is, I think it would be much cleaner and much more solid to have a master server. With your method, I can't think of a good way to display _all_ statistics at once. (Can you?... Please?) I mean, I don't want to see my frags on each server. I want to see the total. I want to see how many airshots I got, total. Etc etc. How would this be done without querying MANY servers? To address the other part, how would we check to see if the server has changed balance? If it has changed, what should happen? Should the old stats be disregarded? Should they be kept even if the entire balance changed?........


I think you're actually mixing two things here, achievements and a fully blown statistics system. An achievement says for example that you have once gotten 5 midair mortar shots in one match, it does not care if you actually gotten 6 or 7 or 503. Also once you have the achievement, you can't get it again (you could have ranks on achievements, but that's another story). I think achievements in this sense are more important (and can be of more use) than statistics, we all know the kind of people that quit a match when they're on the losing team to keep up their stats.

Since all this data is stored clientside, the client may choose to upload this to a webpage (and this could be done in the background using curl POST inside nexuiz even). At this point the security comes into play, as the master server cannot verify the MD4SUM - instead you'd have to use a form of RSA.

On the website you could show all the collected achievements on a single page, but I think it makes more sense to display them on a per-server basis (or at least deeplink to this).

Changed balance should be up to the particular server admin. Since my format includes a time field (and I suggest using standard unix epoch for this), you can define a limit. Let's say I change some option today and want to reset all achievements done before now, I could add a rule for this. How this exactly needs to happen needs further investigating, a separate txt file on the server seems like a good plan.

Samual wrote:With my system, it wasn't that the stats are simply discarded for a server with modifications. However, it simply excludes certain achievements under certain circumstances. (To be honest, I might not exclude A LOT of things when I think about it. I discovered it really ISN'T easier to get an airshot with jetpack or etc (It's actually harder).. So I think... It might not exclude things anyway.)


The point here is that it doesn't matter where you draw the line, it should be up to server admins to make it easy or hard to get certain achievements. If the server admin wants to setup a crazy server with crazy achievements - have fun!

Samual wrote:
merlijn wrote:...

Well I see your point there, but you misunderstand just how much information would be sent. All the master server would want is the actually useful information, and it wouldn't take the server log itself. It would take gameplay only. Basically, it would account for every hit/kill/situation in a small log, and then send that to the master server to be parsed at the end of a match. Then, while showing the scoreboard, it would retrieve the parsed information from the master server and display the achievements you completed.

To end, I would be glad to ditch my system if you can provide a way to display all statistics of all servers at once. That I would be fine with. BTW, forgive me if my post is a bit messy. - I'm pretty tired atm.

Anyway i'll talk to you about this on IRC I guess. Heh.


I'm guessing you're referring to a subset of the sv_eventlog output, which makes sense. In general these do contain IP information, and players might not like it to be shared. Anyway, eventlogs are easy to parse and thus easy to fake. Sure you can do some sanity checks that would prevent the easiest hacks, but the system is basically flawed by design.
Before posting a reply, please read about the bikeshed
merlijn
Advanced member
 
Posts: 84
Joined: Tue Oct 21, 2008 10:18 am

Postby Samual » Sun Sep 06, 2009 10:03 pm

Yes, I am mixing statistics and achievements together. As they should be... I want to see all of that information, and my system allows that. Your system still doesn't allow the ability to see everything at once (I really want this feature, and I will code it.)

merlijn wrote:I'm guessing you're referring to a subset of the sv_eventlog output, which makes sense. In general these do contain IP information, and players might not like it to be shared. Anyway, eventlogs are easy to parse and thus easy to fake. Sure you can do some sanity checks that would prevent the easiest hacks, but the system is basically flawed by design.

No, I would not use that. I would code an additional logging method like Darkwar uses.
Do it yourself, or stop complaining.
(Developer Tracker) | (Nexuiz Roadmap)
Samual
Keyboard killer
 
Posts: 508
Joined: Mon May 25, 2009 7:22 pm
Location: Pittsburgh, PA

Postby merlijn » Mon Sep 07, 2009 8:30 am

Samual wrote:Yes, I am mixing statistics and achievements together. As they should be... I want to see all of that information, and my system allows that. Your system still doesn't allow the ability to see everything at once (I really want this feature, and I will code it.)


I very much oppose this idea, and consider this to be something completely different that should be implemented with another design in mind.

The good thing about achievements is that it has a positive vibe to it, users are going to like earning them and showing them off. Also you can just play and have fun every once in the while, without worrying what effect this might have on your reputation. As I've stated before - we all know there are people who will do just about anything to keep their stats up, and such an attitude will ruin the game on public servers.

Let's get to the technical part of it, where a whole lot of other issues come round. Most importantly is the question "Who do you trust?" Endusers are out of the question, and servers may be unreliable too. There are so many ways you could tinker with the data that you need a VERY sophisticated system to make this secure (basically, you need full blown authentication of the client and server to eachother, and both need to send independent signed logs to the master server). Even with this extreme precaution, as a user I could modify the code to ask whether I would want to send my logs, and choose to discard logs that would bring my stats down. There is no sane way to detect this.

Samual wrote:
merlijn wrote:...

No, I would not use that. I would code an additional logging method like Darkwar uses.


This feels like unnecessary bloat, but I'd need more details to make a solid judgement. Why not just modify eventlogs to suit your needs?
Before posting a reply, please read about the bikeshed
merlijn
Advanced member
 
Posts: 84
Joined: Tue Oct 21, 2008 10:18 am

Postby liolak » Wed Sep 09, 2009 2:54 pm

some other quite hard to achieve achievements

-hit someone with laser 3-4-5 times in a row without him touching the ground.
-nex someone twice without him touching the ground.
-throw someone out of the map 10 times during a duel (like on soylent)
-this one might be controversial :/ but its hard to do anyway (spawn raper award. kill someone 5 times in less than ±10 seconds or like 3 times in less than x amount of time)
- mortar juggling : 5-6-7 primary mortar hits in less than ±8-9 seconds.

times are just as an example, nothing is actually mesured.
liolak
Alien
 
Posts: 114
Joined: Fri Jan 25, 2008 12:16 am
Location: Montréal, Canada

Postby FraNcoTirAdoR » Wed Sep 09, 2009 7:17 pm

another idea: kill your opponent twice withing 5 seconds in a 1on1 match :D
FraNcoTirAdoR
Alien trapper
 
Posts: 288
Joined: Tue Mar 04, 2008 10:25 am
Location: near the nex

Postby paperclips » Fri Sep 11, 2009 3:32 pm

The overachiever award: getting x-amount of frags above the fraglimit.
(I mean +1 over limit or maybe even +2-3 ok, but +4-5.. gawd..)
[Want to develop? Look HERE]. Image Image Gif sauce.
paperclips
Alien trapper
 
Posts: 346
Joined: Mon Jan 12, 2009 10:27 am
Location: internets

Re: [IDEA] Ranking

Postby Kay » Fri Jan 01, 2010 11:26 pm

getting back on this, how is the coding going, or did you stop with it? :?:
[img]http://pisarowitz.com/kay/sig.png[/img]
Kay
Alien
 
Posts: 182
Joined: Sat Jun 07, 2008 4:46 pm
Location: Behind bars

Previous

Return to Nexuiz - Editing

Who is online

Users browsing this forum: No registered users and 1 guest