Possible improvements ** denotes something that is fairly high priority ------------------------------------------------- 5. gray background for dark squares in 1-bit mode. Do this like xchess does. 12b. scoresheet text widget. Current move should be highlighted. Scoresheet could include comments or just have moves; latter is easier to fit on screen. 20. Some way to back up, explore variations, then return to the main line and restore moves we backed out. Should also support exploring side branches while loading a game file. Push/pop buttons? Button to fork another xboard in same state as current one? 20a. Allow side branches to be remembered in game files (and understood on LoadGame). Use PGN variation notation. 62a. Support series of time controls as in recent gnuchess versions (and real tournaments!). 62b. Perhaps (with gnuchess mods or some external help from xboard) gnuchess could also support the kind of clock where you get K seconds per move, plus a reserve of J seconds per game that is used when a move takes more than K seconds. The degenerate form of this with J=0 is desirable in itself. 68. WinBoard has some features not in xboard. Among others: 68a. LoadGameOptions dialog (good to add) 68b. SaveGameOptions dialog (good to add) 68c. TimeControl dialog (good to add) 68g. Font dialog. (leave out) 68h. Colors dialog. (leave out) 68i. Board size on Options menu (good to add) 68j. Resize with mouse 68k. Highlight dragging 68l. Sound 68m. Move typein from keyboard. (**good to add) 69. xboard has some features not in WinBoard. Among others: 69c. Font size selection by pattern fill-in. (leave out) 69d. Alternate bitmaps specified at runtime. (good to add) 69e. Flashing 74. Observe/play multiple games, each with its own window. Hard. 80. Clone command. Saves current game to a file foo, then starts up another copy of xboard with -lgf foo. Should probably note current state of some options and give command line flags to set them the same way in child. What about -ncp mode, though? Might want that to be different. Would be nice to have a -moveNumber flag to position the child to the same move number in the current game. 85. Rolling across menu bar with mouse button down should scan through menus. How to do this with Athena widgets? (Not a problem on WinBoard.) 91. Would be nice to have an option to overwrite save file instead of appending. 95. "Have the clock indicate how long the computer/player has been thinking for when the -st option is used. This should be how long for the current move only." (Dino Dini) 96. "Have a menu option to give gnuchess the 'both' command to play both sides. Useful for assessing which side is better off in a position. I know that you can start another gnuchess, but that is very wasteful of system resources." (Dino Dini) [may be hard] 97. "Have the ability to change the level of the gnuchess during a game. For analysis purposes, sometimes it is useful to have the computer think really hard about certain positions." (Dino Dini) 98. Reorganize the source and split it into more files. 107. Changing time control during a game could be made to work. Current (WinBoard only) way of changing at start is suboptimal. 108. Could add search depth and time per move to (WinBoard) TimeControl dialog. 139. Be sure that "White's flag fell" and the like always go away when they should; some gameMode changes may not be doing this. (Is this still true?) 140. LoadPosition needs better checking for invalid data. 142. xboard needs a real file chooser dialog. Jeff Woolsey submitted code to merge in the one from Ghostview, but said it works only on X11R5 or later. I have not yet tried his code or looked to see if it could be made to work on X11R4. 145. eco popup, similar to book popup (Peter Chang). Difficult due to program-unfriendly format that gnuchess returns the eco info in (e.g., built-in pager even for gnuchessx), and bugs where too much info is returned. 146. Bug: if you invoke EditTags and hit OK while a LoadGame is in progress, the LoadGame stops with a bogus "end of game file". This is because the parser can only be working on one file or long string at a time. Similar problem if you try to build a game list while a game is loading. Could fix this (as well as 46 and 49) by having LoadGame read in the whole game, then step through the in-memory movelist, instead of calling the parser on each step. ** 147. Improve display of held pieces in bughouse mode, putting them closer to the player's side of the board, and perhaps using icons (and allowing dragging from the icons to drop a piece). Actually, moving the clocks would be beneficial too, so that it's easier to visually associate the right clock with the right player when looking at two boards during a bughouse match (with two copies of xboard running). Maybe multiple window layouts should be user-selectable. 150. Keep track of castling availability, en-passant availability, and FEN half-move clock (for 50-move rule), pass the availability information to the move generator through the existing interface, and load/save it in the FEN code. 151. Keep better track of which set of variant rules is in force during a game, provide a way to choose the ruleset in Edit Game mode, and load/save it as a PGN tag. This would let us deal better with things like wild castling (in shuffle variants where the king started on d1 or d8), piece drops, and contact vs. non-contact mate (in bughouse). 151a. Note that FICS does not tell us anything is unusual when examining a (scratch) suicide game. Arrgh. 152. Generate the info file, man page, perhaps html, and perhaps even the WinBoard help file from the same sources. Right now, substantially the same text is duplicated in three places. This is a huge pain in the neck. 157. Idea: if Zippy flags some number of times in a row and keeps getting told the opponent is not out of time (presumably due to timestamp/timeseal), he should issue an adjourn or abort. 160. The xboard CTRL key flashback feature is bad in Analysis mode. Flashing back throws away the analysis. 161. SIGINT doesn't work for local programs on Win32. There is an equivalent, GenerateConsoleCtrlEvent(CTRL_C_EVENT), but I haven't gotten it to work thus far. It seems that WinBoard and the chess engine don't "have the same console"; indeed, neither has a console. 162. Supply a non-X Zippy for Unix. Perhaps use the code from Klaus Knopper. 167. Alternative bitmaps loaded at runtime for WinBoard. Bitmaps with depth > 2 as in xboard xpm mode. 169. Upload Game on file menu? This would upload the current game moves into a scratch examined game on ICS. 170. Auto step every k seconds should be a general feature you can turn on at any time, not just in LoadGame. What should GUI be? 171. Displaying thinking in a separate window should be an option available at all times when Show Thinking makes sense, not just in analysis mode. It should perhaps be orthogonal to analysis mode. 172. Should analysis window scroll instead of showing only the last line? There could be an extra checkbox to show all chess engine output in it. 174. More move history in message line, and/or make it a popup menu anchor with all the moves available [Alexander Swietlicki]. 178. Need reliable kill for chess engine on Win32. See also 161. 181. Some people want -sgf to save only played games, not observed and examined games. Others like it to save them all. Make this an option? 182. Support FischeRandom. See "help fr_rules" and "help fr" on FICS. O-O is h-side castling, O-O-O is a-side. (Differs from wild 1.) 182a. Maybe support Atomic. 183. Search feature in Game List dialog [Igor Eged]. ** 187. "Log session" feature for ICS window. 188. Send ruleset name to chess engine. See also 151. ** 191. Rubbish at Sat May 2, 14:21 CDT 1998: On your beta version, one of my ptells ended up on the title bar of the winboard window! it said "++++P" until it refreshed on the next move. ** 193. Some users have reported xboard redraw bugs, but I have not been able to reproduce them on the Digital Unix, Linux, or eXcursion X servers (xboard). b. From Sandstrom: I have your beta version of xboard, compiled on solaris. I have prolem with the iconifying. When its iconified, type 'obs ' and klicks on it, its totally white. it shows the moved pieces only. after 10 moves or so all pices will be showed. c. From Hawk: Dragging in xboard does not work 100%. * The dragged piece may disappear (try some fast e2-d3 movements - this is easy to reproduce). * The dragged piece may be placed on an illegal position (this happens less frequently, but it _can_ be reproduced by doing the same as above). * In both of the above cases, the board is correct after forcing a redraw (ie. minimizing/restoring the window) I'm using eXodus - a win32 X server, perhaps it's buggy. [Seems that way, or just possibly, these could be bugs that are fixed in 3.6.11beta or 3.6.12beta.] ** 194. A few users have reported drawing problems with WinBoard. There may be some color map problem on certain displays. I might possibly have fixed this already; I cannot reproduce it. The common thing seems to be black pieces changing to white. This may depend on having customized the board colors. a. From mulesmurf: if i log in and then move the board, it will happen that the black [pieces] change to white. c. People have sent pictures where the grid didn't get redrawn. This produces random bits in the grid area from uninitialized memory. Could this be a resource leak? d. From James Van Buskirk: I did notice one problem tonight playing against Comet under FX!32 1.2 (Comet, not winboard ran under FX!32): for a couple of moves winboard didn't turn off the highlighting of the square I dropped the piece on until Comet had moved. Later, the problem fixed itself. Have other users noticed this? [No.] 195. Flash Moves works at the end of every change to the board, using some rather gross code in DrawPosition. This code should perhaps be ripped out and the flashing done from inside AnimateMove instead. 196. From Oscar Verzaal: Add dropbox (in winboard) for last tells and stuff like that, so you can easily repeat commands. [Similar to current up-arrow feature but different UI.] 197. More color distinctions. Maybe allow several user-selected channels to have their own colors. 198. More sound distinctions. Some possiblities: White vs. Black move, checkmate, stalemate, other draws, differentiate amongst requests (draw offer, etc.), check, got new offboard piece (by piece type?), opp. got new offboard piece (ditto), low on time (settable as to how low). 200. I don't like these ideas, but some people do: a. Highlight all of the squares that the piece you are moving can go to. b. Clicking on the piece moves it immediately if it has only one legal move. c. Allow clicking on the destination, then the source. d. I guess highlight the pieces that can go to that destination. e. Clicking on a destination that only one piece can go to moves it there. 201. mulesmurf: piece counter so we know exactly the score 202. mulesmurf: ziics pieces, board along with color intensity 203. It's hard to change a lot of WinBoard settings in a row. Would be nice to go to dialog boxes at a lower level in the selection tree. For sound and colors, could have a dropdown choice box to say which one you are setting, instead of having to go back thru the menus over and over. Short of that, would be helpful for dialog box titles to say which one you are setting. An Apply button in the color chooser would be nice too. 204. Hawk at Fri May 15, 12:58 CDT 1998: a minor thing with xboard: the coords disappear while dragging from a square with coords on it. [They come back when the drag is finished.] ** 205. Make an Alpha NT WinBoard binary and instructions for building it available. James Van Buskirk can help. 208. WinBoard sometimes comes up with one of the menu bar items grayed out (one that should not be). I've seen this on different entries at different times. 209. From Matt Hill: When I try and run the Winboard beta 3.6.9 I get a message that I need to install Compression Agent in MicrosoftPlus! to run your program...do I really need this? [Makes no sense to me, and no one else seems to have had this problem. Happened on running the program from the Start menu after installation, not the installer.] 213. Maybe add Silence to sound menu -- parallel to Monochrome on color menus. 214. Maybe easier startup dialog customize: a. Buttons to add/delete/move(?) current string to/from/within current list. b. Or maybe auto-add newly typed/edited strings up to some limit. c. Also a drop-down for Additional Options. 215. Maybe keep score (#won/lost/drawn) for -mg matches and put the score in the banner. 216. Maybe shorten menu names in WinBoard to one char if and only if the menu bar would wrap with longer names. Old ideas I no longer think are so good: --------------------------------------- 3. human-human playing? No, use ICS. 12a. analog clocks 12c. jail [well, but jail could share the bughouse piece holdings real estate]. 20b. Alternative: Have a set of memories accessable via the menus into which you can store, say, up to 10 positions (with all moves to that point and the clock times). (Dino Dini) 21. Maybe make LoadPosition parser smarter: able to skip arbitrary garbage before the position, able to tell when file doesn't contain a position, able to read positions in other common styles. (Tricky if some use the opposite case convention.) 23. Maybe allow LoadGame from SetupPosition mode, or even ForceMoves mode? No, I think it's better to reset the position first. A game file can now include a starting position, which seems better than loading position and subsequent moves separately. 26. After sending move to machine, wait for positive acknowledgement or error message before proceeding; don't allow other events first. This will fix some race conditions and obscure bugs, and allow some new features---e.g., selecting Machine White when white is not on move. 42. Could generate ICS-style elapsed times on each move for games played against gnuchess. This should probably be optional. The same option could suppress the times on moves from ICS, maybe. (See also 46.) 43. Strength numbers from ICS are bogus if you use Backward/Forward. They are nice to have, though. Maybe xboard should generate correct ones itself. This could be done in non-ICS mode too. 46. LoadGame doesn't display ICS-style elapsed times on moves. To do this would require look-ahead or a parser change. Either is doable but ugly. A benefit of look-ahead is that one could use it to pop up comments along with the move they follow instead of on the next forward step. 49. It might be nicer to step slowly through movelists obtained from the ICS oldmoves command, as with LoadGame, instead of jumping to the end. 57. The move parser is slow on low-powered machines (e.g., VS2000). This is annoying when parsing ICS "oldmoves" or "moves" output to start observing a game. Can it be speeded up? 63. Keyboard interface for moving pieces. Ideas: Arrow keys move selection highlight around. Highlight not visible until first key is pressed, then starts (where?). "picks up" piece, then arrow keys again to select destination. aborts move (no touch move here!). again to put down piece on new square. Could maybe have similar selection highlights on moves made with mouse. In EditPosition mode, brings up piece menu and empties current square. (These are PC keyboard keys. What to use on vanilla ASCII keyboard with X?) Also, a-h keys could move highlight to a-h file and 1-8 keys to 1-8th rank. 71. Allow restart after ICS logout instead of exiting? 72. Allow switching among ICS, NCP, GNU modes?? 73. Rename noChessProgram mode? Revamp command line options for 3 main modes. 81. Measure and warn of lag in ICS mode, or some other kind of feedback to show the lag. 87. Optional long notation, at least on screen (e.g., Bc1-b2). (user request) 89. Notice when user has selected a large font in -titleInWindow mode, and make sure the title line is wide enough for most messages; use Small format with title on separate line if not. 117. Faster square drawing; precompute each piece/square color combo. Mostly useful in WinBoard. 141. Merge Kevin Ziegler's term-ification code into xboard? 109. Could maybe add the rest of the init options to the option dialogs: initString, whiteString, blackString, first/second Host/ChessProgram, remoteShell, telnetProgram, ics Host/Port, useTelnet, gateway, debugMode, clockMode, etc. 166. Stretching bitmaps in WinBoard, to allow resizing. (?) 177. Maybe send "easy" while playing Two Machines mode when firstHost = secondHost. 199. Maybe put user names instead of White and Black on clocks, or user names above or below clocks in a smaller font.