Quenty / Quenty/NevermoreEngine
Implement Deferred/Adapted Signal using Lua
Nobody has claimed this yet.
- Dominant language
- Lua
- Stars
- 610
- Forks
- 144
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 12
Description
What package is this for?
Signal
Describe your problem
Currently, Signal by defaults uses GoodSignal which has some issues but is nice, but it also has the option of the older standard that uses BindableEvents. BindableEvents allow for Deferred (Adaptive) behavior which is important, GoodSignal doesn't. At the same time however, BindableEvents suck. They cause memory leaks which may not be detected by the user.
Describe the solution you'd like
We should abandon the BindableEvent approach. It is slower, leakier, just plain worse. We now have the power of Lua Signals, have had so for a long time. But it is also important to implement Deferred behavior.
We have task.defer, and it is also possible to infer what mode the game is in with some simple code.
I did this in my Signal library which is useful to implementing this. You can use it if you like (I don't maintain it, running Linux can't anymore, it doesn't have the same typing as sleitnick's fork for example) or fork/use the ideas/code from there. (I think so anyway? I haven't looked at licenses for a while but I can probably change it for this if it is an issue)
Thank you for your time.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the Signal package's current GoodSignal and BindableEvent implementations, then review the linked FastSignal library for its deferred behavior and mode detection. Done means replacing the BindableEvent approach with a Lua-based Signal that preserves Deferred or Adapted behavior without the reported leak concerns.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- lua
- Domain
- game-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100