1Some of this is work in progress, and some it is just stuff I'd like to see. 2Check out <http://www.mattdm.org/icebreaker/development.html> for details. 3 4* many (65 at last count) sections of the code are marked with "FIX", in 5 places where I know I did something messy, foolish, or inefficient. 6* there are likely other bits of messiness, foolishness, and inefficiency 7 which I haven't realized are there 8* this is part of the above, but bears mentioning separately: some of the 9 code is the product of late-night hacking and, while it works fine, 10 desperately needs cleaning up 11 12For 2.0: 13- make MacOS X port 14- have a dozen themes or more (currently at nine) 15 16For 2.2: (but sooner if we're lucky): 17- find and use user's home dir on WinNT/2k/XP 18- do something sensible if selected theme is invalid 19- make it so when both lines get broken exactly at once, the second sound 20 is played with a very slight delay so that the user gets audio 21 feedback that two lives were lost 22- make spaces-in-username work -- convert to/from some special character in 23 high score file 24- make ctrl-q quit (or perhaps just q, with a confirm dialog) 25- check for high scores on 'quit' when in the midst of a game 26- option to turn off scrolling level-end text ("transitions = normal/fast") 27- more code cleanup in the event loops -- such big hairy functions.... 28- "help" command line options redirected to files on win32 -- what to do 29 about that? 30- clean up intro -- remove stupid 'w' thing (either add ability to tell a 31 line to kill itself after a certain length, or add code to the intro to 32 know when to kill which lines.) 33- make the program not crash if data files can't be found. (Of course, on 34 Win32, we're SOL without the SDL DLLs anyway.) 35- make help key (F1) work in intro 36- look for themes in an os-specific directory -- ~/.icebreaker on Linux 37 (which means migrating the current ~/.icebreaker to either ~/.icebreakerrc 38 or ~/.icebreaker/icebreakerrc) -- in addition to the standard directory. 39 on BeOS, this might mean looking in the same dir in which the executable 40 resides... need to check about that. 41- make man page version of themes help? 42- unbreak BeOS port (looking to be a pain, and let's face it, this is an 43 increasingly marginal platform. even the person who did the initial port 44 doesn't actually seem to run the OS very often....) 45- ability to use bitmaps for backgrounds 46- ability to use png instead of bmp -- use SDL_image. 47 48For 3.0: 49- add music courtesy of my brother Joel at Red Reactor Sound Studio 50 <http://www.redreactor.com/> and intelligent (context-sensitive) music 51 system 52- that annoying "entire iceshelf collapses" bug is *still* there. happens 53 very very very very rarely, though, so I can't figure out what exactly 54 the problem is. probably something wrong with squarefill() or some other 55 part of checkempty() in grid.c. I tried changing a few things, but it's 56 hard to prove that the problem is solved when you can't recreate it.... 57- there is a little bug where in certain situations you can start an 58 opposing line directly in the path of an oncoming line, causing lines 59 which are essentially on top of each other. Not a terribly fatal flaw, 60 but still. 61- faster better smarter collision detection (not a change to be taken 62 lightly since that's basically rewriting the core of the engine). this 63 will solve the two bugs above once and for all, and should 64 be a significant speed increase if done right. My goal is to make this 65 play on acceptably on my Toshiba Libretto CT50 (pentium 75). 66- make option parsing a bit more flexible -- gnu getopt style 67- animated sprites 68- replace randomized "demo" with a real demo that at least follows the 69 rules -- and ideally plays a decent game. random semi-AI play would be 70 great; a recording mechanism of some sort is second-best 71- make playing area able to be a bitmap instead of just a colored grid 72 (maybe lines also) 73 74Possibly: 75- convert to C++ -- reduce global variables 76- have bonus Things which get you points (or change game mechanics) for 77 trapping with a single penguin. (in a small enough space?) 78- user-definable keys 79- internationalization - translations and fonts 80- move themes to a subdir 81 a) in the source tree 82 b) in the datadir? 83 84 85Probably never: 86- make GNOME/KDE versions? 87- Mac OS 9 port? 88- the animation is really jerky with some refresh rates. what to do about 89 this? last time I wrote a game was under DOS, and you could easily 90 sync to the vertical refresh..... 91