Saya baru-baru ini membuat klon Space Invaders dasar, di C ++, menggunakan kerangka kerja Allegro 5. Setelah saya selesai, saya menyadari saya memiliki sekitar 10 sprite, dan DLL bernilai 13MB; beberapa pemain bahkan tidak memiliki DLL mingW, yang membuat permainan sangat membingungkan.
Bagaimana cara mengemas semua sumber daya saya dengan cara yang saya dapat dengan mudah menambahkan dan menghapus data ke permainan saya, dan untuk mengurangi ukuran yang diambil oleh sumber daya, pada dasarnya menempatkan mereka di satu tempat? Saya menggunakan kode kunci.
zziplib
untuk menyimpan semua aset saya yang biasa dalam file zip dan kemudian memuatnya dalam permainan saya melalui pipa konten kustom untuk musuh mesin. Apa yang pada dasarnya Anda cari di awal adalah cara untuk memuat file dari file zip ke memori untuk dapat menggunakannya dalam game Anda. Mengenai dll itu cukup sulit karena mereka biasanya harus berada di dir yang sama dengan executable atauWindows
atauSystem32
dir yang TIDAK direkomendasikan! Bagaimana dengan arsip SFX untuk diekstrakTEMP
dan dijalankan dari sana?Jawaban:
Sepertinya ada dua tantangan yang Anda hadapi di sini: distribusi, dan pengemasan aset.
Distribusi
Kemas seluruh aplikasi Anda ke dalam direktori sesuai keinginan Anda, lalu tempatkan direktori tingkat atas ke dalam file .zip. Bagikan file .zip itu. Ketika pengguna Anda mengekstrak zip, mereka akan memiliki folder dengan semua yang mereka butuhkan untuk menjalankan game.
Bagaimana Anda menempatkan file Anda?
Saya biasanya melakukan sesuatu seperti ini:
Kemasan Aset
Anda dapat menggunakan semacam perpustakaan kompresi (zlib, lzo) untuk memampatkan semua sumber daya game Anda (direktori res \ di atas) ke dalam satu file. Maka Anda perlu menggunakan pustaka kompresi yang sama untuk mengekstraksi konten sumber daya Anda, secara waktu nyata, untuk memuat aset Anda ke dalam gim Anda.
Lalu apa yang terjadi ketika Anda ingin menambal aset Anda? Maka Anda harus: mengkompilasi file aset baru dan mendistribusikannya ke pengguna Anda (sehingga mereka mengunduh kembali apa yang sudah mereka miliki, ditambah beberapa tambahan), atau Anda harus membangun sebuah updater (program lain untuk memelihara ) dan berurusan dengan fakta bahwa ada masalah dan file aset Anda akan rusak ...
Sejujurnya, itu tidak sepele untuk membuat itu bekerja dan saya tidak melihat hasilnya dalam situasi Anda. Direktori sederhana seharusnya cukup untuk merangkum 10 sprite Anda dan jauh lebih mudah untuk menambahkan dan menambal hal-hal: hanya perlu mengunduhnya ke direktori yang benar dan selesai.
Membangun Penginstal
Ini dengan asumsi Anda menargetkan Windows ... setelah Anda memiliki yang di atas, Anda dapat bekerja membangun installer untuk gim Anda. Saya akan menghindari metode ClickOnce yang didukung Visual Studio. Ini bukan penginstal Windows khas Anda dan dilengkapi dengan seperangkat quirks sendiri.
Lihatlah pertanyaan StackOverflow ini - ini berisi serangkaian tautan bermanfaat untuk paket pemasang yang dapat Anda gunakan. Banyak orang akhir-akhir ini sepertinya menyukai WiX . Saya tidak pernah menggunakannya sendiri. Selain itu, AdvancedInstaller dan InnoSetup adalah pilihan populer.
sumber
Anda mungkin dapat menghubungkan beberapa perpustakaan secara statis alih-alih termasuk dll. Namun jika dan bagaimana berbeda untuk setiap perpustakaan.
sumber
Anda dapat menggunakan perangkat lunak seperti Enigma untuk mengemas file Anda dan menyimpannya dalam satu .dat. Anda harus mengubah folder peluncur Anda.
sumber