Saya telah mengembangkan mesin game di c / c ++ dan DirectX.
Saya memiliki mesin ubin untuk peta, sprites pemain animasi / npc, berbicara dengan npc, menu, dan perubahan level tetapi tidak ada permainan, hanya terasa kosong.
Saya telah melihat sekeliling dan terus mendengar kata kunci jawaban tetapi saya ingin tahu bagaimana menerapkan cerita dalam permainan saya.
Beberapa orang mengatakan file simpan yang memegang bendera yang mengatur setiap tindakan / keadaan yang mungkin tersedia dalam game tetapi ini terdengar menggelikan.
Agak ambisius tetapi saya bertujuan untuk mendapatkan game seperti game Pokemon / Final Fantasy yang lebih lama.
Apakah ada yang tahu bagaimana game ini bekerja atau teori yang digunakan?
Saya telah mencari beberapa saat dan akan sangat menghargai masukan yang dimiliki orang.
Anda bisa menggunakan set status yang memungkinkan game Anda. NPC Anda dan dunia Anda akan mengetahui status tersebut dan bereaksi / menampilkannya. Anda mungkin juga ingin mendefinisikan serangkaian pemicu yang akan diaktifkan oleh beberapa tindakan / peristiwa.
Misalnya, mengalahkan lawan tertentu akan mengaktifkan pelatuk A, yang akan menambahkan status S ke dunia Anda dan di negara S karakter Anda akan tersengat listrik ketika berjalan keluar dari sarang lawan-lawannya. Atau hujan di luar. Atau Anda menemukan permen langka. Anda mengerti maksudnya.
Dengan dua tambahan sederhana ke gim Anda, Anda bisa membuatnya lebih "hidup".
Pastikan Anda juga membuat latar belakang yang kaya untuk dunia, karakter, dan alur cerita Anda dan pastikan gim ini konsisten dengan latar belakang itu. Rencanakan kisah Anda terlebih dahulu.
Coba juga Gamedev
sumber
Seperti disebutkan sftrabbit, ini adalah aplikasi yang sempurna untuk mesin keadaan.
Pada dasarnya, Anda memiliki semacam struktur pohon. Setiap daun / simpul berisi informasi tentang keadaan saat ini, dan aturan untuk maju ke keadaan berikutnya. Setiap node dapat berisi beberapa pintu keluar, tergantung pada seberapa kompleks Anda membutuhkan alur plot / permainan Anda.
Analog yang bagus dan sangat longgar untuk ini adalah buku Choose Your Own Adventure . Setiap halaman berisi beberapa teks yang menggambarkan bagian dari cerita, dan keputusan yang bisa dibuat pemain. Setiap keputusan mengarah ke halaman lain. Beberapa halaman mungkin menautkan kembali ke halaman yang sebelumnya dikunjungi, dll.
Gim petualangan berbasis teks lama seperti Zork dan Leather Goddesses of Phobos , dan gim Sierra * Quest yang terkenal ( SpaceQuest yang dibintangi Roger Wilco, penjarah ruang angkasa adalah salah satu favorit saya ) menggunakan versi yang sangat sederhana dari jenis sistem ini. Setiap kamar di peta adalah negara, dengan pintu keluar yang terhubung ke negara bagian atau kamar lain. Mendapatkan item menetapkan bendera di objek status global. Setiap kamar akan memeriksa bendera tersebut untuk menentukan karakter atau item mana yang tersedia di setiap kamar.
Jadi, negara Anda dapat diimplementasikan sebagai kelas atau struct, masing-masing dengan properti untuk:
Daftar aset - daftar pointer ke latar belakang grafik dan hal lain yang Anda perlukan untuk menampilkan ruang / keadaan / level.
Syarat masuk - pencapaian yang harus sudah dicapai untuk memasuki level
Keluar - tautan ke setiap kemungkinan keluar "berikutnya". Utara, Selatan, Timur, dan Barat adalah beberapa contohnya, tetapi Anda juga dapat menyertakan Door1, Teleport, dll. Saat mencoba untuk keluar dari kamar, atau menentukan pintu keluar / pintu "terbuka", game Anda dapat memeriksa status berikutnya untuk melihat apakah kondisi entri telah dipenuhi, dan mengubah cara keluar ditampilkan di layar, atau tidak memungkinkan pemain untuk bergerak ke arah itu.
Jika Anda ingin berkhayal, Anda bisa menyertakan versi negara bagian yang berbeda dengan kondisi masuk yang berbeda, yang akan mengubah cara ruangan disajikan kepada pemain, atau tindakan yang tersedia di ruangan itu.
Layar mulai Anda, kematian / permainan lebih dari layar, dll semua bisa menyatakan dalam sistem, mirip dengan cara Anda menavigasi antara layar menu. Bahkan, jika Anda memiliki sistem menu seperti itu, Anda dapat menggunakannya untuk ini. Alih-alih panah atas / bawah dan "masuk" untuk menavigasi menu, Anda akan mencari acara tertentu di dalam area bermain game, seperti menginjak teleport pad, berjalan keluar dari sisi kanan layar, dll.
Dari sudut pandang admin, pertimbangkan apakah Anda dapat memanfaatkan atau tidak membuat alat admin yang memungkinkan Anda membuat mesin negara. Tambahkan kamar ke peta, buat tautan di antaranya, tetapkan aset seperti gambar latar, dll. Ini mungkin berlebihan untuk upaya pertama Anda; terlalu mudah untuk terserap dalam membangun alat admin, dan tidak pernah benar-benar menyelesaikan permainan. Ingat - Anda tidak menulis middleware, melainkan permainan.
Semoga ini membantu.
sumber
Saya dulu menggunakan mesin permainan ini yang disebut VERGE . Bermain-main dengan itu dan lihat bagaimana menangani acara, saya sangat menyukainya. Ini juga open source, jadi Anda bisa lihat bagaimana mereka mengimplementasikannya, di sini . Berikut deskripsi singkatnya.
Setiap peta memiliki berbagai lapisan. Lapisan grafis, yang mungkin ada beberapa. Lapisan obstruksi. Dan kemudian ada lapisan zona. Lapisan zona inilah yang penting di sini. *
Setiap ubin memiliki nomor untuk menunjukkan zona mana itu bagian. Setiap zona dapat diaktifkan dalam satu dua cara dasar. Entah zona diaktifkan pada saat pemain memasukkannya, atau memiliki apa yang disebut aktivasi berdekatan. Aktivasi yang berdekatan berarti bahwa ketika pemain berdiri berdekatan dengan salah satu ubin zona dan menekan beberapa tombol yang ditentukan sebagai kunci aktivasi, zona diaktifkan.
Apa yang terjadi ketika suatu zona diaktifkan adalah ia memanggil suatu fungsi dari sebuah skrip. Jadi, Anda perlu menanamkan semacam bahasa scripting. VERGE memiliki bahasa sendiri yang disebut VergeC, dan juga memungkinkan lua. Saya sendiri lebih suka menggunakan python.
Setelah Anda mengatasi rintangan ini, Anda sekarang memiliki kekuatan luar biasa dalam pembuatan skrip acara. Anda memiliki bahasa pemrograman lengkap yang dapat digunakan untuk menyimpan dan bertindak berdasarkan data seperti statistik pemain, bendera cerita, dll ...
* Ada juga lapisan Entity. Entitas bertindak seperti zona aktif seluler yang berdekatan.
sumber