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?)

Senin, 18 November 2013

Announcement: new project!

Hi para pembaca blog-ku. Sudah lama banget aku nggak nulis, maaf. Tapi sekarang aku punya sesuatu yang bagus untuk dijadikan blog post: proyek game baru! Proyek game ini rencananya akan lebih besar dari game-game yang pernah kukerjakan sebelumnya, dan ini akan menjadi ujian bagi skill yang kumiliki, sejauh apa kemampuanku sebenarnya. Biasanya aku membuat game kecil-kecilan untuk onegameamonth.com tapi sekarang aku ingin menggunakan ilmu yang kudapat dari sana untuk membuat satu game besar yang membuatku bangga.

Gamenya sendiri akan berupa action RPG di tengah dunia fantasi. Akan ada banyak fitur dalam game ini seperti:

  • Main quest (tentu saja)
  • Side quest (akan ada banyak)
  • Defending mode (ala tower defense)
  • War mode (masih rencana, akan mirip real time strategy)
  • Cerita yang epik
  • Banyak item yang bisa dibuat dalam crafting / cooking
  • Pemain juga akan bisa merekrut NPC (tertentu) untuk bergabung dalam defending mode & war mode
Kira-kira begitulah desain awal game baru ini. Aku membuatnya dengan Construct 2, tool yang aku sudah terbiasa menggunakannya. Untuk sementara ada beberapa screenshot awal:




Rabu, 06 November 2013

Autobo di Mozilla Marketplace

Sebetulnya kemarin aku ingin ngeblog soal ini tapi aku lupa *dihajar*. Minggu lalu kiriman geeksphone Mozilla Keon sudah tiba (foto-foto menyusul), dan sesuai kesepakatanku dengan Mozilla, aku harus porting Autobo ke firefox OS. Awalnya agak susah karena layarnya yang kecil (sekitar 3.5 inci) jadi aku harus mengubah ukuran tombol-tombol HUD di game supaya jelas terlihat dan bisa gampang disentuh. Selain itu pada awalnya game ini berjalan lambat banget, sehingga aku harus mikir bagaimana cara membuat game berjalan dengan lancar.

Tapi akhirnya game ini selesai aku porting juga, dan sesudah aku export untuk Mozilla marketplace, aku mengalami masalah kecil karena pertama kalinya aku upload ke Mozilla marketplace game ini ditolak. Setelah ngobrol sedikit dengan bagian app publisher, ternyata ketahuan kalau aku nggak menaruh webapp manifest di tempat yang benar di .zip file. Sesudah upload berhasil aku cuma perlu menunggu beberapa hari sampai game ini akhirnya disetujui dan tersedia di Mozilla marketplace! Kalau kamu kebetulan punya firefox OS device, kamu bisa pergi ke sini: https://marketplace.firefox.com/app/autobo/ untuk download game-nya, gratis kok.

Mungkin aku juga akan publish beberapa game kecil lagi ke firefox OS ini. Aku belum bisa bilang apakah pasar firefox OS menjanjikan atau nggak karena aku belum publish aplikasi berbayar (autobo bahkan nggak ada iklan) jadi itu mungkin akan jadi bahan blog post untuk lain kali. Sampai ketemu di blog post berikutnya.


Rabu, 30 Oktober 2013

Game art: #pixelshit

Halo semuanya, sudah lama juga aku nggak nulis post baru di blog ini. Belakangan ini aku agak sibuk dengan contract work, tapi sekarang contract work itu sudah selesai dan aku bisa ngeblog lagi (hore!!). Karena akhir-akhir ini aku nggak ada update soal tutorial atau hal lain soal game design aku akan nyoba menulis tentang satu hal yang baru: game art.

Selama ini aku nggak pernah menulis soal game art atau hal lain berkaitan dengan grafik dalam game, karena aku memang bukan orang yang ahli soal itu. Tapi kelihatannya di jagat internet yang luas ini (atau lebih tepatnya dunia twitter), orang-orang indie dev yang payah dalam art bukan cuma aku aja, ada banyak banget. Dan salah seorang mengusulkan sebuah acara mingguan di mana semua dev yang payah dalam hal artistik melatih diri mereka membuat sebuah pixel art dan di-tweet dengan hashtag #pixelshit. Untuk acara pertama ini ada 3 syarat untuk ikutan #pixelshit ini:

  1. Gambar beresolusi 16x16 atau 32x32
  2. Gambar karakter
  3. Jumlah maksimal warna hanya boleh 8 saja
selain itu syarat utamanya sendiri adalah harus payah dalam menggambar, karena itu orang-orang akan mesubmit gambarnya dalam bentuk pixel art (karena.... yah pixel art itu gampang dibuat oleh orang yang nggak bisa gambar).

Aku sendiri membuat dua gambar untuk acara pertama ini, yang pertama dengan resolusi 32x32


dan yang kedua dengan resolusi 16x16


keduanya sebenarnya mirip, hanya beda warna rambut saja.

Buatku acara ini adalah ajang latihan yang bagus, biarpun nggak ada hadiah tapi aku dapat kemampuan baru yang bisa berguna dalam perjalanan gamedev ini. Entah untuk acara berikutnya masih menggunakan aturan yang sama atau nggak, tapi aku benar-benar excited untuk ikut lagi, siapa tahu game-ku berikutnya akan berupa pixel art untuk grafisnya?

Kamis, 10 Oktober 2013

Game design: Game choices

Sudah lama juga aku nggak nulis post baru di blogku ini. Supaya nggak dikira blog ini sudah mati, aku akan nulis sesuatu. Bukan di topik RPG tutorial, tapi game design, kali ini aku akan membahas tentang pilihan-pilihan dalam game.

Game adalah sebuah media hiburan yang berbeda dengan media hiburan lain (musik, dan film) karena game menawarkan sebuah interaktivitas dengan penikmatnya (gamer). Game adalah satu-satunya media hiburan yang tidak dinikmati secara pasif, tetapi aktif melalui tindakan-tindakan yang bisa dilakukan pemain dalam game. Dalam melakukan tindakan-tindakan ini, pemain beberapa kali akan harus melakukan pilihan-pilihan yang menentukan hasil akhirnya dalam game. Sebelum aku menulis lebih jauh aku akan mendefinisikan satu hal dengan jelas: apa itu pilihan? Pilihan adalah dua atau lebih tindakan yang disediakan oleh game kepada pemain, tapi pemain hanya bisa memilih satu tindakan saja pada satu waktu, atau lebih dari satu tindakan tapi tetap di bawah jumlah tindakan yang bisa dipilih.

Secara garis besar pilihan-pilihan ini bisa hadir dalam dua kategori: gameplay dan cerita. Pilihan-pilihan dalam gameplay bisa dilihat contohnya di game fighting. Pilihan-pilihan ini hadir dalam bentuk moves list, semua orang yang memainkan game ini punya pilihan yang sama untuk melakukan jurus yang dia inginkan, tapi hanya bisa melakukan satu jurus dalam satu waktu. Jurus apa yang dipilih seorang gamer tergantung dari jurus-jurus apa saja yang dia ingat dan apakah kondisi saat itu memungkinkan untuk melakukan jurus tersebut. Pilihan dalam cerita biasa kita lihat dalam RPG, tapi bisa saja hadir dalam game lain yang mengandalkan story. Pilihan ini hadir dalam pilihan dialog yang muncul sewaktu kita berinteraksi dengan NPC, selain itu pilihan ini juga bisa hadir dalam bentuk subquest yang bisa diambil pemain disamping main quest.

Sabtu, 14 September 2013

Construct 2 RPG tutorial part 7: implementing the AI

Selamat datang di bagian ke 7 dari seri tutorial membuat RPG di Construct 2. Kali ini aku akan mencoba mengimplementasikan AI seperti yang sudah aku desain sebelumnya. Aku akan mencoba membuatnya dalam 1 blog post, tapi kalau nggak bisa, berarti blog post ini cuma mencakup AI penyerang fisik.

Pertama-tama aku ingin memastikan bahwa semua petarung di battle scene tahu tentang musuh-musuhnya, karena AI kedua tipe musuh juga akan bergantung dari data ini. Awalnya aku berencana memakai family buat keperluan ini. Tapi ternyata aku nggak bisa menambah / mengurangi member family ini lewat event, padahal buat kebutuhan ini aku harus bisa mengganti member family secara dinamis lewat event (karena tiap battle, musuhnya beda-beda, dan party member pun bisa diganti secara bebas oleh pemain). Jadi untuk mengatasi ini, aku akan membuat array yang berisi data petarung dari party member dan juga dari musuh, array ini bernama enemyPartyArr dan playerPartyArr. Kedua array ini hanya berisi maksimal 4 elemen, karena kita memang membatasi jumlah petarung di sisi player dan musuh dalam battle. Ini juga mengubah fungsi family Friendly, dulunya family ini berisi semua party member yang bertarung, tapi sekarang mungkin lebih cocok berisi semua character dalam game yang bisa bergabung bersama pemain.

Aku mengubah apa yang terjadi di event on start of layout, sekarang kita memberi nama pada battleName musuh dan juga mengisi kedua array petarung, saat ini isinya hanya ada satu tapi nanti isinya akan berbeda-beda.

Kemudian aku membuat instance variable enemySelection di kedua family. Untuk memudahkan kita untuk membedakan nantinya, di family Enemies akan aku namai playerSelection sedangkan di family Friendly aku namai enemySelection. Keduanya memiliki nilai awal "closest". Di bagian bawah, aku membuat function baru bernama "enemySelTarget" yang akan digunakan oleh musuh untuk mencari target pemain. Fungsi ini menerima dua parameter, yaitu nama musuh yang akan mengganti target, dan AI pemilihan target si musuh.

Minggu, 25 Agustus 2013

My published Game: Autobo

Di hari yang cerah (dan panas) ini, aku ingin menulis tentang satu hal bahagia: Game bikinanku sudah dirilis di Blackberry App World! Namanya Autobo, bukan typo dari Autobot tapi memang namanya Autobo. Kenapa dinamai Autobo? karena menurutku nama Autobot sudah umum dan game-ku nggak bisa tampil menonjol kalau nggak punya nama yang unique, karena itu aku sengaja menghilangkan t di akhir namanya, dan jadilah Autobo!

Game ini adalah game stratgi bertipe tower offense, yang awalnya aku buat untuk challenge 7drts, atau membuat RTS dalam tujuh hari. Gameplay yang kubuat sudah selesai dalam satu minggu itu, tapi grafisnya belum cukup polished buat aku masukin sebagai 7drts entry, jadi waktu itu aku sengaja nggak memasukkan ini ke dalam kompetisi 7drts, tapi akan aku buat game sendiri.

Screenshot:

Icon