apollo-rsps / apollo

An open-source Java game server suite designed to be lightweight, fast, and secure.
ISC License
186 stars 141 forks source link

Port the dialogue plugin to Kotlin #381

Open garyttierney opened 6 years ago

garyttierney commented 6 years ago

Tracker issue for checklist item in #338

Major- commented 6 years ago

This involves fixing some known bugs that exist in the ruby version (#133, possibly #383). The statement dialogue interface ids currently used are also a bit suspect.

This should also close #160.

Major- commented 6 years ago

The current plan for the dialogue system in Kotlin is to write a DSL backed by coroutines, where dialogue text is interleaved with code, and various actions (like waiting on the player to 'Click here to continue', select an option from a list, etc) block at the couroutine/fibre level. This removes a significant amount of complexity from the current implementation, effectively flattening everything into one long conversation (rather than the nested dialogues, each with their own separate close/continue callbacks).

Because of the effort involved in this rewrite (more like a completely different plugin), it's been deselected from the port to kotlin project. This one will be one of our first tasks post-merge.