TODO.wiki
changeset 744 fb9cbe36ee52
parent 729 66476d95dc3d
child 798 30c5f1ebd552
equal deleted inserted replaced
743:d22bb25c55ac 744:fb9cbe36ee52
     1 #summary Where to find possible task, todos, fixmes and new ideas.
     1 #summary Where to find possible task, todos, fixmes and new ideas.
     2 #labels Featured,Phase-Requirements,Phase-Design,Phase-Implementation,Phase-QA,Phase-Support
     2 #labels Featured,Phase-Requirements,Phase-Design,Phase-Implementation,Phase-QA,Phase-Support
     3 
     3 
       
     4 = To-do list =
       
     5 
     4 <wiki:toc max_depth="2" />
     6 <wiki:toc max_depth="2" />
     5 
     7 
     6 = Introduction =
     8 == Introduction ==
     7 
     9 
     8 Welcome! If you are reading this page you might be wondering how you can help the Hedgewars project! Fear no more, we've set up a good list of ideas that you might tackle while getting to know the sources!
    10 Welcome! If you are reading this page you might be wondering how you can help the Hedgewars project! Fear no more, we've set up a good list of ideas that you might tackle while getting to know the sources!
     9 
    11 
    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.
    12 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 
    13 
    12 = Easy Hacks =
    14 == Easy hacks ==
    13 
    15 
    14 Just want to get your hands dirty? Pick one of your choice!
    16 Just want to get your hands dirty? Pick one of your choice!
    15 
    17 
    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.
    18   * 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.
    19   * Make our AI use any weapon of your choice. Check out the uAI`*`.pas files and see how the current weapons are handled.
    23   * Document compiler flags: just add a little comment near each flag explaining its use.
    25   * Document compiler flags: just add a little comment near each flag explaining its use.
    24   * Add a little weapon description in the configuration page, through the `setWhatsThis()` method.
    26   * Add a little weapon description in the configuration page, through the `setWhatsThis()` method.
    25   * Document video flags, in video recording section.
    27   * Document video flags, in video recording section.
    26 
    28 
    27 
    29 
    28 = Code =
    30 == Code ==
    29 
    31 
    30 For those not afraid of the dark, dive in and tackle a complex project!
    32 For those not afraid of the dark, dive in and tackle a complex project!
    31 
    33 
    32 == AI ==
    34 === AI ===
    33  * Teach the AI how to use:
    35  * Teach the AI how to use:
    34   * Weapons
    36   * Weapons
    35    * Air mine
    37    * Air mine
    36    * Ballgun
    38    * Ballgun
    37    * Birdy
    39    * Birdy
    70     * !TimeBox
    72     * !TimeBox
    71 
    73 
    72 See also: https://code.google.com/p/hedgewars/issues/detail?id=184
    74 See also: https://code.google.com/p/hedgewars/issues/detail?id=184
    73 
    75 
    74 
    76 
    75 == Tools ==
    77 === Tools ===
    76   * 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.
    78   * 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.
    77   * Create an easy-to-use theme editor, outlining all the necessary files for our themes.
    79   * Create an easy-to-use theme editor, outlining all the necessary files for our themes.
    78   * Implement an handicap system allowing for increased difficulty on some teams instead of on the whole match.
    80   * Implement an handicap system allowing for increased difficulty on some teams instead of on the whole match.
    79   * If building server fails, try running the Cabal dependencies first.
    81   * If building server fails, try running the Cabal dependencies first.
    80   * Allow themes to have more than one music file.
    82   * Allow themes to have more than one music file.
    81 
    83 
    82 
    84 
    83 == GUI improvements ==
    85 === GUI improvements ===
    84   * Enable private messages in our lobby.
    86   * Enable private messages in our lobby.
    85   * Allow kicking with reason.
    87   * Allow kicking with reason.
    86   * Make the preferences that are modifiable from engine (eg. volume) update the ones specified in the frontend, using a new network message.
    88   * Make the preferences that are modifiable from engine (eg. volume) update the ones specified in the frontend, using a new network message.
    87   * Rework the draw-map functions, adding different brush sizes, brush types and something new.
    89   * Rework the draw-map functions, adding different brush sizes, brush types and something new.
    88   * Enable some commands while in frontend: for example `/leave` ( = `/part`  - for leaving room), `/quit` (disconnects from server), `/exit` (closes hedgewars), `/addFriend`, `/removeFriend`, `/ignore`, `/unignore`.
    90   * Enable some commands while in frontend: for example `/leave` ( = `/part`  - for leaving room), `/quit` (disconnects from server), `/exit` (closes hedgewars), `/addFriend`, `/removeFriend`, `/ignore`, `/unignore`.
    89   * Add checkboxes for selecting the best rendering mode in addition to the Quality slider.
    91   * Add checkboxes for selecting the best rendering mode in addition to the Quality slider.
    90   * Lazy load previews, speed up frontend launch and compute previews only when necessary.
    92   * Lazy load previews, speed up frontend launch and compute previews only when necessary.
    91   * Rip out Fort mode, it's a game of its own and shouldn't be tied to the team preferences.
    93   * Rip out Fort mode, it's a game of its own and shouldn't be tied to the team preferences.
    92 
    94 
    93 
    95 
    94 == Graphics ==
    96 === Graphics ===
    95   * Make Hedgewars compatible with SDL2: code compiles and launches fine but we have problems for input, due to the frontend/engine interaction.
    97   * Make Hedgewars compatible with SDL2: code compiles and launches fine but we have problems for input, due to the frontend/engine interaction.
    96   * Set up a wifi protocol so that tablets can draw maps and send it to the drawn maps of Hedgewars.
    98   * Set up a wifi protocol so that tablets can draw maps and send it to the drawn maps of Hedgewars.
    97   * Select the stereo renderer at runtime, either with a keybind or with a menu.
    99   * Select the stereo renderer at runtime, either with a keybind or with a menu.
    98 
   100 
    99 
   101 
   100 == Engine ==
   102 === Engine ===
   101   * Allow participants in a game to view weapon sets and schemes before starting the game. This task could be carried out by showing an overlay window when mouse is over the scheme or weapon entries.
   103   * Allow participants in a game to view weapon sets and schemes before starting the game. This task could be carried out by showing an overlay window when mouse is over the scheme or weapon entries.
   102   * Change the loading screen to show participating teams/players (and maybe even all the hogs if space is available
   104   * Change the loading screen to show participating teams/players (and maybe even all the hogs if space is available
   103   * Add the ability for themes to have stars high above the ground (comparable to clouds).
   105   * Add the ability for themes to have stars high above the ground (comparable to clouds).
   104   * Implement a better, faster land generation: for more details, visit http://accidentalnoise.sourceforge.net/minecraftworlds.html
   106   * Implement a better, faster land generation: for more details, visit http://accidentalnoise.sourceforge.net/minecraftworlds.html
   105   * Allow for flipped maps. Play with gravity woooo
   107   * Allow for flipped maps. Play with gravity woooo
   106 
   108 
   107 
   109 
   108 == Mobile == 
   110 === Mobile ===
   109   * Implement preferences/options in the Android port, basically allow the existing preferences options from the desktop version to the port using Android shared preferences.
   111   * Implement preferences/options in the Android port, basically allow the existing preferences options from the desktop version to the port using Android shared preferences.
   110   * Better integrate CMake with the Android build, instead of using the autotools version.
   112   * Better integrate CMake with the Android build, instead of using the autotools version.
   111 
   113 
   112 
   114 
   113 = Documentation =
   115 == Documentation ==
   114 
   116 
   115 == Doxygen ==
   117 === Doxygen ===
   116 
   118 
   117   * Add doxygen documentation to server for the haskell sources.
   119   * Add doxygen documentation to server for the haskell sources.
   118   * Add doxygen documentation to ios frontend for the objc sources.
   120   * Add doxygen documentation to ios frontend for the objc sources.
   119   * Add doxygen documentation to engine for the freepascal sources.
   121   * Add doxygen documentation to engine for the freepascal sources.
   120   * Add doxygen documentation to android port for the java sources.
   122   * Add doxygen documentation to android port for the java sources.
   121 
   123 
   122 == Various ==
   124 === Various ===
   123 
   125 
   124   * Document the interaction of engine/frontend/server network protocol
   126   * Document the interaction of engine/frontend/server network protocol
   125   * 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.
   127   * 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.
   126   * Document the format of the demo and save files.
   128   * Document the format of the demo and save files.
   127 
   129 
   128 
   130 
   129 = Q/A =
   131 == Q/A ==
   130 
   132 
   131 == Testing framework ==
   133 === Testing framework ===
   132   * Add an expandable testing module so that we can trigger main server functions and check their return values.
   134   * Add an expandable testing module so that we can trigger main server functions and check their return values.
   133   * Add an expandable testing module so that we can trigger main frontend functions and check their return values.
   135   * Add an expandable testing module so that we can trigger main frontend functions and check their return values.
   134   * Add an expandable testing module so that we can trigger main engine functions and check their return values.
   136   * Add an expandable testing module so that we can trigger main engine functions and check their return values.
   135 
   137 
   136 == Other tests ==
   138 === Other tests ===
   137 
   139 
   138   * Unify the translation files in something more usable, reducing the number of files and the repeated phrases.
   140   * Unify the translation files in something more usable, reducing the number of files and the repeated phrases.
   139 
   141 
   140 
   142 
   141 = Translation =
   143 == Translation ==
   142 
   144 
   143 Pick a language of your choice! There is certainly need of an update or a revision or even a completely new language.
   145 Pick a language of your choice! There is certainly need of an update or a revision or even a completely new language.
   144 
   146 
   145 Here is the list of English files that contain a translation; be sure to check whether some work has been done, either by reading the file or by checking the same file with your language code instead of the English one:
   147 Here is the list of English files that contain a translation; be sure to check whether some work has been done, either by reading the file or by checking the same file with your language code instead of the English one:
   146 
   148 
   156   * http://hg.hedgewars.org/hedgewars/raw-file/default/project_files/HedgewarsMobile/Locale/English.lproj/Localizable.strings
   158   * http://hg.hedgewars.org/hedgewars/raw-file/default/project_files/HedgewarsMobile/Locale/English.lproj/Localizable.strings
   157   * http://hg.hedgewars.org/hedgewars/raw-file/default/project_files/HedgewarsMobile/Locale/English.lproj/Scheme.strings
   159   * http://hg.hedgewars.org/hedgewars/raw-file/default/project_files/HedgewarsMobile/Locale/English.lproj/Scheme.strings
   158   * http://hg.hedgewars.org/hedgewars/raw-file/default/project_files/HedgewarsMobile/Locale/hw-desc_en.txt
   160   * http://hg.hedgewars.org/hedgewars/raw-file/default/project_files/HedgewarsMobile/Locale/hw-desc_en.txt
   159 
   161 
   160 
   162 
   161 = Contact =
   163 == Contact ==
   162 
   164 
   163 The best way to get in touch with the devs is to join our IRC on Freenode (#hedgewars) and to interact with everyone there. Please be patient as not always there are discussions going on there.
   165 The best way to get in touch with the devs is to join our IRC on Freenode (#hedgewars) and to interact with everyone there. Please be patient as not always there are discussions going on there.