Jak zapisać świat w grze JAVA!!!

0

Witam,
Jestem średnio-zaawansowanym programistą JAVY. Ale teraz do sedna problemu.
Otóż od pewnego czasu tworzę prostą grę która generuje świat z bloków w kształcie sześcianu (tak jak Minecraft).
System generowania świata już jest skończony ale nie wiem jak zapisać dany świat w pliku który będzie tworzony w danej lokalizacji. Oczywiście z możliwością ponownego odczytu w przyszłości. Myślałem o serializowaniu ale kompletnie nie wiem jak się do tego zabrać.
W miarę możliwości prosiłbym o szybką odpowiedź.

1

Zapisujesz gdzie jest który blok.
I teraz bonus, żeby wczytać, po prostu wczytujesz gdzie jest który blok

0

Jw. jeśli wszystkie bloki są sześcianami:

  • tej samej wielkości to zapisujesz współrzędne xyz każdego bloku (punkt w "środku", albo jeden z rogów - zależnie od implementacji takiego obiektu sześcianu), de facto 3 liczby,
  • różnej wielkości, to zapisujesz wspołrzędne i długość krawędzi.

Jakiś prosty plik z danymi, potem odczytujesz to i zaczynasz rysować planszę. To w takim skrócie.

0

Minecraft ma tak, że zapisywany jest ID bloku. Więc żadna serializacja a zapisane współrzędne + ID w sposób uporządkowany. Na przykład możesz zapisywać x, y, z, id dla każdego bloku. Pytanie czy rozmiar obszaru jest stały?

2

nie musisz zapisywać współrzędnych
jeżeli byłby to świat 2d to świat zazwyczaj zapisywany jest jako bitmapa gdzie kolor piksela może odpowiadać rzeczy która się tam znajduje - pozycji nie musisz zapisywać bo pozycja na bitmapie już ją jasno określa
chyba że świat byłby w połowie pusty to jednak lepiej zapisać faktycznie tylko te miejsca w których się coś znajduje, jeszcze bardziej optymalizując - można zapisywać ile kolejnych bloków zajmuje identyczny element

0

Przechowuj jakkolwiek Ci się podoba, a jak będzie małowydajne to próbuj optymalizować. Rozumiem, że to petproject więc takie optymalizowanie/kombinowanie to dobre ćwiczonko. Gdybym na szybko miał wymyślić rozwiązanie to bym zapytał wcześniej ile możliwych rodzajów sześcianów jest w grze.

0

A czy da się zrobić tak żeby świat był traktowany jako jeden blok i dopiero potem zapisywany?

1 użytkowników online, w tym zalogowanych: 0, gości: 1