My chess game: Project Invincible

Programming Topics (Computer Chess) and technical aspects as test techniques, book building, program tuning etc

Moderator: Andres Valverde

My chess game: Project Invincible

Postby Jyrki Vesterinen » 15 Dec 2012, 11:34

Hello everyone,

I'd like to announce my chess game, called Project Invincible. I just released version 2.00 that, among other things, introduces support for the Chess Engine Communication Protocol.

Some nice things:

  • Custom user interface with 3D graphics, animations and reflections
  • Open source (GPLv2)
  • Supports both Windows and GNU/Linux (may also be compilable on other Unix clones)
  • Multithreaded engine

Project Invincible is written in C++ (its spinlock implementation is in assembly, though). Regarding playing strength, it's around as strong as Marquis on my system (AMD A4-3310MX APU, two cores, 2,1 GHz).

Website: http://code.google.com/p/project-invincible/

Best regards,
Jyrki Vesterinen
Jyrki Vesterinen
 
Posts: 15
Joined: 15 Dec 2012, 10:53

Re: My chess game: Project Invincible

Postby crystalclear » 18 Dec 2012, 20:59

My Thoughts.

Hard to distinguish Brown Pieces on Black squares.
I would change the colour scheme to use Black Pieces for black, and light and dark shades for the squares rather than black and white.

The can-go-to yellow highlighting has white stripes across it on my screen. (Is that what they call aliasing?)

The graphics options seemed to consist of a slider for board reflectivity. That's great and pretty impressive, but is it the only thing a user might want to adjust and is it important? No 3D reflectivity and ability to choose piece colour instead would (in my opinion) have made a more satisfying user interface.

The user interface has drag-and-drop but no click-from-click-to functionality. From the chess interfaces I am used to using, I have the habit of expecting both. I am even used to interfaces that allow click-to-then-click-from. You don't drag the piece over the board with the mouse cursor, and I'm not surprised. I want to do that on a 2D interface of mine and didn't get around to it due to the complexities of implementing it. But you did have something that I thought was very cool and that I don't recall seeing before and that was a capture preview. Dragging a piece of mine over an enemy piece would show a preview of the board position as if the capture had already happened - the opponent piece would be removed from the screen and replaced if the dragged piece went elsewhere. I liked that!

In your 'settings' I cannot tell when a check-box is checked. It does change its shading from one form to another, but it is not self evident whether the box is checked or not.


The knights face forwards. I mentioned colours earlier, and the result of the colour problem is that I mainly see a silhouette of the pieces on the board. With the knights facing forwards, their silhouette is not too different from that of a bishop or a pawn. When I play over the board chess, I turn the knights to face sideways, like an egyptian face picture. This makes the pieces simpler to pick up between thumb and first finger. In 2D chess graphics, the knights are nearly always represented as sideways facing horse heads.

I just looked at a file on my PC "scacchi clay stop motion - chess clay stop motion.mp4". It's from youtube and is a must-see chess video. I looked at that to see how he displays knights in 3D and they are almost NEVER shown facing the camera. They do face forwards at time, but when they face forwards, the camera is at the side of the board so the horse-head profile is clearly visible.

At the end of a game, in the middle of the screen, it says "Check". I had expected it to say "Checkmate".

All these seem to be comments about the 3D graphics interface and not about the chess engine. I get the impression that the graphics and engine are by different authors. Which is yours? Was it easy to combine the engine project and graphics project to produce an executable file containing both? If the chess engine is xboard or UCI compatible, does it exist on its own, so that I can see how it plays against other engines?

Back to the graphics! The view seems a bit short sighted. I can imagine being a player with guiness-bottle glasses, head over the board looking down on my own piece, and across at the opponents. That is how the board appears. I would have expected a view from lower down and further back, with a narrower field of view. And I'd expect the board to fill the screen. On my laptop, only 80% of the window height is used. That window in turn is only about 80% of the height of the screen. And my laptop is one of those ridiculous letter-box shaped screens (16:9 called widescreen) where they have cut the top off from the older (16:12=4:3) format. (Portrait mode is a nightmare when you are looking at things through a letterbox!)

It would be nice if you could play back through a game after its over.

It would be nice if a game could be saved to a PGN file.
crystalclear
 
Posts: 91
Joined: 22 Sep 2011, 14:19

Re: My chess game: Project Invincible

Postby Jyrki Vesterinen » 19 Dec 2012, 12:25

Thank you. I hardly expected feedback at all, let alone this detailed. :)

crystalclear wrote:Hard to distinguish Brown Pieces on Black squares.
I would change the colour scheme to use Black Pieces for black, and light and dark shades for the squares rather than black and white.


Added to the todo list.

crystalclear wrote:The can-go-to yellow highlighting has white stripes across it on my screen. (Is that what they call aliasing?)


I have seen stripes myself when using the grahics drivers that come with Windows. Try Nvidia's/AMD's/Intel's official drivers (or update them if they are already installed).

crystalclear wrote:The graphics options seemed to consist of a slider for board reflectivity. That's great and pretty impressive, but is it the only thing a user might want to adjust and is it important?


Yes, I thought so. Some people will consider reflections impressive, the others distracting.

crystalclear wrote:No 3D reflectivity and ability to choose piece colour instead would (in my opinion) have made a more satisfying user interface.


OK, I'll add options to change piece colors.

crystalclear wrote:The user interface has drag-and-drop but no click-from-click-to functionality. From the chess interfaces I am used to using, I have the habit of expecting both. I am even used to interfaces that allow click-to-then-click-from.


IMO, click-from-click-to is not worth the implementation effort. Drag-and-drop is easy enough, isn't it? :)

crystalclear wrote:But you did have something that I thought was very cool and that I don't recall seeing before and that was a capture preview. Dragging a piece of mine over an enemy piece would show a preview of the board position as if the capture had already happened - the opponent piece would be removed from the screen and replaced if the dragged piece went elsewhere. I liked that!


Thanks. :)

crystalclear wrote:In your 'settings' I cannot tell when a check-box is checked. It does change its shading from one form to another, but it is not self evident whether the box is checked or not.


The GUI widgets are provided by a library. I can't change their look. :(

crystalclear wrote:The knights face forwards. I mentioned colours earlier, and the result of the colour problem is that I mainly see a silhouette of the pieces on the board. With the knights facing forwards, their silhouette is not too different from that of a bishop or a pawn. When I play over the board chess, I turn the knights to face sideways, like an egyptian face picture. This makes the pieces simpler to pick up between thumb and first finger. In 2D chess graphics, the knights are nearly always represented as sideways facing horse heads.


Do you think solving "the colour problem" is enough, or should I also add an option to make the knights face sideways?

crystalclear wrote:At the end of a game, in the middle of the screen, it says "Check". I had expected it to say "Checkmate".


OK, I'll change it.

crystalclear wrote:All these seem to be comments about the 3D graphics interface and not about the chess engine. I get the impression that the graphics and engine are by different authors. Which is yours? Was it easy to combine the engine project and graphics project to produce an executable file containing both? If the chess engine is xboard or UCI compatible, does it exist on its own, so that I can see how it plays against other engines?


You got a wrong impression. It's a single codebase. :)

Use the --xboard command line switch to start Project Invincible in XBoard mode.

crystalclear wrote:Back to the graphics! The view seems a bit short sighted. I can imagine being a player with guiness-bottle glasses, head over the board looking down on my own piece, and across at the opponents. That is how the board appears. I would have expected a view from lower down and further back, with a narrower field of view.


By default, the view is optimized for usability. You're able to see the entire board clearly all the time.

To change the view, drag it with the middle button pressed and change zoom with the mouse wheel.

Do you think the view should be saved, so that the game would always start with your favorite view?

crystalclear wrote:And I'd expect the board to fill the screen. On my laptop, only 80% of the window height is used. That window in turn is only about 80% of the height of the screen. And my laptop is one of those ridiculous letter-box shaped screens (16:9 called widescreen) where they have cut the top off from the older (16:12=4:3) format. (Portrait mode is a nightmare when you are looking at things through a letterbox!)


It's technically hard to get the board to fill the window. :( The problem is that the camera must look at the center of the board so that the board will look the same from black's POV. Due to perspective, the nearer side of the board will look larger. As a result, there are only three options:

  1. Leave the top of the window empty.
  2. Crop the bottom of the board.
  3. Put the camera to the top position (in this case you could as well have 2D graphics).

Option 1 is the default one here, and the player can choose other options by moving the camera.

Regarding window height, ability to resize (and maximize) the window is already in the todo list.

crystalclear wrote:It would be nice if you could play back through a game after its over.

It would be nice if a game could be saved to a PGN file.


Added to the todo list.

Thanks again for the feedback! :)
Jyrki Vesterinen
 
Posts: 15
Joined: 15 Dec 2012, 10:53

Re: My chess game: Project Invincible

Postby Jyrki Vesterinen » 23 Dec 2012, 20:05

Version 2.01 released.

Changelog wrote:
  • New reflection implementation. The old implementation required an optional OpenGL feature called stencil buffer that, to my surprise, is not implemented in many graphics drivers.
  • Fixed: sometimes a piece was selected when you opened a dialog.
Jyrki Vesterinen
 
Posts: 15
Joined: 15 Dec 2012, 10:53

Re: My chess game: Project Invincible

Postby Jyrki Vesterinen » 06 Jan 2013, 20:32

Version 2.02 released.

Changelog wrote:
  • Improved performance by enabling more compiler optimizations.
  • Fixed: the focused square was often off by one.
  • Windows: upgraded the compiler to MSVC 2012. The main advantage is that I can use some C++11 features which improve my productivity.
Jyrki Vesterinen
 
Posts: 15
Joined: 15 Dec 2012, 10:53

Re: My chess game: Project Invincible

Postby Jyrki Vesterinen » 11 Feb 2013, 20:22

Version 2.03 released.

Changelog wrote:
  • Fixed a random crash when making a move.
  • Fixed: the evaluation function didn't take passed pawns of black into account.
  • Fixed bugs which reduced engine performance.
  • Fixed crash in XBoard mode when told to move in a position without legal moves.
  • Minor changes.
Jyrki Vesterinen
 
Posts: 15
Joined: 15 Dec 2012, 10:53

Re: My chess game: Project Invincible

Postby Jaco van Niekerk » 12 Mar 2013, 08:47

Had a quick look at your web site and the screenshots! Whao! Very impressive... I did not have a chance to play your engine yet, how strong does it play? Have you entered any tournaments yet?
User avatar
Jaco van Niekerk
 
Posts: 31
Joined: 30 Jul 2006, 21:23
Location: South Africa

Re: My chess game: Project Invincible

Postby Jyrki Vesterinen » 13 Mar 2013, 21:13

Jaco van Niekerk wrote:Had a quick look at your web site and the screenshots! Whao! Very impressive...

Thanks. :)

Jaco van Niekerk wrote:I did not have a chance to play your engine yet, how strong does it play?

It is weak. As I said in the OP, around as strong as Marquis.

Jaco van Niekerk wrote:Have you entered any tournaments yet?

Nope. It seems there aren't any tournaments left that are interested in such weak engines.

----

By the way, Project Invincible 2.04 is coming on Saturday. Version 2.03 freezes when you attempt to promote a pawn with the built-in GUI. (In testing, I have focused too much on CECP support and too little on the built-in GUI... :( )
Jyrki Vesterinen
 
Posts: 15
Joined: 15 Dec 2012, 10:53

Re: My chess game: Project Invincible

Postby Jyrki Vesterinen » 16 Mar 2013, 11:36

Version 2.04 released.

Changelog wrote:
Jyrki Vesterinen
 
Posts: 15
Joined: 15 Dec 2012, 10:53

Re: My chess game: Project Invincible

Postby Adam Hair » 17 Mar 2013, 21:53

Jyrki Vesterinen wrote:
Jaco van Niekerk wrote:Have you entered any tournaments yet?

Nope. It seems there aren't any tournaments left that are interested in such weak engines.


How about a rating list? I have had a couple of setbacks in regards to my Also-Rans rating list and the goal of completely incorporating the database into the CCRL 40/4 rating list. But I am starting to run games again, and the Project Invincible engine is definitely in the strength range I like to focus on.
Adam Hair
 
Posts: 7
Joined: 12 Apr 2010, 20:58

Re: My chess game: Project Invincible

Postby Jyrki Vesterinen » 18 Mar 2013, 07:42

Adam Hair wrote:
Jyrki Vesterinen wrote:
Jaco van Niekerk wrote:Have you entered any tournaments yet?

Nope. It seems there aren't any tournaments left that are interested in such weak engines.


How about a rating list?


What are you asking?

Adam Hair wrote:I have had a couple of setbacks in regards to my Also-Rans rating list and the goal of completely incorporating the database into the CCRL 40/4 rating list. But I am starting to run games again, and the Project Invincible engine is definitely in the strength range I like to focus on.


It would be nice if you added PI to the Also-Rans list at some point. :)
Jyrki Vesterinen
 
Posts: 15
Joined: 15 Dec 2012, 10:53

Re: My chess game: Project Invincible

Postby Jon » 18 Mar 2013, 15:31

Jyrki Vesterinen wrote:
Adam Hair wrote:How about a rating list?

What are you asking?


You said that there were no tournaments for weaker engines, so he is offering to add Project Invincible to his rating list instead.

It's a nice list by the way. It's a great guide to engines that a human club player actually has a chance of beating.
Jon
 
Posts: 3
Joined: 18 Feb 2013, 23:04

Re: My chess game: Project Invincible

Postby Adam Hair » 18 Mar 2013, 22:40

Tournaments are more fun and, thus, better in my opinion. But a rating list is better than nothing at all :)

PI will be near the front of my queue when I resume the Also-Rans.

And thanks, Jon, for the compliment.
Adam Hair
 
Posts: 7
Joined: 12 Apr 2010, 20:58

Re: My chess game: Project Invincible

Postby Jyrki Vesterinen » 20 Mar 2013, 20:02

Jon wrote:
Jyrki Vesterinen wrote:
Adam Hair wrote:How about a rating list?

What are you asking?


You said that there were no tournaments for weaker engines, so he is offering to add Project Invincible to his rating list instead.


Ah, I see.

Adam Hair wrote:PI will be near the front of my queue when I resume the Also-Rans.


Thanks for that. :)
Jyrki Vesterinen
 
Posts: 15
Joined: 15 Dec 2012, 10:53

Re: My chess game: Project Invincible

Postby Jyrki Vesterinen » 03 May 2013, 19:16

Version 2.04a released. It's an Unix-only release.

Changelog wrote:Unix only: fixed build on distributions where so-called implicit DSO linking is disabled by default such as Ubuntu 13.04.
Jyrki Vesterinen
 
Posts: 15
Joined: 15 Dec 2012, 10:53


Return to Programming and Technical Discussions

Who is online

Users browsing this forum: No registered users and 19 guests