Jaka jest procedura stosowana przez programistów gier w celu zapisywania i wznawiania stanu gry? jak pliki / mapowania. Chcę go zapisać na potrzeby gry typu tower defense i używam silnika gry unity3D.
unity
tower-defense
savegame
Syed
źródło
źródło
Ta odpowiedź jest specyficzna dla Unity3d .
W Unity większość klas można serializować, co oznacza, że możesz przesyłać strumieniowo kompletne obiekty Unity na dysk. Poniższy kod UnityScript to sposób na serializację obiektu, zapisanie go na dysku i załadowanie go ponownie (po załadowaniu musisz rzutować obiekt):
źródło
Dla niszczyciela prawdopodobnie zachowałbym wyłącznie między falami. W ten sposób musisz tylko pomyśleć o wieżach. Umieść kilka automatycznych punktów zapisu na poziomach, nie więcej niż 10 minut pomiędzy, ale prawdopodobnie lepiej jest mniej.
Oczywiście, jeśli twoje poziomy są wystarczająco krótkie, możesz po prostu zapisać tylko stan kampanii.
źródło
Kiedy odnoszę się do bieżącego stanu gry, mam na myśli migawkę pamięci w momencie zapisywania. Musisz mieć możliwość odtworzenia tego z danych, które będziesz przechowywać na dysku twardym.
Najłatwiej jest po prostu serializować wszystkie klasy, które mają dane, które muszą być trwałe, i zrzucić je na dysk twardy, zasadniczo wykonując zrzut pamięci. Problem polega na tym, że zmiana twoich klas zmieni liczbę / typy wartości zserializowanych i złamie stare zapisy. Również dlatego, że zapisujesz wszystko, co wydłuża czas ładowania. Bardziej efektywne jest oznaczanie poszczególnych pól, które są rzeczywiście potrzebne do odbudowania bieżącej „migawki pamięci” za pomocą dowolnego systemu atrybutów używanego przez serializator / IDE. Następnie odbuduj „migawkę pamięci” z zapisanych danych.
Nigdy też nie korzystałem z Unity, więc może mieć coś wbudowanego. Jest to jednak typowe podejście.
źródło