Akurat da się ocenić na oko, bo chodzi na przykład o tekstury dla okna OpenGL, więc generowanie w locie jest bez sesu.
Pytanie wyszło ambitne, a ja sobie tylko prostą gierkę 2D w Javie klepię
Spoiler
Oczywiście kiedy ja się biorę za "prostą grę", to zaczynam od aplikacji bazowej ("biedo-silnika") na LWJGL, żeby można było na nim zrobić dowolną grę na podstawie danych z plików zewnętrznych, bez ingerencji w kod.
Szkoda słów, projekt na lata, bez szans powodzenia. Ale pobawić się można.
No i potrzebowałem wymyślić sposób na załadowanie elementów sceny na początku tak, aby dostęp do nich wymagał jak najmniej dodatkowych operacji. Zminimalizowałoby to ryzyko spadku wydajności gry. Jednocześnie chciałem, żeby można było łatwo sprawdzić, czy obiekty potrzebne w kolejnej scenie zostały już wygenerowane - skróciło by to czas ładowania kolejnej sceny.
No i wpadłem na coś takiego. nie wiedziałem tylko, czy mój pomysł nie kłóci się z obecnie przyjętymi praktykami. W sumie, nie jest to jedyne dziwaczne rozwiązanie, jakie wymyśliłem dla tego projektu.
nie eksponuj całej tablicy między klasami, a jedynie zwróć metodę zwracającą obiekt o danym id
W tej chwili rysuje się to tak: poszczególne obiekty dostają te tablice indeksów i... nie wiedzą, co mają i na co im to, bo mają tylko numerki
. Za powiązanie tych informacji z obiektami odpowiadać ma klasa główna (a raczej kilka klas - taka część aplikacyjna). Gdyby rozrysować uproszczony schemat projektu, to powstałaby taka śnieżynka. Znaczy śnieżynka, na której usiadł pająk, bo jest jescze narzędzie do raportowania.