Eski konsol oyunlarında kullanılanlar gibi tek oyunculu bir oyun için nasıl şifre sistemi yapabilirim?
Örneğin, Mega Man X , kaydetmenizi yüklemek için daha sonra girebileceğiniz bir dizi sayı vererek işi kaydeder.
Eski konsol oyunlarında kullanılanlar gibi tek oyunculu bir oyun için nasıl şifre sistemi yapabilirim?
Örneğin, Mega Man X , kaydetmenizi yüklemek için daha sonra girebileceğiniz bir dizi sayı vererek işi kaydeder.
Yanıtlar:
İlk olarak, oyun durumunuzu (ya da daha doğrusu, kaydetmek istediğiniz eyaletin yönlerini) parçalayın. Mega Man tarzı bir oyun söz konusu olduğunda, hangi son seviye patronlardan öldürdüğünüzü, sahip olduğunuz enerji tankı benzeri powerup'ların sayısını takip edebilirsiniz.
Tüm bu verileri bir bit alanına paketleyin, yani her bir değere uygun sayıda bit atayın:
Örneğimizde toplam 8 bit vardır, yani tek bir karakter bir şifreyi temsil edebilir. Pratikte, oyununuz daha fazla devlete sahiptir ve bu nedenle daha fazla toplam bit ve dolayısıyla daha fazla karakter gerektirir. Buradaki ve bu sorunun başka yerlerindeki yorumlarda belirtildiği gibi, bu yaklaşım "retro" oyunlar veya yakalanan oyun durumunun boyutunun makul olduğu diğer oyunlar için geçerlidir. Belirli bir noktanın ötesinde, durumunuzu kodlamak için gereken şifrelerin karmaşıklığının çok büyük olduğunu keşfedebilirsiniz.
Geçici gözlemin şifreyi kırma olasılığını azaltmak için, bit düzenini (oyun durumu üzerinde hiçbir etkisi olmayan, ancak tüm bitleri karakter olarak yorumladığınızda şifrenin farklı görünmesini sağlayan) kukla bitler tanıtacak şekilde dönüştürebilirsiniz. tüm "öldürülmüş kutu X " bitleri birbirinin hemen yanında olmayacak şekilde bitleri karıştırmak için bazı tersine çevrilebilir karma benzeri işlemlerle karşılık gelen sıralı durum şifrelerini çok farklı gösterebilir veya sağlama toplamı değerleri sunabilir.
Etrafta kazarsanız, bazı popüler parola oyunlarında kullanılan sistemler hakkında oldukça fazla bilgi var:
Ek ilham almak için bunları okuyabilirsiniz.
Bu oyunlar sadece inandığım bir durumu kurtardı. Parola sadece yüklenecek bir seviyeye başvuruyor. Sadece böyle bir şey için sözlük kullanın.
Belli bir silah veya güçlendirici gibi biraz daha karmaşıksa, durumu kısa (ancak yeterince uzun) bir karma koduyla şifreleyebilirsiniz.
Ama bunu kullanmamanızı şiddetle tavsiye ederim. Şifre internette hızla yayılacak ve yakında herkes oyununuzu kazanmış olacak.
Josh Petrie'nin karakter-durum sistemi gibi çözümlerin faydaları olsa da (küçük boyutta tasarruf, oyunun tüm kopyalarında çalışır), oyun tasarımını ve durum sistemini özünde şifre sistemine bağlarlar. Parola veya durum veya tasarımda ve tüm sistemde yapılan herhangi bir değişiklik farklıdır.
Çok daha basit bir çözüm, kayıt sisteminizi normal şekilde oluşturmak ve üstte bir şifre sistemi eklemek olacaktır. Bu, parolayı kaydetmeye kaydetmek (muhtemelen dosya adı olarak iki katına çıkarmak) ve yükte doğrulamak kadar basit veya etraftaki birçok şifreleme kitaplığından birini kullanmak kadar karmaşık olabilir (oldukça önemsizdir).
Bu cevap etrafında biraz karışıklık var gibi görünüyor.
1) Operatör, bir kayıt yüklemelerine izin veren bir şifre istedi ... şifrenin kayıt olma zorunluluğu yoktur .
2) Bugün birçok oyun önemli ölçüde depolama depolama gereksinimine sahip, sadece bir quiz oyunu için 10MB dosyaları üreten hızlı bir kaydetme / yükleme sistemi oluşturduk! Josh Petrie'nin kayıt sistemi, çok sınırlı olsa da - mağaza sistemi önemsiz hale gelir gelmez, tüm ilgili verilerin saklanması için parolaların çok uzun olması gerekir.
Örneğin, 30 patron varsa ne olur? 20 başarı? Bir başarının yarısında mıyız? Hangi seviyede? Sağlık, yaşam, madeni para, xp için kaç bit ayırıyoruz? Anlık görüntü seviyeler arasında durum değilse ... ancak bir seviyenin yarısında ise - oyuncunun pozisyonları, düşmanlar, mermiler, yıkılmış / değiştirilmiş arazi aniden depolanması gereken birçok duruma eklenir.
Perspektif olarak, 30 karakterlik bir alfabe ve on harflik bir parola varsayarak, saklamak için yaklaşık 50 bit değerinde bilgiye sahibiz. Bir oyunun / motorun yalnızca tek bir nesnenin konumunu, dönüşünü ve ölçeklendirmesini saklamak için 320 bite kadar kullanıldığını görmek nadir değildir. Tabii, daha azıyla daha fazlasını yapmak için her türlü optimizasyon hilesi yapabilirsiniz ... ama sonuçta oyunu eğlenceli hale getirmek için ayrılmış zamanı kullanıyorsunuz - yapabileceğiniz en kötü optimizasyonlardan biri.