Wyróżniony projekt

Wyróżniony projekt RabBit
RabBit jest silnikiem do gier który w założeniu ma spałniać moj...

Wyróżniony wpis

Wyróżniony wpis Dziewczyna na deszczu - wytrwałość
Kończę gdy się znudzę. A nudzę się szybko. Ta świadomo&...

Wyróżniony poradnik

Wyróżniony wpis Jak rozpocząć prywatną rozmowę na czacie
Witajcie w pierwszym, bardzo krótkim i szybkim poradniku.Po...

System przedmiotów

Logowanie




Napisano: 09 sierpnia 2017 22:21
Wybrano odpowiedź + 1 - 0

Mam takie pytanie odnośnie systemu przedmiotów. Aktualnie w grze wykorzystuje dokładnie taki sam system jaki był w silnikach EE/EO, czyli:

Każdy przedmiot to osobny numer ID. Gracz przechowuje adresy ID oraz ilość jaką posiada. Do tego dołożyłem Plus i element. I to tyle. Jednak niestety mi to nie wystarcza, bowiem chcę dodać znacznie więcej bonusów. Problem w tym, że bonusy posiadać będą mogły jedynie dwa typy przedmiotów z 9, także trochę bezsensu dodawać kolejne formuły tylko dla tej zdecydowanej mniejszości przedmiotów. Tu jest właśnie moje pytanie, jak to zrobić lepiej? Jakiś inny pomysł na system przedmiotów, bardziej przejrzysty, wydajny.

Wszelkie propozycje mile widziane :P



Napisano: 10 sierpnia 2017 12:13

Gdzie zapisujesz przedmioty? Możesz zapisywać je jako ciągi znaków np. id-przedmiotu;ilosc;pierwszy-bonus;drugi-bonus;...., id-kolejnego,ilosc-kolejnego,....

Później sprawdzasz tylko ten ciąg znaków i masz odpowiedź na wszystkie pytania. 

Napisano: 10 sierpnia 2017 13:23
Osobiście nie polecałbym tego. Kiedyś sam tak robiłem i potem to tworzyło kłopoty.
Napisano: 10 sierpnia 2017 15:57
Zgadzam się z @Przedwieczny. Też tak robiłem i później zrozumiałem jak wielkim błędem to jest. Mając takiego stringa spróbuj potem dodać kolejny parametr...

Napisano: 10 sierpnia 2017 13:29
Prawidłowa odpowiedź + 5 - 0

 także trochę bezsensu dodawać kolejne formuły tylko dla tej zdecydowanej mniejszości przedmiotów

Może i bez sensu, ale ja bym jednak poszedł w tą stronę. W przypadku gdy będziesz chciał rozbudować te bonusy, zmienić czy dodać nowe nie powinno być wtedy z nimi problemu. Przechowanie w stringach jak @Marcelol wspomina zaoszczędzi prawdopodobnie miejsca i czasu na kodzenie, ale mogą wystąpić kłopoty gdy chcesz masywnie zmienić jakieś wartości tych bonusów.

Napisano: 10 sierpnia 2017 17:17
Więc w takim razie pozostanę przy tym najprostszym rozwiązaniu.

Napisano: 10 sierpnia 2017 16:16

Zgadzam się z @Przedwiecznym. Parametry jako string z separatorami to makabra.

Osobiście mogę Ci polecić użycie słownika (Dictionary), który przechowywać będzie dowolne wartości (object type). Pamięci będzie zabierał tyle ile trzeba, a dostęp jest szybki. Jedyny mankament to sprawdzanie co dokładnie znajduje się w słowniku a co nie, ale to nie jest specjalnie duży problem przy odpowiedniej implementacji.

Prawidłowa odpowiedź została już dodana.

avatar
Liczba projektów:
Liczba wpisów na blogu: