Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Game Development
  2. Platform Agnostic
Gamedevelopment

Cara Membangun JRPG: Primer untuk Pemaju Permainan

by
Length:LongLanguages:

Malay (Melayu) translation by Aisyah Arrafah (you can also view the original English article)

Artikel ini adalah gambaran keseluruhan peringkat tinggi untuk membuat JRPG (Permainan Peranan Jepun) seperti permainan Final Fantasy awal. Kami akan melihat seni bina dan sistem yang membentuk rangka JRPG, bagaimana untuk menguruskan mod permainan, cara menggunakan tilemaps untuk memaparkan dunia, dan bagaimana untuk mengodkan sistem tempur RPG.

Nota: Artikel ini ditulis menggunakan bahasa kod pseudo bahasa Java, tetapi konsepnya boleh digunakan untuk sebarang persekitaran pembangunan permainan.


Kandungan



Tempat lahir yang tidak mungkin JRPG

On of Dragon Warrior iconic enemies - the slime

Lendir - salah satu musuh ikon Dragon Warrior.

Pada tahun 1983, Yuji Horii, Koichi Nakamura dan Yukinobu Chida terbang ke Amerika dan menghadiri AppleFest '83, perhimpunan pemaju mempamerkan ciptaan terbaru mereka untuk Apple II. Mereka terpesona dengan versi terbaru RPG yang dipanggil Wizardry.

Setelah kembali ke Jepun, mereka memutuskan untuk membuat Dragon Warrior, RPG yang serupa tetapi diperkemas untuk NES. Ia adalah hit besar, menentukan genre JRPG. Dragon Warrior tidak juga tambang di Amerika, tetapi beberapa tahun kemudian permainan lain dilakukan.

Pada tahun 1987, Final Fantasy yang asal dikeluarkan, membiak salah satu francais permainan video jualan terbaik di Bumi yang menjadi, sekurang-kurangnya di Barat, JRPG ikonik.



Talk Genre

Genre permainan tidak pernah ditakrifkan dengan tepat - mereka lebih banyak koleksi konvensyen kabur. RPG cenderung mempunyai sistem meratakan, satu atau beberapa watak pemain dengan kemahiran dan statistik, senjata dan perisai, mod pertempuran dan penerokaan, dan naratif yang kuat; Kemajuan permainan sering dicapai dengan memajukan peta.

RPGs Jepun yang RPGs yang dicipta dalam acuan pahlawan naga; mereka berada lebih linear, pertempuran sering mengikut dan biasanya dua jenis Peta: peta dunia dan peta tempatan. JRPG Archetypal termasuk Dragon Warrior, Final Fantasy, Arms Liar, Phantasy Star dan Chrono Trigger. Jenis JRPG yang akan kita bincangkan dalam artikel ini adalah serupa dengan Final Fantasy awal.

jrpg-snes-jrpgs


Lima Sebab Anda Harus Membuat JRPG

1. Mereka telah Menguji Ujian Masa

Permainan seperti Final Fantasy VI dan Chrono Trigger masih sangat menyeronokkan untuk dimainkan. Sekiranya anda membuat JRPG anda sedang mempelajari format permainan yang abadi yang pemain moden masih sangat mudah menerima. Mereka membuat rangka kerja yang hebat untuk menambah sentuhan dan percubaan anda sendiri - sama ada dalam naratif, persembahan atau mekanik. Ia satu perkara yang hebat jika anda boleh membuat permainan yang masih dimainkan dan dinikmati beberapa dekad selepas pelepasan pertama!

2. Mekanik Permainan Berlaku

Call of Duty, salah satu permainan FPS yang paling popular di dunia, menggunakan elemen RPG; ledakan permainan sosial sekitar FarmVille pada dasarnya merupakan klon SNES Harvest Moon SNG; dan bahkan permainan perlumbaan seperti Gran Turismo mempunyai tahap dan pengalaman.

3. Kekangan Membina Kreativiti

Sama seperti penulis mungkin terintimidasi dengan kertas kosong, seorang pemaju permainan mungkin mendapati diri mereka lumpuh dengan banyak pilihan yang mungkin ketika merancang permainan baru. Dengan JRPG banyak pilihan telah diputuskan untuk anda, jadi anda tidak mempunyai kelumpuhan pilihan itu, anda bebas mengikuti konvensyen untuk kebanyakan keputusan dan menyimpang daripada konvensyen di tempat yang penting kepada anda.

4. Ia boleh dilakukan sebagai Projek Solo

Final Fantasy hampir seluruhnya dikodkan oleh seorang pengaturcara tunggal, Nasir Gebelli, dan dia melakukannya dalam perhimpunan! Dengan alat dan bahasa moden, jauh lebih mudah untuk mencipta jenis permainan ini. Bahagian terbesar RPG yang paling bukan pengaturcaraan itu kandungannya - tetapi ini tidak perlu berlaku untuk permainan anda. Sekiranya anda mendailinya semula sedikit pada kandungan dan memberi tumpuan kepada kualiti lebih banyak kuantiti maka JRPG adalah projek solo yang hebat.

Mempunyai satu pasukan boleh membantu dengan mana-mana permainan, dan anda mungkin mahu menggunakan sumber seni dan muzik, atau menggunakan beberapa aset kreatif yang sangat baik dari tempat-tempat seperti opengameart.org. (Nota editor: Laman web kakak kami GraphicRiver juga menjual lembaran sprit.)

5. Untuk Keuntungan!

JRPGs mempunyai beberapa dedikasi dan beberapa indie JRPG (seperti yang digambarkan di bawah) telah dilakukan secara komersial dan boleh didapati di platform seperti Steam.

jrpg-indies


Seni bina


JRPGs berkongsi begitu banyak konvensyen dan mekanik yang mungkin untuk memecah JRPG biasa ke dalam beberapa sistem:

jrpg-architecture

Dalam pembangunan perisian satu corak dilihat berulang-ulang: lapisan. Ini merujuk kepada bagaimana sistem program membina di atas satu sama lain, dengan lapisan yang lebih luas di bahagian bawah dan lapisan yang lebih rapat menangani masalah di tangan berhampiran bahagian atas. JRPGs tidak berbeza dan dapat dilihat sebagai beberapa lapisan - lapisan bawah berurusan dengan fungsi grafik asas dan lapisan atas berurusan dengan pencarian dan statistik watak.

Petua: Apabila membangunkan sistem baru, sebaiknya bermula dengan membuat lapisan bawah terlebih dahulu dan kemudian bergerak lapisan dengan lapisan ke bahagian atas. Menggunakan middleware membantu anda melangkau beberapa lapisan yang lebih rendah yang biasa digunakan oleh banyak permainan. Pada gambar rajah seni bina di atas, semua lapisan di bawah garis putus-putus dikendalikan oleh enjin permainan 2D.

Seperti yang anda lihat dari rajah seni bina di atas, terdapat banyak sistem yang membentuk JRPG tetapi kebanyakan sistem boleh dikumpulkan bersama sebagai mod berasingan permainan. JRPG mempunyai mod permainan yang sangat berbeza; mereka mempunyai peta dunia, peta tempatan, mod pertempuran dan beberapa mod menu. Mod ini hampir separuh sepenuhnya, kepingan kod yang serba lengkap, membuat setiap satu mudah dibina.

Mod adalah penting tetapi mereka akan menjadi sia-sia tanpa kandungan permainan. RPG mengandungi banyak fail peta, definisi raksasa, baris dialog, skrip untuk menjalankan cutscenes dan kod gameplay untuk mengawal bagaimana pemain berlangsung. Meliputi bagaimana untuk membina JRPG secara terperinci akan mengisi keseluruhan buku, jadi kami akan menumpukan perhatian kepada beberapa bahagian yang paling penting. Mengendalikan mod permainan secara bersih adalah penting untuk menghasilkan JRPG yang boleh diurus, jadi itu sistem pertama yang akan kita pelajari.



Mengurus Permainan Negeri


Imej di bawah menunjukkan gelung permainan mengepam, memanggil fungsi kemas kini setiap bingkai. Inilah denyutan jantung permainan dan hampir semua permainan disusun dengan cara ini.

jrp-gameloop

Pernahkah anda memulakan projek tetapi terhenti kerana anda mendapati terlalu sukar untuk menambah ciri-ciri baru atau diganggu oleh pepijat misteri? Mungkin anda cuba mengoyak semua kod anda ke dalam fungsi kemas kini dengan struktur kecil dan mendapati kod tersebut menjadi kekacauan samar-samar. Penyelesaian yang sangat baik untuk jenis masalah ini adalah untuk memisahkan kod tersebut ke dalam keadaan permainan yang berbeza, memberikan pandangan yang lebih jelas mengenai apa yang berlaku.

Alat gamedev biasa adalah mesin negara; ia digunakan di seluruh tempat, untuk mengendalikan animasi, menu, aliran permainan, AI ... ia adalah alat penting untuk dimiliki dalam kit kami. Untuk JRPG kita boleh menggunakan mesin negeri untuk mengendalikan mod permainan yang berbeza. Kami akan melihat pada mesin keadaan biasa dan kemudian kami akan mencampurinya sedikit, untuk menjadikannya lebih sesuai untuk JRPG. Tetapi, mari kita mengambil sedikit masa untuk mempertimbangkan aliran permainan umum yang digambarkan di bawah.

jrpg-states-and-transistions

Dalam JRPG tipikal, anda mungkin akan bermula dalam mod permainan peta tempatan, percuma untuk bersiar-siar di sekitar bandar dan berinteraksi dengan penduduknya. Dari bandar yang anda boleh pergi - di sini anda akan memasuki mod permainan yang berbeza dan melihat peta dunia.

Peta dunia bertindak sangat mirip dengan peta setempat tetapi pada skala yang lebih besar; anda boleh melihat gunung dan bandar, bukan pokok dan pagar. Semasa di peta dunia jika anda kembali ke bandar, mod akan kembali ke peta setempat.

Sama ada peta dunia atau peta setempat, anda boleh membawa menu untuk menyemak watak anda, dan kadang-kadang di peta dunia anda akan dibuang ke dalam pertempuran. Rajah di atas menerangkan mod permainan dan peralihan; ini adalah aliran asas permainan JRPG dan apa yang akan kami buatkan permainan kami dari negeri.

Mengendalikan Kerumitan Dengan Mesin Negeri

Mesin negara, untuk tujuan kami, adalah sekeping kod yang memegang semua mod pelbagai permainan kami, yang membolehkan kami berpindah dari satu mod ke yang lain, dan kemas kini dan membuat apa pun mod semasa.

Bergantung kepada bahasa pelaksanaan mesin negara biasanya terdiri daripada kelas StateMachine dan antara muka, IState, yang dilaksanakan oleh semua negeri.

Petua: Antara muka hanya kelas dengan definisi fungsi ahli tetapi tiada pelaksanaan. Kelas yang mewarisi dari antara muka diperlukan untuk melaksanakan fungsi ahlinya. Ini bermakna antara muka tidak mempunyai kod, ia hanya menentukan bahawa kelas-kelas lain menyediakan fungsi tertentu. Ini membolehkan kelas yang berbeza digunakan dengan cara yang sama kerana kita tahu mereka mempunyai kumpulan fungsi ahli yang ditentukan oleh antara muka yang sama.

Mesin negara paling digambarkan dengan melakar sistem asas dalam pseudocode:

Kod di atas menunjukkan mesin keadaan mudah tanpa pemeriksaan ralat.

Mari lihat bagaimana kod mesin negara di atas digunakan dalam permainan. Pada permulaan permainan, StateMachine akan diwujudkan, semua keadaan permainan yang berbeza ditambah dan keadaan awal ditetapkan. Setiap negeri secara unik dikenal pasti dengan nama String yang digunakan ketika memanggil fungsi perubahan keadaan. Hanya ada satu keadaan semasa, mCurrentState, dan ia diberikan dan dikemas kini setiap gelung permainan.

Kod mungkin kelihatan seperti ini:

Contohnya, kami membuat semua negeri yang diperlukan, tambahnya ke StateMachine dan tetapkan keadaan permulaan ke menu utama. Sekiranya kita berlari kod ini, MainMenuState akan diberikan dan dikemas kini dahulu. Ini mewakili menu yang anda lihat dalam kebanyakan permainan ketika pertama kali boot, dengan pilihan seperti Game Start dan Load Game.

Apabila pengguna memilih Game Mula, MainMenuState memanggil sesuatu seperti gGameMode.Change ("localmap", "map_001") dan LocalMapState menjadi keadaan semasa yang baru. Negeri ini kemudian akan mengemaskini dan menjadikan peta itu, membolehkan pemain untuk memulakan meneroka permainan.

Rajah di bawah menunjukkan visualisasi mesin negeri bergerak antara WorldMapState dan BattleState. Dalam permainan ini akan setara dengan pemain yang mengembara di seluruh dunia, diserang oleh raksasa, masuk ke mod tempur, dan kemudian kembali ke peta.

jrpg-state-machine

Mari lihat cepat antara muka negeri dan kelas EmptyState yang mengimplementasikannya:

Antara muka IState memerlukan setiap negeri mempunyai empat kaedah sebelum ia boleh digunakan sebagai keadaan di mesin negara: Kemas kini(), Render(), OnEnter() dan OnExit().

Kemas kini() dan Render() dipanggil setiap bingkai untuk keadaan yang sedang aktif; OnEnter() dan OnExit() dipanggil apabila menukar keadaan. Selain daripada itu semua agak mudah. Sekarang anda tahu ini anda boleh membuat semua jenis negeri untuk semua bahagian permainan yang berbeza.

Itulah mesin keadaan asas. Ia berguna untuk banyak situasi tetapi apabila berurusan dengan mod permainan, kami dapat memperbaikinya! Dengan sistem semasa, perubahan negeri boleh mempunyai banyak overhead - kadang-kadang apabila berubah ke BattleState kita akan mahu meninggalkan WorldState, menjalankan pertempuran, dan kemudian kembali ke WorldState dalam persediaan yang tepat sebelum pertempuran. Operasi semacam ini boleh menjadi kekok menggunakan mesin negara standard yang telah kami jelaskan. Penyelesaian yang lebih baik adalah dengan menggunakan timbunan negeri.

Membuat Logik Permainan Lebih Mudah Dengan Stack Negeri

Kita boleh menukar mesin keadaan piawai ke dalam timbunan negeri-negeri, seperti yang ditunjukkan pada gambar di bawah. Sebagai contoh, MainMenuState ditolak pada timbunan terlebih dahulu, pada permulaan permainan. Apabila kita memulakan permainan baru, LocalMapState didorong di atasnya. Pada ketika ini MainMenuState tidak lagi diberikan atau dikemas kini tetapi sedang menunggu di sekitar, bersedia untuk kami kembali.

Seterusnya, jika kita memulakan pertempuran, BattleState ditolak di bahagian atas; apabila pertempuran berakhir, ia muncul dari timbunan dan kita boleh meneruskannya pada peta dengan tepat di mana kita berhenti. Sekiranya kita mati dalam permainan maka LocalMapState muncul dan kita kembali ke MainMenuState.

Rajah di bawah memberikan visualisasi timbunan keadaan, menunjukkan InGameMenuState ditolak pada timbunan dan kemudian muncul.

jrpg-state-stack

Sekarang kita mempunyai idea bagaimana kerja stack itu, mari kita lihat beberapa kod untuk melaksanakannya:

Kod tindanan negara di atas tidak mempunyai pemeriksaan kesilapan dan agak mudah. Negeri-negeri boleh ditolak ke timbunan dengan menggunakan Push() panggilan dan muncul dengan panggilan Pop(), dan negeri di bahagian paling atas timbunan adalah yang dikemas kini dan diberikan.

Menggunakan pendekatan berasaskan timbunan adalah baik untuk menu, dan dengan sedikit pengubahsuaian ia juga boleh digunakan untuk kotak dialog dan pemberitahuan. Sekiranya anda merasa mencabar maka anda boleh menggabungkan kedua-duanya dan mempunyai mesin negara yang juga menyokong susunan.

Menggunakan StateMachine, StateStack, atau beberapa kombinasi kedua-dua mewujudkan struktur yang sangat baik untuk membina RPG anda.

Tindakan Seterusnya:

  1. Laksanakan kod mesin negara dalam bahasa pengaturcaraan kegemaran anda.
  2. Buat MenuMenuState dan GameState mewarisi dari IState.
  3. Tetapkan keadaan menu utama sebagai keadaan permulaan.
  4. Memiliki kedua-dua negeri memberikan imej yang berbeza.
  5. Apabila menekan butang, ubah keadaan dari menu utama ke keadaan permainan.


Peta


Peta menerangkan dunia; padang pasir, kapal angkasa, dan hutan boleh diwakili menggunakan tilemap. Sebuah tilemap adalah cara menggunakan sejumlah kecil imej kecil untuk membina yang lebih besar. Rajah di bawah menunjukkan cara kerjanya:

jrpg-tiles-to-tilemap

Rajah di atas mempunyai tiga bahagian: palet ubin, visualisasi bagaimana tilemap dibina, dan peta akhir yang diberikan ke skrin.

Palet ubin adalah koleksi semua jubin yang digunakan untuk membuat peta. Setiap jubin dalam palet secara unik dikenal pasti oleh integer. Sebagai contoh, jubin nombor 1 adalah rumput; perhatikan tempat di mana ia digunakan pada visualisasi tilemap.

A tilemap hanyalah serangkaian nombor, setiap nombor yang berkaitan dengan jubin dalam palet. Sekiranya kita ingin membuat peta yang penuh dengan rumput, kita hanya boleh mempunyai pelbagai besar yang dipenuhi dengan nombor 1, dan apabila kita membuat jubin-jubin itu kita akan melihat peta rumput yang terdiri daripada jubin rumput kecil. Palet ubin biasanya dimuatkan sebagai satu tekstur besar yang mengandungi banyak jubin yang lebih kecil tetapi setiap entri dalam palet dapat dengan mudah menjadi fail grafisnya sendiri.

Petua: Mengapa tidak menggunakan array dari array untuk mewakili tilemap? Arahan pertama boleh diwakili oleh pelbagai baris jubin.

Sebab kami tidak melakukan ini hanyalah untuk kesederhanaan dan kecekapan. Jika anda mempunyai pelbagai bilangan bulat, itu adalah satu blok ingatan berterusan. Jika anda mempunyai tatasusunan array maka itu satu blok ingatan untuk array pertama yang mengandungi petunjuk, dengan setiap pointer menunjuk ke satu barisan jubin. Kesalahan ini dapat memperlambat sesuatu - dan sejak kita melukis peta setiap bingkai, semakin cepat semakin baik!

Mari lihat beberapa kod untuk menerangkan peta jubin:

Bandingkan kod di atas dengan gambarajah dan jelaskan bagaimana tilemap dibina dari siri kecil jubin. Sebaik sahaja peta diterangkan seperti ini maka kita boleh menulis fungsi render mudah untuk menariknya pada skrin. Butiran tepat fungsi akan berubah bergantung pada persediaan viewport dan fungsi lukisan. Fungsi render kami ditunjukkan di bawah.

Peta yang telah kami gunakan sejauh ini agak asas; kebanyakan JRPG akan menggunakan pelbagai lapisan tilam untuk membuat adegan yang lebih menarik. Rajah di bawah menunjukkan peta pertama kami, dengan tiga lagi lapisan ditambahkan ke, menghasilkan peta yang jauh lebih menyenangkan.

jrpg-using-tilemap-layers

Seperti yang kita lihat sebelum ini, setiap tilemap hanyalah serangkaian nombor dan oleh itu peta berlapis penuh boleh dibuat daripada pelbagai array tersebut. Sudah tentu, menjadikan tilemap benar-benar hanya langkah pertama dalam menambah penerokaan ke permainan anda; Peta juga perlu mempunyai maklumat tentang perlanggaran, sokongan untuk entiti bergerak di sekitar, dan interaktiviti asas menggunakan pencetus.

Pencetus adalah sekeping kod yang hanya dipecat apabila pemain "mencetuskan" dengan melakukan beberapa tindakan. Terdapat banyak tindakan yang boleh dicetuskan oleh pencetus. Sebagai contoh, memindahkan watak pemain ke jubin boleh mencetuskan tindakan - ini biasanya berlaku apabila bergerak ke pintu, teleporter atau tepi tepi peta. Pemicu boleh diletakkan pada jubin ini untuk menstrualkan karakter ke dalam peta dalaman, peta dunia atau peta tempatan berkaitan.

Pencetus lain mungkin bergantung pada butang "guna" yang ditekan. Contohnya, jika pemain naik ke tanda dan menekan "gunakan" maka pemicu dipecat dan kotak dialog dipaparkan menunjukkan teks tanda. Pencetus digunakan di seluruh tempat untuk membantu menyusun peta bersama dan menyediakan interaktiviti.

JRPGs sering mempunyai banyak peta yang agak terperinci dan rumit, jadi saya cadangkan agar anda tidak mencuba dan membuatnya dengan tangan, itu adalah idea yang lebih baik untuk menggunakan editor tilemap. Anda boleh menggunakan salah satu penyelesaian percuma yang sedia ada atau gulung sendiri. Sekiranya anda ingin mencuba alat sedia ada maka saya pasti mengesyorkan untuk memeriksa Tile yang merupakan alat yang digunakan untuk membuat peta contoh ini.

Tindakan Seterusnya:

  1. Dapatkan Jubin.
  2. Dapatkan beberapa jubin dari opengameart.org.
  3. Buat peta dan muatkan ke dalam permainan anda.
  4. Tambah watak pemain.
  5. Pindahkan aksara dari jubin ke jubin.
  6. Buat watak lancar bergerak dari jubin ke jubin.
  7. Tambah pengesanan perlanggaran (anda boleh menggunakan lapisan baru untuk menyimpan maklumat perlanggaran).
  8. Tambah pemicu mudah untuk menukar peta.
  9. Tambah pemicu untuk membaca tanda-tanda - pertimbangkan untuk menggunakan timbunan negeri yang kami cakapkan sebelum ini untuk memaparkan kotak dialog.
  10. Buat keadaan menu utama dengan pilihan "Mula Permainan" dan keadaan peta setempat dan sambungkannya bersama-sama.
  11. Reka bentuk beberapa peta, tambahkan beberapa NPC, cuba cari yang mudah - biarkan imaginasi anda berjalan bebas!


Pertempuran

Akhirnya, pergi ke pertempuran! Apa gunanya JRPG tanpa pertempuran? Pertempuran adalah di mana banyak permainan memilih untuk berinovasi, memperkenalkan sistem kemahiran baru, struktur tempur baru, atau sistem ejaan yang berbeza - terdapat banyak variasi.

Kebanyakan sistem tempur menggunakan struktur berasaskan giliran dengan hanya seorang pejuang yang dibenarkan untuk mengambil tindakan pada satu masa. Sistem peperangan berasaskan giliran yang pertama adalah mudah, dengan setiap entiti mendapat giliran dalam urutan: giliran pemain, giliran musuh, giliran pemain, giliran musuh, dan sebagainya. Ini dengan cepat memberi laluan kepada sistem yang lebih rumit yang menawarkan lebih banyak peluang untuk taktik dan strategi.

Kami akan melihat secara dekat sistem tempur berasaskan Masa-Aktif, di mana pejuang tidak semestinya mendapatkan jumlah yang sama. Entiti yang lebih cepat mungkin lebih bertukar dan jenis tindakan yang diambil juga mempengaruhi berapa lama gilirannya. Sebagai contoh, seorang pahlawan yang memotong dengan pisau boleh mengambil masa 20 saat tetapi seorang ahli sihir yang memanggil raksasa mungkin mengambil masa dua minit.

jrpg-combat-screen

Petikan di atas menunjukkan mod pertempuran dalam JRPG biasa. Watak-watak yang dikawal pemain berada di sebelah kanan, watak musuh di sebelah kiri, dan kotak teks di bahagian bawah menunjukkan maklumat mengenai para pejuang.

Pada permulaan pertempuran, raksasa dan pemain sprit ditambah ke tempat kejadian dan kemudian ada keputusan mengenai yang memerintahkan entiti mengambil giliran mereka. Keputusan ini sebahagiannya bergantung kepada bagaimana pertempuran dilancarkan: jika pemain diserang hambanya, maka raksasa akan menyerang pertama, jika tidak, ia biasanya berdasarkan salah satu statistik entiti seperti kelajuan.

Segala-galanya pemain atau raksasa lakukan adalah tindakan: serangan adalah tindakan, menggunakan sihir adalah tindakan, bahkan memutuskan tindakan apa yang akan diambil selanjutnya adalah tindakan! Perintah tindakan terbaik dikesan menggunakan baris gilir. Tindakan di bahagian atas adalah tindakan yang akan berlaku seterusnya, melainkan jika tindakan yang lebih cepat menghalangnya. Setiap tindakan akan mempunyai undur yang berkurangan apabila setiap frame berlalu.

Aliran tempur dikawal menggunakan mesin negara dengan dua keadaan; satu negeri untuk menandakan tindakan dan keadaan lain untuk melaksanakan tindakan teratas apabila tiba masanya. Seperti biasa, cara terbaik untuk memahami sesuatu ialah melihat kod. Contoh berikut menerapkan keadaan tempur asas dengan beratur tindakan:

Kod di atas menunjukkan kawalan aliran mod pertempuran menggunakan mesin keadaan mudah dan barisan tindakan. Untuk memulakan, semua entiti yang terlibat dalam peperangan mempunyai tindakan mutlak yang ditambah pada giliran.

Tindakan memutuskan untuk pemain akan membawa menu dengan pilihan RPG stabil Attack, Magic, and Item; sebaik pemain memutuskan pada tindakan maka tindakan memutuskan dikeluarkan dari giliran dan tindakan yang baru dipilih ditambah.

Tindakan memutuskan untuk AI akan memeriksa tempat kejadian dan memutuskan apa yang perlu dilakukan seterusnya (menggunakan sesuatu seperti pokok kelakuan, pokok keputusan atau teknik yang sama) dan kemudian ia juga akan menghapus tindakan memutuskan dan menambah tindakan barunya kepada barisan.

Kelas BattleTick mengawal pengemaskinian tindakan, seperti yang ditunjukkan di bawah:

BattleTick adalah sub negara keadaan BattleMode dan ia hanya kutu sehingga undur tindakan utama adalah sifar. Ia kemudian memunculkan tindakan teratas daripada baris gilir dan perubahan kepada keadaan melaksanakan.

jrpg-action-queue

Rajah di atas menunjukkan giliran tindakan pada permulaan pertempuran. Tidak ada yang mengambil tindakan dan semua orang diarahkan pada masa mereka untuk membuat keputusan.

Loji Giant mempunyai undur 0, jadi pada tanda seterusnya ia melaksanakan tindakan AIDecide. Dalam kes ini, tindakan AIDecide menghasilkan raksasa yang memutuskan untuk menyerang. Tindakan serangan hampir serta-merta dan ditambah kembali ke barisan sebagai tindakan kedua.

Pada perebutan seterusnya BattleTick, pemain akan memilih tindakan mana yang kerdilnya "Mark" patut diambil, yang akan mengubah giliran lagi. Perulangan seterusnya BattleTick selepas itu, Loji akan menyerang salah seorang daripada orang kerdil. Tindakan serangan akan dikeluarkan dari barisan dan diserahkan kepada keadaan BattleExecute, dan akan menghidupkan serangan menyerang serta melakukan semua perhitungan pertempuran yang diperlukan.

Setelah serangan raksasa selesai satu lagi tindakan AIDecide akan ditambahkan pada giliran untuk raksasa. BattleState akan meneruskan perjalanan ini sehingga akhir pertempuran.

Jika mana-mana entiti mati semasa pertempuran semua tindakannya perlu dikeluarkan dari barisan - kita tidak mahu raksasa mati tiba-tiba merenungkan dan menyerang semasa permainan (kecuali kami sengaja membuat zombi atau sejenis undead!).

Antrian tindakan dan mesin negara mudah adalah pusat sistem tempur dan kini anda harus mempunyai perasaan yang baik untuk bagaimana ia sesuai bersama. Ia tidak cukup lengkap untuk menjadi penyelesaian mandiri tetapi ia boleh digunakan sebagai templat untuk membina sesuatu yang lebih berfungsi dan rumit. Tindakan dan keadaan adalah abstraksi yang baik yang membantu menguruskan kerumitan pertempuran dan memudahkan untuk berkembang dan berkembang.

Tindakan Seterusnya:

  1. Tulis keadaan BattleExecute.
  2. Mungkin menambah lebih banyak negeri, seperti BattleMenuState dan AnimationState.
  3. Meraikan latar belakang dan musuh dengan statistik kesihatan asas.
  4. Tulis tindakan serangan mudah dan jalankan pertempuran mudah serangan perdagangan.
  5. Berikan entiti kemahiran khusus atau sihir.
  6. Buat musuh yang akan menyembuhkan dirinya jika di bawah 25% kesihatan.
  7. Buat peta dunia untuk melancarkan keadaan pertempuran dari.
  8. Buat keadaan BattleOver yang menunjukkan rampasan dan keuntungan XP.


Ulasan

Kami telah melihat tahap tinggi bagaimana membuat JRPG, menyelam ke dalam beberapa butiran yang lebih menarik. Kami telah dilindungi bagaimana untuk menyusun kod menggunakan mesin negara atau timbunan, cara menggunakan tilemaps dan lapisan untuk memaparkan dunia kita, dan bagaimana untuk mengawal aliran pertempuran menggunakan beratur tindakan dan mesin negara. Ciri-ciri yang telah kita capai menjadikan asas yang baik untuk membina dan membangun dari.

Tetapi ada juga banyak yang belum dilindungi sama sekali. Membuat JRPG penuh termasuk sistem XP dan meratakan, menyimpan dan memuatkan permainan, banyak kod GUI untuk menu, animasi asas dan kesan khas, menyatakan untuk mengendalikan cutscenes, mekanik pertempuran (seperti tidur, posion, bonus elemen dan rintangan) , untuk menamakan beberapa perkara!

Anda tidak perlu semua perkara ini untuk permainan, walaupun; Untuk Bulan pada dasarnya hanya terdapat penerokaan peta dan dialog. Anda boleh menambah ciri-ciri baru apabila anda membuat permainan anda.

Di mana hendak pergi dari sini

Bahagian yang paling sukar untuk membuat apa-apa permainan sedang menyelesaikannya, jadi mulakan kecil, fikirkan mini-rpg; melarikan diri dari penjara bawah tanah, satu usaha pencarian tunggal, dan kemudian membina. Jika anda mendapati anda terjebak kemudian mengurangkan skop permainan, membuatnya mudah dan selesaikannya. Anda mungkin mendapati apabila anda membina anda mendapat banyak idea baru dan menarik, yang baik, tuliskannya tetapi menahan keinginan untuk meningkatkan skop permainan anda, atau lebih buruk lagi memulakan yang baru.

Membuat JRPG sukar; terdapat banyak sistem, dan tanpa peta yang baik, sukar untuk mengetahui yang mana harus ditangani terlebih dahulu. Panduan langkah demi langkah yang menyeluruh untuk membina JRPG akan mengisi buku! Nasib baik, saya menulis buku itu, jadi jika anda mahu panduan yang lebih terperinci untuk membuat JRPG maka sila semaknya.



Sumber yang Digunakan

Beberapa sumber dan sumber kreatif kreatif digunakan untuk membantu menyusun artikel ini:

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.