Jumat, 31 Mei 2013

Dev Blog: Kemajuan EXP Project

Masih ada yang ingat soal EXP Project? proyek game kecil yang tadinya aku targetkan untuk jadi entri bulan mei untuk one game a month. Tapi sayangnya, proyek game ini berjalan lebih lambat dari yang aku duga, lebih dari satu bulan. Kenapa? karena ternyata membuat sistem pertarungan yang berjalan otomatis itu lebih susah dari yang aku kira. Sebenarnya sih, dari game design yang sudah pernah aku post di sini, membuat implementasinya itu gampang, tapi ada hal yang tidak aku duga sebelumnya. Pertarungan berjalan cepat banget. Melawan satu musuh bisa kurang dari satu detik, begitu musuh muncul, langsung mati terkena serangan bertubi-tubi dari pemain. Padahal aku inginnya sesudah menyerang, ada jeda waktu sedikit baru kemudian menyerang lagi, supaya pertarungan bisa dilihat pemain. Ini sudah aku atasi, tapi kemudian muncul bug lain di penghitungan damage, dan ini makan waktu agak lama buat dibereskan.

Akhirnya, karena kesibukanku yang lain, kelihatannya EXP project ga bisa selesai bulan mei ini. Aku akan menyelesaikannya di bulan depan (semoga). Karena progress-nya sendiri sudah cukup bagus. Skill tree (atau lebih tepat disebut stats tree) sudah aku buat. Fungsionalitasnya juga sudah mulai jalan, kelihatannya tinggal polishing saja sih (semoga), dan mengatasi berbagai bug yang mungkin akan muncul.

Sementara ini, aku ingin melihatkan stats tree yang sudah aku buat untuk karakter. Rencananya nanti setiap naik level, pemain akan dapat poin yang bisa digunakan untuk mengaktifkan satu titik di stats tree.


penjelasan:
Node hijau: HP node
Node merah: ATK node
Node oranye: DEX node
Node silver: DEF node
Node pink: LUK NODE
Node biru muda: HIT node
Node biru tua: EVA node

Masing-masing sisi tree ini akan membentuk build tersendiri bagi karakter. Jadi di tree ini, pemain yang fokus menaikkan ATK dan DEF, akan berakhir dengan EVA dan HIT yang rendah, begitu juga untuk yang lain. HP tersebar di banyak tempat, karena kalau nggak begitu, HP pemain ga bertambah.

Mungkin segitu dulu. Aku harap game ini bisa selesai bulan depan. Sampai ketemu di blog post berikutnya.


Kamis, 30 Mei 2013

Game developers gathering

Wah, sudah lama banget aku ga nulis blog post baru di sini. Rencananya aku mau nulis soal game design, tapi aku belum tau materi apa yang bisa aku tulis. Mungkin karena ga ada waktu, beberapa hari terakhir aku sibuk banget, tapi kelihatannya sekarang sudah mulai ada waktu luang. Aku tadinya mau nulis tentang EXP project, tapi kelihatannya ada satu hal lagi yang lebih asyik untuk ditulis: Game developers Gathering Jakarta!

Apakah itu? Game Developers Gathering adalah acara tahunan di mana semua game developer dari seluruh Indonesia berkumpul di jakarta. Selain kumpul-kumpul, di sini juga ada workshop teknis, game design, dan juga business & marketing. Karena aku dari Surabaya, aku harus pergi naik kereta api buat bisa sampai ke Jakarta. Perjalanannya panjang tapi worth it buat dilakukan.

Jadi apa aja yang aku lakukan di sana? Aku pergi bareng sama temanku, dia bagian marketing di studioku jadi dia masuk ruangan business & marketing dari awal sampai akhir. Karena aku adalah programmer merangkap game designer, aku bolak-balik antara ruang tutorial dan game design. Memang akibatnya jadi ada sesi game design yang pengen aku liat tapi jadi ga sempat aku ikuti, tapi tetap aja, ilmu yang aku dapatkan itu luar biasa. Mungkin dalam waktu dekat ini aku akan sharing sedikit soal apa yang aku dapat di game developers gathering.

Buat yang mau tahu seperti apa sih, suasana gamedev gathering? di bawah ini ada foto-fotonya.

Sesi game design

Senin, 13 Mei 2013

Proyek game baru!

Mungkin aku sudah pernah bilang sebelumnya, mungkin juga belum, tapi aku punya studio gamedev indie sendiri, Mesin Waktu Game Studio (biarpun aku masih bingung apakah akhirannya Studio saja, atau Game Studio). Di studio indie ini aku akan bikin game-game yang lebih besar daripada proyek one game a month, sehingga waktu pengembangannya akan lebih lama. Dan aku sudah memutuskan proyek pertama Mesin Waktu, yang sementara akan disebut Project Peasant. Kenapa namanya Project Peasant? karena ide dasarnya adalah petani melawan monster.

Genre gamenya akan mirip game mobile samurai vs zombies defense, tapi pemain akan menggerakkan petani alih-alih seorang samurai. Sementara baru itu saja sih, desain game ini. Hari ini aku sudah bikin versi prototip dari game-nya sendiri, tapi masih terlalu kecil untuk diperlihatkan pada khalayak, mungkin nanti saja kalau sudah lebih bagus lagi. Sampai ketemu di post berikutnya.

Rabu, 08 Mei 2013

Dev blog: on game design

Sesudah kemarin aku menulis blog post soal sprite, sekarang waktunya aku nulis soal game design. Pertama-tama yang aku lakukan adalah mendefinisikan stats yang dimiliki oleh karakter & musuh, dan juga kegunaannya, dan inilah stats itu:
HP: health points, HP-nya karakter/musuh saat ini. Kalau ini sampai 0, maka karakter/musuh mati
MaxHP: nilai maksimum HP, sewaktu HP disembuhkan nilainya ga boleh melebihi nilai MaxHP
ATK: menentukan kekuatan serangan
DEF: menentukan kekuatan pertahanan karakter/musuh
EVA: penentu kemungkinan menghindar
HIT: menentukan apakah serangannya kena atau tidak
DEX: modifier untuk kemungkinan kena, perhitungan damage, dan giliran serang
LUK: menentukan kemungkinan serangan critical karakter/musuh
EXP: khusus musuh, jumlah experience points yang akan didapatkan karakter

sesudah itu aku langsung memikirkan rumus perhitungan kemungkinan kena serangan dan damage waktu adegan pertarungan. Urutan perhitungannya adalah: kemungkinan kena --> kemungkinan critical --> menghitung damage. Untuk kemungkinan kenanya aku hitung dengan rumus ini:
HIT * [2/3/4] – ((EVA + DEX) * 2)
arti dari [2/3/4] itu akan dirandom salah satu, apakah HIT penyerang akan dikali 2, atau 3, atau 4. Sesudah itu jumlahkan EVA dan DEX penerima serangan lalu dikali 2. Setelah itu hasil perkalian HIT akan dikurangi hasil perhitungan EVA dan DEX, kalau hasilnya lebih dari atau sama dengan 0, maka serangan itu kena, selain itu berarti meleset. Dengan ini ada kemungkinan 2 kali kemungkinan kena, 1 kali kemungkinan meleset (kecuali ada perbedaan stats yang besar, maka akan ada kemungkinan serangan pasti meleset.)

Untuk kemungkinan critical sederhana saja, cuma merandom angka antara 1 sampai 100. Kalau angka hasil randomnya kurang dari atau sama dengan nilai LUK, maka serangan itu critical, dan nantinya nilai damage akan dikali tiga. Jadi nanti akan ada variabel yang menyimpan apakah nanti akan critical atau tidak.

Senin, 06 Mei 2013

Dev blog: Sprites, sprites, & sprites

Hari ini sudah ada cukup perkembangan soal EXP project, terutama dari sisi art. Karena aku gak menemukan art asset yang gratis, cocok dengan game, dan bisa dipakai (legal) jadi dengan terpaksa aku menggambar sendiri. Karena kemampuan menggambarku yang masih amat rendah, jadi mungkin hasilnya gak terlalu bagus. Yang pertama kali aku pikirkan adalah: karakter utamanya seperti apa? Tadinya aku pingin bikin karakter humanoid, tapi karena aku ga bisa menggambar, jadi aku harus membuat karakternya lebih gampang aku buat, tapi tetap menarik. Dan aku pun ingat pada satu karakter yang bisa jadi contoh: Kirby. Karakternya lucu, imut, dan simple. Kelihatannya aku bisa bikin yang seperti itu, dan akhirnya jadilah seperti ini:

Bayu, si ksatria biru

Namanya Bayu. Kenapa Bayu? karena mudah diingat dan diucapkan. Sengaja gak aku bikinkan tangan, soalnya takutnya nanti kesusahan waktu bikin animasi serangan dan lari. Jadi nanti senjatanya akan melayang di samping Bayu, seperti dipegang tangan tak terlihat.Dengan begitu animasi serangannya tinggal memutar senjatanya.

Jumat, 03 Mei 2013

Dev Blog: EXP project

Oke, melanjutkan blog post kemarin, dan sebagai tutorial bikin game juga. aku mau nulis lebih detil soal game yang akan aku ikutkan one game a month bulan mei. Untuk sementara game ini akan disebut: EXP project, karena memang berhubungan dengan experience points. Resolusi game-nya 1280x720, karena aku ingin game ini juga bisa dimainkan di mobile. Untuk sementara, mock up sederhananya adalah seperti ini (sengaja dimiringin)


Jadi game nanti akan terbagi jadi 3 bagian: activity area, stats area, dan leveling area (ga ada nama yang lebih cocok soalnya). Activity area ini tempat di mana karakter pemain ditampilkan bertarung, pertarungan terjadi secara otomatis, pemain ga menggerakkan karakter di sini. Stats area adalah tempatnya stats karakter ditampilkan, HP, attack, defense, hit, evasion, dan mungkin stats lain. Leveling area adalah tempatnya pemain berinteraksi dengan game, nantinya setiap naik level karakter akan mendapatkan semacam stats point, stats point inilah yang akan dipakai di leveling area untuk meningkatkan stats karakter.

Kamis, 02 Mei 2013

Dev blog: Rencana game bulan mei

Oke, untuk bulan mei ini aku berencana buat mengikuti tema bulan ini: grow. Aku gak ingin cuma sekedar bikin game yang mengikuti tema, aku ingin ada unsur RPG dalam game yang aku buat, karena aku memang suka RPG dan aku ingin tantangan one game a month ini jadi ajang latihanku membuat sistem-sistem kecil dalam sebuah RPG sebelum akhirnya membuat RPG lengkap.

Karena itu aku memutuskan untuk membuat game tentang... (wait for it...) experience points. Mungkin bisa disebut sistem EXP atau sistem perkembangan karakter. Jadi dalam game nanti pemain cuma akan menentukan stats apa yang naik sesuai dengan poin-poin yang didapat sewaktu pemain naik level. Battle akan berjalan otomatis, setiap karakter naik level maka HP karakter akan langsung penuh. Tidak ada sistem item di sini, karena kelihatannya akan susah mengimplementasi sistem item management. Tentu saja sistem experience-nya nanti tidak akan sesederhana RPG di android, yang cuma ngeklik tanda panah buat meningkatkan stats, tapi akan lebih kompleks. Seberapa kompleks? Tunggu aja rinciannya di blog post berikutnya nanti.

(hm... apa mungkin sekalian aja aku bikin skill tree ya?)

April RPG released!

Hari ini adalah hari bahagia dalam hidupku, karena akhirnya one game a month untuk bulan april sudah dirilis! Ini memang sudah bulan mei, tapi untuk men-submit game, ada sebuah perpanjangan waktu selama 96 jam sesudah hari terakhir di bulan game-mu itu. Artinya aku masih belum terlambat untuk men-submit one game a month bulan aprilku.

Ada sedikit perubahan, setidaknya aku sudah punya nama untuk game-ku ini. Two defenders. Bukan nama yang mewah atau terlalu bagus, tapi menurutku itu sudah cukup mewakili game-ku ini. Gameplay dari game-ku ini bersifat endless, jadi pemain akan terus melawan monster tanpa henti sampai pemain kalah. Tantangannya adalah pemain harus membunuh monster sebanyak mungkin dan nanti akan beradu jumlah monster yang dibunuh dengan pemain lain lewat leaderboard. Game ini sudah bisa dimainkan di clay.io di link ini: http://twodefenders.clay.io/ (peringatan: mungkin saja ada bug, belum dites intensif!)

Sekalian di blog post ini aku mau minta maaf, aku pernah janji mau ngasih tutorial pembuatan game pake construct 2, tapi sampe sekarang belum aku buatkan, jadi gimana kalau aku kasih tutorial pembuatannya waktu aku membuat one game a month bulan mei saja?