TODO.wiki
changeset 305 b85a981d439f
parent 304 e0da7bf566b6
child 306 2f13f8031eaa
equal deleted inserted replaced
304:e0da7bf566b6 305:b85a981d439f
     9 
     9 
    10 As always, we'll be glad to help you in this quest! Just join our IRC channel and ask the devs directly! The possible ideas are divided by category and some might be easier than others: just pick the one you feel most confident with.
    10 As always, we'll be glad to help you in this quest! Just join our IRC channel and ask the devs directly! The possible ideas are divided by category and some might be easier than others: just pick the one you feel most confident with.
    11 
    11 
    12 = Easy Hacks =
    12 = Easy Hacks =
    13 
    13 
    14 Just want to get your hands dirty? Pick one of your choise!
    14 Just want to get your hands dirty? Pick one of your choice!
    15 
    15 
    16   * Perform some code cleanup, engine and frontend really need some! Grep for TODO and FIXME and you'll find plenty of examples. File loading, image flag handling and various little improvements just wait for you.
    16   * Perform some code cleanup, engine and frontend really need some! `Grep` for TODO and FIXME and you'll find plenty of examples. File loading, image flag handling and various little improvements just wait for you.
    17   * Make our AI use any weapon of your choice. Check out the uAI`*`.pas files and see how the current weapons are handled.
    17   * Make our AI use any weapon of your choice. Check out the uAI`*`.pas files and see how the current weapons are handled.
    18   * Write a simple shell script (bash, ruby, perl, python, awk...) to update the localization strings for iOS and propagate the diff to all the localized files. This task doesn't require coding or having an i-Device, just basic shell scripting.
    18   * Write a simple shell script (`bash`, `ruby`, `perl`, `python`, `awk`...) to update the localization strings for iOS and propagate the diff to all the localized files. This task doesn't require coding or having an i-Device, just basic shell scripting.
    19   * Make a cross-platform tool (for instance a script) that identifies new phrases in our mission, traning and gameplay scripts and adds them (marked untranslated) into our lua locaization files.
    19   * Make a cross-platform tool (for instance a script) that identifies new phrases in our mission, training and gameplay scripts and adds them (marked untranslated) into our `Lua` localization files.
    20   * Drop a shadow effect to every widget in our frontend. This will help you: http://doc.qt.nokia.com/stable/qgraphicsdropshadoweffect.html
    20   * Drop a shadow effect to every widget in our frontend. This will help you: http://doc.qt.nokia.com/stable/qgraphicsdropshadoweffect.html
    21   * Run valgrind on engine, report the  most used functions and optimize them so that performance increases.
    21   * Run `Valgrind` on engine, report the  most used functions and optimize them so that performance increases.
    22   * Use the Qt macro QtPrintable everywhere instead of looping through various string methods.
    22   * Use the Qt macro `QtPrintable` everywhere instead of looping through various string methods.
    23   * Document compiler flags: just add a little comment near each flag explaining its use.
    23   * Document compiler flags: just add a little comment near each flag explaining its use.
    24   * Document video flags, in video recording section.
    24   * Document video flags, in video recording section.
    25 
    25 
    26 
    26 
    27 = Code =
    27 = Code =
    31 == AI ==
    31 == AI ==
    32   * Make our AI use of the rope weapon to move and reach better positioning before firing.
    32   * Make our AI use of the rope weapon to move and reach better positioning before firing.
    33 
    33 
    34 
    34 
    35 == Tools ==
    35 == Tools ==
    36   * Refactor the frontend networking layer into library calls from hwengine, in a similar fashion to what's done on iOS and Android, using QT framebuffers.
    36   * Refactor the frontend networking layer into library calls from hwengine, in a similar fashion to what's done on iOS and Android, using Qt framebuffers.
    37   * Create an easy-to-use theme editor, outlining all the necessary files for our themes.
    37   * Create an easy-to-use theme editor, outlining all the necessary files for our themes.
    38   * Implement an handicap system allowing for increased difficulty on some teams instead of on the whole match.
    38   * Implement an handicap system allowing for increased difficulty on some teams instead of on the whole match.
    39   * If building server fails, try running the Cabal dependencies first.
    39   * If building server fails, try running the Cabal dependencies first.
    40   * Allow themes to have more than one music file.
    40   * Allow themes to have more than one music file.
    41 
    41 
    44   * Enable private messages in our lobby.
    44   * Enable private messages in our lobby.
    45   * Allow kicking with reason.
    45   * Allow kicking with reason.
    46   * Modify the drawn maps feature so that users can see a preview of what the admin is drawing.
    46   * Modify the drawn maps feature so that users can see a preview of what the admin is drawing.
    47   * Make the preferences that are modifiable from engine (eg. volume) update the ones specified in the frontend, using a new network message.
    47   * Make the preferences that are modifiable from engine (eg. volume) update the ones specified in the frontend, using a new network message.
    48   * Rework the draw-map functions, adding different brush sizes, brush types and something new.
    48   * Rework the draw-map functions, adding different brush sizes, brush types and something new.
    49   * Enable some commands while in frontend: for example /leave ( = /part  - for leaving room), /quit (disconnects from server), /exit (closes hedgewars), /addFriend, /removeFriend, /ignore, /unignore.
    49   * Enable some commands while in frontend: for example `/leave` ( = `/part`  - for leaving room), `/quit` (disconnects from server), `/exit` (closes hedgewars), `/addFriend`, `/removeFriend`, `/ignore`, `/unignore`.
    50   * Add checkboxes for selecting the best rendering mode in addition to the Quality slider.
    50   * Add checkboxes for selecting the best rendering mode in addition to the Quality slider.
    51   * Lazy load previews, speed up frontend launch and compute previews only when necessary.
    51   * Lazy load previews, speed up frontend launch and compute previews only when necessary.
    52   * Rip out Fort mode, it's a game of its own and shouldn't be tied to the team preferences.
    52   * Rip out Fort mode, it's a game of its own and shouldn't be tied to the team preferences.
    53   * When someone highlights you in the lobby, make a little sound 'ping' you.
    53   * When someone highlights you in the lobby, make a little sound 'ping' you.
    54 
    54 
    85   * Add doxygen documentation to android port for the java sources.
    85   * Add doxygen documentation to android port for the java sources.
    86 
    86 
    87 == Various ==
    87 == Various ==
    88 
    88 
    89   * Document the interaction of engine/frontend/server network protocol
    89   * Document the interaction of engine/frontend/server network protocol
    90   * Document how the engine launches a game, from setting up the window, to updating the opengl renderer, from loading up contents, to cleaning up memory.
    90   * Document how the engine launches a game, from setting up the window, to updating the OpenGL renderer, from loading up contents, to cleaning up memory.
    91   * Document the format of the demo and save files.
    91   * Document the format of the demo and save files.
    92 
    92 
    93 
    93 
    94 = Q/A =
    94 = Q/A =
    95 
    95