Files
OpenRA/todo.todo

71 lines
3.1 KiB
Plaintext

OpenRA
------------------------------------------------------
[ ] Multiplayer!
[ ] Rules.ini
[ ] Unit turn rate as specified in rules.ini
[ ] Ore
[ ] Better harvester logic - seek out more ore when harvesting, until full
[ ] Weapons
[ ] Infantry
[ ] Infantry squishing logic (tracked vehicles do this)
[ ] pathing
[ ] Group pathfinding logic
[ ] Special-case pathing for floating units...
Does existing pathing work for boats? float=?? speeds should tell us everything required..
- No pathing for air, just fly towards a spot
[ ] Solid buildings, units
[ ] Rendering
[ ] Automagically work out unit rendering offsets based on SHP size
[ ] Shroud rendering. This is going to be ugly, and it's going to hurt perf, unless we can optimize
the hell out of the other rendering based on where shroud blocks happen to be..
[ ] Optimize ground renderer, so we only submit visible chunks, not whole rows.
For machines with severe vertex-rate issues, use 2x2 chunks or larger for some things.
[ ] Configuration option for choosing which tuned solution to use:
- Cope with lack of HW VP
- Cope with lack of fast texture memory (although UMA makes this almost a non-issue)
- Cope with REALLY WINFUL FAST HEAVENLY HARDWARE (The boss might want to play this :P )
[ ] Palette hax for selection outlines. Basically, just hijack a palette entry that's not
getting used, and draw the selection borders into the SHP images using that color.
Then we double up the hardware palettes, and we can draw selection with no extra cost.
(Except maybe losing any alpha=0 optimization the backend of the shader hardware does)
[ ] Time-to-build overlay on sidebar
[ ] Console
[ ] Refresh hardware image of a Sheet if its bitmap content changes. This will kill the prefetch
bugs permanently!
[ ] Code concerns
[ ] Read/write distinction on IFolder implementors. I think Package should be read-only,
FS folders can be mounted read-only or read-write, (or even write-only, but that's odd...)
Use FileSystem.Create() to automatically place output files on sensible mounts.
[ ] Fix weird delegate names - Provider<T>, Comparison<T>, Converter<T>, Action<T>
should be used where appropriate. `Func` says nothing, and is damned misleading
when the delegate isnt referentially transparent... IE, not a `function`.
Note that the lack of referential transparency for Provider<T> cannot be helped,
it's in the nature of an object that converts () -> T.
[ ] Ditch special unit classes, use templates extracted from rules.ini instead.
Push the special-case logic into code that can be named.
[ ] Remove all remaining `../../../` bullshit from the code. We should be able to set our datapaths
externally, then `just go`. The FileSystem class is there to facilitate this.
[ ] Factor duplication out of Sheet, HardwarePalette. Both contain logic for converting bitmaps to
hardware textures on demand.
[ ] Get rid of all the damned static classes! Makes it REALLY HARD to reuse code,
dependencies aren't easily visible (or even substitutable, which matters more)
[ ] Mod support
[ ] Consume more caffeine!