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, Comparison, Converter, Action 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 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!