author | Wuzzy |
Sat, 16 Jan 2016 14:34:07 +0000 | |
changeset 729 | 66476d95dc3d |
parent 690 | 13183bf23217 |
child 744 | fb9cbe36ee52 |
permissions | -rw-r--r-- |
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 | 4 |
<wiki:toc max_depth="2" /> |
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 | 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 | 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 | 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 | 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, 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 | 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. |
|
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 | 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 == |
640 | 33 |
* Teach the AI how to use: |
34 |
* Weapons |
|
35 |
* Air mine |
|
36 |
* Ballgun |
|
37 |
* Birdy |
|
38 |
* Blowtorch |
|
39 |
* Cleaver |
|
40 |
* Drill strike |
|
41 |
* Dynamite |
|
42 |
* Flamethrower |
|
43 |
* Freezer |
|
44 |
* Hellish handgrenade |
|
45 |
* Mine |
|
46 |
* Mine strike |
|
47 |
* Mud ball |
|
48 |
* Napalm |
|
49 |
* Piano strike |
|
50 |
* Pickhammer |
|
51 |
* Resurrector |
|
52 |
* RC Plane |
|
53 |
* Seduction |
|
54 |
* Utilities |
|
55 |
* One-shot |
|
56 |
* Extra time |
|
57 |
* Laser sight |
|
58 |
* Low gravity |
|
59 |
* Vampirism |
|
60 |
* Structures |
|
61 |
* Girder |
|
62 |
* Rubber |
|
63 |
* Landspray |
|
64 |
* Movement |
|
65 |
* Flying saucer |
|
66 |
* Rope |
|
67 |
* Parachute |
|
68 |
* Portable portal device |
|
69 |
* Teleportation |
|
641 | 70 |
* !TimeBox |
640 | 71 |
|
72 |
See also: https://code.google.com/p/hedgewars/issues/detail?id=184 |
|
303
b281fa4ed31f
Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents:
251
diff
changeset
|
73 |
|
b281fa4ed31f
Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents:
251
diff
changeset
|
74 |
|
b281fa4ed31f
Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents:
251
diff
changeset
|
75 |
== Tools == |
305 | 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. |
303
b281fa4ed31f
Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents:
251
diff
changeset
|
77 |
* 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
|
78 |
* 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
|
79 |
* 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
|
80 |
* Allow themes to have more than one music file. |
b281fa4ed31f
Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents:
251
diff
changeset
|
81 |
|
b281fa4ed31f
Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents:
251
diff
changeset
|
82 |
|
b281fa4ed31f
Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents:
251
diff
changeset
|
83 |
== GUI improvements == |
b281fa4ed31f
Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents:
251
diff
changeset
|
84 |
* Enable private messages in our lobby. |
b281fa4ed31f
Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents:
251
diff
changeset
|
85 |
* Allow kicking with reason. |
b281fa4ed31f
Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents:
251
diff
changeset
|
86 |
* 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
|
87 |
* Rework the draw-map functions, adding different brush sizes, brush types and something new. |
305 | 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`. |
303
b281fa4ed31f
Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents:
251
diff
changeset
|
89 |
* 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
|
90 |
* 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
|
91 |
* 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
|
92 |
|
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 |
== Graphics == |
b281fa4ed31f
Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents:
251
diff
changeset
|
95 |
* 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
|
96 |
* Set up a wifi protocol so that tablets can draw maps and send it to the drawn maps of Hedgewars. |
641 | 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 |
|
b281fa4ed31f
Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents:
251
diff
changeset
|
100 |
== Engine == |
b281fa4ed31f
Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents:
251
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. |
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 |
b281fa4ed31f
Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents:
251
diff
changeset
|
103 |
* 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
|
104 |
* 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
|
105 |
* Allow for flipped maps. Play with gravity woooo |
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 |
|
b281fa4ed31f
Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents:
251
diff
changeset
|
108 |
== Mobile == |
b281fa4ed31f
Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents:
251
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. |
304 | 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 |
|
196
6f44db041544
Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff
changeset
|
113 |
= Documentation = |
6f44db041544
Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff
changeset
|
114 |
|
6f44db041544
Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff
changeset
|
115 |
== Doxygen == |
6f44db041544
Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff
changeset
|
116 |
|
198
6ed8811347fc
Updated with some comments from nemo
vittorio.giovara@gmail.com
parents:
197
diff
changeset
|
117 |
* Add doxygen documentation to server for the haskell sources. |
6ed8811347fc
Updated with some comments from nemo
vittorio.giovara@gmail.com
parents:
197
diff
changeset
|
118 |
* 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
|
119 |
* Add doxygen documentation to engine for the freepascal sources. |
6ed8811347fc
Updated with some comments from nemo
vittorio.giovara@gmail.com
parents:
197
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 |
|
6f44db041544
Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff
changeset
|
122 |
== Various == |
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 |
305 | 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. |
196
6f44db041544
Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff
changeset
|
126 |
* Document the format of the demo and save files. |
6f44db041544
Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff
changeset
|
127 |
|
215
55f40e0633a6
updated the TODO list to reflect the recent changes in sources and projects
vittorio.giovara@gmail.com
parents:
198
diff
changeset
|
128 |
|
196
6f44db041544
Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff
changeset
|
129 |
= Q/A = |
6f44db041544
Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff
changeset
|
130 |
|
6f44db041544
Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff
changeset
|
131 |
== Testing framework == |
198
6ed8811347fc
Updated with some comments from nemo
vittorio.giovara@gmail.com
parents:
197
diff
changeset
|
132 |
* 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
|
133 |
* 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
|
134 |
* 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
|
135 |
|
6f44db041544
Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff
changeset
|
136 |
== Other tests == |
641 | 137 |
|
198
6ed8811347fc
Updated with some comments from nemo
vittorio.giovara@gmail.com
parents:
197
diff
changeset
|
138 |
* 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
|
139 |
|
303
b281fa4ed31f
Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents:
251
diff
changeset
|
140 |
|
196
6f44db041544
Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff
changeset
|
141 |
= Translation = |
6f44db041544
Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff
changeset
|
142 |
|
303
b281fa4ed31f
Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents:
251
diff
changeset
|
143 |
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
|
144 |
|
303
b281fa4ed31f
Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents:
251
diff
changeset
|
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: |
196
6f44db041544
Crafted a TODO list for future reference
vittorio.giovara@gmail.com
parents:
diff
changeset
|
146 |
|
592 | 147 |
* http://hg.hedgewars.org/hedgewars/raw-file/default/share/hedgewars/Data/Locale/hedgewars_en.ts |
148 |
* http://hg.hedgewars.org/hedgewars/raw-file/default/share/hedgewars/Data/Locale/en.txt |
|
149 |
* http://hg.hedgewars.org/hedgewars/raw-file/default/misc/hedgewars.desktop |
|
150 |
* http://hg.hedgewars.org/hedgewars/raw-file/default/share/hedgewars/Data/Locale/missions_en.txt |
|
151 |
* http://hg.hedgewars.org/hedgewars/raw-file/default/share/hedgewars/Data/misc/hedgewars-mimeinfo.xml |
|
152 |
* http://hg.hedgewars.org/hedgewars/raw-file/default/share/hedgewars/Data/misc/hwengine.desktop.in |
|
153 |
* http://hg.hedgewars.org/hedgewars/raw-file/default/share/hedgewars/Data/Locale/stub.lua |
|
154 |
* http://hg.hedgewars.org/hedgewars/raw-file/default/project_files/HedgewarsMobile/Locale/English.lproj/About.strings |
|
155 |
* http://hg.hedgewars.org/hedgewars/raw-file/default/project_files/HedgewarsMobile/Locale/English.lproj/About.strings |
|
156 |
* 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 |
|
158 |
* http://hg.hedgewars.org/hedgewars/raw-file/default/project_files/HedgewarsMobile/Locale/hw-desc_en.txt |
|
216 | 159 |
|
160 |
||
161 |
= Contact = |
|
162 |
||
303
b281fa4ed31f
Cleaned up, refreshed the TODO page
vittorio.giovara@gmail.com
parents:
251
diff
changeset
|
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. |