Senin, 25 November 2013

Progress update: RPG project

Halo semua, sudah seminggu sejak aku menulis post tentang proyek baruku, dan aku berencana buat menulis progress mingguan soal game ini. Untuk minggu terakhir ini aku senang karena aku akhirnya berhasil menyelesaikan barrack mode dari game-ku. Tadinya aku kira barrack mode ini adalah sesuatu yang sederhana dan bisa selesai dalam beberapa hari, tapi ternyata aku butuh sekitar dua minggu untuk menyelesaikannya.

Barrack mode ini sendiri adalah semacam "tempat netral" bagi karakter dalam game ketika nggak sedang melakukan misi atau petualangan. Aku namakan barrack mode karena di kerangka cerita yang aku bikin, ceritanya memang berkisah seputar mercenary yang disewa untuk berperang melawan kerajaan tetangga (iya, ceritanya biasa aja. Perang. Bukan menyelamatkan dunia dari iblis jahat yang berusaha menghancurkan dunia.). Dalam barrack mode ini pemain bisa melakukan beberapa hal:

  • Membeli barang / equipment yang diperlukan. Ceritanya barang-barang ini dijual oleh pedagang yang membuka toko di barrack.
  • Leveling. Jadi sewaktu pemain sudah naik level, pemain bisa menaikkan atribut di sini.
  • Memilih quest, bisa main quest atau juga side quest. Karena sudah hal biasa kalau barak mercenary punya semacam quest board
  • Mengatur inventory, nantinya juga mungkin bisa memasang senjata & equipment tapi aku masih belum yakin soal ini.
Sewaktu membuat bagian shop dari barrack mode, aku juga harus membuat daftar item apa saja yang ada dalam game dan item yang bisa dibeli dari dalam toko. Pemain bisa membeli item penyembuhan dan equipment / senjata di toko, tapi nggak semua item & equipment bisa dibeli di toko, kebanyakan item dan senjata yang lebih kuat hanya bisa didapatkan dari side quest. Ini kubuat sebagai reward dari pemain karena sudah menjalankan side quest yang kuberikan. Dan juga aku rasa ini menambahkan unsur realistis dari game, karena aku nggak pernah bisa memberi penjelasan kenapa pedagang di barrack bisa punya senjata terkuat dalam game (siapa supplier pedagang itu?)



Untuk leveling, aku membuatnya agak sederhana. Tiap kali karakter naik level, karakter itu akan mendapatkan 3 skill points (atau upgrade points, atau level points, aku belum milih nama yang pasti), buat dipakai untuk meningkatkan atribut karakter. Skill yang dimiliki karakter juga bisa naik level, tapi cara menaikkan levelnya bukan dengan poin seperti atribut. Skill akan naik level sesudah digunakan cukup banyak (mungkin 100 kali), aku belum memastikan jumlah pemakaiannya tapi nanti tiap skill akan punya jumlah pemakaian minimum masing-masing sebelum akhirnya naik level. Dan karakter juga akan mendapatkan skill baru sesudah skill sebelumnya mencapai level tertentu. Aku belum yakin akan menambahkan skill tree atau nggak di game ini, itu akan aku pikirkan nanti.


Untuk leveling aku menaruh main quest selalu di bagian atas, side quest ada di bawahnya. Tampilannya aku buat mirip quest board (atau semacamnya) yang ada di markas mercenary (biarpun aku nggak tau pasti seperti apa bentuknya). Sekarang ini quest mode sudah menampilkan placeholder quest untuk percobaan, tapi masih belum mengganti-ganti main quest tergantung dari seberapa jauh pemain sudah maju dalam cerita. Aku masih belum tau gimana cara melakukan hal seperti itu, jadi itu akan jadi beban pikiranku di masa depan. Satu lagi yang akan jadi beban pikiranku adalah jumlah side quest. Sekarang ini jumlah side quest yang bisa ditampilkan di layar cuma ada dua, terlalu sedikit. Aku berpikiran untuk membuat supaya daftar side quest bisa scrolling, supaya jumlah yang ditampilkan bisa lebih dari dua.


Terakhir ada inventory screen, tempat di mana pemain bisa mengatur barang-barang yang dibawanya. Inventory screen ini adalah yang paling bikin pusing di antara fungsi-fungsi lain dalam barrack mode ini. Aku harus membuat dua array di sini, satu array untuk database item dan satu lagi untuk mengingat barang-barang apa saja yang pemain miliki dalam inventory pemain. Array untuk database item memiliki 3 dimensi, dimensi pertama adalah nama item, dimensi kedua adalah deskripsi item dengan detil, dimensi ketiga adalah frame index item tersebut dalam animasi (di game ini, semua item adalah satu objek yang sama). Array untuk mengingat item yang dimiliki pemain memiliki 2 dimensi, dimensi pertama adalah nama item, dimensi kedua adalah jumlah item tersebut yang dimiliki pemain.

Aku membuat kesalahan karena aku nggak begitu mengerti bagaimana array ditangani oleh Construct 2. Biasanya (di bahasa programming lain) aku mendefinisikan sebuah array kosong lalu mem "push" elemen baru ke dalam array tersebut. Ternyata sewaktu Construct 2 membuat objek array baru, maka secara default akan mengisi array tersebut dengan nilai 0 untuk setiap index (jadi kalau ada 10 elemen dalam array, secara otomatis akan ada 10 member 0). Setelah aku tau bagaimana array di dalam Construct 2, aku bisa mengisi langsung ke dalam array sesuai dengan index-nya, lalu mengurutkan item-item dalam inventory sesuai dengan array itu.


Walaupun di awal tadi aku bilang kalau aku sudah menyelesaikan barrack mode, sebenarnya aku masih belum benar-benar menyelesaikan mode ini, karena masih ada beberapa kekurangan. Shop screen masih belum bisa beli & jual barang, leveling screen masih belum bisa menaikkan atribut pemain, quest screen masih belum bisa menampilkan main quest yang diperlukan, inventory screen masih belum mengurus penyimpanan senjata / equipment. Tapi untuk sekarang ini aku sudah puas dengan barrack mode ini, dan aku akan melanjutkan mengerjakan bagian lain dalam game. Aku harap kekurangan-kekurangan ini sudah bisa sedikit diatasi sewaktu aku menyelesaikan alpha build game ini. Aku juga baru ingat kalau aku belum memikirkan judul game ini. Ah, masih banyak yang belum aku selesaikan hingga sampai alpha build, semoga aku bisa menyelesaikan game ini. Kalau ada pertanyaan / saran / apa pun terserah kalian, bisa tulis di komentar di bawah.