Coder Social home page Coder Social logo

rhyzinus-beta's People

Contributors

c0linw avatar krislmao avatar

Watchers

 avatar

rhyzinus-beta's Issues

Design song database system to replace index.json

SQLite is convenient but overkill when it comes to filesize. A big JSON file or Godot ConfigFile with an AutoLoaded script containing functions to filter/query stuff should be sufficient.

Structure:

  • Database: Dictionary
  • Tables: Arrays within Database, identified by keys
  • Rows: Dictionaries with a Table.

Implementation requirements:

  • func select(table: String, conditionals: Array, order: String) -> Dictionary
    • table is a string corresponding to a Table name in the Database
    • conditionals take the form of an array of dictionaries like: [{"column": "pack_name", "operator": "=", "value": "Main Story 1"}]
      • CONDITION can be one of =, !=, <, >, <=, >=. Results will be filtered to only those that satisfy all conditions.
    • order is a string in the form "COLUMN asc" or "COLUMN desc", where COLUMN is the name of a column in the rows.

Nice-to-haves:

  • Recursive implementation of sub-order (change select's order string to an array of strings, any ties from the first ordering will be sorted by the second ordering, and so on)

Polish in-game UI

To display:

  • Song title
  • Difficulty
  • Score
  • Current accuracy (?)
  • Jacket (?)
  • Song progress (?)

Implement pack selection

Menu UI can be created first, but finish #21 before writing the code that loads the song/pack data for this task

Replace note judgement text images

  • Use different font and gradients
  • Rename ENCRYPTED to CORRUPTED
  • Change FLAWLESS to DECRYPTED (Flawless) to clarify its role as an ex-score notetype

Rework flicks

Current flick input works fine for notes on the bottom lane, but flicks on the side lanes are a little finnicky. If the user starts the flick on the edge of the lane's hitbox and then swipes out of it, it won't register even if the distance is sufficiently far from the starting point.

Change the input logic as follows:

  • In the flick note, store data corresponding to each touch event index, keeping track of the remaining distance needed to activate a flick, the flick's starting input location, and whether that index is currently being tracked.
  • In the input code for screen drag, check all flicks against the index of the touch event. If the flick's tracker for this index is already active, add it to the candidates. If the flick's tracker is not active but the touch event is in the hitbox, add it to the candidates and activate it + reset the remaining distance.
  • On a touch release event, check all flicks with remaining distance > 0 at the event's index. Deactivate them.
  • Adjust flick distance requirement threshold to balance the gameplay. Might need to increase the required distance since the new implementation is more lenient in most cases.

Additional changes:

  • Make the flick judgement timing logic more like Deemo. If the input is late or within the flawless window, instantly process it. Otherwise, delay it until the note time, then do the judgement effects.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.