Rancang Bangun Game Wirausaha Muda Berbasis RPG Maker VX

(1)

RANCANG BANGUN GAME WIRAUSAHA MUDA

BERBASIS RPG MAKER VX

TUGAS AKHIR

DICKO IFENTA

092406213

PROGRAM STUDI D-III TEKNIK INFORMATIKA

DEPARTEMEN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

2012


(2)

RANCANG BANGUN GAME WIRAUSAHA MUDA BERBASIS RPG MAKER VX

TUGAS AKHIR

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh Ahli Madya

DICKO IFENTA 092406213

PROGRAM STUDI D-III TEKNIK INFORMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

MEDAN 2012


(3)

PERSETUJUAN

Judul : RANCANG BANGUN GAME WIRAUSAHA

MUDA BERBASIS RPG MAKER VX

Kategori : TUGAS AKHIR

Nama : DICKO IFENTA

Nomor Induk Mahasiswa : 092406213

Program Studi : DIPLOMA III TEKNIK INFORMATIKA

Departemen : MATEMATIKA

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN

ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA

Diluluskan di Medan, Juli 2012

Komisi Pembimbing :

Diketahui/Disetujui oleh Pembimbing, Departemen Matematika FMIPA USU

Ketua,

Prof.Drs. Tulus, M.Si Dr. Saib Suwilo, M.Sc NIP : 196209011988031002 NIP : 196401091988031004


(4)

PERNYATAAN

RANCANG BANGUN GAME WIRAUSAHA MUDA BERBASIS RPG MAKER VX

TUGAS AKHIR

Saya mengakui bahwa Tugas Akhir ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, Juli 2012

DICKO IFENTA 092406213


(5)

PENGHARGAAN

Puji dan syukur penulis panjatkan kepada Allah SWT, dengan berkah dan rahmat-Nya penulis dapat menyelesaikan Penulisan Tugas Akhir ini dengan sebaik-baiknya sebagai syarat untuk menyelesaikan pendidikan pada Program Diploma III Teknik Informatika FMIPA Universitas Sumatera Utara.

Banyak pihak yang telah memberikan bantuan kepada Penulis, mulai dari persiapan penulis, pengumpulan data, hingga penyempurnaan tugas akhir ini. Untuk itu, pada kesempatan ini Penulis ingin mengucapkan terima kasih yang sebesar – besarnya kepada :

1. Bapak Dr.Sutarman,M.Sc selaku Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara.

2. Bapak Prof.Drs.Tulus,M.Si selaku ketua Departemen Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara.

3. Bapak Dr.Saib Suwilo,M.Sc selaku pembimbing penulis yang telah banyak memberikan saran dan masukan kepada penulis dalam penyelesaian Tugas Akhir ini.

4. Seluruh staf pengajar di Fakultas Matematika Dan Ilmu pengetahuan Alam Universitas Sumatera Utara khususnya program studi D-III Teknik Informatika yang telah banyak memberikan ilmu selama perkuliahan.


(6)

5. Teristimewa kepada Ayahanda Ifzal Jhon dan Ibunda Enita tercinta dan adik tersayang atas doa, dukungan, motivasi, semangat, kasih sayang yang tiada henti kepada penulis sehingga penulis dapat menyelesaikan Tugas Akhir ini dengan baik.

6. Untuk teman-teman penulis khususnya kepada Haidar Rizal dan Febri Susilo HTG serta teman-teman lainnya yang tidak dapat penulis sebutkan satu persatu. Terima kasih atas bantuan, dukungan dan semangat kepada penulis selama ini.

7. Semua rekan-rekan Kom D angkatan 2009 yang tidak dapat disebutkan satu persatu.

Akhir kata, Penulis berharap semoga Tugas Akhir ini dapat bermanfaat bagi siapapun yang membacanya. Semoga Allah SWT senantiasa memberikan rahmat dan hidayah-Nya kepada kita semua

Medan, Juli 2012


(7)

ABSTRAK

Game merupakan salah satu industri di dunia saat ini. Perkembangan game begitu pesat dengan jenis yang beragam, mulai dari game yang hanya dapat dimainkan oleh satu orang saja hingga game yang dapat dimainkan oleh beberapa orang sekaligus. RPG maker VX merupakan perangkat lunak yang digunakan untuk membuat sebuah game ber-genre RPG. Tujuan tugas akhir ini adalah untuk membuat sebuah game bertema wirausaha namun dengan gaya bermain RPG (Role Playing Game).


(8)

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak vi

Daftar Isi vii

Daftar Gambar ix

Bab 1 Pendahuluan 1

1.1 Latar Belakang 1

1.2 Rumusan Masalah 3

1.3 Metodologi Penelitian 3

1.4 Maksud dan Tujuan 4

1.5 Sistematika Penulisan 5

Bab 2 Landasan Teori 7

2.1 Pengertian Aplikasi 7

2.2 Pengertian Game Komputer 7

2.3 Game Edukasi 8

2.4 Role Playing Game 8

2.5 Grafik 10

2.6 Animasi 10

2.7 Kontrol dalam Animasi 10

2.7.1 Keyboard 10

2.7.2 Mouse 11

2.8 RPG Maker VX 11

2.8.1 Riwayat Produk 12

2.8.2 Pengenalan Lingkungan RPG Maker VX 14 2.8.3 Kompongen-Komponen Lingkungan Kerja 15

Bab 3 Perancangan Sistem 19

3.1 Persiapan Kebutuhan Sistem 19

3.2 Diagram Alur Program 20

3.3 Rancangan Manual Game 21

3.3.1 Rancangan Halaman Menu Utama 22 3.3.2 Rancangan Interface dalam permainan 22 3.3.3 Rancangan Save dan Load Process 23

3.4 Rancangan Mapping 23

3.4.1 Rumah Budi 23

3.4.2 Rumah Pak Kardi 24

3.4.3 Toko Grosir 24


(9)

3.4.5 Tebing Kecil 25

3.4.6 Indrapuri 26

3.4.7 Rumah Anton 26

3.4.8 Toko Bangunan 27

Bab 4 Implementasi Sistem 28

4.1 Pengertian Implementasi Sistem 28

4.2 Tujuan Implementasi Sistem 28

4.3 Spesifikasi Sistem 29

4.4 Komponen Utama Dalam Implementasi Sistem 29

4.4.1 Perangkat Keras (Hardware) 30

4.4.2 Perangkat Lunak (Software) 30

4.4.3 Unsur Manusia (Brainware) 31

4.5 Tampilan Aplikasi 32

4.5.1 Tampilan Menu Utama 32

4.5.2 Halaman Load Proses 33

4.5.3 Interface dalam Game 34

4.5.4 Tampilann Kota dan Rumah 34

Bab 5 Penutup 41

5.1 Kesimpulan 41

5.2 Saran 42

Daftar Pustaka Lampiran


(10)

DAFTAR GAMBAR

Halaman Gambar 2.1 Tampilan RPG Maker VX 15

Gambar 2.2 Baris Menu 15

Gambar 2.3 Tiles Box 16

Gambar 2.4 Event Page 17

Gambar 3.1 Alur Program Game Wirasusaha Muda 20

Gambar 3.2 Rancangan Halaman Utama 22

Gambar 3.3 Rancangan Interface dalam Permainan 22 Gambar 3.4 Rancangan Save dan Load Proses 23 Gambar 3.5 Rancangan Mapping Rumah Budi 23 Gambar 3.6 Rancangan Mapping Rumah Pak Kardi 24 Gambar 3.7 Rancangan Mapping Toko Grosir 24 Gambar 3.8 Rancangan Mapping Toko Furniture 25 Gambar 3.9 Rancangan Mapping Tebing Kecil 25 Gambar 4.10 Rancangan Mapping Indrapuri 26 Gambar 3.11 Rancangan Mapping Rumah Anton 26 Gambar 3.12 Rancangan Mapping Toko Bangunan 27

Gambar 4.1 Tampilan Menu Utama 32

Gambar 4.2 Halaman Load Process 33

Gambar 4.3 Interface dalam Game 34

Gambar 4.4 Rumah Budi 35

Gambar 4.5 Kota Tebing Kecil 36

Gambar 4.6 Rumah Pak Kardi 36

Gambar 4.7 Toko Grosir 37

Gambar 4.8 Gudang Tua 37

Gambar 4.9 Indrapuri 38

Gambar 4.10 Toko Furniture 38

Gambar 4.11 Toko Budi 39

Gambar 4.12 Rumah Anton 39


(11)

ABSTRAK

Game merupakan salah satu industri di dunia saat ini. Perkembangan game begitu pesat dengan jenis yang beragam, mulai dari game yang hanya dapat dimainkan oleh satu orang saja hingga game yang dapat dimainkan oleh beberapa orang sekaligus. RPG maker VX merupakan perangkat lunak yang digunakan untuk membuat sebuah game ber-genre RPG. Tujuan tugas akhir ini adalah untuk membuat sebuah game bertema wirausaha namun dengan gaya bermain RPG (Role Playing Game).


(12)

BAB 1

PENDAHULUAN

1.1Latar Belakang

Data statistik menunjukkan bahwa baru 0,18% penduduk Indonesia yang berprofesi sebagai pengusaha. Padahal idealnya sebuah Negara akan maju jika minimal 2% penduduknya adalah pengusaha. Jika dilihat pada data negara maju seperti Amerika yang memiliki 12% pengusaha dari total penduduknya, Singapura 7% dan Jepang 10%.

Kemajuan teknologi informasi sangat berkembang pesat dewasa ini, hal ini berdampak positif pada media pembelajaran. Dahulu sistem pembelajaran hanya terbatas pada sistem pembelajaran konvensional yaitu melalui buku dan kegiatan belajar-mengajar langsung, namun dengan kecanggihan teknologi yang berkembang, pembelajaran bisa dilakukan melalui teknologi informasi seperti internet yang memberikan informasi secara lengkap juga cepat. Selain itu, pembelajaran interaktif juga dapat dilakukan melalui game edukasi.


(13)

Pengembangan game memiliki prospek yang cukup bagus seiring dengan berkembangnya teknologi informasi. Perkembangan game untuk pendidikan sangat diminati. Game yang berfungsi sebagai edukasi umumnya didukung dengan gambar dan warna yang unik sehingga akan lebih mudah diserap pembelajaran dibandingkankan dengan pembelajaran konvensional.

Sebagai suatu program yang interaktif, dapat merespon apa yang dilakukan pemain, game sebenarnya mempunyai peluang yang besar untuk menjadi sebuah sarana pendidikan yang membuat anak betah belajar lama. Tentunya pendidikan disini tidak terlalu terlihat eksplisit karena pemain pun enggan bermain game ini. Tapi dengan melihat pesan implicit yang membuat anak tidak merasa seperti belajar. Dia merasa tertantang untuk menyelesaikan game ini. Dan setelah memainkan game tersebut, pengetahuan dia bertambah. Psikologi anak lebih suka bermain daripada belajar. Jika game bisa digunakan sebagai sarana pendidikan secara maksimal, tentunya hal ini akan mempermudah kegiatan belajar mengajar bagi anak-anak dan gurunya.

Pada penelitian tugas akhir ini, akan dibahas mengenai game sebagai media pembelajaran interaktif bagi anak-anak. Penelitian ini membahas pengembangan game edukasi “Wirausaha Muda”, yaitu pembelajaran mengenai wirausaha sejak dini untuk anak.


(14)

1.2Rumusan Masalah

Merancang dan membuat sebuah game yang fleksibel dimana pemain akan di beri kebebasan mengendalikan jalan cerita yang akan menentukan masa depannya sendiri di dalam game ini serta mengenalkan dunia wirausaha dalam skala kecil di game ini.

1.3Metodologi Penelitian

Suatu penelitian tidak terlepas dari metode pendekatan terhadap objek atau penyelesaian masalahnya. Adapun metodologi penelitian yang digunakan penulis adalah :

1. Penelitian Kepustakaan (Library Research)

Yaitu penelitian yang dilakukan penulis di perpustakaan untuk mendapatkan data yang teoritis. Dalam hal ini penulis melakukannya dengan membaca serta mengkaji buku-buku yang berkaitan dengan masalah yang ditinjau. Penulis juga melakukan penelitian kepustakaan secara online dengan membaca beberapa artikel terkait.

2. Membuat Rancangan Game

Proses pembuatan ini meliputi pembuatan game, perancangan event dan pemberian costum script untuk mendukung fleksibilitas game itu sendiri.


(15)

3. Pengujian Game dan Perbaikan

Menguji apakah aplikasi game yang dibuat telah berhasil berjalan sesuai dengan keinginan dan melakukan perbaikan kesalahan jika masih terdapat kesalahan pada game.

4. Implementasi Game

Penerapan aplikasi game yang dibuat setelah melalui tahap pengujian dan telah berjalan dengan baik.

5. Penyusunan dan Pengadaan Laporan

Tahap akhir dari penelitian yang dilakukan, yaitu membuat laporan tentang penelitian yang telah dilakukan.

1.4Maksud dan Tujuan

Maksud penulis membuat game ini adalah untuk mendukung proses pembelajaran konvensional sehingga materi pembelajaran dapat diterima dengan baik.

Dengan penelitian ini, penulis berharap agar anak-anak bias mengenal dunia wirausaha sejak dini, pembelajaran tentang manajemen waktu dan munculnya ketertarikan untuk berwirausaha di usia muda.


(16)

1.5Sistematika Penulisan

Dalam penulisan tugas akhir ini, penulis membentuk suatu sistematika penulisan yang bertujuan untuk menggambarkan secara ringkas bab-bab yang mencakup hal-hal sebagai berikut:

Bab 1 : PENDAHULUAN

Bab ini berisikan latar belakang penulisan, rumusan masalah, pembatasan masalah, metodologi penelitian, maksud dan tujuan, dan sistematika penulisan.

Bab 2 : LANDASAN TEORI

Bab ini menjelaskan tentang konsep dasar dan teori-teori yang mendukung pembahasan untuk tema penulisan ini yang didapat dari beberapa literature.

Bab 3 : PERANCANGAN SISTEM

Bab ini membahas tentang perancangan Game Wirausaha Muda berbasis RPG Maker VX.

Bab 4 : IMPLEMENTASI SISTEM

Bab ini membahas tentang analisa hasil dan pembahasan aplikasi Game Wirausa Muda berbasis RPG Maker VX.


(17)

Bab 5 : PENUTUP

Bab ini berisi kesimpulan dari bab-bab yang ada, sehingga dari kesimpulan ini penulis mencoba untuk memberi saran yang berguna untuk melengkapi dan menyempurnakan pengembangan aplikasi ini untuk kedepannya.


(18)

BAB 2

LANDASAN TEORI

2.1 Pengertian Aplikasi

Aplikasi merupakan program komputer yang dibuat untuk menolong manusia melaksanakan tugas tertentu (Margudi, 1995 hal: 20). Aplikasi berbeda dengan Sistem Operasi (yang menjalankan komputer), Utility (yang melaksanakan perawatan/tugas-tugas umum) dan Bahasa (yang digunakan untuk membuat program komputer), tergantung dari tujuan pekerjaan yang dimaksudkan, suatu aplikasi dapat memanipulasi teks, angka, kombinasi dari unsur-unsur tersebut.

2.2 Pengertian Game Komputer

Game / Permainan Komputer adalah permainan video yang dimainkan pada komputer pribadi, dan bukan pada konsol permainan. Permainan tersebut dikendalikan dari keyboard atau melalui joystick dan peralatan-peralatan lain dan disediakan pada disk. Permainan komputer telah berevolusi dari sistem grafis sederhana menjadi kompleks dan mutakhir. (http://id.wikipedia.org/wiki/Permainan_komputer)


(19)

2.3 Game Edukasi

Game edukasi adalah permainan yang telah dirancang khusus untuk mengajar orang tentang suatu subjek tertentu, memperluas konsep, memperkuat pembangunan, memahami sebuah peristiwa historis atau budaya, atau membantu mereka dalam mempelajari keterampilan dalam bermain. Yang termasuk game edukasi adalah board, kartu, dan permainan video. (http://id.wikipedia.org/wiki/Educational_game)

2.4 Role Playing Game

Permainan peran role-playing game disingkat RPG) adalah sebuah berkolaborasi untuk merajut sebuah cerita bersama. Para pemain memilih aksi tokok-tokoh mereka berdasarkan karakteristik tokok-tokoh tersebut, dan keberhasilan aksi mereka tergantung dari sistem peraturan permainan yang telah ditentukan. Asal tetap mengikuti peraturan yang ditetapkan, para pemain bisa berimprovisasi membentuk arah dan hasil akhir permainan ini.

Dalam sebuah permainan RPG, jarang ada yang "kalah" atau "menang". Ini membuat permain RPG berbeda dari jenis permainan papan lainnya seperti at ini mengajak para pemain untuk menggunaka


(20)

mengarah ke kolaborasi sosial daripada kompetisi. Pada umumnya dalam RPG, para pemain tergabung dalam satu kelompok.

Permainan RPG rata-rata dimainkan seperti sebua seorang pemain "berbicara", dia berbicara sebagai tokohnya dan ketika si pemain ingin tokohnya melakukan sesuatu yang fisik (seperti menyerang sebua membuka sebua sejenis permainan RPG di mana para pemain bisa melakukan gerakan fisik tokohnya oleh si pemain sendiri. Ini disebut Live-Action Role-playing atau LARP. Dalam permainan LARP, biasanya para pemain memakai yang sesuai dengan tokoh, dunia dan cerita yang dia mainkan.

Permainan RPG disebut sebagai juga banyak diadaptasikan ke mesin-mesin permainan ata elektronik, industri permainan video telah membuat istilah RPG dikenal untuk RPG elektronik saja, dan mengakibatkan munculnya istilah RPG "pen and paper" atau "tabletop" untuk mendeskripsikan RPG tradisional.


(21)

2.5 Grafik

Grafik merupakan salah satu bagian yang sangat penting dalam program permainan. Grafik yang bagus serta animasi yang halus merupakan kunci program permainan yang menarik.

2.6 Animasi

Animasi merupakan komponen penting dalam program permainan yang dapat menjadikan objek seolah-olah hidup. Prinsip dasar animasi adalah gambar, hapus, dan gambar lagi di tempat baru.

2.7 Kontrol dalam Animasi

Merupakan cara bagaimana menangani masukan dari pemain untuk mengendalikan atau berinteraksi dengan program permainan tersebut. Berikut beberapa kontrol-kontrol dalam animasi :

2.7.1 Keyboard

Keyboard merupakan peralatan input primer yang dapat dipastikan bahwa semua PC yang berjalan normal akan memilikinya.


(22)

2.7.2 Mouse

Mouse berperan sama pentingnya dengan keyboard karena kemudahan penggunaannya. Hampir semua program permainan saat ini menggunakan mouse untuk kemudahan dan keluwesan pengendalian.

2.8 RPG Maker VX

RPG Maker adalah program yang memungkinkan pengguna untuk membuat sendiri peta, (tilesets disebut chipset dalam pra-XP versi), sederhan acara scripting, dan editor pertempuran. Semua versi termasuk tilesets premade awal, karakter, dan peristiwa yang dapat digunakan dalam menciptakan permainan baru. Salah satu fitur dari program PC Versi RPG Maker adalah bahwa pengguna dapat membuat tilesets baru dan karakter, dan menambahkan grafis baru ia / dia inginkan. Sejarah

Menurut Enterbrain, RPG Tsukūru Dante 98, yang dirilis pada tanggal 17 Desember 1992, adalah pertandingan pertama dari seri RPG Maker, meskipun ada beberapa versi dari software membuat RPG dengan ASCII mendahuluinya. Ini,

bersama dengan tindak lanjut Tsukūru nya RPG Dante 98 II, dibuat unt

komputer Windows denga masing-masing.


(23)

2.8.1 Riwayat Produk

1.

RPG Maker 95 adalah generasi pertam RPG Maker. Meskipun versi awal, RPG Maker 95 memiliki baik resolusi layar lebih tinggi, dan sprite yang lebih tinggi dan resolusi genteng dari beberapa versi berikut.

RM2k adalah rilis kedua dari RPG Maker unt merupakan RPG Maker yang paling populer dan digunakan sejauh ini. Meskipun mungkin untuk melakukan lebih banyak dengan RM2k, menggunakan sprite resolusi yang lebih rendah dan ubin dari RPG Maker 95. Namun, itu tidak memiliki batas yang nyata 'sprite'. Tidak seperti RM95, yang hanya dapat menggunakan satu 'set', RM2k dapat menggunakan jumlah yang tidak terbatas lembar sprite dengan ukuran yang spesifik untuk setiap jenis. Para tilesets juga memiliki keterbatasan non-sama. Namun, karena ubin harus dimasukkan ke dalam database, ada batas pada ubin. Namun batas ini jarang masalah (biasanya 5000), dan bahkan ketika itu, patch yang tidak resmi ada yang dapat membatasi benjolan yang paling jauh lebih tinggi dengan risiko korupsi permainan potensial.

RM2k3 sebagian besar adalah peningkatan RM2k. RM2k permainan dapat porting ke RM2k3 (tetapi tidak kembali ke RM2k, konversi permanen), dan sumber daya yang paling dapat dipertukarkan. Perbedaan utama adalah


(24)

pengenalan sistem pertarungan sisi-pandangan yang sama dengan yang ditemukan dalam dibuat ole

4.

RMXP adalah RPG Maker pertama yang dapat menggunak yang paling kuat, pemrograman-bijaksana. Namun, banyak yang normal, fitur disederhanakan hadir dalam RM2k (3) telah dihapus. Kebanyakan dari fitur ini, bagaimanapun, telah diprogram dengan Ruby, dan didistribusikan secara online. RMXP berjalan pada dalamnya berjalan pada 640x480), sementara menawarkan empat kali luas dimainkan dari pendahulunya. Selain itu, memungkinkan kontrol lebih besar atas ukuran pengguna sprite (tidak ada regulasi ukuran gambar tertentu untuk lembaran sprite) dan aspek lain dari desain game. Ini pengaturan yang lebih terbuka, ditambah dengan dimasukkannya Ruby Game Scripting System (RGSS), membuat RPG Maker XP lebih fleksibel daripada versi lama dalam seri, pada biaya kurva belajar curam. Setelah peluncuran Windows Vista, banyak pengguna mengalami masalah kompatibilitas, meskipun memperbaiki relatif sederhana. XP digunakan depan-pandangan non-sprite battle system yang memungkinkan untuk penggunaan latar belakang Pertempuran (Battlebacks). Baik karakter dan musuh telah sprite pertempuran statis, dan antarmuka cukup sederhana.


(25)

5.

RMVX adalah versi terbaru RPG Maker dirilis oleh Enterbrain. Tanggal rilis resmi di Jepang adalah 27 Desember 2007, dan tanggal rilis resmi di Amerika adalah 29 Februari 2008. Dalam pembuat baru, antarmuka yang lebih user-friendly, yang memungkinkan pengguna baru untuk membuat game dengan mudah. Framerate meningkat sampai 60 frame per detik, memberikan animasi lebih halus dibandingkan dengan sering-berombak RMXP itu 40fps. Bahasa pemrograman Ruby masih dilaksanakan, dan program default permainan telah dirombak untuk memungkinkan lebih banyak kebebasan untuk scripting yang ada di fitur baru. Editor baru dan RTP baru disertakan, kali ini dalam gaya yang lebih sederhana "kuning". Sistem pertempuran adalah sebanding dengan bahwa dari seri atau RM2k pendahulunya, dengan pemandangan frontal medan perang dan deskripsi rinci masing-masing teks tindakan yang diambil. Salah satu kelemahan penting dari versi sebelumnya, bagaimanapun, adalah kurangnya dukungan untuk beberapa saat tilesets pemetaan, meninggalkan pemain dengan hanya sejumlah terbatas ubin yang unik yang dapat digunakan untuk menggambarkan semua lingkungan game. Beberapa pemain buatan workarounds ada, tapi ini tetap menjadi titik sakit antara pengguna RMVX.

2.8.2 Pengenalan Lingkungan RPG Maker VX

Untuk menjalankan RPG Maker VX sebagai perancang aplikasi game, maka langkah pertama yang perlu diketahui pemakai adalah lingkungan kerja beserta komponen-komponen yang terkait didalamnya.


(26)

2.8.2.1 Komponen- Komponen pada Lingkungan Kerja

Apabila pemakai sudah menjalankan prosedur pengaktifan secara benar maka jendela utama dari lingkungan kerja RPG Maker VX akan tampil.

Gambar 2.1 Tampilan RPG Maker VX

1. Baris Menu (Menu Bar)

Baris Menu adalah komponen yang terdapat pada lingkungan kerja RPG Maker VX yang digunakan untuk melakukan proses atau perintah berkaitan dengan pembuatan file.


(27)

2. Tiles Box

Tempat potongan-potongan tilieset yang digunakan untuk membangun sebuah map. Tileset sendiri dibagi menjadi 5 part didalam resource. Tileset A-E.

a. Tileset A berisi terrain seperti tanah, lantai, atau dinding.

b. Tileset B - E berisi benda-benda yang akan di taruh di atas terrain. Seperti kursi, meja, dll. Memang banyak yang bilang mapping di VX kalah jauh dibanding XP dalam beberapa hal. tapi bagi yang baru belajar, mapping VX jauh lebih sederhana (karena adanya sistem layer otomatis. ada juga autotiles. tiles yang otomatis menyesuaikan bentuknya. jadinya tinggal men-drag. Biasanya autotiles buat lantai dan dinding. dan satu hal lagi, autotiles bisa di animasikan. jadinya bisa dibikin bergerak-gerak.


(28)

3. Event

Segala sesuatu yang terjadi dalam project bisa dibilang dikendalikan oleh event. Mulai dari cerita, percakapan, quest, bahkan ada beberapa minigame dikendalikan dengan event. Meski di RMVX ada yang disebut script, bukan berarti peran event di gantikan sepenuhnya oleh script.

Gambar 2.4 Event Page

ketika membuat sebuah event, di sudut kiri atas akan terlihat settingan event page. berapa event yang terpasang dalam tile itu dan juga kondisi yang dibutuhkan agar event bisa aktif. Berikut penjelasannya :


(29)

1. Switch : ketika switch yang didefenisikan disini aktif, maka event juga akan aktif.

2. variable : data berupa nomor (integer). jadi apabila sebuah variable mencapai titik tertentu dan event diset pada nilai variabel itu, maka event akan aktif.

3. self switch : switch yang hanya berlaku untuk event itu sendiri. jumlah self switch tiap event ada 5 buah. biasanya digunakan pada pintu, atau chest.

4. Items : event akan aktif apabila player memiliki item yang di set untuk event tersebut.

5. Actor : event akan aktif saat aktor yang telah di set bergabung dalam party. Cara aktifnya event di setting dalam triggers. Adapun triggers dalam RMVX antara lain:

1. Action button : event akan aktif apabila player menekan action button (dalam hal ini tombol 'Z' di keyboard atau 'spasi').

2. Player touch : event akan aktif saat player bersentuhan dengan event.

3. Event touch : event akan aktif saat event menyentuh player. (hampir mirip dengan player touch)

4. Autorun : begitu autorun aktif, player akan otomatis kehilangan kendali terhadap aktor sampai event autorun dihentikan.

5. Paralel process : mirip dengan autorun. Hanya saja, paralel process tidak mengakibatkan player kehilangan kendali atas aktor.


(30)

BAB 3

PERANCANGAN SISTEM

3.1 Persiapan Kebutuhan Sistem

Menurut John Burch & Gary Grudnitski, Perencangan system dapat didefenisikan sebagai penggambaran, perencanaan, dan pembuatan sketsa atau pengaturan dari beberapa elemen yang terpisah ke dalam satu kesatuan yang utuh dan berfungsi. Sedangkan menurut George M. Scott, perancangan desain menentukan bagaimana suatu system akan menyelesaikan apa yang mesti diselesaikan. Tahap ini menyangkut mengkonfigurasi komponen-komonen perangkat lunak dan perangkat keras dari suatu system sehingga setelah instalasi dari system akan benar-benar memuaskan rancang bangun yang telah ditetapkan pada akhir tahap analisis system.

Pada tahap ini dilakukan persiapan tentang kebutuhan aplikasi yang akan dibuat. Dengan kata lain penguraian secara rinci tentang spesifikasi arsitektur proyek, gaya dan kebutuhan material untuk proyek game yang dikerjakan. Kebutuhan-kebutuhan tersebut, yaitu:


(31)

1. Tools-Tools Yang Digunakan

Dalam proses pengembangan aplikasi penulis menggunakan perangkat lunak RPG Maker VX sebagai tools utama.

2. Logika Dalam RPG Maker VX

Sebelum melakukan pengembangan ada baiknya mengetahui tentang logika event yang di perlukan untuk membuat game ini.

3. Script untuk bahasa pemrograman

Script digunakan untuk membuat event bias bekerja dengan baik didalam game dan juga memberikan feature tambahan yang akan membuat game lebih menarik.

3.2 Diagram Alur Program


(32)

Diagram tersebut dijelaskan sebagai berikut: 1. Loading

User menunggu untuk masuk ke Menu Utama. 2. Menu Utama

Setelah muncul tampilan menu utama, akan terdapat 3 sub menu utama serta 1 tombol keluar.

3 sub menu tersebut: a. Mulai

Program dijalankan untuk masuk ke proses game. b. Lanjutkan

Menu yang berfungsi untuk melanjutkan permainan yang sudah disimpan.

c. Keluar

Menu yang berfungsi untuk keluar dari aplikasi game Wirausaha Muda.

3.3 Rancangan Manual Game

Rancangan kontrol untuk game ini menggunakan keyboard dimana tombol yang digunakan adalah tombol kanan,kiri,atas,bawah, enter dan x. Tombol kanan,kiri,atas,bawah untuk pergerakan karakter, tombol enter untuk ‘ok (process)’ tombol x untuk membatalkan (cancel). Pada awal permainan pemain harus mengikuti alur cerita membangun rumah makan untuk Budi. Lalu setelah itu pemain bebas untuk memilih apa yang akan dilakukannya.


(33)

3.3.1 Rancangan Halaman Menu Utama

Halaman Menu Utama adalah halaman pembuka dari aplikasi game Wirausaha Muda ini. Halaman ini terdiri dari beberapa tombol proses.

Gambar 3.2 Rancangan Halaman Utama

3.3.2 Rancangan Interface dalam permainan

Interface yang digunakan di dalam permainan ini adalah Energi Gauge Box dan juga pengingat jumlah uang yang dimiliki.


(34)

3.3.3 Rancangan Save dan Load Process

Pada frame ini player bias menyimpan dan melanjutkan permainan dari data simpanan terakhir yang telah dimainkan. Berikut rancangan frame halaman save dan load.

Gambar 3.4 Rancangan Save dan Load Process

3.4 Rancangan Mapping

3.4.1 Rumah Budi


(35)

3.4.2 Rumah Pak Kardi

Gambar 3.6 Rancangan Mapping Rumah Pak Kardi

3.4.3 Toko Grosir


(36)

3.4.4 Toko Furniture

Gambar 3.8 Rancangan Mapping Toko Furniture

3.4.5 Tebing Kecil


(37)

3.4.6 Indrapuri

Gambar 3.10 Rancangan Mapping Indrapuri

3.4.7 Rumah Anton


(38)

3.4.8 Toko Bangunan


(39)

BAB 4

IMPLEMENTASI SISTEM

4.1 Pengertian Implementasi Sistem

Implementasi sistem adalah prosedur-prosedur yang dilakukan dalam menyelesaikan desain sistem yang telah disetujui seperti menginstall sistem, menguji sistem yang dibuat dan memulai sistem baru atau sistem yang diperbaiki.

4.2 Tujuan Implementasi Sistem

Adapun tujuan dari implementasi sistem ini adalah sebagai berikut:

1. Mengkaji rangkaian sistem baik dari segi software maupun hardware sebagai sarana pengolahan data dan penyajian data.

2. Menyelesaikan rancangan sistem yang ada didalam dokumentasi sistem yang baru atau yang telah disetujui.

3. Memastikan bahwa pemakai dapat mengoperasikan dengan mudah sistem yang telah dibuat.


(40)

4. Memastikan bahwa sistem telah berjalan dengan lancar dengan mengontrol dan melakukan instalasi secara benar.

5. Memperhitungkan bahwa sistem telah memenuhi permintaan pemakai yaitu dengan menguji sistem secara menyeluruh.

4.3 Spesifikasi Sistem

Spesifikasi sistem untuk yang dianjurkan penulis untuk membuat dan menjalankan aplikasi game Wirausaha Muda ini adalah sebagai berikut:

1. Komputer dengan minimal processor Intel Pentium III, 667 MHz atau setara. 2. Memori RAM 128 MB atau lebih.

3. Kapasitas Hardisk minimal 10 GB.

4. Microsoft Windows 2000 service pack 4 atau XP Home. 5. Microsoft Windows XP Professional (lebih disarankan).

4.4 Komponen Utama Dalam Implementasi Sistem

Pada umumnya setiap desain yang dirancang membutuhkan komponen yang mendukung agar sistem tersebut dapat berjalan dengan baik. Komponen-komponen sistem yang dibutuhkan dalam membangun aplikasi game Wirausaha Muda ini diantaranya perangkat keras (Hardware), perangkat lunak (Software), unsur manusia (Brainware)


(41)

4.4.1 Perangkat Keras (Hardware)

Hardware secara bahasa berarti perangkat keras dari komputer, secara istilah hardware adalah bagian dari komputer yang dapat dirasakan kehadirannya secara fisik dengan cara dilihat dan disentuh. Hardware merupakan seluruh komponen peralatan yang membentuk suatu sistem komputer, dan peralatan lainnya yang memungkinkan komputer dapat melaksanakan tugasnya. Contoh hardware yaitu:

a. Monitor

b. CPU (Central Processing Unit)

c. Harddisk sebagai tempat sistem beroperasi dan media penyimpanan d. Memori

e. Keyboard dan mouse

4.4.2 Perangkat Lunak (Software)

Software (perangkat lunak) adalah program yang digunakan untuk menjalankan perangkat keras. Software adalah sekumpulan instruksi yang memungkinkan perangkat keras untuk dapat memproses data. Perangkat lunak ini tidak berbentuk fisik, melainkan berupa program yang diciptakan melalui perangkat elektronik. Komputer tidak akan ada artinya, jika di dalamnya tidak mempunyai perangkat lunak.

Dalam perangkat lunak dikenal dengan apa yang disebut sistem operasi dan program aplikasi. Sistem operasi adalah sebuah software yang mengatur dan mengintegrasikan hardware agar dapat berjalan sesuai dengan yang dikehendaki,


(42)

termasuk input dan output.

Tanpa adanya perangkat lunak ini komponen perangkat keras tidak akan berfungsi, adapun aplikasi dan software yang digunakan dalam pembangunan aplikasi kamus digital ini adalah RPG Maker VX.

4.4.3. Unsur Manusia (Brainware)

Brainware merupakan faktor manusia yang menangani fasilitas komputer yang ada. Faktor manusia yang dimaksud adalah orang-orang yang memiliki bagian untuk menangani sistem dan merupakan unsur manusia yang meliputi :

a. Analisis Sistem, yaitu orang membentuk dan membangun fasilitas rancangan sistem atau program.

b. Programmer, yaitu orang yang mengerti bahasa pemrograman yang digunakan dalam membuat dan membangun suatu program.

c. Operator (administrator), yaitu orang yang mengoperasikan sistem seperti memasukkan data untuk dioperasikan oleh komputer dalam menghasilkan informasi dan sebagainya.

d. Public (Pengguna), yaitu orang yang memakai sistem yang telah dirancang untuk mendapatkan informasi yang dibutuhkan.


(43)

4.5 Tampilan Aplikasi

Berikut adalah tampilan dari aplikasi game Wirausaha Muda ini.

4.5.1 Tampilan Menu Utama

Pada halaman ini terdapat terdapat tiga buah tombol proses yaitu Mulai, lanjutkan, keluar.


(44)

4.5.2 Halaman Load Process

Jika selama bermain player memiliki simpanan data, maka data tersebut bisa di lanjutkan kembali melalui tombol ‘lanjutkan’ yang terletak di bawah tombol ‘masuk’. Dapat dilihat pada gambar ada file1 sampai file 4 yang artinya berkas simpanan data 1 sampai berkas simpanan data 4.


(45)

4.5.3 Interface Dalam Game

Gambar 4.3 Interface Dalam Game

Disudut kiri atas dapat dilihat ada sebuah kotak energy. Tampilan tersebut merupakan jumlah energi yang dimiliki Player di dalam permainan. Di sudut kanan bawah dapat dilihat ada tampilan huruf yang bertuliskan Rupiah dan angka 100000, itu adalah tampilan jumlah uang yang dimiliki oleh Player.

4.5.4 Tampilan Kota dan Rumah

Berikut adalah beberapa tampilan Kota dan Rumah yang di gunakan di game Wirausaha Muda.


(46)

1. Rumah Budi

Gambar 4.4 Rumah Budi

Dapat dilihat pada gambar ada 3 macam jenis rumah budi yang merupakan perbandingan gambar dari tiap peningkatan yang terjadi ketika pemain melakukan upgrade untuk rumah yang didapatkan didalam permainan.


(47)

2. Kota Tebing Kecil

Gambar 4.5 Kota Tebing Kecil

Di kota ini terdapat 4 tempat yang dapat di kunjungi pemain yaitu : Rumah Pak Kardi, Gudang Tua / Toko Budi, Toko Grosir dan Toko Furniture.

3. Rumah Pak Kardi

Gambar 4.6 Rumah Pak Kardi

Gambar diatas adalah rumah Pak Kardi yang merupakan teman Ayah Budi. Pak Kardi adalah orang yang membantu Budi untuk membangun usahanya.


(48)

4. Toko Grosir

Gambar 4.7 Toko Grosir

Gambar diatas adalah Toko Grosir yang dimiliki oleh Markus yang merupakan karyawan Pak Kardi. Markus menawarkan pekerjaan sebagai kurir kepada pemain. Setiap tugas yang diselesaikan maka pemain akan mendapatkan upah yang bisa digunakan untuk modal berbisnis.

5. Gudang Tua


(49)

Gudang tua adalah tampilan awal Toko budi yang merupakan peninggalan ayahnya. Setelah Budi melakukan rekontruksi ulang baru gudang tersebut dapat digunakan sebagai toko.

6. Indrapuri

Gambar 4.9 Indrapuri

Di kota ini terdapat 2 tempat yang bisa di datangi yaitu : Rumah Anton dan Toko Bangunan.

7. Toko Furniture

Gambar 4.10 Toko Furniture

Di toko furniture ini pemain bisa membeli barang-barang untuk peralatan toko dan juga peralatan rumah.


(50)

8. Toko Budi

Gambar 4.11 Toko Budi

Pada gambar diatas terdapat toko budi dimana budi menjalankan usahanya. Disini pemain dapat belajar untuk berwirausaha dimana pemain dapat mempekerjakan karyawan, membeli kebutuhan toko, mengganti stok bahan baku makanan dan lainnya.

9. Rumah Anton


(51)

Gambar diatas adalah rumah Anton yang merupakan teman dari Budi. Anton bisa disewa untuk bekerja di toko Budi. Jika hubungan Budi dengan Anton berjalan dengan baik, maka pemain akan mendapatkan keuntungan dimana Anton akan membantu pemain untuk mendapatkan keuntungan lebih.

10.Toko Bangunan

Gambar 4.13 Toko Bangunan

Toko bangunan adalah tempat dimana pemain bisa membuat bangunan. Misalnya untuk mengubah gudang budi menjadi sebuah toko dan membangun ulang rumah Budi.


(52)

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Dari proses pembuatan aplikasi game ini maka penulis dapat mengambil beberapa kesimpulan sebagai berikut :

1. Dalam game ini, Pemain dapat bebas memilih langkah-langkah yang akan dilaluinya untuk mencapai tujuan akhir game ini.

2. Pemain bebas menjelajahi dunia di dalam game dan dapat berinteraksi dengan Non Playable Character (NPC).

3. Pada saat user memulai permainan, maka pada saat itu juga event pertama berjalan dan menjadi trigger untuk event-event selanjutnya.

4. Tujuan akhir game ini adalah membuat sebuah usaha rumah makan dari sebuah gudang yang di wasiatkan oleh Ayah Budi. Dan diberi waktu 90 hari untuk mencapainya.


(53)

5.2 Saran

Adapun beberapa saran penulis pada pembuatan game wirausaha Muda ini adalah :

1. Sebelum menjalankan aplikasi game ini, sebaiknya spesifikasi hardware di komputer sudah mendukung, agar aplikasi game ini bias berjalan dengan lancer.

2. Usahakan dalam bermain permainan (game) di komputer, khususnya untuk anak-anak agar lebih diperhatikan sebagian waktunya untuk belajar dan tidak hanya bermain.


(54)

DAFTAR PUSTAKA

Jasson. 2009. Role Playing Game (RPG) Maker. Yogyakarta: Penerbit Andi Hasan, Alif. 2009. Jago Membuat Game Komputer. Jakarta: Mediakita

Margudi. 1995. Kamus Komputer Lengkap untuk Bisnis, Sekolah, Perpustakaan dan Rumah. Jakarta: PT Elex Media Komputindo.

Diakses tanggal 20 April, 2012.

Diakses tanggal 23 April, 2012.

http:


(55)

LAMPIRAN : LISTING PROGRAM

1. Modules

a. module Vocab

Modul ini mendefinisikan persyaratan dan pesan dari beberapa data sebagai konstan Variabel.

SaveMessage = "Simpan dislot mana?"

LoadMessage = "Lanjutkan game di slot mana?" File = "Data"

def self.save

return $data_system.terms.save end

def self.game_end

return $data_system.terms.game_end end

def self.new_game

return $data_system.terms.new_game end


(56)

def self.continue

return $data_system.terms.continue end

def self.shutdown

return $data_system.terms.shutdown end

end

b. module Sound

Modul ini memainkan efek suara. Diperoleh dengan efek suara yang ditentukan dalam Database dari $ data_system, dan memainkan mereka.

def self.play_cursor

$data_system.sounds[0].play end

def self.play_decision

$data_system.sounds[1].play end

def self.play_cancel

$data_system.sounds[2].play end


(57)

def self.play_buzzer

$data_system.sounds[3].play end

def self.play_save

$data_system.sounds[5].play end

def self.play_load

$data_system.sounds[6].play end

def self.play_shop

$data_system.sounds[17].play end

end

c. module Cache

Modul ini memuat masing-masing grafis, membuat objek Bitmap, dan mempertahankannya. Modul ini dibuat untuk mempercepat load dan menghemat memori.

def self.animation(filename, hue)

load_bitmap("Graphics/Animations/", filename, hue) end


(58)

def self.character(filename)

load_bitmap("Graphics/Characters/", filename) end

def self.face(filename)

load_bitmap("Graphics/Faces/", filename) end

def self.parallax(filename)

load_bitmap("Graphics/Parallaxes/", filename) end

def self.picture(filename)

load_bitmap("Graphics/Pictures/", filename) end

def self.system(filename)

load_bitmap("Graphics/System/", filename) end

def self.clear

@cache = {} if @cache == nil @cache.clear

GC.start end


(59)

def self.load_bitmap(folder_name, filename, hue = 0) @cache = {} if @cache == nil

path = folder_name + filename

if not @cache.include?(path) or @cache[path].disposed? if filename.empty?

@cache[path] = Bitmap.new(32, 32) else

@cache[path] = Bitmap.new(path) end

end

if hue == 0

return @cache[path] else

key = [path, hue]

if not @cache.include?(key) or @cache[key].disposed? @cache[key] = @cache[path].clone

@cache[key].hue_change(hue) end

return @cache[key] end

end end


(60)

2. Game Objects

a. class Game_Temp

Kelas ini menangani data sementara yang tidak termasuk dengan data simpan. Contoh kelas ini direferensikan oleh $ game_temp.

attr_accessor :next_scene attr_accessor :map_bgm attr_accessor :map_bgs attr_accessor :common_event_id attr_accessor :in_battle attr_accessor :battle_proc attr_accessor :shop_goods attr_accessor :shop_purchase_only attr_accessor :name_actor_id attr_accessor :name_max_char attr_accessor :menu_beep attr_accessor :last_file_index attr_accessor :debug_top_row attr_accessor :debug_index attr_accessor :background_bitmap


(61)

def initialize

@next_scene = nil @map_bgm = nil @map_bgs = nil

@common_event_id = 0 @in_battle = false @battle_proc = nil @shop_goods = nil

@shop_purchase_only = false @name_actor_id = 0

@name_max_char = 0 @menu_beep = false @last_file_index = 0 @debug_top_row = 0 @debug_index = 0

@background_bitmap = Bitmap.new(1, 1) end


(62)

b. class Game_Switches

Kelas ini menangani Switch yang disusun berdasarkan ‘Array’.

def initialize @data = [] end

def [](switch_id)

if @data[switch_id] == nil return false

else

return @data[switch_id] end

end

def []=(switch_id, value) if switch_id <= 5000 @data[switch_id] = value end

end end


(63)

c. class Game_Variables

Kelas ini menangani variable yang disusun berdasarkan ‘Array’.

def initialize @data = [] end

def [](variable_id)

if @data[variable_id] == nil return 0

else

return @data[variable_id] end

end

def []=(variable_id, value) if variable_id <= 5000 @data[variable_id] = value end

end end


(64)

3. Sprites

a. class Sprite_Base

Kelas untuk menambahkan animasi sprite. class Sprite_Base < Sprite

@@animations = []

@@_reference_count = {} def initialize(viewport = nil) super(viewport)

@use_sprite = true @animation_duration = 0 end def dispose super dispose_animation end def update super

if @animation != nil

@animation_duration -= 1

if @animation_duration % 4 == 0 update_animation

end end

@@animations.clear end


(65)

def animation?

return @animation != nil end

def start_animation(animation, mirror = false) dispose_animation

@animation = animation return if @animation == nil @animation_mirror = mirror

@animation_duration = @animation.frame_max * 4 + 1 load_animation_bitmap

@animation_sprites = []

if @animation.position != 3 or not @@animations.include?(animation) if @use_sprite

for i in 0..15

sprite = ::Sprite.new(viewport) sprite.visible = false

@animation_sprites.push(sprite) end unless @@animations.include?(animation) @@animations.push(animation) end end end

if @animation.position == 3 if viewport == nil


(66)

@animation_ox = 544 / 2 @animation_oy = 416 / 2 else

@animation_ox = viewport.rect.width / 2 @animation_oy = viewport.rect.height / 2 end

else

@animation_ox = x - ox + width / 2 @animation_oy = y - oy + height / 2 if @animation.position == 0

@animation_oy -= height / 2 elsif @animation.position == 2 @animation_oy += height / 2 end

end end

def load_animation_bitmap

animation1_name = @animation.animation1_name animation1_hue = @animation.animation1_hue animation2_name = @animation.animation2_name animation2_hue = @animation.animation2_hue

@animation_bitmap1 = Cache.animation(animation1_name, animation1_hue)

@animation_bitmap2 = Cache.animation(animation2_name, animation2_hue)


(67)

if @@_reference_count.include?(@animation_bitmap1) @@_reference_count[@animation_bitmap1] += 1 else

@@_reference_count[@animation_bitmap1] = 1 end

if @@_reference_count.include?(@animation_bitmap2) @@_reference_count[@animation_bitmap2] += 1 else

@@_reference_count[@animation_bitmap2] = 1 end

Graphics.frame_reset end

def dispose_animation

if @animation_bitmap1 != nil

@@_reference_count[@animation_bitmap1] -= 1 if @@_reference_count[@animation_bitmap1] == 0 @animation_bitmap1.dispose

end end

if @animation_bitmap2 != nil

@@_reference_count[@animation_bitmap2] -= 1 if @@_reference_count[@animation_bitmap2] == 0 @animation_bitmap2.dispose

end end


(68)

if @animation_sprites != nil for sprite in @animation_sprites sprite.dispose

end

@animation_sprites = nil @animation = nil

end

@animation_bitmap1 = nil @animation_bitmap2 = nil end

def update_animation if @animation_duration > 0

frame_index = @animation.frame_max - (@animation_duration + 3) / 4 animation_set_sprites(@animation.frames[frame_index])

for timing in @animation.timings if timing.frame == frame_index animation_process_timing(timing) end end else dispose_animation end end def animation_set_sprites(frame) cell_data = frame.cell_data


(69)

for i in 0..15

sprite = @animation_sprites[i] next if sprite == nil

pattern = cell_data[i, 0]

if pattern == nil or pattern == -1 sprite.visible = false

next end

if pattern < 100

sprite.bitmap = @animation_bitmap1 else

sprite.bitmap = @animation_bitmap2 end

sprite.visible = true

sprite.src_rect.set(pattern % 5 * 192, pattern % 100 / 5 * 192, 192, 192) if @animation_mirror

sprite.x = @animation_ox - cell_data[i, 1] sprite.y = @animation_oy + cell_data[i, 2] sprite.angle = (360 - cell_data[i, 4])

sprite.mirror = (cell_data[i, 5] == 0) else

sprite.x = @animation_ox + cell_data[i, 1] sprite.y = @animation_oy + cell_data[i, 2] sprite.angle = cell_data[i, 4]


(70)

sprite.mirror = (cell_data[i, 5] == 1) end

sprite.z = self.z + 300 + i sprite.ox = 96

sprite.oy = 96

sprite.zoom_x = cell_data[i, 3] / 100.0 sprite.zoom_y = cell_data[i, 3] / 100.0

sprite.opacity = cell_data[i, 6] * self.opacity / 255.0 sprite.blend_type = cell_data[i, 7]

end end def animation_process_timing(timing) timing.se.play case timing.flash_scope when 1

self.flash(timing.flash_color, timing.flash_duration * 4) when 2

if viewport != nil

viewport.flash(timing.flash_color, timing.flash_duration * 4) end

when 3

self.flash(nil, timing.flash_duration * 4) end

end end


(71)

b. class Sprite_Character

kelas yang berfungsi untuk menampilkan sprite character dan secara otomatis mengubah kondisinya sesuai dengan event yang terjadi.

class Sprite_Character < Sprite_Base attr_accessor :character

def initialize(viewport, character = nil) super(viewport)

@character = character @balloon_duration = 0 update

end

def dispose dispose_balloon super

end

def update super

update_bitmap

self.visible = (not @character.transparent) update_src_rect


(72)

self.y = @character.screen_y self.z = @character.screen_z self.opacity = @character.opacity

self.blend_type = @character.blend_type self.bush_depth = @character.bush_depth update_balloon

if @character.animation_id != 0

animation = $data_animations[@character.animation_id] start_animation(animation)

@character.animation_id = 0 end

if @character.balloon_id != 0

@balloon_id = @character.balloon_id start_balloon

@character.balloon_id = 0 end

end

def tileset_bitmap(tile_id) set_number = tile_id / 256

return Cache.system("TileB") if set_number == 0 return Cache.system("TileC") if set_number == 1 return Cache.system("TileD") if set_number == 2 return Cache.system("TileE") if set_number == 3 return nil


(73)

end

def update_bitmap

if @tile_id != @character.tile_id or

@character_name != @character.character_name or @character_index != @character.character_index @tile_id = @character.tile_id

@character_name = @character.character_name @character_index = @character.character_index if @tile_id > 0

sx = (@tile_id / 128 % 2 * 8 + @tile_id % 8) * 32; sy = @tile_id % 256 / 8 % 16 * 32;

self.bitmap = tileset_bitmap(@tile_id) self.src_rect.set(sx, sy, 32, 32)

self.ox = 16 self.oy = 32 else

self.bitmap = Cache.character(@character_name) sign = @character_name[/^[\!\$]./]

if sign != nil and sign.include?('$') @cw = bitmap.width / 3

@ch = bitmap.height / 4 else

@cw = bitmap.width / 12 @ch = bitmap.height / 8


(74)

end

self.ox = @cw / 2 self.oy = @ch end

end end

def update_src_rect if @tile_id == 0

index = @character.character_index

pattern = @character.pattern < 3 ? @character.pattern : 1 sx = (index % 4 * 3 + pattern) * @cw

sy = (index / 4 * 4 + (@character.direction - 2) / 2) * @ch self.src_rect.set(sx, sy, @cw, @ch)

end end

def start_balloon dispose_balloon

@balloon_duration = 8 * 8 + BALLOON_WAIT @balloon_sprite = ::Sprite.new(viewport)

@balloon_sprite.bitmap = Cache.system("Balloon") @balloon_sprite.ox = 16

@balloon_sprite.oy = 32 update_balloon

end


(75)

if @balloon_duration > 0 @balloon_duration -= 1 if @balloon_duration == 0 dispose_balloon

else

@balloon_sprite.x = x

@balloon_sprite.y = y - height @balloon_sprite.z = z + 200

if @balloon_duration < BALLOON_WAIT sx = 7 * 32

else

sx = (7 - (@balloon_duration - BALLOON_WAIT) / 8) * 32 end

sy = (@balloon_id - 1) * 32

@balloon_sprite.src_rect.set(sx, sy, 32, 32) end

end end

def dispose_balloon if @balloon_sprite != nil @balloon_sprite.dispose @balloon_sprite = nil end

end end


(76)

4. Module tambahan a. HUD Energi

Module ini membuat tampilan energi yang digunakan sebagai tolak ukur masa aktif pemain per hari.

module Gauge

VARIABLE_ID = 20 VISIBLE_SWITCH = 20 X = 0

Y = 0

GAUGE_WIDTH = 120 GAUGE_HEIGHT = 6 GAUGE_MAX = 100

COLOUR1 = Color.new( 0, 255, 100) COLOUR2 = Color.new( 0, 255, 0) SHOW_WINDOW = true

TEXT ="Energi" end

class Window_GaugeDisplay < Window_Base include Gauge

def initialize

super(X, Y, GAUGE_WIDTH + 16, GAUGE_HEIGHT + WLH + 32) self.visible = $game_switches[VISIBLE_SWITCH]

self.opacity = 0 unless SHOW_WINDOW @old_var = $game_variables[VARIABLE_ID]


(77)

self.contents.draw_text(-8, -7, self.contents.width, WLH, TEXT, 1) refresh

end def refresh

gw = GAUGE_WIDTH * $game_variables[VARIABLE_ID] / GAUGE_MAX

gc1 = COLOUR1 gc2 = COLOUR2

self.contents.fill_rect(0, 0 + WLH - 8, GAUGE_WIDTH, GAUGE_HEIGHT, gauge_back_color)

self.contents.gradient_fill_rect(0, 0 + WLH - 8, gw, GAUGE_HEIGHT, gc1, gc2)

end def update

self.visible = $game_switches[VISIBLE_SWITCH] var = $game_variables[VARIABLE_ID]

refresh if var != @old_var @old_var = var

end end

class Scene_Map

alias :var_guage_old_start :start unless $@ alias :var_guage_old_update :update unless $@ alias :var_guage_old_terminate :terminate unless $@


(78)

def start

var_guage_old_start

@var_guage = Window_GaugeDisplay.new end

def update

var_guage_old_update @var_guage.update end

def terminate

var_guage_old_terminate @var_guage.dispose end

end

b. module Gold_Map

modul yang memunculkan jumlah uang di interface.

Gold_disable = 1 Posision_X = 410 Posision_Y = 333 end


(79)

class Window_Gold_map < Window_Base def initialize

super(0, 0, 135, 85) self.opacity = 0 refresh

end

def refresh

self.contents.clear

cx = contents.text_size($data_system.terms.gold).width self.contents.font.color = normal_color

self.contents.draw_text(-20, 30, 120, 32, $game_party.gold.to_s, 2) self.contents.font.color = system_color

self.contents.draw_text(100-cx, -3, cx, 32, $data_system.terms.gold, 2) end

def update refresh end end

class Scene_Map include Gold_Map

alias falcao_gold_main main def main

@gold_map = Window_Gold_map.new @gold_map.x = Posision_X


(80)

@gold_map.y = Posision_Y

if $game_switches[Gold_disable] == false @gold_map.visible = true

else

@gold_map.visible = false end

falcao_gold_main @gold_map.dispose end

alias falcao_gold_update update def update

@gold_map.update

if $game_switches[Gold_disable] == false @gold_map.visible = true

else

@gold_map.visible = false end

falcao_gold_update end


(1)

if @balloon_duration > 0 @balloon_duration -= 1 if @balloon_duration == 0 dispose_balloon

else

@balloon_sprite.x = x

@balloon_sprite.y = y - height @balloon_sprite.z = z + 200

if @balloon_duration < BALLOON_WAIT sx = 7 * 32

else

sx = (7 - (@balloon_duration - BALLOON_WAIT) / 8) * 32 end

sy = (@balloon_id - 1) * 32

@balloon_sprite.src_rect.set(sx, sy, 32, 32) end

end end

def dispose_balloon if @balloon_sprite != nil @balloon_sprite.dispose @balloon_sprite = nil end

end end


(2)

4. Module tambahan a. HUD Energi

Module ini membuat tampilan energi yang digunakan sebagai tolak ukur masa aktif pemain per hari.

module Gauge

VARIABLE_ID = 20 VISIBLE_SWITCH = 20 X = 0

Y = 0

GAUGE_WIDTH = 120 GAUGE_HEIGHT = 6 GAUGE_MAX = 100

COLOUR1 = Color.new( 0, 255, 100) COLOUR2 = Color.new( 0, 255, 0) SHOW_WINDOW = true

TEXT ="Energi" end

class Window_GaugeDisplay < Window_Base include Gauge

def initialize

super(X, Y, GAUGE_WIDTH + 16, GAUGE_HEIGHT + WLH + 32) self.visible = $game_switches[VISIBLE_SWITCH]

self.opacity = 0 unless SHOW_WINDOW @old_var = $game_variables[VARIABLE_ID]


(3)

self.contents.draw_text(-8, -7, self.contents.width, WLH, TEXT, 1) refresh

end def refresh

gw = GAUGE_WIDTH * $game_variables[VARIABLE_ID] / GAUGE_MAX

gc1 = COLOUR1 gc2 = COLOUR2

self.contents.fill_rect(0, 0 + WLH - 8, GAUGE_WIDTH, GAUGE_HEIGHT, gauge_back_color)

self.contents.gradient_fill_rect(0, 0 + WLH - 8, gw, GAUGE_HEIGHT, gc1, gc2)

end def update

self.visible = $game_switches[VISIBLE_SWITCH] var = $game_variables[VARIABLE_ID]

refresh if var != @old_var @old_var = var

end end

class Scene_Map

alias :var_guage_old_start :start unless $@ alias :var_guage_old_update :update unless $@ alias :var_guage_old_terminate :terminate unless $@


(4)

def start

var_guage_old_start

@var_guage = Window_GaugeDisplay.new end

def update

var_guage_old_update @var_guage.update end

def terminate

var_guage_old_terminate @var_guage.dispose end

end

b. module Gold_Map

modul yang memunculkan jumlah uang di interface.

Gold_disable = 1 Posision_X = 410 Posision_Y = 333 end


(5)

class Window_Gold_map < Window_Base def initialize

super(0, 0, 135, 85) self.opacity = 0 refresh

end

def refresh

self.contents.clear

cx = contents.text_size($data_system.terms.gold).width self.contents.font.color = normal_color

self.contents.draw_text(-20, 30, 120, 32, $game_party.gold.to_s, 2) self.contents.font.color = system_color

self.contents.draw_text(100-cx, -3, cx, 32, $data_system.terms.gold, 2) end

def update refresh end end

class Scene_Map include Gold_Map

alias falcao_gold_main main def main

@gold_map = Window_Gold_map.new @gold_map.x = Posision_X


(6)

@gold_map.y = Posision_Y

if $game_switches[Gold_disable] == false @gold_map.visible = true

else

@gold_map.visible = false end

falcao_gold_main @gold_map.dispose end

alias falcao_gold_update update def update

@gold_map.update

if $game_switches[Gold_disable] == false @gold_map.visible = true

else

@gold_map.visible = false end

falcao_gold_update end