TODO.wiki
author Wuzzy
Mon, 03 Sep 2018 22:09:05 +0100
changeset 1534 38fa37ffb915
parent 1424 4a31af381463
child 1698 656ec7e0067e
permissions -rw-r--r--
LuaAPI: Fix inconsistent vars for SendStat
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
744
fb9cbe36ee52 TODO: Add title
Wuzzy
parents: 729
diff changeset
     4
= To-do list =
fb9cbe36ee52 TODO: Add title
Wuzzy
parents: 729
diff changeset
     5
304
e0da7bf566b6 toc and escape
vittorio.giovara@gmail.com
parents: 303
diff changeset
     6
<wiki:toc max_depth="2" />
e0da7bf566b6 toc and escape
vittorio.giovara@gmail.com
parents: 303
diff changeset
     7
744
fb9cbe36ee52 TODO: Add title
Wuzzy
parents: 729
diff changeset
     8
== Introduction ==
196
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
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
    11
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    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.
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
    13
744
fb9cbe36ee52 TODO: Add title
Wuzzy
parents: 729
diff changeset
    14
== Easy hacks ==
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
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
    17
305
b85a981d439f typo and escapes
vittorio.giovara@gmail.com
parents: 304
diff changeset
    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.
1424
4a31af381463 TODO: fix formatting
Wuzzy
parents: 1091
diff changeset
    19
  * 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
    20
  * 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
    21
  * 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.
799
e2c96c00f9f3 TODO: Fix external Qt documentation link
Wuzzy
parents: 798
diff changeset
    22
  * Drop a shadow effect to every widget in our frontend. This will help you: https://doc.qt.io/qt-5/qgraphicsdropshadoweffect.html
305
b85a981d439f typo and escapes
vittorio.giovara@gmail.com
parents: 304
diff changeset
    23
  * 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
    24
  * 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
    25
  * 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
    26
  * 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
    27
  * Document video flags, in video recording section.
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    28
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    29
744
fb9cbe36ee52 TODO: Add title
Wuzzy
parents: 729
diff changeset
    30
== Code ==
303
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
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
    33
744
fb9cbe36ee52 TODO: Add title
Wuzzy
parents: 729
diff changeset
    34
=== AI ===
640
e1b7cd26bb14 Update TODO list for AI weapons/utils
Wuzzy
parents: 639
diff changeset
    35
 * Teach the AI how to use:
1064
15c50445ad26 TODO: Edited via web interface
Wuzzy
parents: 1063
diff changeset
    36
  * Most important things
1063
6942219a65ba TODO: Edited via web interface
Wuzzy
parents: 1062
diff changeset
    37
   * Mine
6942219a65ba TODO: Edited via web interface
Wuzzy
parents: 1062
diff changeset
    38
   * Dynamite
6942219a65ba TODO: Edited via web interface
Wuzzy
parents: 1062
diff changeset
    39
   * Hellish handgrenade
6942219a65ba TODO: Edited via web interface
Wuzzy
parents: 1062
diff changeset
    40
   * Mud ball
6942219a65ba TODO: Edited via web interface
Wuzzy
parents: 1062
diff changeset
    41
   * Napalm
6942219a65ba TODO: Edited via web interface
Wuzzy
parents: 1062
diff changeset
    42
   * Mine Strike
6942219a65ba TODO: Edited via web interface
Wuzzy
parents: 1062
diff changeset
    43
   * Drill Strike
1064
15c50445ad26 TODO: Edited via web interface
Wuzzy
parents: 1063
diff changeset
    44
   * Extra Time
640
e1b7cd26bb14 Update TODO list for AI weapons/utils
Wuzzy
parents: 639
diff changeset
    45
  * Weapons
e1b7cd26bb14 Update TODO list for AI weapons/utils
Wuzzy
parents: 639
diff changeset
    46
   * Air mine
e1b7cd26bb14 Update TODO list for AI weapons/utils
Wuzzy
parents: 639
diff changeset
    47
   * Ballgun
e1b7cd26bb14 Update TODO list for AI weapons/utils
Wuzzy
parents: 639
diff changeset
    48
   * Birdy
e1b7cd26bb14 Update TODO list for AI weapons/utils
Wuzzy
parents: 639
diff changeset
    49
   * Blowtorch
e1b7cd26bb14 Update TODO list for AI weapons/utils
Wuzzy
parents: 639
diff changeset
    50
   * Cleaver
e1b7cd26bb14 Update TODO list for AI weapons/utils
Wuzzy
parents: 639
diff changeset
    51
   * Flamethrower
e1b7cd26bb14 Update TODO list for AI weapons/utils
Wuzzy
parents: 639
diff changeset
    52
   * Freezer
e1b7cd26bb14 Update TODO list for AI weapons/utils
Wuzzy
parents: 639
diff changeset
    53
   * Piano strike
e1b7cd26bb14 Update TODO list for AI weapons/utils
Wuzzy
parents: 639
diff changeset
    54
   * Pickhammer
e1b7cd26bb14 Update TODO list for AI weapons/utils
Wuzzy
parents: 639
diff changeset
    55
   * Resurrector
e1b7cd26bb14 Update TODO list for AI weapons/utils
Wuzzy
parents: 639
diff changeset
    56
   * RC Plane
1062
40a80eb9d8cc TODO: add rubber duck
Wuzzy
parents: 925
diff changeset
    57
   * Rubber duck
640
e1b7cd26bb14 Update TODO list for AI weapons/utils
Wuzzy
parents: 639
diff changeset
    58
   * Seduction
e1b7cd26bb14 Update TODO list for AI weapons/utils
Wuzzy
parents: 639
diff changeset
    59
  * Utilities
e1b7cd26bb14 Update TODO list for AI weapons/utils
Wuzzy
parents: 639
diff changeset
    60
   * One-shot
e1b7cd26bb14 Update TODO list for AI weapons/utils
Wuzzy
parents: 639
diff changeset
    61
    * Laser sight
e1b7cd26bb14 Update TODO list for AI weapons/utils
Wuzzy
parents: 639
diff changeset
    62
    * Low gravity
e1b7cd26bb14 Update TODO list for AI weapons/utils
Wuzzy
parents: 639
diff changeset
    63
   * Structures
e1b7cd26bb14 Update TODO list for AI weapons/utils
Wuzzy
parents: 639
diff changeset
    64
    * Girder
e1b7cd26bb14 Update TODO list for AI weapons/utils
Wuzzy
parents: 639
diff changeset
    65
    * Rubber
e1b7cd26bb14 Update TODO list for AI weapons/utils
Wuzzy
parents: 639
diff changeset
    66
    * Landspray
e1b7cd26bb14 Update TODO list for AI weapons/utils
Wuzzy
parents: 639
diff changeset
    67
   * Movement
e1b7cd26bb14 Update TODO list for AI weapons/utils
Wuzzy
parents: 639
diff changeset
    68
    * Flying saucer
e1b7cd26bb14 Update TODO list for AI weapons/utils
Wuzzy
parents: 639
diff changeset
    69
    * Rope
e1b7cd26bb14 Update TODO list for AI weapons/utils
Wuzzy
parents: 639
diff changeset
    70
    * Parachute
e1b7cd26bb14 Update TODO list for AI weapons/utils
Wuzzy
parents: 639
diff changeset
    71
    * Portable portal device
e1b7cd26bb14 Update TODO list for AI weapons/utils
Wuzzy
parents: 639
diff changeset
    72
    * Teleportation
e1b7cd26bb14 Update TODO list for AI weapons/utils
Wuzzy
parents: 639
diff changeset
    73
1065
ba3b02d187ae TODO: Update link
Wuzzy
parents: 1064
diff changeset
    74
See also: https://issues.hedgewars.org/show_bug.cgi?id=292
303
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    75
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    76
744
fb9cbe36ee52 TODO: Add title
Wuzzy
parents: 729
diff changeset
    77
=== Tools ===
915
1cb6252cbcf4 Minor copy-editing of TODO list
Wuzzy <almikes@aol.com>
parents: 904
diff changeset
    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
1cb6252cbcf4 Minor copy-editing of TODO list
Wuzzy <almikes@aol.com>
parents: 904
diff changeset
    79
  * Create an easy-to-use theme editor, outlining all the necessary files for our themes
1cb6252cbcf4 Minor copy-editing of TODO list
Wuzzy <almikes@aol.com>
parents: 904
diff changeset
    80
  * Implement an handicap system allowing for increased difficulty on some teams instead of on the whole match
1cb6252cbcf4 Minor copy-editing of TODO list
Wuzzy <almikes@aol.com>
parents: 904
diff changeset
    81
  * If building server fails, try running the Cabal dependencies first
1cb6252cbcf4 Minor copy-editing of TODO list
Wuzzy <almikes@aol.com>
parents: 904
diff changeset
    82
  * Allow themes to have more than one music file
303
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    83
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    84
744
fb9cbe36ee52 TODO: Add title
Wuzzy
parents: 729
diff changeset
    85
=== GUI improvements ===
915
1cb6252cbcf4 Minor copy-editing of TODO list
Wuzzy <almikes@aol.com>
parents: 904
diff changeset
    86
  * Enable private messages in our lobby
1cb6252cbcf4 Minor copy-editing of TODO list
Wuzzy <almikes@aol.com>
parents: 904
diff changeset
    87
  * Allow kicking with reason
1cb6252cbcf4 Minor copy-editing of TODO list
Wuzzy <almikes@aol.com>
parents: 904
diff changeset
    88
  * Make the preferences that are modifiable from engine (eg. volume) update the ones specified in the frontend, using a new network message
1cb6252cbcf4 Minor copy-editing of TODO list
Wuzzy <almikes@aol.com>
parents: 904
diff changeset
    89
  * Rework the draw-map functions, adding different brush sizes, brush types and something new
1cb6252cbcf4 Minor copy-editing of TODO list
Wuzzy <almikes@aol.com>
parents: 904
diff changeset
    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`
1cb6252cbcf4 Minor copy-editing of TODO list
Wuzzy <almikes@aol.com>
parents: 904
diff changeset
    91
  * Add checkboxes for selecting the best rendering mode in addition to the Quality slider
1cb6252cbcf4 Minor copy-editing of TODO list
Wuzzy <almikes@aol.com>
parents: 904
diff changeset
    92
  * Lazy load previews, speed up frontend launch and compute previews only when necessary
303
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    93
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    94
744
fb9cbe36ee52 TODO: Add title
Wuzzy
parents: 729
diff changeset
    95
=== Graphics ===
915
1cb6252cbcf4 Minor copy-editing of TODO list
Wuzzy <almikes@aol.com>
parents: 904
diff changeset
    96
  * Set up a wifi protocol so that tablets can draw maps and send it to the drawn maps of Hedgewars
1cb6252cbcf4 Minor copy-editing of TODO list
Wuzzy <almikes@aol.com>
parents: 904
diff changeset
    97
  * 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
    98
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
    99
744
fb9cbe36ee52 TODO: Add title
Wuzzy
parents: 729
diff changeset
   100
=== Engine ===
915
1cb6252cbcf4 Minor copy-editing of TODO list
Wuzzy <almikes@aol.com>
parents: 904
diff changeset
   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
303
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
   102
  * Change the loading screen to show participating teams/players (and maybe even all the hogs if space is available
915
1cb6252cbcf4 Minor copy-editing of TODO list
Wuzzy <almikes@aol.com>
parents: 904
diff changeset
   103
  * Add the ability for themes to have stars high above the ground (comparable to clouds)
303
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
   104
  * Implement a better, faster land generation: for more details, visit http://accidentalnoise.sourceforge.net/minecraftworlds.html
904
7d19104d3317 TODO: Done: Rip out fort mode, play with gravity woo
Wuzzy
parents: 800
diff changeset
   105
  * Allow for flipped maps
303
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
   106
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
   107
744
fb9cbe36ee52 TODO: Add title
Wuzzy
parents: 729
diff changeset
   108
=== Mobile ===
915
1cb6252cbcf4 Minor copy-editing of TODO list
Wuzzy <almikes@aol.com>
parents: 904
diff changeset
   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
1cb6252cbcf4 Minor copy-editing of TODO list
Wuzzy <almikes@aol.com>
parents: 904
diff changeset
   110
  * 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
   111
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
   112
744
fb9cbe36ee52 TODO: Add title
Wuzzy
parents: 729
diff changeset
   113
== Documentation ==
196
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
   114
744
fb9cbe36ee52 TODO: Add title
Wuzzy
parents: 729
diff changeset
   115
=== Doxygen ===
196
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
   116
1068
72ba2233f61e TODO: Link to EngineTestCases
Wuzzy
parents: 1067
diff changeset
   117
  * Add Doxygen documentation to server for the Haskell sources
72ba2233f61e TODO: Link to EngineTestCases
Wuzzy
parents: 1067
diff changeset
   118
  * Add Doxygen documentation to ios frontend for the Objective-C sources
72ba2233f61e TODO: Link to EngineTestCases
Wuzzy
parents: 1067
diff changeset
   119
  * Add Doxygen documentation to engine for the Free Pascal sources
72ba2233f61e TODO: Link to EngineTestCases
Wuzzy
parents: 1067
diff changeset
   120
  * 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
   121
744
fb9cbe36ee52 TODO: Add title
Wuzzy
parents: 729
diff changeset
   122
=== Various ===
196
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
   123
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
   124
  * Document the interaction of engine/frontend/server network protocol
915
1cb6252cbcf4 Minor copy-editing of TODO list
Wuzzy <almikes@aol.com>
parents: 904
diff changeset
   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
1cb6252cbcf4 Minor copy-editing of TODO list
Wuzzy <almikes@aol.com>
parents: 904
diff changeset
   126
  * Document the format of the demo and save files
196
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
   127
744
fb9cbe36ee52 TODO: Add title
Wuzzy
parents: 729
diff changeset
   128
== Q/A ==
1068
72ba2233f61e TODO: Link to EngineTestCases
Wuzzy
parents: 1067
diff changeset
   129
=== Engine testing ===
72ba2233f61e TODO: Link to EngineTestCases
Wuzzy
parents: 1067
diff changeset
   130
Write Lua scripts to automatically test some engine features. See [EngineTestCases].
196
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
   131
744
fb9cbe36ee52 TODO: Add title
Wuzzy
parents: 729
diff changeset
   132
=== Testing framework ===
915
1cb6252cbcf4 Minor copy-editing of TODO list
Wuzzy <almikes@aol.com>
parents: 904
diff changeset
   133
  * Add an expandable testing module so that we can trigger main server functions and check their return values
1cb6252cbcf4 Minor copy-editing of TODO list
Wuzzy <almikes@aol.com>
parents: 904
diff changeset
   134
  * Add an expandable testing module so that we can trigger main frontend functions and check their return values
1cb6252cbcf4 Minor copy-editing of TODO list
Wuzzy <almikes@aol.com>
parents: 904
diff changeset
   135
  * 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
   136
744
fb9cbe36ee52 TODO: Add title
Wuzzy
parents: 729
diff changeset
   137
=== Other tests ===
641
0f32bfac1974 Some format fixes
Wuzzy
parents: 640
diff changeset
   138
915
1cb6252cbcf4 Minor copy-editing of TODO list
Wuzzy <almikes@aol.com>
parents: 904
diff changeset
   139
  * 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
   140
303
b281fa4ed31f Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents: 251
diff changeset
   141
744
fb9cbe36ee52 TODO: Add title
Wuzzy
parents: 729
diff changeset
   142
== Translation ==
196
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
   143
1069
c428a18e2c76 TODO: Edited via web interface
Wuzzy
parents: 1068
diff changeset
   144
Pick a language of your choice! There is certainly need of an update or a revision or even a completely new language. Before each release, we generally announce a so-called “string freeze”, a period of times in which we promise not to update or change any English texts. This is the best period to translate, but you could translate earlier as well, but please keep in mind that your translations will become outdated then.
196
6f44db041544 Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff changeset
   145
1069
c428a18e2c76 TODO: Edited via web interface
Wuzzy
parents: 1068
diff changeset
   146
See [Translations] to learn more.
216
6f7c0c72bd12 revisited a few points
vittorio.giovara@gmail.com
parents: 215
diff changeset
   147
744
fb9cbe36ee52 TODO: Add title
Wuzzy
parents: 729
diff changeset
   148
== Contact ==
216
6f7c0c72bd12 revisited a few points
vittorio.giovara@gmail.com
parents: 215
diff changeset
   149
915
1cb6252cbcf4 Minor copy-editing of TODO list
Wuzzy <almikes@aol.com>
parents: 904
diff changeset
   150
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.