File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Game Development and the fly likes Chess Server Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Game Development
Bookmark "Chess Server" Watch "Chess Server" New topic
Author

Chess Server

marwen Bakkar
Ranch Hand

Joined: Jan 28, 2010
Posts: 84
Hey guys,

I've been working on this for a while now. I'm still hunting bugs, but at least the server is operational. Check it out at http://darrylsite.co.cc/firas/chess.html

Feedback is greatly appreciated!
Stephan van Hulst
Bartender

Joined: Sep 20, 2010
Posts: 3649
    
  17

Yeah, your link is broken.
marwen Bakkar
Ranch Hand

Joined: Jan 28, 2010
Posts: 84
I fixed it. Sorry about that.
Mich Robinson
Ranch Hand

Joined: Jun 28, 2009
Posts: 251
    
    1
A few things confused me :

I found the main page a little difficult to understand, for a moment I thought it was just a background image. It's certainly quite pretty but it's not obvious what you're looking at. Personally I'd prefer a simple list or options to view current games, historic games, etc which would make it more obvious what you're being shown. I didn't understand the goto {game number} feature either as I can't see why I'd know the number of a game unless I scrolled down to find it, in which case I could just click on it.

It was interesting viewing the old games but it would of been nice to step through them move by move rather than the moves playing automatically. When displaying moves it would occasionally be moving the queen all across the board and the opponent would move before the previous move was finished. Also, if a piece was taken, then it would disappear before you knew that was where the opponent was moving to.

I tried playing a game and was noting down my opinions of the software when I spotted it defaults to a time limit of 2 minutes! That's a very quick game. I couldn't see any way of changing the time limit either. My opponent didn't appear to know about the time function. Needless to say the game finished on time. It also took me a while to realise I had to click ready before I could play - why?

Does it use the winboard commands to run with chess engines or other chess servers?

Overall it's a very nice presentation. Personally I'd get rid of the things that just look pretty but which make the program more difficult to use. Best bet is to watch someone who isn't used to the software using it and seeing what questions they ask or where they get stuck. Your biggest problem will be finding a unique selling point or feature that will get people to use it.

Mike

PS There is also the TalkChess forum which is a good source of chess programming knowledge


Arcade : Alien Swarm
Board : Chess - Checkers - Connect 4 - Othello
marwen Bakkar
Ranch Hand

Joined: Jan 28, 2010
Posts: 84
Thank you so much Mich for your feedback.

Mich Robinson wrote:
I found the main page a little difficult to understand, for a moment I thought it was just a background image. It's certainly quite pretty but it's not obvious what you're looking at. Personally I'd prefer a simple list or options to view current games, historic games, etc which would make it more obvious what you're being shown.


The design comes from the old MSN gaming zone back in the days I was playing. Believe me once you get used to it you'll think it rocks. I remember everyone used to like it and was so upset when the zone shutdown.
However, the "List View" button is meant to provide an alternative, more simple, presentation of the games. I just didn't have time to do it yet.
Also, if you entered a real server with lots of users in it, you'd be seeing the games changing (state going from "Host" to "Join", titles changing etc) so a first-time user would realize pretty quickly that it's the real thing, not a background image.

Mich Robinson wrote:
I didn't understand the goto {game number} feature either as I can't see why I'd know the number of a game unless I scrolled down to find it, in which case I could just click on it.


This is meant to when you hover over a player, for example a friend, see he's in game n, then you want to join that game. I'll admit that's somewhat limited use.

Mich Robinson wrote:
It was interesting viewing the old games but it would of been nice to step through them move by move rather than the moves playing automatically.


The bots mimic real users to give a feel of how things work when you have no buddy to play against. You're supposed to be watching a game happening live, except that the moves come from a PGN rather than an AI.
But if I had a real server I would add a feature that would let users take one room, then do "load PGN" from the File menu and step through the game however they like. They can go back, forward, try variations, comment with their friends etc.

Mich Robinson wrote:
When displaying moves it would occasionally be moving the queen all across the board and the opponent would move before the previous move was finished. Also, if a piece was taken, then it would disappear before you knew that was where the opponent was moving to.


Hehe not surprising. This is a CPU speed issue. I only tested in my computer, in which the rendering is very smooth.

Mich Robinson wrote:
I tried playing a game and was noting down my opinions of the software when I spotted it defaults to a time limit of 2 minutes! That's a very quick game. I couldn't see any way of changing the time limit either. My opponent didn't appear to know about the time function. Needless to say the game finished on time.


Yeah game time is a hard coded value for now. Of course a real system would allow all kinds of customizations : game time, disable watchers, pawn auto promotes into queen or not, turn off sound, protect the room with password/rating range etc. As I say in the landing page, this is just a prototype.

Mich Robinson wrote:
It also took me a while to realise I had to click ready before I could play - why?


Normally there are points involved (rating system). You wouldn't want the host of the room to start the game while you're not paying attention. Say you're playing a game and it's over, when does the next game start? How do you know your opponent actually wants a rematch or he's just in the room to talk to you or is just analyzing the last moves? So everyone has to confirm he's ready to start. Age of Empires does that too.

Mich Robinson wrote:
Does it use the winboard commands to run with chess engines or other chess servers?


Nope. Never heard of winboard.

Mich Robinson wrote:
Your biggest problem will be finding a unique selling point or feature that will get people to use it.


Yep, I knew that from the beginning so I was not really trying to start a business. I am about to graduate so I did this to (a) learn and (b) market myself. But if you know of ways on how can I extract value out of this I'd be glad to hear them. For example I am wondering about open source. If I put this on say, github, what happens then? Will people actually start contributing even if I have no connections? Is there any hope this attracts users and can have some market share?

Again thanks for your input.

Mich Robinson
Ranch Hand

Joined: Jun 28, 2009
Posts: 251
    
    1
This is a CPU speed issue. I only tested in my computer, in which the rendering is very smooth.
I don't think it's a speed issue (even though my PC is far from modern) as the rendering is quite smooth. The issue was simply that it played the next move before it had finished moving the last piece but only if the last piece had to travel all across the board. The taken piece disappearing (before you know the player has moved there) could be solved by just making it flashing etc.

So everyone has to confirm he's ready to start. Age of Empires does that too.
Personally I'd prefer options to show up on screen that say what I can do at that stage ie play, watch etc. I tried every button on screen before I spotted the little ready tick box or are you aiming at the subset of chess players that also play age of empires ;)

Never heard of winboard.
There are a series of commands that allow each chess engine or chess server to communicate in a standard way. This means if your system could understand the commands then it could play against any chess engine or any player on a standard chess server like ics. The commands are simple text commands like e2e4 which moves a piece from e2 to e4 but also more complicated commands to set up positions or set time limits etc. I think you should at least have a peek at this "standard" language for chess programs. Also have a look at xboard, ics commands and areana.

thanks for your input.
I'm quite impressed by your system but I personally find it difficult to know what I'm looking at or what I'm supposed to do next. My comments definitely aren't criticisms but more my initial impressions but these initial impressions count as they are what make a user continue playing on your system or whether they use google to look for something similar. I would add simple titles for each screen so a stupid user (like me) knows what he's looking at. I would also add simple buttons so a user can quickly state what he wants to do ie play or watch. I think the chat should be on the playing screen as I had to keep moving between the full size playing screen and finding the tab for the chat. I'd also default the game time to 5 minutes rather than 2 - there's nothing worse than trying out a new system and then being a minute into the game and wondering why there's a little number rapidly counting down from 59 in the corner. The aim is surely to get people to play together on your system than to have a frantic 120 seconds.

For example I am wondering about open source
I've never made my stuff open source but I think that would look good on your CV - people are always impressed by any programming around chess. The main aim is to get people to use the system (which shows it's worth) and for that you need to make it slightly more intuitive. I'd listen to peoples input (no matter how crazy they sound) because users never use systems the way you designed them to be used. If things aren't obvious then there's no point even coding them. Once you have users then you could make it open source.

PS please feel free to comment on my own little chess program
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Chess Server