signalis/README.md

92 lines
2.1 KiB
Markdown

# 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
```ts
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