Pracuję nad moją pierwszą grą (C ++) i chcę użyć projektu opartego na komponentach. Ostatnio dużo o tym czytałem, a wczoraj zdecydowałem, że chcę przechowywać dane obiektów w zewnętrznych plikach JSON, aby zapewnić większą elastyczność i łatwość dostępu.
Potem przyszło mi do głowy, że pozostawienie tych plików w drzewie katalogów gry pozwoli graczom bardzo łatwo modyfikować wszystko, co tylko zechce.
Nie martwię się o pokazanie kodu programistom, ponieważ gra będzie open source, ale obawiam się, że niedoświadczony gracz może przerwać grę lub przynajmniej zepsuć zabawę.
Czy coś brakuje? Jakie są zasady ukrywania danych gier (w grach open source)? Czy to normalne, aby wszystko było dostępne dla każdego?
Jeśli nie, jaki jest dobry sposób na ukrycie danych?
Odpowiedzi:
Jeśli gracze majstrują i psują zabawę, powiedziałbym, że to ich problem. Dla majsterkowiczów połowa zabawy to patrzenie, co się psuje.
To tak, jakby się martwić, że gracze użyją kodu oszukiwającego w trybie boga, i martwić się, że gracz nie zostanie zakwestionowany.
Nie zrobiłbym nic więcej niż umieszczenie tych plików konfiguracyjnych w pliku zip (co prawdopodobnie powinieneś zrobić i tak w celu załadowania czasu) i upewnienie się, że Twój kod może z łatwością obsługiwać uszkodzone dane.
źródło
Jeśli wtrącają się w dane gry, uważają to za „zabawne”. Nie musisz ich przed tym chronić. W końcu dane komponentu encji raczej nie są spoilerem. Może gdybyś miał tam dane dialogu lub misji, byłby to problem, ale prawdopodobnie nie. Większość graczy nie wie nawet, gdzie szukać tego rodzaju rzeczy, nie wspominając o celowym ich przeszukiwaniu lub edytowaniu.
Radzę spakować i zmienić nazwę rozszerzenia pliku. Pozwoli to uniknąć przypadkowego wyglądu, ale nie będzie Ci trudno pracować. Do pracy z plikami możesz użyć czegoś takiego jak PhysicsFS .
źródło
txt
rozszerzeniem. Po dość dużej ilości gier zdecydowałem, że utrudnię grę, dostosowując te parametry. Później podzieliłem się tymi ustawieniami z przyjaciółmi. Było fajnie ...Możesz przechowywać dane zaszyfrowane przy użyciu symetrycznego schematu szyfrowania (AES), ale nie ma to sensu: oprogramowanie jest typu open source , dzięki czemu każdy może odczytać klucz, a tym samym odszyfrować dane. To po prostu „powstrzyma” zwykłego gracza od oszukiwania.
Byłoby to trochę bezcelowe nawet w projektach zamkniętych, ponieważ znalezienie klucza do pliku binarnego jest dość łatwe.
Masz dwie możliwości:
źródło
Zostawiłbym to. Istnieje ogromna społeczność modów i gracze lubią zmieniać / modyfikować gry. Jeśli coś złamią, to na nich. Zawsze mogą ponownie zainstalować.
Ułatwia także pracę innym programistom.
źródło