5/09/2010

Membuat Game 2D Sederhana Dengan Menggunakan Game Editor

Bermain game mungkin untuk sebagian dari kita merupakan hal yang menyenangkan. Entah itu game RPG, action, battle, race, dll. Tapi bagaimana kalau kita membuat game sendiri. Ini akan jadi kepuasan tersendiri pastinya. Kebetulan pas saya iseng-iseng browsing eh nemuin software open source pastinya. Namanya Game Editor. Setelah saya download dan saya jalankan programnya (ga usah di-install) ternyata membuat game dengan menggunakan software ini tidak terlalu susah. Mungkin hanya pembuatan animasinya saja yang susah. Kalau untuk membuat animasinya, anda dapat menggunakan anim8or atau dengan menggunakan photoshop juga bisa. Bagi anda yang ingin mencoba software ini, bisa didownload disini. Nah langsung aja kita coba cara membuat game animasi 2D sederhana dengan menggunakan software ini, Game Editor.

Disini, saya akan menjelaskan cara membuat game yang kebetulan buatan saya sendiri. Game ini sangat sederhana sekali. Mungkin nantinya bisa saya kembangkan lagi. Kalau anda yang ingin mencoba membuat game ini, ada baiknya anda download gambar yang dibutuhkan didalam game ini. Bisa didownload disini.

Nah setelah anda mempunyai gambarnya, langsung aja kita mulai. Pertama buka Game Editor. Lalu langsung saja tambah aktor animasi. Caranya cari add actor. Setelah itu beri nama actor tersebut dengan nama "player". Lalu add. Program otomatis akan langsung masuk ke dalam actor control player tersebut. Nah kita masukan animasi actor player tersebut. Caranya add animation --> pilih didalam komputer anda (jika anda ingin memakai gambar saya, pilih gambar plane1.png) --> ok. Nah kita sudah memasukan animasi actor tersebut. Selanjutnya kita tambahkan event, agar player tersebut bergerak sesuai dengan arah mouse. Caranya pada actor control player pilih add event --> draw actor --> add action --> follow mouse. Close dan pilih immediate action. Coba dites dalam game mode, apabila anda mengikuti instruksi ini dengan benar, maka actor player tersebut akan bergerak sesuai dengan gerakan mouse yang kita gerakan.

Lalu ke langkah berikutnya. Disini kita akan membuat tembakan dari actor player tersebut. tambah actor kembali, add actor, kemudian beri nama "shoot". Pada actor control shoot ini, tambahkan animasinya. Langsung saja apabila anda ingin memakai gambar dari saya, pilih redshoot.png. Setelah itu add event --> create actor --> script editor.

Nah kita masukan script yang pertama. Ikuti script dibawah ini :

angle=myburstangle;
directional_velocity=10;

Disini kita memakai variable yang belum didefinisikan, yaitu myburstangle. Definisikan dahulu variablenya dengan cara pilih variables --> add --> namenya isikan dengan myburstangle lalu add dan close dan pilih immediate action lalu close lagi. Coba jalankan dalam game mode. Redshoot tersebut akan bergerak lurus dengan sendirinya (default). Kayanya ada yang aneh deh? Emang belum selesai. Disini yang kita inginkan yaitu actor player tersebut dapat menembakan redshoot tersebut. Caranya pertama masuk dulu dalam actor control shoot. Lalu setting create at startup, "no". Selesai dengan actor control shoot. Selanjutnya kita masuk ke dalam actor control player. Lalu add event --> mouse button down. Didalam mouse button down, setting press mouse button click dengan left. Caranya click saja kiri mouse anda didalam press mouse button click tersebut. Lalu add action --> script editor.

Script lagi deh. Isikan script ini :

CreateActor("shoot","redshoot","no parent","no path",20,0, false);

shoot disini merupakan nama actor yang kita panggil. redshoot nama gambarnya. Lalu no parent dan no path memang disini kita tidak memerlukan parent maupun path. 20 dan 0 merupakan tata letak objek tersebut. Setting saja menurut anda yang lebih pas. Setelah itu pilih add dan pilih immediate action. Nah coba lihat dalam game mode. actor player sekarang dapat menembakan redshoot dengan click kiri mouse.

Langkah selanjutnya, kita setting agar redshoot tersebut dapat menghancurkan actor. Caranya masuk ke dalam actor control shoot, add event --> out of vision --> add action --> destroy actor. Lalu pilih add dan immediate action.

Nah sekarang pertanyaanya siapa actor yang ingin dicoba, apakah perintah diatas berhasil atau tidak, redshoot tersebut dapat menghancurkan actor apa tidak. Kita buat actor baru lagi, add actor. Beri nama actor tersebut "enemy". Seperti biasa add animation pada actor enemy tersebut. Pilih gambar plane2.png. Lalu ok. Selanjutnya tambahkan event, add event --> create actor --> add action --> script editor.

Nah ketemu lagi script deh. Ini script yang ketiga. Masukan script dibawah ini ke dalam script editor :

xvelocity=-3;

Perintah diatas berfungsi untuk menggerakan actor enemy ke arah kiri (minus) dengan kecepatan 3. Setelah itu add dan pilih immediate action. Lihat dalam game mode. Actor enemy tersebut akan bergerak ke arah kiri (ke arah player).

Pertanyaan selanjutnya. Bagaimana cara actor enemy tersebut hancur apabila terkena redshoot? Pertama masuk ke dalam actor control enemy lalu add event --> collision --> of actornya masukan "shoot" lalu add action --> script editor.

Script lagi-script lagi. Masukan saja script dibawah ini :

DestroyActor("Collide Actor");
DestroyActor("Event Actor");

Lalu add dan pilih immediate action. Lihat kembali pada game mode. Cobalah untuk menembak enemy dengan menggunakan redshoot. Apabila anda mengikuti instruksi dengan benar, maka actor enemy tersebut akan hilang.

Masa hilang doang? Ga ada ledakannya apa? Oke langkah selanjutnya kita bikin efek ledakan apabila si actor enemy tersebut terkena redshoot. Tambah actor baru, add actor dengan nama "boom". Selanjutnya masukan animasi, add animation cari gambar BlueExplosion.jpg. Sebelum ok, setting dulu horizontal frames dan vertical framesnya. Kalau ga salah sih yang pas tuh horizontal framesnya 4 dan vertical framesnya 6. Kita akan dapat animasi bergerak seperti sebuah ledakan (explosion). Dan terakhir pilih ok. 

Apa sekarang kalau actor enemy hancur akan meledak? Wes sabar dulu, ini belum selesai. Ya udah kita lanjutkan. Pertama masuk ke dalam actor control boom, pilih add event --> animation finish --> add action --> destroy actor lalu add dan pilih immediate action. Udah setengah jalan. Sekarang masuk ke dalam actor control enemy. Disini kita akan mengedit event yang telah kita tambahkan sebelumnya. Langsung saja edit --> collision --> script editor(any side of shot) --> edit action. Di bawah script destroy actor ("event actor"); tambahkan script ini :

CreateActor("boom", "BlueExplosion", "no parent", "no path", 0, 0, false);
score+=100;

Kita memakai variable yang belum didefiniskan kembali. Buat variable dengan nama score. Caranya sama seperti sebelumnya pas anda membuat variable myburstangle. Pilih add dan close, lalu ok dan terakhir immediate action. Coba lihat dalam game mode. Dan coba anda tembak actor enemy tersebut. Apabila berhasil, maka akan ada efek BlueExplosion setelah enemy tersebut hancur.

Ini game curang amat, masa enemy ga bisa nembak sih? Ya udah, kita setting juga supaya si enemy pun dapat hak yang sama, bisa nembak juga, nembak apa ni? hehe. Pertama tambah actor, add actor lalu beri nama "eshoot". Tambahkan orangeshot.png pada animasinya. Selanjutnya tambahkan event, add event --> create actor --> add action --> script editor.

Ko perasaan ketemu script terus ya? Ada ga sih game yang ga pake script? Wah saya kurang paham, rata-rata sih game emang pake script semua, ya untuk menjalankan logikanya. Balik lagi ke script editor. Isikan script ini ke dalam script editor :

angle=direction(x, y, player.x, player.y);
directional_velocity=8;

Script editor diatas berfungsi untuk menampilkan orangeshot dalam koordinat x dan y player. Diretional_velocity untuk set cepat lambatnya shoot yang ditembakkan. Semakin besar nilainya, semakin cepat shootnya. Lalu add dan pilih immediate action. Lihat game modenya. Horeeee, sekarang si enemy sudah dapat menembakan orangeshot.

Tapi tunggu dulu, ko ada yang aneh lagi ya? Yoi orangeshot ini hanya sekali ditembakan oleh enemy. Bagaimana caranya agar berulang-ulang? Caranya kita set time. Buat apa? Ya itu buat ngulang orangeshot lah. Oke langsung aja ya. Masuk kedalam actor control enemy lalu add event --> create actor --> add action --> create timer. Pada timer pilih new timer dan masukan timernya seperti ini :

Name        : r1
Time (ms)  : 4000

ok dan pilih immediate action. Selanjutnya tambah event lagi pada actor control enemy add event --> timer --> pada timernya masukan nilai r1 (yang sebelumnya sudah kita set terlebih dahulu) --> add action --> script editor.

Masukan script ini :

CreateActor("eshoot","orangeshot","no parent","no path",-30,10,false);

Lalu add dan immediate action. Coba lihat dalam game mode. Waw sekarang enemy sudah bisa menembakan orangeshot berulang-ulang.

Apa ada yang aneh nih? Masa player ga bisa hancur sih? Ni main pake gameshark ya? hehe. Sory lupa. Ini langkah terakhir ni. Jadi si player juga bisa hancur apabila terkena orangeshot, sama halnya dengan enemy yang hancur apabila terkena redshoot. Oke langsung aja, udah pegel ini. Masuk ke dalam actor control player, lalu add event --> collision --> of actornya masukan eshoot --> add action --> script editor.

Sumpah ini script terakhir, semangat. Jangan lupa masukin ininya (apanya?) :

DestroyActor("Collide Actor");
DestroyActor("Event Actor");
CreateActor("boom", "BlueExplosion", "no parent", "no path", 0, 0, false);
lives-=1;

Buat variable lagi deh dengan nama lives. Sama seperti sebelumnya. Oke lihat dalam game mode. Biarkan si player terkena orangeshot dari enemy dan "KABOOOOM". 

Mungkin sekian dulu gamenya. Sumpah ini game sederhana banget, tapi bikinnya ribet banget. Gimana bikin game 3D ya? haha. Bagi anda yang ingin download gamenya bisa disini. Atau bagi anda yang ingin meminta source kodenya buat dikembangkan lagi bisa didownload disini. Thank You.

10 komentar:

  1. bang...
    klo bisa posting'a pake gambar atuh..
    jadi visualisasinya enak diliat..
    trus bisa mempermudah orang yg baca blog ini...
    klo tulisan semua orang juga pusing bacanya..
    hehehehe

    *sekedar saran aja..

    BalasHapus
  2. Iya hahaha makasih buat masukannya. Berhubung tugas kuliah jadi buru-buru deh langsung posting. Abis udah deadline. Ga sempet mau upload pake gambar.

    Btw thanks

    BalasHapus
  3. bener kt blues :D

    mampir ke web blog anne yaa gann.
    __www.koleksibaba.com__

    mkshh...

    BalasHapus
  4. maunanya ni kalau mau buat musuh sama karakter dan gambar lain nya pakai software apa untuk bikin nya...?

    BalasHapus
  5. setting create at startup nya gak ada -,- gimana nih

    BalasHapus
  6. LINK GAMBARNYA RUSAK MIN ,, MOHON DIPERBAIKI !!!

    BalasHapus
  7. mantap gan...
    http://www.rajalistrik.com

    BalasHapus
  8. yahhh kayanya seruuu niiii.... coba ada video nya pasti mudah d mengertiii....^^ mau coba tpi masih gak ngertiii.... tpi thanks atas ilmu nyaaa...^^

    BalasHapus