Difference between revisions of "Darkcanuck/RRServer"

From Robowiki
Jump to navigation Jump to search
m (fixing link)
(→‎How you can help: Pointing to the SVN repo)
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Experimental RoboRumble Server ==
+
{{Darkcanuck/RRServer/Navigation}}
  
I found some time on the weekend and put together a database-backed RoboRumble server.  You can try it here:  http://darkcanuck.net/rumble/  (warning: still quite alpha)
+
== Darkcanuck's RoboRumble Server ==
 +
 
 +
I found some time on the weekend and put together a database-backed RoboRumble server.  You can try it here:  http://darkcanuck.net/rumble/   
  
  
Line 20: Line 22:
 
* Ability to query more "fun" data, like daily rankings, top submitters, survivalist stats
 
* Ability to query more "fun" data, like daily rankings, top submitters, survivalist stats
  
 
== Current State ==
 
 
The new server is live and has been accepting requests for just under 24hrs.  My home test server has been running for several days, so it is stable but there are probably may bugs and still a number of missing features.
 
 
What's done:
 
* support for OneOnOne competitions (mega, mini, micro, nano)
 
* uploading results (1.5.4 client tested)
 
* returning ratings file to client
 
* removal of participants by client (<strike>potentially</strike> buggy area)
 
* rankings display for OneOnOne
 
* average percentage scoring
 
* survivalist scoring
 
* built-in checks for field size, number of rounds
 
* pairings detail incl. detailed battle results **new!**
 
 
What's missing:
 
* automatic (or semi-auto) rankings rebuild -- planned but not yet coded
 
* support for melee, teams, twin duel (but tourney format won't be supported)
 
* add check for total survival >= 35 in OneOnOne
 
* ELO scoring
 
* add check for score > 8000 in OneOnOne
 
 
Known bugs:
 
* <strike>need to work on exception handling & error messages.  The rumble client is very picky about brackets in returned results so an error from the server often causes an exception in the client!  The returned errors are fairly verbose at the moment for debugging.</strike>  **DONE!**  Very happy with new error handler class, sends short & sweet output to clients, flags for turning on/off debugging.  Should no longer cause exceptions if an upload fails unexpectedly
 
* <strike>an error during processing can cause a client to keep uploading duplicate results.</strike> **DONE!** Found the bug causing this, just some bad SQL in a case that wasn't seen until the pairings started to fill out.
 
* Will change the server to toss out duplicates with a warning.  **update:** not so urgent with above bug fixed.
 
  
 
== How to use it ==
 
== How to use it ==
  
Read the list of known bugs above first!  Don't connect unless you're willing to run into the occasional error and hopefully send me a bug report.
+
See the [[RoboRumble/Starting_With_RoboRumble | Starting With RoboRumble]] guide for detailed instructions and pre-configured text files.
 
 
Just change the three URLs in your roborumble.txt file to point to http://darkcanuck.net/rumble/...
 
And reduce the number of battles to 50 for good measure.
 
  
  
 
== How you can help ==
 
== How you can help ==
  
I'd like to make some forks of the latest rumble clients with a few new features.  Including the robocode version number in the uploaded results is the top priority.
+
Submit battle results!
  
 
If there's a feature you want to code and you know PHP/MySQL, let me know!
 
If there's a feature you want to code and you know PHP/MySQL, let me know!
Line 64: Line 36:
 
Feedback is very much appreciated.
 
Feedback is very much appreciated.
  
 
+
The code is published here: http://darkcanuck.net/svn/rumbleserver/trunk
== Feature wishlist ==
 
 
 
Will fill this in soon.
 
 
 
  
 
== Questions/comments? ==
 
== Questions/comments? ==
 
Join the [[Talk:Darkcanuck/RRServer | Discussion]] please...
 
Join the [[Talk:Darkcanuck/RRServer | Discussion]] please...

Latest revision as of 20:34, 11 November 2011

Navigation: About | Updates | Ratings | Query API | Roadmap | Design | Develop | Known Issues


Darkcanuck's RoboRumble Server

I found some time on the weekend and put together a database-backed RoboRumble server. You can try it here: http://darkcanuck.net/rumble/


Why a new server?

Like many others, I was getting frustrated with the weird results appearing on the regular server. There didn't seem to be an easy way to fix the results, except to start over from scratch like ABC did with his new temporary server. It doesn't seem fair to new users that a single misconfiguration will corrupt everyone's results, nor to the Robocode developers where a bug in a new release can cause the same problems.

This effort is not meant to supplant the upcoming Roborumble.org, which will add many great features. But David has taken on a fairly large challenge, and I thought we needed an intermediate step in the meantime which works with the current rumble client and can help evolve the client/server system to become what Roborumble.org will eventually need.


Design Goals

  • Results stored in a relational database, as close to the original format as possible
  • Supports current rumble clients as-is, while allowing for enhanced clients to be created in the future
  • Ability to "roll back" bad data, based on user id, ip address, timestamp or client version (in the near future). So if you goof up your rumble configuration or use the wrong version for a week or two, no data is lost.
  • Extra checks added to ensure valid client configuration
  • Ability to display individual battle data for any pairing (so you can see how much the scores vary)
  • Ability to query more "fun" data, like daily rankings, top submitters, survivalist stats


How to use it

See the Starting With RoboRumble guide for detailed instructions and pre-configured text files.


How you can help

Submit battle results!

If there's a feature you want to code and you know PHP/MySQL, let me know!

Feedback is very much appreciated.

The code is published here: http://darkcanuck.net/svn/rumbleserver/trunk

Questions/comments?

Join the Discussion please...