Obecnie czytam książkę Programowanie gry AI według przykładu.
Książka wspomina o przypisywaniu unikalnych numerów ID każdemu bytowi w grze. Często, gdy jednostka A musi skontaktować się z jednostką B , A otrzymuje odwołanie do B , wysyłając numer identyfikacyjny B do klasy EntityDatabase . Ta klasa otrzymuje numery identyfikacyjne i zwraca odniesienia do encji.
Numery identyfikacyjne niektórych podmiotów można również pobrać z pliku zawierającego identyfikatory niektórych podmiotów (głównych bohaterów gry).
Moje pytanie brzmi: dlaczego miałbym to robić? Dlaczego nie mogę pracować bezpośrednio z referencjami? Czy czasami trudno jest uzyskać bezpośrednie odniesienie? Czy używanie systemu identyfikacji jest powszechnym podejściem? Czy są gry, które nie używają identyfikatorów?
Jestem nowy w tworzeniu gier. Proszę wyjaśnić zalety pracy z systemem identyfikacji podmiotów. Zalety i wady. Konkretne przykłady byłyby świetne. Dzięki
źródło
Ostatnią rzeczą jest to, że jeśli używasz wzorca puli obiektów, a byt zostanie zresetowany, ponieważ stworzenie umarło (na przykład) i odrodziło się gdzie indziej, odniesienie nadal będzie wskazywać na ten sam byt (błąd), a identyfikator nie będzie już pozostał ważny.
ID 5067 wskazuje na adres 0x8765 istota umiera, a inny spawnuje nowe stworzenie ID jest resetowane do 7073 Ktoś sprawdza ID 5067, wskazuje 0x8765, ale to stworzenie jest teraz zarejestrowane z ID 7073, więc baza danych ID jednostki wie, że użyłeś przestarzałego ID i informuje cię, że stworzenie, do którego próbowałeś dotrzeć, nie jest już aktywne.
To i wszystkie cudowne powody, o których wspomniał Byte56, to powód, dla którego dobrym pomysłem jest unikanie bezpośredniego korzystania z referencji.
źródło