Narzędzie · W rozwoju
Simply Signals
Zero-alokacyjny system komunikacji między systemami gry.
Silnie typowany, zero-alokacyjny system komunikacji między systemami gry, zaprojektowany tak, żeby komunikacja cross-assembly przestała być bólem głowy. Jedno wywołanie i dane trafiają tam, gdzie chcemy.
Zamiast trzymać referencje między modułami albo przepychać dane przez singletony, wystarczy jedno wywołanie — Signals.Send(...) — i dane trafiają dokładnie tam, gdzie trzeba, niezależnie od tego, w którym assembly siedzi odbiorca.
- Podział pracy: Source Generator + CecilRoslyn generuje publiczne API i wewnętrzny stan (rejestrowanie/wyrejestrowywanie), a Cecil robi wyłącznie jedną rzecz — wstrzykuje wywołania rejestracji w
Awake/OnDestroy. Każde narzędzie robi to, w czym jest najlepsze. - Okno edytorowe zamiast ręcznych interfejsówSygnały deklaruje się przez dedykowane okno, nie pisząc interfejsów ręcznie. Kolizje nazw między różnymi fasadami są blokowane już w momencie próby dodania, nie wykrywane później w generatorze.
- Tryby łączenia bez DynamicInvokeZwykły multicast dla
void, a dla wartości zwracanych — tryby None/All/Any z przeciążeniami po liczbie argumentów, zamiast kosztownej refleksji w runtime. - Zasada bezpieczeństwa WeaveraJeśli Cecil miałby generować pętlę albo rozgałęzienie — to sygnał, że logika powinna trafić do zwykłej metody C#. W planach: wizualny graf zależności pokazujący na żywo, kto z kim rozmawia w danym momencie gry.
Status
W rozwoju
Zakres
Architektura / Source Generators
Zakres pracy
- Podział pracy: Source Generator + Cecil
- Okno edytorowe zamiast ręcznych interfejsów
- Tryby łączenia bez DynamicInvoke
- Zasada bezpieczeństwa Weavera