These are a few of the things that need doing in NiL +----------------------------------------------------------------------------- | Network +----------------------------------------------------------------------------- DONE: * Have a go at making the Tcp_server_connection multithreaded again. DONE: * Make the net protocol async. * Tweak the network protocol to work better over high latency links (>50ms) +----------------------------------------------------------------------------- | UI stuff +----------------------------------------------------------------------------- * Create a simple menu system for setting up the client, like Quake... * Create a ncurses terminal UI for the server (so that you can telnet to server_port+1 and log into the server for prodding interesting server things. * A built-in server config tool (telnet) for the client would be nice. +----------------------------------------------------------------------------- | Graphics stuff +----------------------------------------------------------------------------- DONE: * Create a sprite animation engine and the language to drive it. * Player skin renderer (so different players have different colors) DONE:* Implement a nice antialiased font system DONE: (pre-render a ttf font and just handle the letters as Graphics) * Improve ttf renderer to do the ttf work jit in NiL (no prerendering) (Should allow for bitmap fonts, for very small sizes) * Create a UI for the client, preferably one ontop of Raw_surface * Configuration of keys. * Configuration of player name+color. * Configuration of screen resolution. * Create a smarter alpha blending system, using C++ templates for speed and flexability +----------------------------------------------------------------------------- | Datafile stuff (Loader class) +----------------------------------------------------------------------------- DONE:* Implement lump file-handling in the loader, only seperate files are supported now. DONE:* Make a data file lump gennerator. * Make the Loader class capable of automagicly downloading missing files from the server in a sepperate downloader thead, useful for skins and new map decor. * Have the Loader_source_directory malloc one huge lump of memory for all the files that are loaded in stead of mmap()'ing each file individually +----------------------------------------------------------------------------- | General cleanups +----------------------------------------------------------------------------- DONE:* Seriously clean up (rewrite?) the Commandline class. * Implement a better bounce algorithm, the current one sucks, Obj_base::bogo_bounce() * Drop having two arrays for real and anon objects (in World and Clientworld) Use a single multiset/hash_multiset for storing all objects. (ff: partially done) * Create a system for removing singular pixels from the map (they get in the way) and turn them to dust, combine with an earthquake effect? * Drop the titan lib for loading and saving png's implement save_to_png() and load_from_png() in Raw_surface using libpng directly. * Figure out a better way of handling the Raw_surface class than to copy it to the rgbf directory (maybe put it in a lib of its own) * The hook should try harder to grip a pixel once it hits something. * Interpolate fire direction and other parameters when fireing. * Remove #includes from headers and predeclare classes in stead. +----------------------------------------------------------------------------- | Sound stuff +----------------------------------------------------------------------------- * A sound system, the SDL mixer looks about right for this. * Some way of having objects start sounds without worring about wether they are on the client or the server * Move the actual start_sound() routines to a separate class. +----------------------------------------------------------------------------- | Misc stuff +----------------------------------------------------------------------------- * A Meta server so it's easy for players to find servers to join. +----------------------------------------------------------------------------- | Ideas +----------------------------------------------------------------------------- * Energy shield * Laseraim on railgun +----------------------------------------------------------------------------- | Artwork stuff (gfx+sound) +----------------------------------------------------------------------------- * Create new graphics for everything, the current ones are ripped from Liero... * A tux skin and a bsd daemon skin, we already have the M$-maggot:)