File: todo_1.0.txt

package info (click to toggle)
crystalspace 0.94-20020412-3
  • links: PTS
  • area: main
  • in suites: woody
  • size: 62,276 kB
  • ctags: 52,843
  • sloc: cpp: 274,783; ansic: 6,608; perl: 6,276; objc: 3,952; asm: 2,942; python: 2,354; php: 542; pascal: 530; sh: 430; makefile: 370; awk: 193
file content (215 lines) | stat: -rw-r--r-- 10,335 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
The Big 1.0 TODO List:

Every bug is classified with a few modifiers to indicate
the bad effect they have on CS. The following modifiers
can be given:
	- V: visual effect. This means that solving this bug
	  or implementing this feature would improve how the engine looks.
	- S: stability. This bug causes loss of stability.
	  Solving this bug will cause CS to be more stable.
	- F: feature. This means some feature isn't implemented properly
	  or implementation is missing completely.
	- O: organization and other. An organizational change or something
	  else.
	- **: bug or feature has been fixed or implemented.

Bugs to fix:
	[V]  Investigate if LOD for sprites is still working.
	[S]  Investigate if there are any more memory leaks after
	     unloading a level and if so fix them.
	     This can most easily be done by using the debug graph in
	     CS. To enable this just edit include/csutil/debug.h and
	     remove the comment ('//') right before the define of
	     CS_USE_GRAPHDEBUG. Then recompile.
	[V]  Investigate various visible artifacts in the mazedex
	     level. It appears that most of these have to do with the
	     halos and only appear with OpenGL. One artifact appears
	     to be Z-fighting (with OpenGL alone) and this occurs
	     if you look into the reflecting table.
	[V]  Static lighting no longer goes through space-warping
	     portals.
	[V]  One of the halos in flarge seems to disappear in some cases
	     with OpenGL.
	[V]  Walktest + newsky: it appears that there are some visibility
	     culling problems in some rare cases.
	     Solution: try to find a spot that doesn't work right and
	     remember with 'C'. Later on you can go back to that position
	     with 'c' (after including debug info).
	[V]  Fix radiosity so that it works again. Radiosity is currently
	     disabled because several things had been rewritten and the
	     radiosity code was left behind.
	     To fix this we need to have a way to iterate over all polygons.
	     This is not hard. Harder will be the fact that the lighting
	     system has changed. It now works with the shadow bitmaps.
	     [Bug 429283]
	[F]  Gouraud shaded polygons are not supported well: you can only
	     define triangles that are gouraud shaded and not polygons in
	     general.
	     After closing inspection it seems that this *almost* works
	     perfectly now. However there are cases when texture mapping
	     is wrong.
	     [Bug 202768]
	[V]  Investigate if skeletal sprites work nicely with the
	     visibility culling system.
	     Major problem is that calculating a bounding box for a skeletal
	     sprite is not easy. We have to find an efficient way to do this,
	     especially when the transforms change.
	     [Bug 204194]
	[V]  Lighting for skeletal sprites is not good. The problem is that
	     normals are precalculated for the 'base mesh'. When the mesh
	     later animates (using the transforms) the normals will not
	     change. A solution is perhaps to transform the normals with
	     the hierarchical transform. But this will not work correctly
	     for vertices that are connected to triangles that have vertices
	     from other limbs.
	     [Bug 493454]
	[V]  Mesh objects outside the global bounding box of an
	     infinite sector will not be visible.
	     There is a work-around for this bug which is why this bug is
	     not that bad. You can easily add small dummy geometry very far
	     away to make the bounding box work. Problem is that this
	     dummy geometry has to be part of the static mesh!
	     [Bug 216698]
	[V]  Light with explosion particle system is not correctly
	     positioned.
	     The question is if this light is a desired feature.
	     [Bug 231392]
	[V]  With OpenGL the lightmaps are not mapped correctly.
	     This is very visible if you have two adjacent polygons which
	     have a different size and a shadow going over those two
	     polygons (in dmburg this situation occurs a few times).
	     In that case the shadows on both polygons will not match
	     exactly.
	     Fixing this bug for real probably requires a change of the
	     lightmap format (to make then one lumel bigger both horizontally
	     as vertically). While this is relatively easy to do for
	     static lightmaps the dynamic lightmaps might be more problematic.
	     Also this may require a big change in the software renderer...
	     Rather complicated bug. But an important one to fix.
	     [Bug 405964]
	[V]  The software renderer implementation of DrawTriangleMesh
	     is still missing a few clipping features. In general it would
	     be nice to investigate the use of the OpenGL clipping routines
	     for software too.
	     [Bug 430207]
	[V]  Investigate clipping bug in OpenGL.
	     [Bug 430214]
	[V]  In OpenGL adjacent polygons do not match nicely. Especially if
	     you clear the background every frame you can easily notice
	     gaps between polygons.
	     [Bug 430601]
	[V]  Investigate bugs related to the walktest 'portal' command and
	     to portals in general.
	     (For example: [Bug 473597])
	     There also seem to be several clipping bugs still.
	[V]  Visibility culling does not work correctly on objects that
	     are scaled using the movable (it works correctly with objects
	     scaled using HardTransform).
	     Problem here is that the bounding box is not recalculated when
	     the movable is changed.
	     [Bug 478072]
	[S]  Using software renderer proctexes with OpenGL causes a crash
	     (At some place the OpenGL texture's images get NULL).
	[F]  When mounting a real directory on a VFS path you need to do:
	        Mount ("this/is/a/dir$/", "/lib/whatever");
	     i.e. the last '/' has to be preceeded with '$'. This needs
	     to be fixed.
	[**] Fix the problem with adding -lutil for more recent
	     versions of python. This should be automatic and not manual.
	[**] Shoot a missile in hole in flarge. The walls of the hole
	     become lit ok then but revert to full bright after missile
	     particles have disappeared. Only with OpenGL.
	[**] Fade effect no longer works in OpenGL (visible in csdemo and
	     F5 key in walktest). May be related to the fact that a material
	     without texture is used and this has recently changed.
	[**] It seems that pseudo-dynamic lighting is not working
	     correctly. In flarge you can see that near the stairs
	     some polygons are not updated when the dynamic light
	     changes intensity/color.
	[**] Investigate if PlaceMesh() works correctly. I suspect it
	     doesn't. May be related to bug [Bug 471637].
	[**] Bug with models seen through portals [Bug 471638].
	[**] In isometric engine (isotest) + OpenGL some of the mesh
	     objects (like the particle systems) are clipped wrong to the
	     floor.
	     This is a very hard bug. We have been hunting this bug for
	     ages. Z-buffer accuracy problems have been suspected but this
	     is probably not right because the problem arises on cards
	     with 32-bit Z-buffer too.
	[**] Lighting is not cached for gouraud shaded polygons.
	     [Bug 202780]
	[**] Problem with keycolor + zbuffer:
	     When a texture with keycolor transparency is rendered the
	     software and hardware renderers currently behave differently.
	     With software the z-buffer is only updated at those positions
	     where the texture is actually drawn. This is very nice of
	     course since that means you can essentially draw the keycolor
	     texture using Z-buffer and objects drawn behind it will be correct.
	     However this doesn't work with hardware. With hardware the
	     Z-buffer is updated for the entire polygon regardsless of the
	     key-color value.
	     I'm not sure if it is actually possible to do otherwise with
	     hardware. If not then the engine will have to solve this by
	     sorting such polygons from back to front in relation to other
	     objects in the same sector.
	     [Bug 409067]

API and Small Feature Additions:
	[F]  Translate point on polygon to texture space/object space
	     coordinates (for selection). This is useful for Quark++.
	[F]  Ability to close portals in map loader.
	[F]  Support iPolygonMesh (for collision detection) in more
	     mesh objects (like ball, cube, ...).
	[V]  Support lighting of a thing mesh for lights in multiple
	     sectors (and going through portals). i.e.
	     iSector->ShineLights (iMeshWrapper).
	[F]  Change key code and virtual key in keyboard event to use
	     unicode.
	[**] Automatic generation of lightmap cache names using MD5
	     checksum of geometry. This is important for dynamic
	     loading/reloading of worlds.
	[**] Add iCamera::SetFarPlane().

Global Additions and Stuff:
	[F]  Direct3D8 Renderer.
	[O]  Split of CS module in CS and CSextra. Applications like
	     Blocks will then move to CSextra.
	[F]  [OPTIONAL?] Configuration setup tool so that it is
	     possible to edit config files with a GUI?
	[S]  There are still a few places where we need to use the
	     reporter for reporting error conditions.
	[**] Remove Squawk after implementing a multi-view demo
	     in WalkTest.

Things to Check:
	[O]  Does CS Still work on ports like OS/2, BeOS, MacOS/X,
	     NextStep, OpenStep, DOS, ...

Documentation Updates:
	- Update the 'Configuration Files Section'.
	- Write docs and/or HOWTO on the Python and LUA plugins.
	- Write doc on the heightmap texture generation utility.
	- Write HOWTO on creation of a mesh object.
	- Write doc on how to create your own mesh object
	  plugins.
	- Write HOWTO on plugin creation in general.
	- Complete docs on metaballs mesh object.
	- Complete docs on haze mesh object.
	- Write a HOWTO or other doc that explains the best
	  way to create a level (i.e. detail objects, occluders,
	  ...). Also explains when to use portals/sectors and
	  when not.
	- Tutorial on isometric engine.
	- HOWTO on how to work with regions and load/unload
	  parts of a map (dynamic loading/unloading).
	- HOWTO on sound.
	- Complete update of map format documentation.
	- HOWTO on KEY and NODE system for game specific
	  purposes (i.e. triggers, scripts, and things like that).
	- HOWTO on HUD.
	- Go over the API documentation (doxygen comments) and
	  see if they can be improved.
	- Complete the features lists.
	- See if the credits/authors list is still up-to-date.