(also check src/client/sdl/TODO) Note that for each task there is a developer. If you want to work on any of these tasks, ask that developer first, so you can agree on how to proceed. TASKS FOR XPILOT NG 4.7.0 ------------------------- Common: Task: Rewrite INSTALL.txt for ng. Especially describe SDL client compiling. Maybe append INSTALL file to INSTALL.txt and rename the current INSTALL.txt to INSTALL. Developer: ? Task: Make it so that no defaultsFile is used in server by default. Developer: kps ? Task: Write a "getting started" / tutorial webpage for newbies. Developer: ? Clients: Task: Create a useful set of newbie messages that are shown to players using the Add_newbie_message() function if client option 'newbie' is on. Examples: message that 'm' is used to talk, message when you pick up an item, what key one can use to use it e.g. Developer: kps Task: implement drawling lists in the SDL client so that the windows client can support drawing in a resizable window. Server: Task: Make pause key unpause players also when baselesspausing option is on. Developer: kps Task: Make baselesspausing option work for non-teamplay maps. Developer: kps Task: Change ball-wall brakefactor to be a property of the polygon. Allow for negative brakefactors. Developer: - SOME OTHER TASKS TODO FOR XPILOT NG ----------------------------------- Task: Run net input in server at at least 50 Hz. This way, there is less networking to do when the frame update is to be done which reduces latency. Developer: kps Task: Let server request only very few (1) alarm signals if no one is playing. Developer: kps Task: Implement compatibility mode for old clients (block protocol) in server, when running a polygon map. For this task, one needs to make sure that the number of map objects (e.g. fuel boxes) in the sent mapdata matches the number on the map. Note that for checkpoints, some hack might be needed since an xp2 map can have more than 26 checkpoints, which is the maximum on old maps. Note also that server migth need to rearrange the map objects so that the old clients see e.g. the bases in the right order. When this task is done, mapdata option support can be removed from xp2 maps. Check file src/server/xpmap.c. Developer: kps Task: Change hit area of ships to match the default triangle shipshape. You need to modify the analytical collision detection code in file src/server/collision.c. More difficult task would be to write collision detection code for an arbitrary, possibly a concave shape. Developer: kps Task: Create a "physically correct" replacement for the oldthrust hack. This could possibly be done by adding an emergency thruster that would activate when the ship has turned. Idea with this is that when ship has turned, it is assumed the player tries to maneuver, and the emergency thruster activates automatically. Reason that extra thruster can't be used all the time is either that it would overheat or that it gets its energy from ship turns :) Developer: kps Task: Fix ship maneuverability so that fighting at high fps works as well or rather better than it used to work on low fps. This should work on all maps, not just on maps that have oldthrust option not equal to zero etc. Developer: kps Task: Server lag should be minimised, ideally so that when the time comes to send the next frame to the clients, the frame could be sent at once, or at least so that variance in time between frames is minimised. Possibly send frame updates earliest to the players with the largest net lag Developer: kps Task: Change server to use only 1 or 2 ports. Currently server uses one contact port and one port per client. In case server is made to use only one port, that would mean active clients would use that same port for communication. If server is made to use 2 ports, the contact port would be reserved for contact stuff and the other port for all clients. Developer: kps Task: Fix server recordings. The server recodings are not robust. In a test game with 6 players, the replay of the recording only worked about 10 minutes. Thirdly, the recording should be put behind some interface so that it doesn't mess up the code too much. Developer: kps / uau ? Task: Fix elimination race mode and clean up the race related code. Developer: kps Task: Make a new polygon based race map. Developer: kps Task: Write robot code that can control robots on a race map. Developer: kps Task: Rewrite robot navigation so that it isn't block based. Developer: kps Task: Rewrite smart missile navigation so that it isn't block based. Developer: kps Task: Find out if xpilot 4.5.4 has better ship steering than ng. Some players have reported this. Possibly it is just because of "client lag". Developer: kps Task: Remove bottlenecks in server. This means using a profiler and trying to find ways to speed up processing in places where the server uses a lot of time. Developer: kps Task: Remove the need to have X running, if the client ist started with the -list command Developer: kps Task: Add code that handles the case when some map object reappears on top of some object. This can happen for example when a destroyed cannon reappears. Developer: kps Task: Add support for more map objects in mapconvert.py. Also possibly add a default texture file for these converted maps. Developer: kps Task: Improve audio support. Add support for "3D" sound where info about the sound sources' positions and velocities are sent to clients so that stuff like Doppler effect can be done. Note that there should be some uncertainty (noise) in the positions and velocities so that this info can't be used to make an automatic targetting system. Developer: kps Task: Improve newbie mode, for example automatically change scale factor so that the whole visible area is seen if screen resolution is small. Developer: kps Task: Client side prediction, which could be used to reduce lag a bit, possibly even allowing local style ship control. Developer: kps Task: Turn the item images on the hud in sdl client the right way (upside down atm) Task: Optimise Frame_radar() so that object list is not traversed if there are no objects that could be shown on radar. This can be implemented e.g. by keeping a count of nukes, missiles etc. Developer: kps Task: Add an option to use old walls in Blood's Music games. This is useful for comparing the bahaviour of the walls codes. Developer: kps Task: Add a way to be able to specify for each cannon/base what start items (or more generally options) will be used for that cannon/base. Values of these will override general map options where appropriate. Not all options will be supported, only a small subset. An example cannon would look like this: