TODO.wiki
author almikes@aol.com
Thu, 22 Jan 2015 14:12:45 +0000
changeset 544 6e78f17e8328
parent 362 10fb0298948b
child 592 2a5ecd20bf16
permissions -rw-r--r--
Updated conflicts section (desync on overwritten sprites when placing them)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
196
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
     1
#summary Where to find possible task, todos, fixmes and new ideas.
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
     2
#labels Featured,Phase-Requirements,Phase-Design,Phase-Implementation,Phase-QA,Phase-Support
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
     3
304
e0da7bf566b6 toc and escape
vittorio.giovara@gmail.com
parents: 303
diff changeset
     4
<wiki:toc max_depth="2" />
e0da7bf566b6 toc and escape
vittorio.giovara@gmail.com
parents: 303
diff changeset
     5
196
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
     6
= Introduction =
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
     7
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
     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!
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
     9
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    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.
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    11
303
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    12
= Easy Hacks =
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    13
305
b85a981d439f typo and escapes
vittorio.giovara@gmail.com
parents: 304
diff changeset
    14
Just want to get your hands dirty? Pick one of your choice!
303
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    15
305
b85a981d439f typo and escapes
vittorio.giovara@gmail.com
parents: 304
diff changeset
    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.
304
e0da7bf566b6 toc and escape
vittorio.giovara@gmail.com
parents: 303
diff changeset
    17
  * Make our AI use any weapon of your choice. Check out the uAI`*`.pas files and see how the current weapons are handled.
305
b85a981d439f typo and escapes
vittorio.giovara@gmail.com
parents: 304
diff changeset
    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.
b85a981d439f typo and escapes
vittorio.giovara@gmail.com
parents: 304
diff changeset
    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.
303
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    20
  * Drop a shadow effect to every widget in our frontend. This will help you: http://doc.qt.nokia.com/stable/qgraphicsdropshadoweffect.html
305
b85a981d439f typo and escapes
vittorio.giovara@gmail.com
parents: 304
diff changeset
    21
  * Run `Valgrind` on engine, report the  most used functions and optimize them so that performance increases.
b85a981d439f typo and escapes
vittorio.giovara@gmail.com
parents: 304
diff changeset
    22
  * Use the Qt macro `QtPrintable` everywhere instead of looping through various string methods.
303
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    23
  * Document compiler flags: just add a little comment near each flag explaining its use.
306
2f13f8031eaa one more todo
vittorio.giovara@gmail.com
parents: 305
diff changeset
    24
  * Add a little weapon description in the configuration page, through the `setWhatsThis()` method.
303
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    25
  * Document video flags, in video recording section.
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    26
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    27
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    28
= Code =
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    29
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    30
For those not afraid of the dark, dive in and tackle a complex project!
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    31
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    32
== AI ==
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    33
  * Make our AI use of the rope weapon to move and reach better positioning before firing.
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    34
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    35
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    36
== Tools ==
305
b85a981d439f typo and escapes
vittorio.giovara@gmail.com
parents: 304
diff changeset
    37
  * 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.
303
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    38
  * Create an easy-to-use theme editor, outlining all the necessary files for our themes.
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    39
  * Implement an handicap system allowing for increased difficulty on some teams instead of on the whole match.
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    40
  * If building server fails, try running the Cabal dependencies first.
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    41
  * Allow themes to have more than one music file.
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    42
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    43
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    44
== GUI improvements ==
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    45
  * Enable private messages in our lobby.
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    46
  * Allow kicking with reason.
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    47
  * Modify the drawn maps feature so that users can see a preview of what the admin is drawing.
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    48
  * Make the preferences that are modifiable from engine (eg. volume) update the ones specified in the frontend, using a new network message.
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    49
  * Rework the draw-map functions, adding different brush sizes, brush types and something new.
305
b85a981d439f typo and escapes
vittorio.giovara@gmail.com
parents: 304
diff changeset
    50
  * Enable some commands while in frontend: for example `/leave` ( = `/part`  - for leaving room), `/quit` (disconnects from server), `/exit` (closes hedgewars), `/addFriend`, `/removeFriend`, `/ignore`, `/unignore`.
303
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    51
  * Add checkboxes for selecting the best rendering mode in addition to the Quality slider.
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    52
  * Lazy load previews, speed up frontend launch and compute previews only when necessary.
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    53
  * Rip out Fort mode, it's a game of its own and shouldn't be tied to the team preferences.
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    54
  * When someone highlights you in the lobby, make a little sound 'ping' you.
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    55
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    56
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    57
== Graphics ==
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    58
  * Make Hedgewars compatible with SDL2: code compiles and launches fine but we have problems for input, due to the frontend/engine interaction.
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    59
  * Set up a wifi protocol so that tablets can draw maps and send it to the drawn maps of Hedgewars.
304
e0da7bf566b6 toc and escape
vittorio.giovara@gmail.com
parents: 303
diff changeset
    60
  ° Select the stereo renderer at runtime, either with a keybind or with a menu.
303
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    61
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    62
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    63
== Engine ==
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    64
  * Implement construction mode. This page http://hedgewars.org/node/1269 contains a general description of what we mean but you are allowed to improve or modify our concept.
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    65
  * 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.
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    66
  * Change the loading screen to show participating teams/players (and maybe even all the hogs if space is available
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    67
  * Add the ability for themes to have stars high above the ground (comparable to clouds).
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    68
  * Implement a better, faster land generation: for more details, visit http://accidentalnoise.sourceforge.net/minecraftworlds.html
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    69
  * Sometimes you exit the game for a mistake and that's sad! Add a quick resume button to the game configuration for both local and network games.
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    70
  * Allow for flipped maps. Play with gravity woooo
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    71
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    72
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    73
== Mobile == 
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    74
  * Implement preferences/options in the Android port, basically allow the existing preferences options from the desktop version to the port using Android shared preferences.
304
e0da7bf566b6 toc and escape
vittorio.giovara@gmail.com
parents: 303
diff changeset
    75
  * Better integrate CMake with the Android build, instead of using the autotools version.
303
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    76
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    77
196
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    78
= Documentation =
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    79
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    80
== Doxygen ==
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    81
198
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    82
  * Add doxygen documentation to server for the haskell sources.
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    83
  * Add doxygen documentation to ios frontend for the objc sources.
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    84
  * Add doxygen documentation to engine for the freepascal sources.
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    85
  * Add doxygen documentation to android port for the java sources.
196
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    86
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    87
== Various ==
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    88
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    89
  * Document the interaction of engine/frontend/server network protocol
305
b85a981d439f typo and escapes
vittorio.giovara@gmail.com
parents: 304
diff changeset
    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.
196
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    91
  * Document the format of the demo and save files.
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    92
215
55f40e0633a6 updated the TODO list to reflect the recent changes in sources and projects
vittorio.giovara@gmail.com
parents: 198
diff changeset
    93
196
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    94
= Q/A =
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    95
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    96
== Testing framework ==
198
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    97
  * Add an expandable testing module so that we can trigger main server functions and check their return values.
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    98
  * Add an expandable testing module so that we can trigger main frontend functions and check their return values.
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    99
  * Add an expandable testing module so that we can trigger main engine functions and check their return values.
196
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
   100
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
   101
== Other tests ==
198
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
   102
  * Unify the translation files in something more usable, reducing the number of files and the repeated phrases.
196
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
   103
303
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
   104
196
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
   105
= Translation =
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
   106
303
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
   107
Pick a language of your choice! There is certainly need of an update or a revision or even a completely new language.
196
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
   108
303
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
   109
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:
196
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
   110
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
   111
  * http://hedgewars.googlecode.com/hg/share/hedgewars/Data/Locale/hedgewars_en.ts
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
   112
  * http://hedgewars.googlecode.com/hg/share/hedgewars/Data/Locale/en.txt
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
   113
  * http://hedgewars.googlecode.com/hg/misc/hedgewars.desktop
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
   114
  * http://hedgewars.googlecode.com/hg/share/hedgewars/Data/Locale/missions_en.txt
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
   115
  * http://hedgewars.googlecode.com/hg/share/hedgewars/Data/misc/hedgewars-mimeinfo.xml
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
   116
  * http://hedgewars.googlecode.com/hg/share/hedgewars/Data/misc/hwengine.desktop.in
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
   117
  * http://hedgewars.googlecode.com/hg/share/hedgewars/Data/Locale/stub.lua
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
   118
  * http://hedgewars.googlecode.com/hg/project_files/HedgewarsMobile/Locale/English.lproj/About.strings
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
   119
  * http://hedgewars.googlecode.com/hg/project_files/HedgewarsMobile/Locale/English.lproj/About.strings
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
   120
  * http://hedgewars.googlecode.com/hg/project_files/HedgewarsMobile/Locale/English.lproj/Localizable.strings
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
   121
  * http://hedgewars.googlecode.com/hg/project_files/HedgewarsMobile/Locale/English.lproj/Scheme.strings
216
6f7c0c72bd12 revisited a few points
vittorio.giovara@gmail.com
parents: 215
diff changeset
   122
  * http://hedgewars.googlecode.com/hg/project_files/HedgewarsMobile/Locale/hw-desc_en.txt
6f7c0c72bd12 revisited a few points
vittorio.giovara@gmail.com
parents: 215
diff changeset
   123
6f7c0c72bd12 revisited a few points
vittorio.giovara@gmail.com
parents: 215
diff changeset
   124
6f7c0c72bd12 revisited a few points
vittorio.giovara@gmail.com
parents: 215
diff changeset
   125
= Contact =
6f7c0c72bd12 revisited a few points
vittorio.giovara@gmail.com
parents: 215
diff changeset
   126
303
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
   127
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.