features in a highscore server?

my highscore server is almost done now and it has all the features I need (well, soon anyway). my plan is to release it for free for everyone to use.

  • the server has a nice GUI with the scores presented in nice JTables and JTabbedPanes and stuff.
  • it supports all games and can be customized. standard settings include player name, place and score, but it’s simple to add more fields (JList, add/edit/remove buttons). you can for instance add fields for FPS, Java version and so on.
  • one mouse click starts the server on port 1200 (can be changed)
  • logging is presented in a JTextArea along with time stamp (also saved in a logfile)
  • different PLAFs :slight_smile:
  • on the client side all you have to do is to instantiate a Score object with 3-n parameters and instantiate a HighscoreClient object with ip and port to send to and finnally calling a method called sendScore().

performance is ok at the moment. I haven’t done much real-life testing, just running test programs with for-loops sending randomized scores. it works well with a couple of test programs sending 10000 scores each. the database consists of Vectors of Vectors and saved in regular text files. for games only storing ~100 entries this should not be a problem. at the moment i use Serialization, but everything is encapsuled so i might move to sending bytes manually instead (a highscore is not that big anyway so it might not be worth the effort).

below are the features i’m gonna implement next

  • sorting of data (score, name etc)
  • export to HTML
  • sending back a highscore list to client
  • possibly graphs using some graph lib

anyway, what features do you want/need in a highscore server? any other comments?

i’ll put a public preview online soon along with a short user manual.

Why not store data in a relational database?

i dunno! i haven’t done any database stuff so i don’t know if i need it :slight_smile:

hard to set up? hard to implement? worth the effort? benefits? faster? more reliable? will it get me more girls?

well, otherwise it migth be good to learn from.

(sorting is implemented now by the way)

[quote]hard to set up?
[/quote]
Depends, something like Oracle or DB2 will be hard to setup but when you’re using one of those it doesn’t really matter, you have professionalls do the install.

I’ve never used it but this is probably the least effort on your part to start using a DB: http://hsqldb.sourceforge.net/

[quote]hard to implement?
[/quote]
I don’t think so but I’m familiar with SQL already.

[quote]worth the effort? benefits? faster? more reliable? will it get me more girls?
[/quote]
If the high score table is getting more access than once every few seconds then it’s probably worth it. You’ll be able to do things like have a DB backend where many front ends query one soruce of scores. Reliablity will vary between products but they tend to go all out on reliability. A DB that looses data is useless to a company with important info like billing records. A high end DB will provide butt loads of tuning options which will let the DB be faster. Initially it will probably be slower but that is because the DB will need to be told how your data will be accessed and where to optimize. Speed is often sacraficed for reliability. I can only thing of one girl I impressed with my SQL knowledge. Normally it probably wouldn’t have but she was taking a class on databases.

[quote](sorting is implemented now by the way)
[/quote]
You should let the DB do the sorting. It can keep indexes that could be faster than whatever you’re doing. Or it may do clustering of data so it doen’t need to sort the full set of data. Lots of possibilites here.

SQL is designed to meet the needs of high end business. There is a lot of real power in a good SQL DB, a lot more than most people need. Probaly 90% of the people that use SQL only need 10% of it’s features. Products like mySQL will appeal to most people because of their simplicity. If you go with a light weight DB and start wanting more remember there is a lot more to the iceberg than you can see.

sigh, it does indeed look nifty, but i’m also a bit terrified :slight_smile: looks like it’s too much new to learn at the moment.

i’d get all the data handling for free (such as adding data, removing data, sorting, searching etc), but all that is implemented already. i might try do store it in SQL when everything else is implemented.