TODO.wiki
author kyberneticist@gmail.com
Sun, 24 Jun 2012 21:20:16 +0000
changeset 227 c7897b5d10c5
parent 216 6f7c0c72bd12
child 251 103e54e77c6f
permissions -rw-r--r--
Created wiki page through web user interface.
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
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
     4
= Introduction =
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
     5
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
     6
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
     7
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
     8
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
     9
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    10
= Documentation =
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    11
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    12
== Doxygen ==
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    13
198
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    14
  * Add doxygen documentation to server for the haskell sources.
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    15
  * 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
    16
  * Add doxygen documentation to engine for the freepascal sources.
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    17
  * 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
    18
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    19
== Various ==
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    20
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    21
  * Document the interaction of engine/frontend/server network protocol
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    22
  * 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.
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    23
  * Document how the map drawing protocol work and how to implement the code for another frontend.
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    24
  * Document the format of the demo and save files.
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    25
215
55f40e0633a6 updated the TODO list to reflect the recent changes in sources and projects
vittorio.giovara@gmail.com
parents: 198
diff changeset
    26
196
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    27
= Code =
198
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    28
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    29
== AI ==
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    30
  * Make our AI use of the rope weapon to move and reach better positioning before firing.
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    31
  * Make our AI know about drowning in any way.
215
55f40e0633a6 updated the TODO list to reflect the recent changes in sources and projects
vittorio.giovara@gmail.com
parents: 198
diff changeset
    32
  * Make our AI use any weapon of your choice.
55f40e0633a6 updated the TODO list to reflect the recent changes in sources and projects
vittorio.giovara@gmail.com
parents: 198
diff changeset
    33
198
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    34
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    35
== Tools ==
196
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    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.
215
55f40e0633a6 updated the TODO list to reflect the recent changes in sources and projects
vittorio.giovara@gmail.com
parents: 198
diff changeset
    37
  * 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.
198
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    38
  * Create an easy-to-use theme editor, outlining all the necessary files for our themes.
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    39
  * 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.
215
55f40e0633a6 updated the TODO list to reflect the recent changes in sources and projects
vittorio.giovara@gmail.com
parents: 198
diff changeset
    40
  * Update and document the command line arguments parsing.
216
6f7c0c72bd12 revisited a few points
vittorio.giovara@gmail.com
parents: 215
diff changeset
    41
  * Implement an handicap system allowing for increased difficulty on some teams instead of on the whole match.
6f7c0c72bd12 revisited a few points
vittorio.giovara@gmail.com
parents: 215
diff changeset
    42
198
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    43
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    44
== GUI improvements ==
196
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    45
  * Don't close room on admin quit if game in progress.
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    46
  * Enable private messages in our server.
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    47
  * Allow kicking with reason.
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    48
  * Modify the drawn maps feature so that users can see a preview of what the admin is drawing.
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    49
  * Rework the hat selection for hogs.
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    50
  * Make the preferences that are modifiable from engine (eg. volume) update the ones specified in the frontend, using a new network message.
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    51
  * Rework the draw-map functions, adding different brush sizes, brush types and something new.
198
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    52
  * Drop a shadow effect to every widget in our frontend. This will help you: http://doc.qt.nokia.com/stable/qgraphicsdropshadoweffect.html
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    53
  * Notify players about room name change: there should be a new message type added to the protocol. ("ROOM", "RENAME", "oldName", "newname"). A possible implementation could be to pdate the Qt-Frontend that it accepts messages of the format posted below at that it updates the room list; after accepting the message the user interface should reflect the name change. So room list gets updated and if player is in that room s/he'll see a notice message in chat about the room name.
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    54
  * Rework the game map section (eg. instead of using a dropdown menu, use standard push buttons).
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    55
  * Create an advanced settings page, where to specify different screen resolution for windowed and fullscreen mode, different audio preferences, different quality configuration and so on.
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    56
  * Enable some commands while in frontend: fpr example /leave ( = /part  - for leaving room), /quit (disconnects from server), /exit (closes hedgewars), /addFriend, /removeFriend, /ignore, /unignore.
215
55f40e0633a6 updated the TODO list to reflect the recent changes in sources and projects
vittorio.giovara@gmail.com
parents: 198
diff changeset
    57
  * Implement proxying support for connecting to the Hedgewars server.
198
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    58
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    59
== Graphics ==
215
55f40e0633a6 updated the TODO list to reflect the recent changes in sources and projects
vittorio.giovara@gmail.com
parents: 198
diff changeset
    60
  * Make Hedgewars compatible with SDL-1.3: code compiles and launches fine but we have problems for input, due to the frontend/engine interaction.
198
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    61
  * Set up a wifi protocol so that tablets can draw maps and send it to the dawn maps of Hedgewars.
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    62
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    63
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    64
== Engine ==
196
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    65
  * Make hedgehogs without a hat get special hats if there currently is a special occasion such as Christmas.
198
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    66
  * 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.
215
55f40e0633a6 updated the TODO list to reflect the recent changes in sources and projects
vittorio.giovara@gmail.com
parents: 198
diff changeset
    67
196
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    68
  * 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.
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    69
  * Change the loading screen to show participating teams/players (and maybe even all the hogs if space is available
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    70
  * Add the ability for themes to have stars high above the ground (comparable to clouds).
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    71
  * Perform some engine cleanup, expecially in file loading, image flag handling and various TODOs and FIXMEs.
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    72
  * Implement a better, faster land generation: for more details, visit http://accidentalnoise.sourceforge.net/minecraftworlds.html
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    73
  * 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.
198
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    74
  * Enable some commands while in engine chat, for example /quit to exit (you may want to just stop the game brutally with chForceQuit), /fullscreen to set the max window dimensions, /pause to pause the game, /bind for binding keys, /finish which would just have the game end by teleporting all hedgehogs out, then showing statistics (see chFinish).
215
55f40e0633a6 updated the TODO list to reflect the recent changes in sources and projects
vittorio.giovara@gmail.com
parents: 198
diff changeset
    75
  * Allow for flipped maps.
55f40e0633a6 updated the TODO list to reflect the recent changes in sources and projects
vittorio.giovara@gmail.com
parents: 198
diff changeset
    76
198
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    77
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    78
== Mobile == 
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    79
  * Implement preferences/options in the Android port, basically allow the existing preferences options from the desktop version to the port using Android shared preferences.
215
55f40e0633a6 updated the TODO list to reflect the recent changes in sources and projects
vittorio.giovara@gmail.com
parents: 198
diff changeset
    80
196
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    81
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    82
= Q/A =
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    83
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    84
== Testing framework ==
198
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    85
  * 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
    86
  * 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
    87
  * 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
    88
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    89
== Other tests ==
197
f5d06a4bfcae A typo and more explanation
vittorio.giovara@gmail.com
parents: 196
diff changeset
    90
  * Run valgrind on engine, report the leaderboard of most used functions and optimise them so that performance increases.
198
6ed8811347fc Updated with some comments from nemo
vittorio.giovara@gmail.com
parents: 197
diff changeset
    91
  * 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
    92
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    93
= Translation =
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    94
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    95
Pick a language of your choise! There is certainly need of an update or a revision or even a completely new language.
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    96
215
55f40e0633a6 updated the TODO list to reflect the recent changes in sources and projects
vittorio.giovara@gmail.com
parents: 198
diff changeset
    97
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
    98
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    99
  * 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
   100
  * 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
   101
  * http://hedgewars.googlecode.com/hg/misc/hedgewars.desktop
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
   102
  * 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
   103
  * 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
   104
  * 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
   105
  * 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
   106
  * 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
   107
  * 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
   108
  * 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
   109
  * 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
   110
  * 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
   111
6f7c0c72bd12 revisited a few points
vittorio.giovara@gmail.com
parents: 215
diff changeset
   112
6f7c0c72bd12 revisited a few points
vittorio.giovara@gmail.com
parents: 215
diff changeset
   113
= Contact =
6f7c0c72bd12 revisited a few points
vittorio.giovara@gmail.com
parents: 215
diff changeset
   114
6f7c0c72bd12 revisited a few points
vittorio.giovara@gmail.com
parents: 215
diff changeset
   115
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 dicussions going on there.