Ponieważ wykorzystywanie GC dodatkowo jako kontenera zawierającego spis encji gry zmienia jego sens istnienia [a]
oraz utrudnia czytanie [b]
(jak i również sensowne debugowanie [c]
) kodu.
a) GC istnieje po to, aby zarządzać czasem istnienia obiektów w sensie czy należy go już usunąć, bo jest potrzebna wolna pamięć
, a nie czy należy ten obiekt usunąć, ponieważ gracz umarł
.
b, c) imho znacznie czytelniejsze będzie rozwiązanie wykorzystujące wprost spis obiektów w połączeniu z normalnym game loop
zamiast tej całej wielowątkowości - dzięki temu w dowolnym momencie gry lista aktywnych statków/whatever będzie w stu procentach deterministyczna, a nie polegająca na implementacji GC/częstotliwości ręcznego jego wywoływania.