Jak na gamedev ten kod wydaje się normalny.
Pewnie dlatego, że autorzy nie byli purystami i nie stosowali wszystkich technik programowania obiektowego.
Myślę, że niejeden korporacyjny programista nie przepuściłby przez code review kodu, który ma switch-case zastępujący hierarchię obiektów. :-)Swoją drogą, na początku nie mogłem uwierzyć, że ktoś w kilka lat odtworzył tak złożony projekt.
Zacząłem szukać informacji na ten temat i oczywiście okazało się, że GTA 3 zaliczyło wyciek symboli do portów na Androida i PS2.
Czyli w sumie ta sama historia jak w przypadku Diablo i Tomb Raidera.Ja bardziej liczyłem na jakieś DDD lub ECS. Twoje spostrzeżenie też jest trafne. Nawet w komentarzach pisali, że wydaje się czytelne.
Dziękuję za uzupełnienie historii powstania tego kodu.
Później Rockstar nadrobił ;-) Popełnili takiego Red Dead Redemption 1, gdzie sami deweloperzy wspominali o takim burdelu w kodzie, że sami byli w szoku, że to jakkolwiek działało. Chyba do tej pory można znaleźć w necie kompilacje błędów, które nigdy nie zostały naprawione.
Czy nie każdy dev tak mówi o swoim starym kodzie? Z drugiej strony filozofujący ludzie z gamedevu zawsze opowiadają, że produkcja gry to dość dynamiczne działanie. To był jeden z argumentów o tym czemu się tam nie sprawdza Rust. Bo wymaga jasno zdefiniowanych projektów.