Oyun kaynaklarını açık göze bırakmak profesyonelce mi?


43

Hala kaynaklarımı doldurmakta güçlük çekiyorum, karmaşık API'leri ve temel olarak sadece beynimi tüketen zip dosyalarını inceledikten sonra, oyunu insan gözünün görebildiği kaynaklarla basit bir klasörde toplayabileceğimi düşündüm.

Bu profesyonelce olmaz mıydı? Şahsen, oyunları hiç görmedim bile, temel olarak oyuncunun oyunda istediği her şeyi düzenleyebildiği anlamına gelir, map1.txt içinde git ve bir duvar oluşturmak için bir yere X ekleyebilir veya oyuncu sprite değiştirebilir MS PAINT'te bir midilli.


30
Sadece bunu mütevazı bir topluluk olarak düşünün :)
Orin MacGregor

1
Bütçeli profesyonel bir oyun geliştiricisi misiniz? Bence bu oyunda çok para kazanmayı planlamıyorsanız sorun değil. Yine de bazı ipuçları var. Kendini daha iyi hissetmeni
sağlarsa

6
@ArthurWulfWhite: Bence para kazanmak ya da para kazanmak yerine, bölme noktası modded kaynakların oyuna ne anlama geldiğidir. MMORPG için, ayarlanmış bir kaynak / müşteri, belirli oyunculara haksız avantaj sağlayabilir, böylece mümkün olduğunca önlemek isteyebilirsiniz. Diğer birçok oyun için, modding-dostu istemci modding topluluğunun oyununuzu geliştirmesini cazip kılar ve genellikle iyi bir şey olarak kabul edilir.
Yalan Ryan

1
Quake'deki (1) modding yönü, modelleri ve bsp dosyalarını sıradan oyunculara göstermeden çok iyi işlendi. Bir şeyleri kolayca erişilebilir halde tutarken gizlemenin kötü olduğunu düşünmüyorum. X-COM'da kaydetme dosyalarını düzenleyebildiğim için hoşuma gitti, bunu bir özellik olarak gördüm. Bununla birlikte, ne kadar para ile başlamak istediğimi yazabileceğim, para.txt adında bir metin dosyası olsaydı aptalca olurdu, çünkü bir sanal alan ile oyun arasındaki sınırı bulanıklaştırırdı.
Wolfdawn

2
Introversion yolunu beğendim : Dosyaları yeniden adlandırılmış zip dosyalarına koyun, örneğin sound.dat. Sıkıştırılmamış klasörleri birkaç yüz dosyayla kullanmak (de) kurulumunu oldukça sinir bozucu hale getirir.
Tobias Kienzler 27:12

Yanıtlar:


44

Hayır, oyun verilerini değiştirmeye ortak bir uygulama olan ve genellikle olumlu bir etki olarak görülen modding denir. Oyun verilerini olabildiğince şeffaf tutmak ve mümkün olduğunca zahmetsizce düzenlemek gerçekten iyidir. Daha da ötesi, hedef kitleniz olarak daha "gelişmiş" oyuncular seçiyorsanız.

Verileri için düz klasör yapısı kullanan pek çok AAA oyunu bulamamanın nedeni, daha iyi yükleme süreleri elde etmek için özel optimize edilmiş arşiv biçimlerini kullanmalarıdır. Dezavantajı, azalan şeffaflık ve alet zincirinde gerekli olan ek araçlardır. Ancak, daha küçük veya 2B oyunlar için bu iki şey genellikle iyileştirilmiş yükleme süresinden daha değerlidir.

İnsanların gördüklerinin sadece büyük bir karmaşa olmadığından emin olun :) dosyaları uygun bir klasör yapısına yerleştirin.


İşler ayrıca çalmaya karşı caydırıcı bir biçimde de doludur (eğer basılırsa sonuçta etkisiz kalır)
CobaltHex 28.01.2012

15

Diğer cevaplara ek olarak, göz önünde bulundurmanız gereken iki önemli husus:

Şımarık sürprizler
Oyunun ortasında olduğumu ve "video" klasörünü keşfettiğimi söyleyin. Meraklı, ben birini tıklıyorum ve oyunun son kesim görüntüsünü görüyorum.

Zorluğu kaybetmek
Aynı senaryoda, ancak kaydedilen oyun formatının "altın" için bir değeri olduğunu görüyorum. 250'den 999999999'a değiştiriyorum ve çalışıyor. Aniden dikkatle hazırlanmış zorluk eğrisi, oyunun eğlencesini en üst düzeye çıkarmak, gitti.

Her ikisi de, kısmen tamamen olmasa bile, birilerinin oyuna ilgisini kaybetmesine neden olabilir. Bu, oyunun ne kadar iyi olduğuna dair daha düşük bir genel izlenim ile sonuçlanabilir (haksız ama doğru).

Bunları hedef kitleniz açısından düşünün - genç oyuncular özellikle yaptıklarının ne olduğunu gerçekten anlamadan kendi eğlencesini bozmaya meyillidirler.

Mod vermeyi teşvik etmek isteseniz bile, kullanıcıları “oyun sırasında” oyunla ilgili kendi deneyimlerini mahvetmekten korumak isteyebilirsiniz.


4
Kesinlikle doğru. Oyunu değiştirmeden önce birkaç engelle karşılaşmanız gerekirse, size zarar vermez. Video senaryosu için +1
wolfdawn

14

Belki de profesyonelce yanlış kelimedir. Bu gerçekten oyuna bağlı dosyaları bırakıp bırakmamak kötü bir şey olup olmamasına bağlıdır.

Basit bir singleplayer oyunu için oyuncular ve modderler sizi sevecektir. Onlara oyununuzu kolayca değiştirebilme ve istediklerini yapma becerisi veriyor olacaksınız. Ve aklınızda bulundurun, oyun ne kadar küçük olursa olsun, her zaman bir oyun için belirleyiciler olacaktır . Modlama zorsa birçok oyuncu kendini beğenmiş hissedecek, sonuçta oyununu satın aldılar ve istediklerini yapabilecekler.

Öte yandan, oyun varlıklarını kolayca düzenlemek, çok oyunculu bir oyun için aldatma olarak kabul edilir. Kötü niyetli oyuncular, düşmanları daha dikkat çekici, duvarları şeffaf, vb. Yapmak için içeriğin yerini alabilir. belirsizlik).


1
Bir sağlama toplamı testini atlayacak kadar iyiyseniz, paketlenmiş varlıklarla uğraşacak kadar da iyisiniz. Ambalajlamanın daha güvenli olduğunu sanmıyorum.
mmyers

11

Bunun için kolay bir düzeltme var. Komut isteminde uzantıları toplu olarak yeniden adlandırabilirsiniz.

rename *.txt *.map

Ve sonra onları bir \ map klasörüne yerleştirin

Komut istemine cmd çalıştıran pencerelerden erişebilirsiniz

Bu, oyunu değiştirmek istediklerini bilen modderleri durduramayacak ve tüm içeriği takılmadan oyunu oynamak isteyenlere daha az özensiz bir izlenim bırakmayacak.

Evet, yine de düzenlenebilir olacak .. İnsanların bunu farketmesi daha az olası olacak.

Eric Robertson'un yorumuna cevap vermek için.

Oyununuzun içeriğini oyunculardan düzgün bir şekilde gizlemek istiyorsanız, bu metin dosyalarında RSA şifrelemesini kullanabilir ve bu sırada onları bir metin dosyasına birleştirebilirsiniz. Bu aşırıya kaçmanın çok ötesinde olduğundan şüphelenmeme rağmen, bu çok fazla sorun olmamalı.


1
-1 Bu gerçekten bir "düzeltme" değil. Kaynaklar hala göz için mevcut.
Erick Robertson

6
@Eric Robertson Pekala, bu onlara Quake (1) tarzını paketleme konusunda da söylenebilir. Varlıkları tamamen gizlemek için sihirli bir çözüm yok. Bu sadece sıradan bir oyuncudan onları gizlemek ve bahsettiği sorunları biraz aşmak için tasarlanmıştır. Bunları bir klasör yapısına ya da bir varlık paketine koymanın, şifreleme kullanmadığınız sürece varlıkların orada olmadığı (göze açık) olmadığı anlamına gelmez.
Wolfdawn

Dosya uzantılarının Linux'ta hiçbir önemi olmadığını biliyorum, ancak bunun Windows'ta işe yarayacağından emin misiniz?
jcora

1
@Bane Bir dosya adı herhangi bir süre önemli değildir, bunu deneyin, bir .txt dosyasını .zip, .bmp veya .xyz olarak yeniden adlandırın ve not defteri ile yeniden açın. dosya adı sadece PC'nizdeki dosyalara göz attığınız zaman, örneğin .xyz, bunlarla ilişkili belirli bir simgeye sahipse, xsoftware ile bir dosya açmak istiyorsanız, varsayılan olarak yalnızca * .x dosyalarını gösterecektir, not defteri gösterecektir. txt dosyaları, mspaint gif, jpeg, bmps, pngs, tiff, icos vb. gösterecektir. Dosya isimleri sadece uygun bir konvansiyondur (böylece dosyanın doğasını tanımlamak için dosya içindeki verileri incelemek ve analiz etmek zorunda kalmazsınız. içindekiler
wolfdawn

1
Açıkladığınız için teşekkürler! Öyleyse, Windows bu etki alanındaki Linux'tan pek farklı görünmüyor
jcora

3

Hiç profesyonelce olmadıysa, artık olmayabilir. Oyunların başında, fikri mülkiyet haklarını (IP) korumak için kendi paket biçimlerini kullandılar.

Tüm kaynakları tek bir arşive paketleyerek, altta yatan yerel dosya sisteminin parçalanması ve gereksiz işlev çağrıları gibi bazı sınırlamaların üstesinden gelebilirsiniz . Bu, müşterinin bilgisayarında paketi dağıtırken parçalanma olaylarını daha az olası hale getirir.
En kötü senaryoda, sabit disk sektörlerinize dağılmış küçük bireysel dosya kaynaklarına sahip olabilirsiniz. (SSD'lerin gelmesiyle bu nokta çoğu zaman tartışılır)

Ancak bu avantajların tümü ücretsiz (Unix) eski .tararşiv formatıyla da sağlanabilir .

Ek olarak, kendi paket biçiminizi kullanarak, dosyalama sürümleri, dosya karmaları, kodlama ve dosya işaretçilerinin / bağlantıların eksikliği gibi bazı sınırlamaları aşabilirsiniz.

Sonuç olarak , açıkça IP’nizi korumanız gerekmedikçe, Indie-development’in şeffaflığını savunuyorum.


Tarafından dile getirilen Büyük noktaları gelince MGOwen: önlemek şımartıyor şaşırtan sen, dosya uzantısı, değişim dosya özelliklerini, nadir medya biçimlerini kullanmak adlandırmak medya-header tüketim ve başka yerlerde saklayın, vb ... önlemek için olabilir meydan kaybetmek kullanacağım bir ikili seri Gerekirse ek şifreleme ve yem eklenme değişkenleriyle oyununuzun durumunu saklamak için yazar.

Feragatname: Bir oyun geliştiricisi değilim. Bu gönderiyi yalnızca başlangıç ​​noktası olarak kabul edin ...


1
"Kaybetme mücadelesini önlemek için, oyunun durumunu saklamak için ikili şifreleme yazılımı ve gerekirse şifreleştirme değişkenleri ekleyerek kullan." İnsanlar hile yapmak isterlerse hile yaparlar. Bellek içi hata ayıklayıcıda, bellekteki dört baytın altınla neyle bağdaştırıldığına bakar ve gerekirse izlerini değiştirir.
Random832

1
@ Random832 Bunun için Amin.
Lorenz Lo Sauer

Cevabınız yanlış. 6000 teneke dosya içeriğine erişmek, benim deneyimimde aynı dosyaya 1 dosyadan erişmekten 5 ila 10 kat daha yavaş. Yüklemenin SSD'ye 5 saniye, normal bir sabit diskten 15 saniye sonra aynı verileri düzenlenebilir dosyalara ayırması ve atlamaların her ikisine de 30 saniyeden fazla sürmesi durumunda (HDD ve SSD). Bu nedenle, bir nedenden ötürü artış SSD'de HDD'den daha belirgindir. (Her iki durumda da RAID yok)
Coyote

@Coyote Mesajdaki aynı nokta için tartıştığım izlenimi altındaydım ...? Parçalanma (örn., Donanım Denetleyici sınırlamaları, tablaların fiziksel sınırlamaları ...) + birçok dosya sistemi API'si başlatması (genellikle sarmalayıcılar aracılığıyla) = Yavaş
Lorenz Lo Sauer

O zaman bu özel cümle yanlıştır: "SSD'lerin gelmesiyle bu nokta tartışılır"
Coyote

1

Düzeltmesi kolaydır ve arama indekslemesi final videolarınızı vb. Bulacaktır.

Veri dosyaları için: xor ile bit çevirin

   realByte_cpp = readByte_cpp ^ 0x44; // xor

GREP'den "Altın: 250" yi gizlemek için.

Sadece aynı (rastgele) xor değeriyle kodlayın.

Sahneleri sıradan kullanıcılardan uzak tutmak için şunu deneyin: Machinarium dosya adlarını tercüme etti;

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.