I am in the process of developing a chess openings trainer. If you've never used a program like Bookup or Chess position trainer, you may not know what I'm talking about. Basically, you can enter all the opening moves that are you in your repertoire. You can then get tested randomly to play through the moves. Alternatively, you can test your 'worst' lines - the lines you forget the most.
Even though the title says 'Chess Openings Trainer', the chess openings trainer is just the first phase of what I am calling the "Jacob Wagner Super Chess App" - of which I plan to be a database program like Chessbase, an openings trainer like chess position trainer or bookup, and a chess client (to icc and fics of course, but probably not chess.com unless they allow external access). And I will throw in some features that haven't been seen before.
The key however is that all these programs are integrated - this doesn't mean you can cheat by using your openings explorer during a game - but immediately after the game is over you can click a button and find out where you deviated from your book lines, or more importantly, where your *opponent* deviated from book lines - so that you can add the correct variations to your opponent's response.
You will also be able to go through a database of games and see where you or your opponent's deviated.
Ultimately, chess engine support will be integrated as well.
This may sound like a pipe dream, but I've actually made pretty good progress in a short amount of time. I've been working on the program for about 3 or 4 days now, and here is a picture of what I've got working:
As you can see in the above picture, there's a tree view of the variations list. I'm absolutely fascinated about this. Chess position trainer doesn't have it. Bookup doesn't have it (as far as I know). Chessbase has a sort of variations tree, but it's clunky and just isn't the same.
The board itself will scale to the size of the window, making the program usable for high and low resolutions.
So, accomplishing all this in 5 days (well to be honest I only spent a couple hours some of the days) puts me on schedule to having the most feature complete chess app in no time at all! :)
You may ask yourself: is he some kind of super programmer? Absolutely not. The fact is, I have an advantage: I use smalltalk. Smalltalk is the ultimate object-oriented language. It's syntax is simple, it's reflective and you develop iteratively in real time. No lengthy compile - build - test - compile - build - test cycle, you change a method and the change is instantaneous. Debugging is miles ahead of other languages and environments. In any case, I won't get into that too much right now - you can read about smalltalk elsewhere. Back to the chess app.
I plan to price the chess app very competitively for what it will eventually be able to do. Chessbase and Chess Assistant are extraordinarily expensive - and I plan to cut their price by at least 75%. So I'll say right now that I do not plan on selling my app for anything more than $40, but a price of something like $20 -$30 is highly possible.
As for compatability - it should work on just about any version of Windows, including at least XP but possibly win 98 (havent tested that far back). It will definitely run on windows Vista and windows 7 (which I am running). It could possibly run on mac and linux with Wine, which has been used successfully with other programs built in the same programming environment as I am using. I am not sure how well it would display, or how well the networking will play with Wine. I will however be doing this testing.
In other news, I'm also planning a chess MMO. (really). There's some interesting new technology in the smalltalk world using silverlight and .net, it's called Silverlight smalltalk. It's new technology, but as far as I can tell it will make programming multiplayer web apps extremely easy. My plans for this will hold off until I'm finished with the chess app, however.
Thanks for reading! :P