• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zapisywanie gry c++

Object Storage Arubacloud
0 głosów
1,236 wizyt
pytanie zadane 12 grudnia 2015 w C i C++ przez sqbi Początkujący (470 p.)

Witam, chciałbym zrobić aby moja gra (w c++) mogła się zapisać, czyli zapisanie w jakimś stanie gry i np. do notatnika. A potem to zaszyfrować i żeby inny wktórzy to grają nie mogli wrzucać save do internetu. Też chciałbym aby gra sie wczytywała. Prosze o pomoc.

6 odpowiedzi

0 głosów
odpowiedź 12 grudnia 2015 przez arek01996 Stary wyjadacz (12,100 p.)
Własnie opisałeś prosty zapis gry. W czym konkretnie tkwi problem?
0 głosów
odpowiedź 12 grudnia 2015 przez Avernis Nałogowiec (27,400 p.)
Zależy czy robisz grę w konsoli, czy okeinkową
komentarz 12 grudnia 2015 przez arek01996 Stary wyjadacz (12,100 p.)
Według mnie to nie ma znaczenia zasada ta sama.
komentarz 12 grudnia 2015 przez Avernis Nałogowiec (27,400 p.)
W okeinkowej wczytuje się przed pętlą, w konsolowym można na bieżąca
komentarz 12 grudnia 2015 przez arek01996 Stary wyjadacz (12,100 p.)
Co dalej nie zmienia zasady działania zapisu....
0 głosów
odpowiedź 12 grudnia 2015 przez Ehlert Ekspert (212,670 p.)

Możesz dla każdej kompilacji Twojej gry dawać inne ID. Szyfrowanie pliku z savem gry jest uzależnione od ID i ju smiley

A co do save'a to dość mozolne bo musisz w jednym momencie zrzucić do pliku wszystkie unikalne informacje o rozgrywce:

  • level i inne staty gracza
  • ekwipunek
  • relacje z innymi postaciami
  • informacje o questach i postępie fabularnym

To tak na szybko zakładając, że piszesz w coś w deseń rpg smiley

0 głosów
odpowiedź 12 grudnia 2015 przez criss Mędrzec (172,590 p.)
No to w czym problem, jeśli sam podsunąłeś pomysł? Ja kiedyś kodowanie zrobiłem na prostej zasadzie odwracania kodu ascii (255 - <char>), dla przeciętnego użytkownika bariera bardzo ciężka do obejścia :D Przy wczytywaniu najwyżej musisz przekonwertować string na inta/float/whatever no i oczywiście zadbać o kompatybilność zapisu i odczytu. Czy to kolejne wartości zamieszczając w osobnych liniach czy rozdzielając je jakimiś specyficznymi znakami. Generalnie nic skomplikowanego.
0 głosów
odpowiedź 12 grudnia 2015 przez Dash Nałogowiec (29,650 p.)
Zależnie od rozmiaru gry potrzebujesz trzech rzeczy. 1) Pobrania wszystkich istotnych informacji o stanie gry. 2)zakodowania ich. 3) zapisania.

1) Można to zrobić karkołomnie Singletonem czy innymi środkami wątpliwej jakości. Ja lubię kod składający się z możliwie niezależnych elementów, więc uważam że najlepiej będzie zaimplementować w każdej klasie (player/entity/game/world czy co tam masz) przechowującej informacje, funkcji zwracającej, w postaci najlepiej stringa, wszystko co warto zapisać. Następnie, gdy każdy obiekt zwróci co potrzebne, konkatenacja to jednego stringa i przesłanie do funkcji zapisz.

2 i 3) Pole do popisu. Było już o odwracaniu ASCII, ale możliwości jest wiele. Nawet zastosowanie szyfru opartego na liczbach pierwszych, jeżeli masz zamiar zrobić bardzo trudny do modyfikacji save. Poleciłbym Ci jednak coś względnie prostego i co zmusi Cię do pisania ciekawego kodu. Np. rozdzielenie poszczególnych danych w stringu kropkami, zamienienie na ascii dzięki czemu powstałby rząd liczb. Następnie po kolei konwertować na zapis binarny, zamiast 1 powiedzmy losowe liczby parzyste zamiast zer nieparzyste, i do pliku. Wczytywanie analogicznie tylko  w odwrotnej kolejności. Kropki pozwoliłby określić gdzie kończy się jedna informacja a zaczyna następna.

Największy problem sprawi Ci zapewne zebranie tego, co potrzebne z obiektów gry. O tym jak save ma działaś warto pomyśleć już na początku pisania.

Serdecznie proszę o wybaczenie walorów językowych, ale piszę żeby powstrzymać się od zaśnięcia....
0 głosów
odpowiedź 13 grudnia 2015 przez przyszlyProgramista Obywatel (1,060 p.)

Poczytaj o polach bitowych(w Symfoni na str. 552), mógłbyś w takich polach zakodować wiele informacji i informacja w pliku .txt będzie dla normalnego użytkownika komputera nie do odczytania, gdyż będzie widział same dziwne liczby.

Przykładowo zakodowana tak informacja będzie 1 liczbą typu int:

 

Podobne pytania

0 głosów
2 odpowiedzi 307 wizyt
pytanie zadane 20 września 2017 w C i C++ przez StanD Użytkownik (930 p.)
0 głosów
4 odpowiedzi 173 wizyt
pytanie zadane 12 listopada 2015 w C i C++ przez Avernis Nałogowiec (27,400 p.)
0 głosów
1 odpowiedź 359 wizyt
pytanie zadane 8 czerwca 2021 w Java przez Paluch22 Nowicjusz (230 p.)

92,565 zapytań

141,416 odpowiedzi

319,598 komentarzy

61,950 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...