Home - 123jimin/unnamed-sdvx-clone GitHub Wiki

TODO list

Things to do (or maybe not), generally ordered by priority

Practice setup improvement

Basically, rebrand it as a 'chart viewer' which can be used in conjunction with the k-shoot mania editor.

  • Mouse-friendly UI
  • Remove assumption that mapTime >= 0 (a big bug)
  • Adjust/preview zoom parameters on-the-fly
  • Enable refreshing chart / lua script
  • Enable changing gameplay settings such as RAN&MIR
  • Presets for chart range

Improve KSH support

  • Fix zoom values working differently from k-shoot mania
    • Initially thought that it's just a ksh version issue, but turned out that
    • Note: Camera logic for USC vs. KSM

image

zoom_bottom=300 zoom_top=0

Following is a list of suggestions for the KSH spec, and not for either USC, KSH, or the KSH editor.

  • Add scroll_speed and center_split to the spec
  • Add bezier curve defs for lasers and zoom variables (something like bezier-a_laser-l=0.5)

Settings improvement

  • Input preset for keyboard / controller
  • More sophisticated offset calibration
    • Show delta bar instead of just listing delta values
    • Implement audio calibration mode (blindfolded play), video calibration mode (muted play), and sync mode (sync audio and video)
    • Statistics-based offset calibration
    • Better calibration music
    • Implement calibration using microphone (experimental)
  • Profile management (create/rename/reset/delete profiles)

UI improvement

  • Create functions for better pop-up display
  • Better UI navigation
    • Title: Navigation using arrow key
    • Enable using mouse to navigate
    • Do something with "hidden" keys (F12 for opening the folder of a chart, tilde for practice mode, ...)
    • Do something with currently-awkward practice mode setup
  • Add in-game delta display for the default skin
  • Improve delta display for the result screen
  • Refactor default skin's Lua codes
    • Extract common functions to another lua file (using dofile or something similar)
  • Better manual chart offset adjustment
    • Enable for skins to set chart offsets in the result page (create a Lua API)
    • Devise a way for users to set chart offsets in the result page (implement it in the default skin using above API)

Lua improvement

  • Make print do something (to aid in development of skins / NotUSC)
  • Better Lua error display
    • Show Lua error messages as pop-ups (can be hidden)
    • SHow better stacktraces

"NotUSC" support

For background / foreground lua scripts:

  • Make current scoring info (combos, # of crits/nears/errors, ...) available
  • Add LoadSample function to load chart-specific sound samples
  • Add a version of gfx.ImageRect which can draw partial image
    • Reference: CanvasRenderingContext2D.drawImage on HTML5
    • Using gfx.IntersectScissor is super annoying.
  • Make chart data / RANMIR info (which lane goes to which button) available
  • Enable toggling score/gauge/... displays
  • Add support for rendering videos
    • Which format to use? - by Drewol
    • How to make an API that's easy to use and performant?

Nautica integration improvement

  • Fix a problem where archives with nested folders are not extracted correctly.
  • Implement search functionality
  • Handle interrupted downloads
  • Implement 'download all in this page' (if puddi doesn't hate it)
  • ESC closes level selection / etc overlay instead of exiting the download page

I18N support

See PR #455

Scroll speed improvement

  • Compute and store "earliest appearance time" to properly support negative scroll speeds for GetObjectsInViewRange and GetBarPositionsInViewRange
  • Decide what to do with long notes / lasers on negative playback speed

Misc improvements/suggestions

  • Make CMOD non-storable (similar to autoplay)
  • Better offset computation
    • Use FFT for convolution
    • Store info on whether the offset is manually adjusted
  • Keep playing the music after gameplay (like the click-the-circle game)
  • Improve how input commands work (note: conflict with PR #543)
    • A command should be tied to a combination of buttons (controller or keyboard)
  • Implement dual-mice on Linux