Priority: * Cleaner gold fonts! (Poor AA in bigfont3, and goldfont is just a scaled and colorized version of icefont2.) * Sort the video modes! * Nodes and cores should have some sort of "spawn" effect when firing. * Logic object pool optimization: Use LIFO pool + lists! * Graphics scaling: * Remove or hide the advanced graphics options! * Graphics quality: * Fastest * Medium * Best (Default) * Custom (show old detailed settings) * At first startup, quality would be "Unknown". The game will start by testing the intro with no logo. The game picks a quality setting based on frame rate. If "Medium" or "Fastest" is picked, the game should warn and ask the user. * Specify in the loader what scaling methods should be used for each quality setting. (What about Custom?) * Disable alpha in Fastest quality. Medium...? * Better scaling! * Try SDL_resize!!! * Combine Scale2x and Diamond2x? * S-spline style enhancement filters? * Detail textures? * Indirectly changing the video mode (by changing one of the "Show" options) will not trigger a video restart. * Death sequence UI timing should not be governed by game logic time! Throw in a "state time" feature in the gamestate manager or something. Or perhaps just switch to a fixed logic frame rate when not actually in-game? (It does actually make sense to scale in-game effects with game speed!) * Quicker menu navigation with PgUp/Dn, Home, End etc. * 3D "rockfield" for highscore and/or credits? (2D parallax rocks + stars without glSDL.) glSDL should support texture filtering for nice scaling. * There should be some feedback from the sound engine, perhaps... As it is, you can't even see what sample rate it's actually using. Bugs: * Y scale factor f*cked up when switching to 2560x1600! Apparently happens only after "escape hammering"... * In-game music volume affects intro music! * Mouse crosshair can stick around after disabling mouse control! * Multiple keys and buttons bound to the same function results in up/down state confusion; if you release one of the keys, the "target" gets a release event, despite other keys with the same target being held down. * Nibble effect still doesn't like double buffering. * The sound engine is mixing up PAN events!!! * glSDL surface leak when taking screenshots! * Do we *really* wait for all bases to stop exploding after the player lost a ship...? * Noise fx glitches in some resolutions. * If a ctrl+enter fullscreen/windowed switch is made while the menu is shown, the text goes away! * Any playing game aborts after toggling windowed/ fullscreen! * VSync settings doesn't change as it should! Doesn't seem to be much I can do about this... * Leaving the game running for a few hours results in "hickups" at around 2 Hz, until the graphics is reloaded or similar. (Logic re-init?) * Downscaling (sub 320x240) breaks the radar and causes various other issues. (Pretty much expected...) * SIGSTOP kills the main thread... SDL/AMD64 bug...? * SIGSTOP/SIGCONT seems to confuse the game logic. (Already fixed...?) * SDL_GetAppState()! (Fixed...?) Internals: * Try to create a scoredir if missing! * Add doc() method to the config manager, for longer explanations of the options. * Structured documentation for values...? * Try reading back from the display buffer to autodetect how page flipping is handled! Mark pages with a few pixels in the corner (binary page numbers), and see if/when they come back. * Pause mode should not consume CPU or GPU power, at least not if the window is passive. * Multiple priority groups for sound effects! * glSDL and EEL should output errors to the logger. * Switch to PhysicsFS!? * WAV writer? (Just for "cache sounds on disk.") * Don't overwrite other windows when refreshing the in-game framework. * Convert text files to Win32 format in the Win32 install target! * Add source info to "key" codes, to tell joystick input from keyboard and the like, when desired. * Use custom keyboard repeat code. Should be used for joystick events as well. * Show a system dialog of some sort, instead of printing to stderr. (Critical errors only.) * Range checking on command line args and config. * Remove either gamecontrol or gsm event pushing calls from skobo_gfxengine_t::frame(). Don't know which one, but it can't be right the way it is now... * Rearrange the source tree so that all source is in an src subdir. * Put README, COPYING etc in binary distros. (Done for Win32 "simple bundles".) * Add CRC or simple "checksum" to score files, to prevent too easy modification. You must at least download the game source and hack it if you *really* want to cheat! ;-) Features: * Proper start-of-map savegames! * Instructions! (In the radar window...?) * Input configurator!!! * Game statistics! * Shots fired * Hits * Accuracy * Kills * Deaths * Damage * Adrenaline Mode: * Health/damage accounting * Powerups * Indestructible labyrinths * N bases or objects to destroy * Loads of aggressive enemies * "Forced speedrun" style gameplay * Throw in some *real* music. (The demo songs don't really have anything to do with Kobo Deluxe. I was basically just testing things when developing the audio engine.) * Implement "world snapshot" feature, to use for save game option, as well as internal temporary save game for changing video options in the middle of the game and the like. Needs to save score, lives etc, the current map, all objects, random number seed etc. * Implement multiplayer modes. (Deathmatch and Cooperative, for starters.) * Separate personal and global highscores. Where applicable, one could keep score for player/user, system local, local network and the internet, and/or maybe some kind user defined groups. * New "Instructions" solution. (New state...?) * "Sloppy Refresh" hack to improve frame rate for sprites and base tiles, while reducing it for the starry background tiles. * On targets with sync'ed flips, accept "close enough" refresh rates as time base, so that the video frame rate becomes an integer multiple of the engine frame rate. (Smoother scrolling.) Gameplay: * Elite and God modes should make enemies smarter (aim-ahead, at least). We want "tough" - not "stupid fast"! Radar: * Radar markings for death + respawn points when getting killed? * Show map borders in radar, for orientation? Base layout: * Prevent the map generator from building impossible bases! Possibly build a list of tested and approved random seeds for each level... * Don't make bases where you have to navigate into the base on the first few levels. * Simulation based base verification method: 1. Destroy all destructible nodes. 2. Figure out how many turns one would have to navigate into the base in order to get a shot at the core. * Provide a fixed set of maps for fair highscore, speedruns and the like! As it is, every game is truly unique, so scores cannot really be compared. (Well, that *could* be considered part of the game, of course...) * Import some extra maps from xkobo-1.11+w01? * Bonus levels...? * "Smooth chase" scroll in non Classic modes? Maybe even filtered player movement? * Fire to push rocks around? * "Milking" cores that fire enemies is a potential way of cheating for a higher score. Throw in an enemy_m* after some time as assassin to prevent this? (How to detect whether the player is doing something "sensible" or not...?) Trick suggested a nice and simple solution: Just lower the "price tag" on enemies spawned from nodes over time. No effect on gameplay, but if you fly around shooting defenseless enemies for too long, they'll eventually stop counting towards your score. The only remaining problem is figuring out when to start decreasing enemy scores, and how fast. Features: * Instant restart button? (Shouldn't really be needed if the "impossible base" bugs are fixed...) * Should be able to skip the death explosion sequence, if there are more ships! Maybe an option to remove it (and other effects) altogether? * Separate highscores for different skills. * Help texts (in the radar window?) for config options! * Add native OpenGL support with sub-pixel accurate rendering for ultra smooth animation. * Nice health bar flash effects. * Fine rotation adjustment when using OpenGL. (Needs a generic high resolution rotation field.) * Screen pixel accurate map scrolling. * "Stage cleared" screens with stats and stuff! * Demo recording and playback! (Nice feature and debugging tool.) * Implement waveshaper AGW command! * New master output processor: * Three bands with separate "boost" controls. * Non-linear audio output for high boost! * New limiter that programs a waveshaper based on input level? * Interesting soundscape while loading? * "Center Playfield" (as opposed to "center framework") video option * Default/Changed status indicators in the options. Web site and other stuff: * Find binary packages and maintainers! * Links to unrelated games sites. * Write a design paper!