signalis/README.md

2.1 KiB

Deadline

A week? A month? Pick a specific date

Roadmap

  • Save/Load
    • Serialization and deserialization
    • What needs to be serialized
      • Condition
      • Inventory
      • Progress
        • Story progression
        • Rooms / levels
  • Health/Condition
  • Inventory
  • Equipmentread
  • Camera follow
    • Bounded by room
    • Always faces north
    • Positioned south of player
  • First person mode?
  • Menu UI
    • Inventory
      • Difficulty 8
      • Importance 7
    • Status/Health/Condition
      • Difficulty 3
      • Importance 8
    • Story/Log
      • Difficulty 8
      • Importance 5
    • Title
      • Difficulty 6
      • Importance 5
    • Settings
      • Difficulty 10
      • Importance 4
  • Audio
    • Central mixer for mastering
    • Sound groups
    • One shot and looping audio (music and sfx)
  • Level collisions
  • Combat
    • Health
    • Damage
  • Scene change
  • Dialogue
  • Enemy AI
  • Enemy spawns
  • Shaders

Aesthetic direction

  • Gruel or new?
    • Leaning toward new
  • General setting / vibe

Cleanup

  • Callable/Signal abstraction
  • Generic rotate_toward method
  • Separate classes into own files
  • Organize files into related directories
  • Separate player logic into more reusable nodes
  • Generalize input handling
  • Fix following error that happens on load
E 0:00:02:0620   PromiseRejectCallback_: [jsb][Error] unhandled promise rejection: InternalError: [modules/GodotJS/bridge/jsb_primitive_bindings_reflect.cpp:498 call_builtin_function] bad argument: 0
  <C++ Source>   modules/GodotJS/bridge/jsb_environment.cpp:208 @ PromiseRejectCallback_()

Considerations

  • Monkeypatch math structures
    • Math operations are painful
const a = new Vector(0, 0, 0)
// a + Vector3.ONE
const b = Vector3.ADD(Vector3.ONE, a)
// (Vector3.ONE * 2) * b + a
const c = Vector3.ADD(
    Vector3.MULTIPLY(
        Vector3.ADD(Vector3.ONE, Vector3.ONE),
        b
    ),
    a
)
    
  • Gltf -> Godot workflow
  • Easier way to combine animations on single model
    • Possibly download character animation combiner and automate
  • Purpose of PlayerAnimation
  • PlayerInput doing too much