Demo (dan game nyata) Perlindungan

9

Dalam beberapa bulan saya berencana untuk mulai memamerkan game (semoga komersial) yang saya kerjakan kepada publik (internet). Masalahnya adalah, selain screenshot dan trailer (katakanlah fungsionalitas fitur), bagaimana cara membuat demo yang benar-benar dapat dilindungi?

Biarkan saya jelaskan sedikit. Gim ini adalah RPG lintas platform. Saat ini, cara saya memiliki kode permainan adalah membaca di peta, karakter, dll data dari file dan yang memutuskan segala sesuatu yang memungkinkan saya untuk memperluas dunia / cerita hanya dengan mengkonfigurasi file dan menambahkan aset.

Artinya, kekhawatiran saya adalah jika saya membuat versi demo dari gim, yang artinya gim sebenarnya tetapi semua aset / file konfigurasi / dll dihapus sehingga hanya demo dengan peta / level pertama. Apakah ada cara untuk melindungi terhadap seseorang saat itu mengeluarkan datapack game nyata (ketika dirilis) dan sekarang tiba-tiba siapa pun dengan demo EXE dapat memainkan game nyata?

Perlindungan demo agak menjadi prioritas pertama saya karena saya ingin demo di luar sana untuk sementara waktu sebelum gim yang sebenarnya dirilis. Saya selalu dapat memutuskan metode perlindungan apa yang saya pilih dari game sebenarnya nanti (sebelum dirilis, tapi masih nanti ..)

Saya kira intinya adalah apakah ada cara nyata untuk melindungi game (Saya tidak ingin membatasi pengguna untuk harus melakukan pemeriksaan online karena game ini akan bersifat lintas platform dan tidak memerlukan internet untuk memainkannya). Hal terakhir yang ingin saya lakukan adalah mengacaukan pengguna yang sah. Dan saya ingin membiarkan aset tetap terbuka jika memungkinkan karena itu hanya berarti dengan mudah menambal folder dan memungkinkan modder untuk sedikit campur aduk.

Maksudku, bahkan jika saya membuat sistem lisensi kunci dasar, apa yang benar-benar menghentikan 1 orang untuk mengunggah kunci mereka dan salinan permainan di suatu tempat? Saya telah melihat orang-orang berbicara tentang melakukan pembaruan yang sering sehingga perubahan biner dan mereka harus kembali memecahkan permainan. Tapi, siapa yang perlu memecahkan game sama sekali ketika Anda bisa mendapatkan 1 salinan sah dan kemudian menyebar ke mana-mana?

Saya tidak yakin apakah mungkin saya kehilangan sesuatu, saya hanya berusaha memastikan tidak. Apakah itu benar-benar hanya bermuara pada:

  1. Menampar perlindungan lisensi kunci dasar di atasnya.
  2. Hapus file aset / konfigurasi dari demo
  3. Berharap yang terbaik

Setiap dan semua saran sangat dihargai! Saya sangat baru dalam hal ini; -;)

Maaf jika ini duplikat! Tidak dapat menemukan banyak tentang konsep demo.

Zyaga
sumber
Lepaskan sebagai file yang dapat dieksekusi yang hanya akan membaca file level pertama dan tidak ada yang lain? Ini demo bukan produk akhir. Mungkin Anda bisa menguraikan mengapa demo executable akan tiba-tiba memiliki kemampuan penuh dengan menambahkan "paket data" apa pun itu? Jujur saja, kekhawatiran ini sama sahnya dengan "bagaimana jika seseorang melepaskan permainan penuh kepada orang lain" yang akan menghasilkan pertanyaan ini tentang pembajakan secara umum dan tidak hanya melindungi demo Anda dari peningkatan yang tidak sah.
SpartanDonut
Code benar-benar permainan lengkap, kecuali saya ingin melakukan cabang atau sesuatu. Maksud saya, saya memiliki banyak fungsi dan demo yang saya buat. Saya ingin menjadi sesuatu yang bahkan setelah dirilis, pengguna dapat mengunduh dan bermain sebelum mereka bahkan membeli. Jadi saya kira itu sama dengan game penuh dalam arti tertentu. Saya masih bertanya-tanya apakah saya berada di jalur yang benar dengan 3 poin peluru terakhir, alias tidak banyak yang bisa Anda lakukan. Lakukan saja itu dan berharap yang terbaik. x:
Zyaga

Jawaban:

12

Sudahkah Anda mempertimbangkan hardcoding sesuatu seperti batas waktu ke versi demo mesin?

Masalahnya adalah, tidak peduli seberapa banyak Anda melindungi demo Anda, gim tersebut akan dibajak entah bagaimana begitu keluar. Baik itu dengan menggunakan demo atau hanya dengan menggunakan game utama, itu akan terjadi jika game itu cukup populer.

Orang yang tidak ingin membayar gim Anda tidak akan membayar gim Anda.

Orang yang ingin membayar gim Anda akan membayar gim Anda.

Ini berlaku untuk apa saja, dari game indie terkecil hingga triple-A title terbesar - tentang satu-satunya cara untuk menyiasatinya adalah dengan membuat koneksi ke server Anda tidak hanya wajib tetapi juga terkait gameplay, yaitu MMO, daripada Assasin konyol Pengakuan DRM yang selalu online. Karena Anda sudah mengatakan itu bukan pilihan, saya sarankan Anda menerimanya.

Sebagai pengembang independen, cara terbaik bagi Anda untuk mendapatkan lebih banyak penjualan adalah dengan lebih banyak mengawasi permainan Anda. Orang-orang yang tidak cenderung pembajakan akan memainkan demo Anda dan kemudian membeli permainan atau tidak. Orang-orang yang cenderung pembajakan dapat memainkan demo Anda, menemukan aset seperti yang Anda jelaskan, dan seterusnya, lalu masih mungkin atau mungkin tidak membeli permainan.

Manusia Timah
sumber
Ini seperti yang saya harapkan. Ini sedikit mengecewakan, atau lebih tepatnya hanya menyebalkan bahwa itu masalahnya, tapi itulah caranya! Saya pikir apa yang bisa saya lakukan adalah sedikit kode cabang hanya sehingga Anda dapat memainkan save default (tidak ada menu memuat tersedia sama sekali) dan kemudian hard code bahwa jika permainan tidak mengenali peta utama (yang memiliki semua fitur dasar / utama yang tersedia di dalamnya), maka itu akan keluar. Seseorang dapat memecahkannya dan membuatnya untuk memainkan data nyata, tetapi pada saat itu mereka hanya akan mengeluarkan game nyata dengan serial dan dilakukan. : P
Zyaga
2
Bahkan jika mereka tidak membeli gim, mereka mungkin memiliki teman yang melihat gim, menyukainya, lalu membelinya. Anda tidak akan dapat menghentikan pembajakan (bahkan solusi anti pembajakan dengan anggaran besar tidak dapat menghentikannya), jadi saya sarankan Anda jangan terlalu khawatir tentang hal itu. Untuk menghindari membuatnya terlalu mudah, Anda dapat melakukan hardcode sesuatu ke exe demo sehingga hanya membaca peta pertama tidak peduli berapa banyak yang ada, atau batas waktu seperti @ Amadeus9 katakan, tetapi kemudian Anda hanya bisa berharap yang terbaik.
Christian
Terima kasih @Christian! Lebih banyak umpan balik bahwa itu adalah cara yang benar untuk pergi! ^ _ ^
Zyaga
@WeakDev, semua poin bagus di sini. Mereka yang telah melewati rute "terlalu ketat" hanya merusak basis pelanggan mereka. Para perompak adalah yang memiliki waktu yang mudah karena semua DRM dielakkan dalam waktu 24 jam. Berkonsentrasi pada kualitas permainan dan target audiens Anda, dan Anda tidak bisa salah :)
Moo-Juice
Aku tidak akan terlalu merendahkan dirimu, Dev lemah. Pertama-tama, saya pikir Anda mengambil langkah yang cukup bagus untuk mengurangi pembajakan dengan menawarkan demo sama sekali. Saya pikir alasan utama pembajakan game indie adalah kurangnya kesempatan untuk mencobanya sebelum mengambil risiko untuk membelinya. Saya pikir itu cukup umum untuk game non-demo untuk dibajak sebagai semacam percobaan. Membeli sama sekali tidak keluar dari pertanyaan jika orang tersebut memiliki pengalaman positif.
Sean O'Hollaren
5

Tidak yakin apa yang Anda maksud dengan "cabang" di komentar Anda, tetapi dimungkinkan untuk membuat dua executable yang berbeda (versi demo dan lengkap) dari pohon kode sumber yang sama menggunakan kompilasi bersyarat . Anda dapat membuat opsi waktu kompilasi untuk hanya menyertakan kemampuan untuk memutar episode pertama. (Misalnya, dalam C ++, Anda dapat menggunakan #ifdefperintah di sekitar kode yang hanya ditujukan untuk versi lengkap.) Anda dapat meminta versi demo menghasilkan setidaknya efek gameplay berikut:

  • Aset episode pertama disimpan di zipfile, dan versi demo memeriksa tanda tangan digital di zipfile ini sebelum memulai. Untuk menggunakan mod, pemain harus membayar untuk versi lengkap.
  • Perombakan ulang pengodean opcode dalam bytecode scripting Anda saat mengkompilasi demo.
  • Hapus sepenuhnya penangan untuk satu atau lebih skrip skrip yang hanya digunakan dalam episode selanjutnya. Ini akan menyebabkan potongan-potongan yang ditetapkan dalam episode-episode selanjutnya gagal walaupun modifikasi modifikasi file dan pengkodean opcode ditambal.
Damian Yerrick
sumber
1
Satu trik lagi adalah dengan meng-hardcode hash MD5 / SHA dari setiap file level demo individual ke dalam versi demo. Ini memiliki keuntungan bahwa, sementara hanya mengubah satu hash / kunci tanda tangan cukup mudah dengan hex editor, meningkatkan jumlah hash (untuk meningkatkan jumlah level yang dapat dimainkan) agak sulit, setidaknya jika ada banyak data lain mengikuti mereka.
Ilmari Karonen