Skip to content

Conversation

zach2good
Copy link
Contributor

@zach2good zach2good commented Aug 26, 2025

I affirm:

  • I understand that if I do not agree to the following points by completing the checkboxes my PR will be ignored.
  • I understand I should leave resolving conversations to the LandSandBoat team so that reviewers won't miss what was said.
  • I have read and understood the Contributing Guide and the Code of Conduct.
  • I have tested my code and the things my code has changed since the last commit in the PR and will test after any later commits.

What does this pull request do?

https://github.com/zach2good/Coro-Roro

From its own repo:

Coro-Roro

Coro-Roro provides a tiny coroutine interface with explicit scheduling and a simple, pluggable work-queue scheduler.

The main goal is to have a clean separation of "what to run" (coroutines) and "where to run it" (the scheduler).

It was built for LandSandBoat, a Final Fantasy XI server emulator.

Why the name?

The Tarutaru naming convention from Final Fantasy XI:

Tarutaru males are given two rhyming names put together, such as Ajido-Marujido or Zonpa-Zippa.
Tarutaru females are given a single name that ends in a rhyme, such as Apururu or Shantotto.

TODO

  • Packet and tick flow is as it was
  • Zone ticks and trigger areas as they were
  • Offloading Navmesh work onto worker threads via AsyncTask<T>
  • Replacing current Async work offloading with AsyncTask<T> & Scheduler
  • Create an AsyncTask<T> and Task<T> version of the db:: interface
  • Write a fun intro document teaching everyone about coroutines and task graphs
  • See if I can find some artificial benchmarks that look better than the current 13.5x throughput increase...

@zach2good zach2good force-pushed the coro-roro branch 6 times, most recently from eeef627 to 790e027 Compare August 28, 2025 03:30
This is in line with what recastdetour publishes. If it's const, then it's threadsafe. The buffers we need don't need to exist in CNavMesh if we're going to eventually offload them to worker threads.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant