LiveSplit.VideoAutoSplit icon indicating copy to clipboard operation
LiveSplit.VideoAutoSplit copied to clipboard

Big bad issue list

Open ROMaster2 opened this issue 7 years ago • 3 comments

Dumping them here instead of making a bunch to manually mark off each time.

  • Bad/Inconsistent names.
  • Feature models are hot garbage.
  • Delta models are weird.
  • Namespace names are kind of bad.
  • Somewhat inconstant use of public, internal, and private.
  • Excessive dependence, not very portable.
  • OCR not implemented (but logic is available).
  • Geometry needs to be finished and separated into its own library. Add logic into it that's coded into the project.
  • Re-implement Screens & Anchors. Currently not a big issue since most games don't need those features.
  • Scanner should support scanning windows. New classes with an abstract one will be necessary.
  • Swap ImageMagick for GraphicsMagick to boost performance, probably.
  • Finish implementing TrueCropGeometry.
  • Clone frame with TrueCropGeometry to save CPU.
  • Still lots of unhandled exceptions.
  • Not all of the handled exceptions are sent to the Event Log.
  • Actually do something with benchmarks. Right now they just waste CPU (albeit minor).
  • Let user set the framerate to reduce jitter problems.
  • Let scripters set the game's framerate for rounding.
  • Round received frames to the user's framerate, then to the game's framerate. Note jitter/desyncs.
  • More duplicate frame methods for scripting.
  • Need a Designer UI for helping with making new profiles.
  • Add offsetting for splitting (requires a core update)
  • Add aliasing in scripting for simplicity.
  • Review VASL/ASL differences.
  • ScannerUI not very complete (bad layout, no auto-fit tools, ~~can't click image to select region~~, ~~doesn't preview crop/feature regions~~).
  • Script settings are still garbage.
  • Game Versions still not implemented.
  • Profiles should remember the version they were built with, for legacy support.
  • Delta numbers should be standardized? (e.g. PeakAbsolute is 0-1, PeakSignalToNoiseRatio is 0-inf, Absolute is 0-PixelCount)
  • Some extensions and utilities are terrible.
  • Scanner still freaks out if it tries to read OBS-Camera when OBS isn't up.
  • Pass frame bitmaps though CompiledFeatures instead?
  • Separate scanner and scanner settings?

And, of course, who could forget all the arbitrary bugs that make the UI freeze or crash LiveSplit entirely? Threading is responsible for most of them.

ROMaster2 avatar Dec 18 '18 20:12 ROMaster2

For the excessive dependencies, can we enable VLC as the source of the video stream? Might help if when moving to new splits and setting up an autosplitter if we can use a video of a PB to to test the splitting and to retime our runs if the run is still along the same route.

kenman345 avatar Jan 16 '19 15:01 kenman345

Poor wording on my part. "excessive dependencies" meant that the code is somewhat lasagna and not portable. But it would be nice to remove the external dependencies by moving the code that's used into the component itself.

For the excessive dependencies, can we enable VLC as the source of the video stream?

I use a video source on OBS to test profiles for streams. A separate program is planned for retroactively scanning videos that runs much faster.

ROMaster2 avatar Jan 16 '19 17:01 ROMaster2

for use of internal, private, and public, just adding a link to this: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/access-modifiers

should help making sure we make the right choice on what to use in each struct/class

kenman345 avatar Jan 22 '19 15:01 kenman345