Apakah tidak profesional untuk membiarkan sumber daya game terbuka?

43

Saya masih mengalami masalah dalam mengemas sumber daya saya, setelah melalui API yang rumit dan pada dasarnya hanya zip file yang melelahkan otak saya, saya pikir saya juga bisa mengemas game dengan sumber daya yang terlihat oleh mata manusia, dalam folder sederhana.

Apakah itu tidak profesional? Secara pribadi, saya belum pernah melihat game melakukan itu, itu pada dasarnya berarti bahwa pemain bisa saja mengedit apa pun yang dia inginkan dalam permainan, seperti pergi di map1.txt dan menambahkan X di suatu tempat untuk membuat dinding, atau mengubah sprite pemain ke kuda poni di MS PAINT.

Bugster
sumber
30
Anggap saja sebagai komunitas modding :)
Orin MacGregor
1
Apakah Anda seorang pengembang game profesional dengan anggaran? Saya pikir itu baik-baik saja jika Anda tidak berencana menghasilkan banyak uang dari game ini. Saya punya beberapa tips. Jika itu membuat Anda merasa lebih baik, saya biasa mengedit menyimpan file di Pertahanan X-COM / UFO
wolfdawn
6
@ArthurWulfWhite: Saya pikir daripada menghasilkan uang atau tidak, titik pemisahan adalah apa implikasi dari sumber daya modded adalah untuk permainan. Untuk MMORPG, sumber daya modded / klien mungkin memberikan keuntungan yang tidak adil kepada pemain tertentu sehingga Anda ingin mencegahnya sebanyak mungkin. Untuk banyak gim lain, klien yang ramah modding membuatnya menarik bagi komunitas modding untuk berkembang di sekitar gim Anda dan umumnya dianggap sebagai hal yang baik.
Lie Ryan
1
Aspek modding di Quake (1) ditangani dengan sangat baik, tanpa mengekspos model dan file bsp ke gamer biasa. Saya tidak berpikir itu buruk untuk menyembunyikan sesuatu sambil tetap membuatnya mudah diakses. Saya menyukai kenyataan bahwa saya dapat mengedit menyimpan file dalam X-COM, saya melihatnya sebagai fitur. Namun, akan konyol jika ada file teks bernama money.txt di mana saya bisa mengetikkan berapa banyak uang tunai yang ingin saya mulai dengan menyebabkan mengaburkan batas antara kotak pasir dan permainan.
wolfdawn
2
Saya suka cara Introversi : Masukkan file dalam file zip berganti nama, misalnya sound.dat. Menggunakan folder yang tidak dikompresi dengan beberapa ratus file membuat instalasi (de) cukup mengganggu.
Tobias Kienzler

Jawaban:

44

Tidak bukan, mengubah data permainan disebut modding, yang merupakan praktik umum dan sering dilihat sebagai efek positif. Sebenarnya bagus untuk menjaga data game setransparan mungkin, dan mengeditnya semudah mungkin. Terlebih lagi jika Anda memilih lebih banyak pemain "maju" sebagai target audiens Anda.

Alasan mengapa Anda tidak akan menemukan banyak game AAA yang menggunakan struktur folder biasa untuk data mereka adalah karena mereka menggunakan format arsip yang dioptimalkan khusus untuk mendapatkan waktu pemuatan yang lebih baik. Kelemahannya adalah transparansi yang menurun dan alat tambahan yang diperlukan dalam toolchain. Namun, untuk game yang lebih kecil, atau 2D, kedua hal ini biasanya lebih bernilai daripada waktu muat yang ditingkatkan.

Pastikan saja apa yang dilihat orang bukan hanya kekacauan besar :) taruh file ke dalam struktur folder yang tepat.

API-Beast
sumber
Berbagai
15

Selain jawaban lain, dua masalah penting yang harus Anda pertimbangkan:

Memanjakan kejutan
Katakanlah saya setengah jalan dalam permainan dan menemukan folder "video". Penasaran, saya klik salah satunya, dan kebetulan melihat cutscene terakhir dari game.

Kehilangan tantangan
Skenario yang sama, tetapi saya menemukan format permainan yang disimpan memiliki nilai untuk "emas". Saya mengubahnya dari 250 menjadi 999999999, dan berhasil. Tiba-tiba kurva kesulitan yang Anda buat dengan hati-hati, memaksimalkan kesenangan dari permainan, hilang.

Keduanya dapat menyebabkan seseorang kehilangan minat dalam permainan, sebagian jika tidak sepenuhnya. Ini bisa berakhir dalam kesan keseluruhan yang lebih rendah tentang seberapa baik permainan itu (tidak adil tetapi benar).

Pikirkan ini dalam hal target audiens Anda - pemain yang lebih muda khususnya rentan untuk merusak kesenangan mereka sendiri tanpa benar-benar memahami bahwa ini adalah apa yang mereka lakukan.

Bahkan jika Anda ingin mendorong modding, Anda mungkin masih ingin melindungi pengguna dari merusak pengalaman mereka sendiri dengan game "secara tidak sengaja".

MGOwen
sumber
4
Benar sekali. Tidak ada ruginya jika Anda harus melewati beberapa rintangan sebelum Anda dapat mod permainan. +1 untuk skenario video
wolfdawn
14

Mungkin tidak profesional adalah kata yang salah. Itu benar-benar tergantung pada permainan apakah meninggalkan file terbuka atau tidak adalah hal yang buruk.

Untuk gim singleplayer sederhana, pemain dan modder akan menyukaimu. Anda akan memberi mereka kemampuan untuk dengan mudah mengubah permainan Anda dan melakukan apa yang mereka inginkan. Dan perlu diingat, akan selalu ada modder untuk sebuah game, tidak peduli seberapa kecil gamenya. Banyak gamer akan merasa diremehkan jika modding sulit, setelah semua, mereka membeli game Anda dan mereka harus dapat melakukan apa pun yang mereka inginkan di dalamnya.

Di sisi lain, dengan mudah mengedit aset gim buruk untuk gim multipemain, karena dianggap curang. Pemain jahat dapat mengganti konten untuk membuat musuh lebih terlihat, dinding transparan, dll. Meskipun kode permainan Anda harus benar-benar menegakkan bahwa aset belum diubah, pendekatan "paket aset" memiliki manfaat membantu mencegah aktivitas ini (keamanan melalui ketidakjelasan).

SomeWritesResterved
sumber
1
Jika Anda cukup baik untuk melewati tes checksum, Anda cukup baik untuk mengacaukan aset terpaket juga. Saya tidak berpikir kemasan lebih aman.
mmyers
11

Ada perbaikan yang mudah untuk itu .. Anda bisa dengan mudah mengubah nama ekstensi dalam prompt perintah menggunakan sesuatu seperti

rename *.txt *.map

Dan kemudian menempatkannya di folder \ map

Anda dapat mengakses prompt perintah dari windows yang menjalankan cmd

Ini tidak akan menghentikan modders yang tahu mereka ingin mod game dan akan meninggalkan kesan yang kurang ceroboh pada orang-orang yang hanya ingin bermain game tanpa semua konten berkeliaran.

Ya, itu masih akan dapat diedit .. Orang hanya akan cenderung memperhatikannya.

Untuk menjawab komentar Eric Robertson

Jika Anda ingin menyembunyikan konten game Anda dari pemain, Anda dapat menggunakan enkripsi RSA pada file teks tersebut dan menggabungkannya menjadi satu file teks saat Anda sedang berada di sana. Ini seharusnya tidak terlalu merepotkan walaupun saya curiga ini terlalu berlebihan.

serigala
sumber
1
-1 Ini sebenarnya bukan "perbaikan". Sumber daya masih ada tersedia untuk mata.
Erick Robertson
6
@ Eric Robertson Nah, ini bisa dikatakan tentang mengemasnya dengan gaya Quake (1) juga. Tidak ada solusi ajaib untuk menyembunyikan aset sepenuhnya. Ini hanya dimaksudkan untuk menyembunyikan mereka dari pemain biasa dan agak menghindari masalah yang disebutkannya. Itu dikatakan menempatkan mereka dalam struktur folder atau paket aset tidak berarti aset tidak ada di sana (tersedia untuk mata) baik kecuali jika Anda menggunakan enkripsi.
wolfdawn
Saya tahu bahwa ekstensi file tidak ada artinya di Linux, tetapi apakah Anda yakin ini akan bekerja pada Windows?
jcora
1
@ Bola Nama file tidak masalah titik, coba ini, ganti nama file .txt menjadi .zip, .bmp atau .xyz dan buka kembali dengan notepad. nama file hanya penting ketika Anda meramban file di PC Anda, misalnya .xyz memiliki ikon tertentu yang terkait dengannya, jika Anda ingin membuka file dengan xsoftware, file default * .x hanya akan ditampilkan, notepad akan ditampilkan. file txt, mspaint akan menampilkan gifs, jpegs, bmps, pngs, tiffs, icos, dll. Nama file hanya merupakan konvensi yang nyaman (sehingga Anda tidak perlu melihat ke dalam dan menganalisis data di dalam file untuk mengidentifikasi sifat dari file tersebut isi
wolfdawn
1
Terima kasih telah menjelaskan! Maka Windows tampaknya tidak jauh berbeda dari Linux dalam domain itu
jcora
3

Jika pernah tidak profesional, mungkin tidak lagi. Awal permainan menggunakan format paket mereka sendiri, terutama untuk menjaga kekayaan intelektual (IP) mereka.

Anda dapat mengatasi beberapa batasan seperti fragmentasi dan pemanggilan fungsi yang tidak perlu dari sistem file asli yang mendasarinya, dengan mengemas semua sumber daya ke dalam arsip tunggal. Ini membuat peristiwa fragmentasi lebih kecil kemungkinannya ketika menggunakan paket pada PC klien.
Dalam skenario terburuk, Anda mungkin memiliki sumber daya file kecil yang tersebar di seluruh sektor hard disk Anda. (Dengan kedatangan SSD, titik ini sering diperdebatkan)

Tetapi semua manfaat ini juga dapat diperoleh dengan .tarformat arsip lama gratis (Unix) .

Selain itu, dengan menggunakan format paket Anda sendiri, Anda dapat mengatasi keterbatasan seperti kurangnya versi, hash file, encoding dan pointer / tautan di dalam file, untuk menyebutkan beberapa.

Sebagai penutup , saya akan menyarankan transparansi dalam pengembangan Indie, kecuali jika Anda secara eksplisit perlu melindungi IP Anda.


Adapun poin-poin hebat yang diajukan oleh MGOwen: Untuk mencegah Spoiling kejutan Anda dapat mengubah nama ekstensi file, mengubah atribut file, menggunakan format media yang tidak biasa, memotong header media dan menyimpannya di tempat lain, dll ... Untuk mencegah kehilangan tantangan gunakan serialisasi biner penulis untuk menyimpan status permainan Anda, dengan enkripsi tambahan dan variabel umpan jika Anda harus.

Penafian: Saya bukan pengembang game. Hanya anggap posting ini sebagai titik awal ...

Lorenz Lo Sauer
sumber
1
"Untuk mencegah Losing challenge, gunakan penulis serialisasi biner untuk menyimpan status game Anda, dengan enkripsi tambahan dan variabel umpan jika Anda harus." Jika orang ingin menipu mereka akan menipu. Dengan debugger di-memori mencari apa yang empat byte dalam memori berkorelasi dengan emas Anda dan melacak perubahan itu, jika perlu.
Random832
1
@ Random832 Amin untuk itu.
Lorenz Lo Sauer
Jawaban Anda salah. Mengakses konten 6000 file nyaring adalah antara 5 hingga 10 kali lebih lambat dalam pengalaman saya daripada mengakses konten yang sama dari 1 file. Untuk kasus di mana memuat berlangsung 5 detik pada SSD, 15 detik dari hard drive normal memecah data yang sama ke file yang dapat diedit dan memuat melompat ke lebih dari 30 detik pada keduanya (HDD dan SSD). Jadi, untuk beberapa alasan kenaikannya lebih terasa pada SSD daripada pada HDD. (Tidak ada RAID dalam kedua kasus)
Coyote
@Coyote Saya mendapat kesan bahwa saya berpendapat untuk poin yang sama dalam posting ...? Fragmentasi (yaitu batasan-batasan Hardware Controller, batasan fisik piring-piring ...) + banyak permintaan API sistem file (seringkali melalui pembungkus) = Lambat
Lorenz Lo Sauer
Kalimat khusus ini salah kalau begitu: "Dengan kedatangan SSD, poin ini diperdebatkan"
Coyote
1

Sangat mudah untuk memperbaiki & jika tidak, pengindeksan pencarian akan menemukan video final Anda, dll. Jadi,

Untuk file data: flip bit dengan xor

   realByte_cpp = readByte_cpp ^ 0x44; // xor

Untuk menyembunyikan "Emas: 250" dari GREP.

Cukup enkode dengan nilai xor (acak) yang sama.

Untuk menjauhkan adegan dari pengguna biasa, coba ini: Machinarium menerjemahkan nama file sehingga \ video menjadi \ 0101 dan semua file kemudian memiliki id 8-biner-digit diikuti oleh .101 untuk menghentikan asosiasi file.

pengguna1212212
sumber