Autor Wątek: Sortowanie jednostek  (Przeczytany 1038 razy)

Offline Cautionhot

  • Użytkownik

# Maj 21, 2006, 20:29:09
Po krótce - chciałbym zaimplementować w swojej grze system zarządzania dopływem komunikatów do jednostek dla usprawnienia działania programu. W tym celu utworzyłem 3 grupy jednostek:

- Grupa 1 to wszystkie jednostki aktualnie biorące udział w wydarzeniach i te, które są wyświetlane (100% dopływ komunikatów).

- Grupa 2 to jednostki znajdujące się na tyle blisko gracza bądź najdalej wysuniętej aktywnej jednosti, że może mieć wpływ na wydarzenia, bądź pojawić się na ekranie przed upłynięciem czasu do odświerzenia grup jednostek (zminimalizowany dopływ komunikatów - średnio 70%)

- Grupa 3 to jednostki nie kwalifikujące się do gr. 1 ani do gr. 2 (zerowy dopływ komunikatów).

Czas następnego odświerzenia grup jednostek obliczam wzorem (chyba, bo jeszcze tego nie ma w kodzie, więc nie wiem jak będzie działać):

S^-1 * L
gdzie:
S - prędkość gracza [jednostki terenu/klatkę]
L - Odległość gracza lub najdalej wysuniętej jednostki aktywnej od najbliżej położonej jednostki nieaktywnej [jednostki terenu]

Po upłynięciu czasu następuje refresh, czyli sortowanie wszystkich jednostek i przydział do grup.

i do tego mam 2 pytania:

- Czy wogóle sposób jest do przyjęcia, czy mam wziąść młotek i pier***nąć się w łeb? ;-)

- Jeśli nie, to jak najlepiej sortować jednostki, żeby algorytm nie był zbyt skomplikowany i jednocześnie wystarczająco wydajny?


Wszystkie uwagi mile widziane, gdyż jestem osobą która często nie dostrzega oczywistych sprzeczności :-)

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Gorion

  • Użytkownik
    • Strona domowa

# Maj 22, 2006, 00:09:39
Nie napisałeś jeszcze jakiego typu to będzie gra (RTS, platformówka?)
Czasem wydajniej jest zrezygnować ze zwykłej listy i jej sortowania i wybrać trochę bardziej wyrafinowaną strukturę przechowywania danych.
Poszukaj w necie o QuadTree (Drzewa czwórkowe) i zobacz, może to będzie się lepiej nadawać.