Oyun verileri oynatıcıdan gizlensin mi?


13

İlk (C ++) oyunum üzerinde çalışıyorum ve bileşen tabanlı bir tasarım kullanmak istiyorum. Son zamanlarda bu konuda çok şey okudum ve dün daha fazla esneklik ve erişim kolaylığı sağlamak için harici JSON dosyalarında nesne verilerini saklamak istediğime karar verdim.

Sonra bu dosyaları oyunun dizin ağacına bırakmanın oyuncuların istedikleri herhangi bir şeyi kolayca değiştirebilmelerini sağladı.

Kodun geliştiricilere gösterilmesinden endişelenmiyorum, çünkü oyun açık kaynak olacak, ancak deneyimsiz bir oyuncunun oyunu bozabileceği veya en azından eğlenceyi mahvedebileceğinden korkuyorum.

Bir şey mi kaçırıyorum? Oyun verilerini gizlemeyle ilgili politika nedir (açık kaynaklı oyunlarda)? Her şeyi herkesin erişimine açık bırakmak normal mi?

Değilse, verileri gizlemenin iyi bir yolu nedir?


3
Genellikle oyunu değiştirme yeteneği, özellikle tek oyunculu oyunlar için bir hata değil, bir özelliktir.
jprete

8
Gerçekten rahatsız olmazdım. İyi bir oyun yapmak için zamanınız daha iyi harcanır. =)
Jari Komppa

1
Açık kaynak kodlu bir oyunu indiren herkesin , oyun verileriyle uğraşmaktan ve oyunu devam ettirmekten zevk alacağını düşünmeye meyilliyim . İyi bir oyunsa, JSON biçiminizi hemen gösteren bir wiki görürsünüz!
Nevermind

Yanıtlar:


33

Oyuncular eğlenirken ve eğlenceyi mahvederse, bu onların problemi olduğunu söyleyebilirim. Tamirciler için eğlencenin yarısı neyin kırıldığını görmektir.

Bu, oyuncuların bir tanrı modu hile kodu kullanacağından ve oyuncuya meydan okunmadığından endişelenmeye benziyor.

Bu yapılandırma dosyalarını (muhtemelen yükleme zamanları için yine de yapmanız gerekir) bir zip dosyasına koyarak ve kodunuzun bozuk verileri incelikle işleyebileceğinden emin olmaktan başka bir şey yapmazdım.


20

Korkarım deneyimsiz bir oyuncu oyunu kırabilir veya en azından eğlenceyi mahvedebilir.

Eğer oyun verileriyle uğraşıyorlarsa, o zaman 'eğlenceli' olarak değerlendirdikleri şey budur. Onları bundan korumanıza gerek yok. Sonuçta, varlık bileşeni verileri neredeyse bir spoiler değildir. Belki orada diyalog veya görev verisi olsaydı, bu bir problem olurdu, ama muhtemelen değil. Çoğu oyuncu bu tür şeyleri nerede arayacağını bile bilmiyor, kasten aramayı veya düzenlemeyi boş ver.

Benim tavsiyem, sıkıştırmak ve dosya uzantısını yeniden adlandırmaktır. Bu, sıradan bakıcıyı koruyacaktır, ancak birlikte çalışmanız zor olmayacaktır. Dosyalar ile çalışmak için PhysicsFS gibi bir şey kullanabilirsiniz .


5
Evet. Amiga'da Kolonizasyon oynadığımı hatırlıyorum. Birimlerin parametreleri standart txtuzantıya sahip basit bir metin dosyasında saklanmıştır . Çok oynadıktan sonra bu parametreleri ayarlayarak oyunu zorlaştırmaya karar verdim. Daha sonra bu ayarları arkadaşlarla paylaştım. Eğlenceliydi ...
liori

3

Simetrik bir şifreleme şeması (AES) kullanarak şifrelenmiş verileri depolayabilirsiniz , ancak bu anlamsızdır: yazılım açık kaynaktır , böylece herkes anahtarı okuyabilir ve bu nedenle verilerin şifresini çözebilir. Bu sıradan oyuncunun hile yapmasını "durduracaktır".

Ve kapalı kaynak projelerinde bile anlamsız olurdu, çünkü oyunun ikili kodunun anahtarını bulmak oldukça kolay.

Yani, iki ihtimaliniz var:

  1. sadece şifrelenmemiş şeyler bırakın (ama en azından her dosyanın md5 karmasını toplayın, böylece oyunun dağıtımındaki herhangi bir hasara karşı çalışma zamanında kontrol edebilirsiniz);
  2. kapalı kaynağa gidin , verileri karıştırın (ters dize + bayt takas + xor sabit dize vb. gibi gizli geri dönüşümlü çok adımlı bir algoritmayla) ve sonra AES ile her şeyi şifreleyin. Herkesin verileri kurtarması daha zor olacaktır. Çok daha zor.

1
Kapalı kaynak yönteminiz bile o kadar da zor değil. Kopya koruması için kullanılan programları düzenli olarak kıran aynı insanlar muhtemelen bunu da kırabilir. Temel fark, rahatsız etmemeleri.
jprete

@jprete: kesinlikle. Bu sadece bir zaman meselesi, ama zaman insanlar için kritik öneme sahip, bu yüzden zor ve karlı olmayan, bazen yeterli.
gd1

3

Bırakırım. Çok büyük bir mod topluluğu var ve oyuncular oyun değiştirmeyi / değiştirmeyi seviyor. Eğer bir şeyi kırarlarsa, o üzerlerinde. Her zaman yeniden yükleyebilirler.

Ayrıca diğer geliştiricilerin birlikte çalışmasını kolaylaştırır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.