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.
|