BAB 2 BAB 2 2.1
LANDASAN TEORI
Teori Umum 2.1.1 Sistem Proses Model Waterfall Menurut Pressman (2010, p39) model waterfall adalah model klasik yang bersifat sistematis, berurutan dalam membangun software. Fase-fase dalam model waterfall menurut referensi Pressman :
Gambar 2.1
Konsep Waterfall Model
1. Communication Langkah ini merupakan analisis terhadap kebutuhan perangkat lunak, dan tahap untuk mengadakan pengumpulan data dengan melakukan pertemuan customer, maupun mengumpulkan data-data tambahan baik yang ada di jurnal, artikel, maupun dari internet. 2. Planning Proses planning merupakan lanjutan dari proses communication (analysis requirement) tahapan ini akan menghasilkan dokumen user requirement atau bisa dikatakan sebagai data yang berhubungan dengan keiginan user dalam pembuatan software, termasuk rencana yang dilakukan. 3. Modeling
6
7 Proses modeling ini akan menerjemahkan syarat kebutuhan ke sebuah perancangan software yang diperkirakan sebelum coding dibuat. Proses ini berfokus pada rancangan struktur data, arsitektur software, representasi interface, dan detail (algoritma) prosedural. Tahapan ini akan menghasilkan dokumen yang disebut software requirement. 4. Construction Construction merupakan proses membuat kode. Coding atau pengkodean merupakan penerjemahan desain dalam bahasa yang bisa dikenali oleh komputer. Programmer akan menerjemahkan transaksi yang diminta oleh user. Tahapan ini merupakan tahapan secara nyata dalam mengerjakan suatu software, artinya penggunaan komputer dimaksimalkan dalam tahapan ini. Setelah pengkodean selesai maka akan dilakukan testing terhadap sistem yang telah dibuat. Tujuan testing adalah menemukan kesalahan-kesalahan terhadap sistem tersebut untuk kemudian bisa diperbaiki. 5. Deployment Tahapan ini dikatakan final dalam pembuatan sebuah software atau sistem. Setelah melakukan analisis, desain dan pengkodean maka sistem yang sudah jadi akan digunakan oleh user. Kemudian software yang telah dibuat harus dilakukan pemeliharaan secara berkala. 2.1.2 Interaksi Manusia dan Komputer (IMK) Menurut Shneiderman (2010),terdapat lima faktor manusia terukur yang dapat dijadikan sebagai pusat evaluasi, yaitu : 1. Waktu belajar, berapa lama waktu yang diperlukan user untuk mempelajari cara yang dapat digunakan untuk melakukan suatu tugas tertentu ?
8 2. Kecepatan kinerja,
berapa
lama waktu yang diperlukan untuk
mengerjakan suatu tugas tertentu ? 3. Tingkat kesalahan user, berapa banyak kesalahan dan kesalahan apakah yang bisa terjadi saat user mengerjakan tugas tersebut ? 4. Daya ingat, bagaimana user mengingat pengetahuan setelah beberapa waktu ? Ingatan mungkin dapat dihubungkan dengan waktu belajar dan frekuensi penggunaan yang merupakan peran yang penting. 5. Kepuasan yang subjektif, seberapa banyak user menyukai penggunaan bermacam-macam aspek yang terdapat dalam antarmuka ? Jawaban dapat dipastikan melalui wawancara atau melakukan survey, termasuk skala kepuasan dan tempat untuk komentar bebas dari user. Menurut Shneiderman (2010), terdapat delapan aturan emas dalam merancang antarmuka : 1. Berusaha untuk konsisten Tindakan konsisten diperlukan dalam situasi yang serupa. Hal ini biasa digunakan dalam pembuatan prompt, menu, dan help screens. Begitu juga dengan pembuatan command user. 2.
Memungkinka n pengguna untuk menggunakan shortcut Seiring meningkatnya frekuensi penggunaan, pengguna juga ingin
mengurangi jumlah interaksi dan meningkatkan laju dari interaksi tersebut. Singkatan, tombol fungsi, perintah tersembunyi, dan fasilitas makro sangat membantu expert users. 3.
Menawarkan umpan balik yang informatif
9 Untuk setiap tindakan dari operator, harus ada sistem umpan balik. Untuk tindakan-tindakan sering dan kecil, tanggapan dapat bersifat sederhana sedangkan untuk tindakan jarang dan utama, tanggapan harus lebih bersifat detail. 4. Merancang dialog untuk menghasilkan penutupan Urutan-urutan dari tindakan-tindakan yang ada harus diatur menjadi bagian awal, tengah dan akhir. Umpan balik informatif pada sekumpulan tindakan-tindakan yang ada memberikan kepuasan penyelesaian, rasa lega, tanda untuk menghentikan suatu rencana dan pilihan dari pikiran mereka, dan indikasi bahwa caranya jelas yaitu untuk mempersiapkan sekelompok tindakan-tindakan yang ada berikutnya. 5. Penawaran penanganan error yang sederhana Sebisa mungkin, buat desain dari sistem yang ada agar pengguna tidak berbuat kesalahan yang serius. Namun jika kesalahan dibuat, sistem harus dapat mendeteksi kesalahan yang sederhana dan mekanisme yang mudah dipahami untuk penanganan kesalahan. 6. Mengizinkan pembalikan tindakan Fitur ini bertujuan untuk mengurangi kecemasan, karena pengguna tahu bahwa kesalahan dapat dibatalkan. Sehingga mendorong pengguna dalam menjelajah pilihan-pilihan tindakan yang asing. Bentuk dari pembalikan tindakan dapat berupa satu tindakan, entri data, atau sekelompok lengkap dari tindakan-tindakan yang ada. 7. Dukungan internal lokus control Operator berpengalaman berkeinginan kuat mengenai rasa mereka bertanggung jawab atas sistem dan sistem pun merespon tindakan mereka.
10 Buat desain dari sistem untuk membuat pengguna berperan sebagai pengambil inisiatif daripada para responden yang ada. 8. Mengurangi beban memori jangka pendek Keterbatasan manusia dalam mengolah informasi dalam jangka waktu pendek memerlukan sesuatu yang dapat ditampilkan namun disimpan dalam bentuk sederhana. Halaman-halaman ganda diperketat, frekuensi dari window-motion dikurangi, waktu pelatihan yang memadai dialokasikan untuk kode, mnemonik, dan urutan tindakan. 2.1.3 Database Menurut Silberschatz, Korth dan Sudarshan (2010, p1) databasemanagement system adalah sekumpulan data yang saling berhubungan dan program-program
yang
digunakan
untuk
mengakses
data
tersebut.
Sekumpulan data inilah yang biasa disebut database. Database memiliki informasi yang relevan terhadap suatu perusahaan. 1. Structured Query Language (SQL) Menurut Stephens, Dlew dan Jones (2011, p2) Structured Query Language atau SQL adalah sebuah bahasa yang telah menjadi standart untuk komunikasi antara relasi database. a. SQLite SQLite adalah sebuah database yang berada didalam sebuah program atau aplikasi, sehingga SQLite berjalan beriringan dengan program atau aplikasi yang tertanam SQLite tersebut (Allen dan Owens, 2010, p1). Pengguna SQLite dalam sebuah aplikasi memiliki keuntungan yaitu tidak dibutuhkannya konfigurasi atau Administrasi jaringan, selain itu client dan server database berjalan dalam satu proses.
11 2.1.4 Unified Modeling Language (UML) Menurut Debbabi et al., (2010, p37), UML adalah sebuah bahasa untuk spesifikasi, visualisasi, konstruksi, dan dokumentasi dari sistem software. Tujuan utama dari UML adalah memaksimalkan produksi, menambah kualitas, mengurangi biaya dan memaksimalkan penjualan di pasaran. Berikut ini beberapa tipe diagram UML yang dipakai, yaitu : 1. Class Diagram Class
diagram
memperlihatkan
adalah
struktur
sebuah
dari
diagram
sebuah
yang
sistem,
digunakan
dimana
untuk
diagram
ini
menampilkan kelas dari sistem tersebut beserta attribute dan method-nya. Secara umum, class diagram dibagi menjadi tiga bagian, yaitu : 1. Class name, terdapat pada bagian paling atas dari class diagram. 2. Attribute, terdapat pada bagian tengah class diagram. 3. Method, terdapat pada bagian paling bawah class diagram. Dalam class diagram juga terdapat hubungan generalisasi, yaitu : 1. Inheritance Suatu hubungan antara superclass dan subclass, dilambangkan dengan anak panah yang solid dari subclass ke superclass. 2. Implementation Implementation dilambangkan dengan garis putus-putus dengan panah solid. Selain itu terdapat hubungan yang disebut association yaitu hubungan yang memiliki arti mempunyai. Terdapat dua jenis hubungan association, yaitu : 1. Composition
12 Hubungan composition memiliki arti memiliki. Tetapi memiliki dalam hal ini berarti class yang satu merupakan bagian dari class yang lain, dimana jika class yang satu dihilangkan, maka class pasangannya akan ikut hilang. Hubungan ini dilambangkan dengan garis tebal dengan panah belah ketupat solid. 2. Aggregation Hubungan aggregation juga tidak jauh berbeda dengan composition, bedanya adalah dalam hubungan aggregation, jika class dihilangkan, maka class yang memiliki hubungan aggregation dengan class tersebut tidak akan ikut hilang. Hubungan ini dilambangkan dengan garis tebal dengan panah belah ketupat transparan. Yang terakhir terdapat hubungan yang disebut dependency, yang merupakan hubungan yang memiliki ketergantungan antara class yang satu dengan class yang lain. Hubungan ini dilambangkan dengan garis titik-titik dengan panah terbuka.
Gambar 2.2
Contoh Gambar Class Diagram
(Debbabi, Mourad et al., 2010, p.40) 2. Use Case Diagram
13 Use case diagram menjelaskan interaksi antara pengguna dan sistem pengguna tersebut bisa berupa orang atau berupa sistem lain. Use case memperlihatkan apa saja yang dapat berinteraksi dengan pengguna serta pengguna dapat melakukan apa saja dalam sistem tersebut. Pada umumnya use case diagram mempunyai tiga bagian, yaitu : a. Actor, menggambarkan peran dari pemain, atau sebuah alat yang berinteraksi langsung dengan sistem. Biasanya actor digambar berupa stick figures. b. Use case, merupakan aksi-aksi yang dapat dijalankan oleh actor. Use case biasanya berbentuk elips. c. Association, menggambarkan hubungan antara dua atau lebih objek, biasanya mewakilkan hubungan yang diperbolehkan dalam proses dalam suatu sistem. Association berupa garis lurus dan jika dibutuhkan ditambah panah pada ujungnya untuk memberitahukan arah koneksi tersebut.
Gambar 2.3
Contoh Gambar Use Case Diagram (Debbabi et al., 2010, p.49)
3. Activity Diagram
14 Activity diagram menggambarkan sebuah proses yang sedang berjalan, berbeda dengan use case diagram dimana menggambarkan actor yang menggunakan sistem. Activity diagram menjelaskan bagaimana alur proses dari keputusan pertama kali diambil sampai proses itu berakhir. Dalam activity diagram terdapat building block yang merupakan bagian dari activity diagram, sebagai berikut : a. Initial node, merupakan titik awal dari activity diagram. Berupa lingkaran hitam penuh. b. Final node, merupakan tanda dimana semua proses telah selesai. Berupa lingkaran hitam penuh dan dilapisi oleh lingkaran lagi. c. Flow final, merupakan proses harus diberhentikan karena aksi-aksi tertentu. Biasa berupa lingkaran dengan tanda silang didalamnya. d. Action nodes, merupakan nodes yang menggambarkan proses yang akan diproses. Biasa berupa kotak tumpul. e. Fork nodes, merupakan nodes yang membuat proses menjadi pararel dalam suatu proses. Biasa berupa dua panah yang tergabung menjadi satu panah. f. Join node, merupakan nodes yang menggabungkan proses pararel menjadi satu. Biasa berupa satu panah yang terbagi dua. g. Decision nodes, merupakan node yang membuat proses menjadi pararel tergantung dari pilihan yang dibuat, biasa bergambar satu panah menjadi dua panah dengan pilihan yang disesuaikan. h. Merge nodes, merupakan proses yang menggabungkan beberapa langkah menjadi satu. Biasa bergambar dua panah menunjuk ke bentuk belah ketupat lalu menjadi satu panah.
15
Gambar 2.4
Contoh Gambar Activity Diagram
2.1.5 Multimedia Menurut Vaughan (2011, xiv), multimedia adalah kombinasi dari teks, seni grafis, suara, animasi, dan video yang memiliki suatu informasi tertentu dan disampaikan dengan komputer atau media elektronik lain yang dapat dimanipulasi secara digital. Elemen-elemen multimedia yang dapat dikontrol oleh user, dapat disebut sebagai multimedia interaktif. Menurut Vaughan (2011), multimedia terdiri dari 5 elemen, yaitu: 1. Teks Merupakan jenis data yang paling sederhana dan merupakan elemen multimedia yang menjadi dasar dalam penyampaian informasi. Teks dapat memiliki banyak arti. Oleh karena itu, pemilihan kata-kata dalam menyampaikan informasi harus diperhatikan. (Vaughan, 2011, p18) 2. Gambar
16 Gambar merupakan elemen visual yang membentuk multimedia. Elemen grafis ini dapat diubah ke ukuran yang berbeda, diwarnai, diberi pola, dibuat terlihat atau transparan. (Vaughan, 2011, p68) 3. Suara Suara merupakan elemen paling sensasional dalam multimedia. Dengan adanya fasilitas suara, hasil visualisasi akan menjadi lebih sempurna dan nyata jika digunakan dengan benar. (Vaughan, 2011, p104) 4. Animasi Animasi membuat gambar statik menjadi lebih hidup. Animasi sebenarnya adalah sebuah objek yang bergerak menyeberangi, ke dalam, atau keluar dari layar. Dengan animasi, gambar-gambar berubah sedikit demi sedikit dan dengan cepat secara berkelanjutan sehingga terlihat menyatu menjadi sebuah ilusi gerakan. (Vaughan, 2011, p140) 5. Video Video merupakan elemen yang paling menarik dari bidang multimedia dan merupakan alat yang ampuh untuk mendekatkan user kepada dunia nyata. Video yang tidak direncanakan dan diproduksi dengan baik dapat menurunkan nilai informasi dari sebuah presentasi. (Vaughan, 2011, p164) 2.1.6 Storyboard Mengacu pada Pardew (2004, p3-4), storyboard adalah sekumpulan sketsa yang berurutan dan menggambarkan urutan – urutan kejadian secara berurutan. Storyboard dalam game digunakan untuk menggambarkan bagaimana game tersebut akan berjalan. Selain itu storyboard dalam proses desain game akan menampilkan urutan kejadian yang mungkin terjadi. Dengan menggunakan storyboard, akan terlihat bagaimana sistem navigasi
17 bekerja dalam game. Storyboard dalam game juga digunakan untuk menampilkan adegan sinematik yang ada di game.
Gambar 2.5
Contoh Storyboard
(Pardew, 2004, p5) 2.1.7 Javascript Menurut Flanagan (2011, p1) javascript adalah bahasa pemrograman web. Mayoritas modern situs web modern telah menggunakan javascript, dan semua web browser modern di komputer, game console, tablet, ponsel pintar, dan termasuk interpreter javascript. Membuat javascript menjadi bahasa yang ada di mana-mana sepanjang sejarah. Menurut Negrino dan Smith (2004, p2-9), javascript adalah bahasa pemrograman berupa script yang digunakan untuk membuat halaman web lebih interaktif. Tetapi javascript juga banyak digunakan sebagai script dalam pembuatan sebuah aplikasi ataupun game. Dengan memasukan sebagian script bahasa javascript, aplikasi atau game bisa dijalankan. Javascript lebih dikenal sebagai bahasa scripting atau “scripting language”, dengan implikasi dimana lebih mudah untuk dibuat berupa script daripada programnya. Javascript merupakan events yaitu sebuah aksi yang dilakukan ketika pengguna mengakses fungsi dari bagian program tertentu. Javascript menggunakan perintah yang disebut event handlers, aksi yang diberikan
18 pengguna memicu event handler yang ada di dalam script. Dalam javascript, ketika pengguna melakukan klik pada sebuah tombol, event handler onClick akan mengambil sebagai anak dari script dan melakukan apa yang diperintahkan yang tertulis pada script tersebut. 2.1.8 Object Oriented Programming (OOP) Mengacu pada pendapat Elst, Jacobs dan Yard (2007), konsep pemrograman OOP ini sangat berguna dalam perancangan sebuah aplikasi. Banyak manfaat yang didapat dengan menerapkan konsep ini dalam aplikasi yang kita rancang. Salah satunya adalah nilai modularitas dari aplikasi. Pemakaian objek yang serupa dapat dipanggil melalui sebuah template yang biasa disebut dengan class. Dalam keseharian misalnya dapat di analogikan dengan mobil terdiri dari body, mesin, ban dan lain-lain. Dari bagian ban kiri, kanan, depan belakang berupa komponen yang serupa. Dalam program kita hanya perlu membuat class ban, lalu membuat objek atau instansi khususnya yaitu ban kiri, ban kanan, ban belakang dan sebagainya. Dengan konsep seperti ini ada nilai reusability yang baik. Lalu ada pula konsep inheritance, yaitu konsep turunan yang dimana sebuah objek dapat mewarisi properti dan method yang dimiliki oleh parentnya. Dalam kehidupan sehari-hari dapat dianalogikan dengan pesawat. Misalkan pesawat terbang biasa dengan pesawat penyergap, mereka terdiri dari sebuah rangka pesawat yang identik, tetapi mereka berbeda pada bagian eksteriornya dan kegunaannya. Yang satu bentuknya begini, yang satu bentuknya begitu. Tetapi pada dasarnya pesawat penyergap mewarisi sifat yang sama dengan pesawat terbang, hanya saja pesawat penyergap memiliki ciri yang lebih khusus (subclass).
19 Lalu ada lagi konsep encapsulation. Pada konsep ini segala detail dari class tidak perlu diketahui oleh pengguna dari class tersebut. Pengguna class tersebut hanya menggunakan class tanpa perlu tahu apa saja yang dilakukan dan detail properti dalam class tersebut. Dalam kehidupan sehari-hari dapat dianalogikan dalam akuntasi. Seorang akuntan bekerja dengan bos yang memperkerjakan akuntan tersebut tidak perlu mengetahui dan menghitung seluruh aktifitas yang dilakukan akuntan tersebut dalam menghitung jurnal kas perusahaannya. Bos tersebut hanya perlu mengetahui berapa profit yang didapatkan perusahaannya tiap bulan. Adapun konsep terakhir yaitu Polymorphism. Polymorphism berarti “mempunyai banyak bentuk” juga merupakan salah satu sifat class yang memungkinkan sebuah method mempunyai nama yang sama, namun memiliki aksi yang berbeda. Polymorphism adalah pemikiran bahwa objek dinamis suatu class dasar dapat berperilaku seperti class dasar, dan jika ia menunjuk class turunan ia akan berperilaku seperti class turunan. Dalam hal ini objek memiliki beberapa bentuk, tergantung ia menunjukan kemana. Dalam hal ini suatu objek atau class dan perubahan perilakunya adalah dari kelas dasar ke kelas turunan, tidak bisa objek kelas turunan menunjuk ke kelas dasar. Polymorphism dimungkinkan karena adanya mekanisme ikatan dinamis, ikatan ini adalah ikatan yang terjadi ketika program dijalankan (run-time), ikatan yang terjadi pada saat compiling disebut ikatan dinamis. Ikatan dinamis hanya akan terjadi antara suatu objek dinamis dengan metode yang dinamis juga, dalam hal ini metode virtual.
20 2.2
Teori Khusus 2.2.1 Game Menurut Schell (2008, p31) yang dikutip dari Elliot dan Brian, game adalah kegiatan sukarela yang dilakukan dan membentuk suatu sistem terkontrol, dimana ada sebuah kontes kekuatan, dibatasi oleh aturan-aturan untuk menghasilkan hasil yang tidak pasti menang atau kalahnya. Menurut Schell (2008, p31) yang dikutip dari Costikyan, game adalah struktur interaktif yang memiliki nilai internal yang membutuhkan pemain untuk bertahan sampai ke tujuan. Menurut Schell (2008, p34) , terdapat sepuluh karakteristik yang harus dimiliki dalam sebuah game, yaitu : 1. Game dimainkan dengan kemauan sendiri 2. Game mempunyai tujuan 3. Game mempunyai konflik atau masalah 4. Game mempunyai aturan 5. Game dapat menghasilkan kondisi menang atau kalah 6. Game bersifat interaktif 7. Game mempunyai tantangan 8. Game dapat menciptakan nilai (value) internal di dalam game itu sendiri 9. Game melibatkan player 10. Game adalah sistem formal yang tertutup Dari sepuluh karakteristik di atas, Schell menyimpulkan definisi game adalah aktifitas pemecahan masalah (problem solving) dengan menggunakan pendekatan sikap yang menginginkan kesenangan.
21 Menurut Schell (2008, p41-43), ada empat elemen yang membentuk sebuah game, yaitu : 1. Mekanisme (Mechanics) Mekanisme adalah prosedur dan aturan dari sebuah game. Mekanisme menjelaskan tujuan dari game, bagaimana player dapat ataupun tidak dapat mencapai tujuan tersebut, dan apa yang akan terjadi ketika player mencoba mencapainya. Jika membandingkan game dengan hiburan yang linear (buku, film), dapat diketahui bahwa hiburan yang linear menggunakan teknologi, cerita,
dan
keindahan
tetapi
tidak
mengandung
mekanisme
yang
berkembang
yang
membedakannya dari sebuah game. 2. Cerita (Story) Cerita
merupakan
urutan
kejadian
yang
menggambarkan sebuah game. Cerita bisa saja linear dan berurutan, ataupun bercabang. Ketika game desainer mempunyai cerita yang ingin diceritakan dalam game tersebut, maka mekanisme yang dipilih harus tepat untuk memperkuat cerita tersebut dan mampu membuat cerita tersebut berkembang. Sebuah game dapat menjadi sarana penyampaian dari sebuah cerita yang diangkat sebagai latar belakang game yang akan dibuat. Penceritaan yang memiliki interaksi dengan user dan user ikut serta dalam mengontrol dan memainkan suatu penceritaan dalam game disebut penceritaan interaktif (interactive storytelling). 3. Estetika (Aesthtetics) Estetika adalah bagian yang menentukan bagaimana sebuah game terlihat, terdengar, tercium, dan terasa. Estetika merupakan aspek yang sangat penting dalam mendesain game, karena berhubungan langsung dengan pengalaman
22 player. Estetika sangat berguna untuk membuat pengalaman yang dialami oleh player ketika bermain game menjadi menyenangkan. Game design yang kuat dan memiliki konsep ilustrasi yang baik akan : a. Membuat konsep dari game menjadi lebih jelas untuk semua orang. b. Membuat orang-orang melihat, membayangkan, dan memasuki dunia game tersebut. c. Membuat orang-orang bersemangat untuk memainkan game tersebut. 4. Teknologi (Technology) Teknologi adalah setiap material dan interaksi yang membuat sebuah game memungkinkan untuk dibuat. Teknologi yang dipilih menentukan halhal apa saja yang dapat dilakukan dan tidak dapat dilakukan pada suatu game. Teknologi adalah media yang esensial dimana estetika terasa, mekanisme terjadi, dan cerita dapat disampaikan. Game terdapat dalam berbagai platform antara lain : 1. Home Game Console Sebuah home game console biasanya terdiri dari sebuah konsol sebagai processing unit utama yang dilengkapi dengan controller sebagai input dan membutuhkan televisi sebagai output. Kelebihan home game console biasanya dapat dimainkan oleh lebih dari satu orang dalam satu waktu dan satu tempat (multiplayer game). Home game console memiliki unit pemroses grafik yang sangat bagus tetapi CPU dan RAM yang lemah jika dibandingkan dengan personal computer (PC), sehingga lebih sulit untuk memprogram game pada platform konsol. 2. Personal Computer (PC) Personal computer biasanya terdiri dari sebuah CPU dan memiliki
23 keyboard, mouse, atau joystick sebagai media input dan sebuah monitor sebagai media output. Desain dari sebuah PC biasanya ditujukan untuk satu orang saja dalam satu mesin. Tetapi kemampuannya dalam mengakses jaringan
internet
membuat
PC
memiliki
pasar
yang
luas
dalam
pengembangan online game. Selain itu, tidak seperti konsol yang memiliki spesifikasi yang sama, setiap PC memiliki spesifikasi sendiri karena ada berjuta-juta kemungkinan modifikasi oleh berjuta-juta player yang berbeda. 3. Handheld Game Machines Handheld game machines merupakan salah satu bentuk hiburan yang sangat populer namun tidak terlalu mahal dan biasanya banyak digunakan untuk remaja. Handheld game machines biasanya memiliki desain model yang sederhana dan tidak ada sedikitpun ruang untuk dimodifikasi. Mesin handheld memiliki kontrol yang terbatas dan layar LCD yang kecil. Pasar dari handheld game machines sangat menguntungkan, namun desainer game harus mempunyai kemampuan yang mumpuni, karena tanpa movie pendukung, game pada platform ini murni mengandalkan gameplay untuk menghibur. 4. Other Devices Dewasa ini, perkembangan game sudah sangat pesat dan muncul pada alat-alat yang berbeda dari ketiga platform di atas. Pengiriman pesan berbasis teks pada telepon selular memunculkan genre seperti text MUD (multi user dungeon or domain). Maskapai penerbangan mulai memberikan mini video games pada setiap tempat duduk pada semua pesawat mereka. PDA (personal digital assistants) dan smartphone mendukung pengembangan game untuk platform kecil dan sederhana.
24 2.2.2 Game Design Menurut pendapat Adams (2009, p29), Game design adalah suatu proses dari : a. Mengimajinasikan suatu game. b. Mendefinisikan bagaimana game itu bekerja. c. Menjelaskan elemen-elemen yang membangun game tersebut (dari segi konseptual, fungsional, artisitik dan lainnya). d. Memberikan informasi tentang game tersebut kepada team yang membangun game. Terdapat 3 komponen yang membangun video game, yaitu: 1. Core-mechanic Core-mechanic adalah penetapan peraturan umum dalam game yang akan dibuat, menjadi model simbolis dan matematis yang dapat diterapkan dalam bentuk algoritma. Core-mechanic mendefinisikan gameplay dari game yang akan dibuat. Komponen ini mendefinisikan tantangan-tantangan dari game yang akan dibuat, dan aksi apa yang user dapat lakukan dalam game world. Komponen ini menetapkan kondisi untuk mencapai goals, dan konsekuensi apa yang user dapatkan jika user menyelesaikan goals tersebut, atau jika user gagal menyelesaikan goals tersebut. 2. User Interface User interface berfungsi sebagai penghubung antara user dengan coremechanic dari game, komponen ini mengantarkan challenges yang dibuat oleh core-mechanic dan mengubahnya menjadi grafik yang di layar dan suara di speaker. Komponen ini juga mengubah input yang dilakukan oleh user menjadi aksi didalam konteks game tersebut. User interface juga
25 mempresentasikan cerita dalam game kepada user dan juga membantu user menggambarkan atau merasakan game world dari game yang dimainkan. 3. Storytelling Engine Storytelling engine adalah komponen dari video game yang bersifat opsional, jika game yang akan dibangun tidak mempunyai unsur cerita maka komponen ini boleh ditiadakan. Komponen ini menjalin kejadian-kejadian narasi kedalam game. Storytelling engine memperhatikan tentang progresi player akan cerita dari game. Menurut pendapat Adams (2009, p70), genre game adalah tipe dari tantangan yang diberikan game tersebut, berbeda dengan buku, genre game tidak terikat dengan isi cerita. Terdapat beberapa genre game yang ada saat ini, diantaranya : 1. Action Games Merupakan game yang berisi tantangan-tantangan fisik, yaitu hand-eye coordination dan waktu reaksi dari player. Game ini biasanya jarang meliputi tantangan strategi atau tantangan konseptual. Dalam genre ini terdapat beberapa macam sub-genre, yaitu : a. Shooters b. Platform games c. Fighting games d. Fasat puzzle games e. Action-adventures f. Music, dance and rhythm games 2. Strategy Games
26 Yaitu game yang berisi tantangan strategi, taktik, dan terkadang tantangan logistik. Game-game bergenre ini biasanya juga mempunyai tantangan ekonomi dan juga eksplorasi untuk memanjangkan game dan memberikan variasi dari game tersebut. 3. Role-Playing Games Genre ini melibatkan tantangan-tantangan taktik, logistik dan eksplorasi. Game-game dengan genre ini biasanya juga meliputi koleksi benda-benda dan memperjual-belikannya, untuk perlengkapan player yang lebih baik. 4. Real-World Simulations Genre game ini meliputi game olahraga dan simulasi kendaraan, genre ini juga melibatkan tantangan fisik dan taktik. 5. Construction and Management Games Genre game ini menawarkan tantangan ekonomi dan konseptual, dan genre ini jarang sekali memuat tantangan fisik. 6. Adventure Games Adventure games bersifat menjelajah, mengumpulkan barang dan memecahkan puzzle, biasanya juga pengguna disuruh untuk menyelesaikan misi di dalam game tersebut. Tidak seperti role playing games dimana karakter di dalam game dapat bertumbuh, karakter dalam adventure games tidak bertumbuh dan tidak dapat dimodifikasi. 7. Puzzle Games Genre ini menawarkan tantangan logis dan konseptual secara eksklusif, meskipun genre ini terkadang ada tantangan waktu.
27 2.2.3 Game Balancing Menurut Schell (2008, p172-200) game balancing dibagi menjadi 12 tipe yang biasanya digunakan dalam pembuatan sebuah game. 12 tipe tersebut ialah : 1. Type 1 : Fairness Tipe ini merupakan tipe game balancing yang paling sering digunakan dalam permainan papan seperti catur dan otello. Tipe ini memungkinkan setiap pemain untuk menang. Tidak ada pihak yang mendapat keuntungan atau kerugian yang signifikan. Untuk mengatasinya, digunakan symetrical, yaitu setiap pemain mendapatkan sumber daya dan kekuatan yang sama. Yang membedakan hanya bagaimana cara pemain untuk menggunakan dan mengelola sumber daya tersebut. Tetapi, ada juga game yang menggunakan Asymetrical. Berikut ini adalah beberapa alasan mengapa menggunakan asymetrical : a. Untuk membuat lebih real Ada beberapa game yang membuat game dengan tema perang dunia kedua, dimana dua kubu yang berperang adalah Axis dan Allied. Dalam sejarah, pihak Axis mengalami kekurangan sumber daya manusia, dan Allied memiliki keuntungan sumber daya manusia dan teknologi. Hal ini membuat game symetrical tidak digunakan dalam game tersebut. b. Agar pemain dapat mengeksplorasi game Mengeksplorasi gameplay merupakan hal yang sangat disukai pemain, sehingga banyak game yang menggunakan asymetrical. Contohnya saja, dalam sebuah game fighting ada 10 pilihan petarung. Pemain bebas
28 mengkombinasikan dua petarung untuk menaklukan misi atau stage khusus yang membutuhkan petarung-petarung tertentu. c. Personalisasi Setiap orang mempunyai kemampuan yang berbeda dalam memainkan setiap game. Karena itu, jika pemain diberikan pilihan karakter, kekuatan dan sumber daya yang berbeda, pemain akan bisa memainkan game tersebut dengan baik. d. Membuat setiap level lebih menantang Ketika
bermain
dengan
komputer,
pemain
akan
lebih
mudah
memenangkan game jika sudah hafal dengan gerak dan respon komputer. Untuk itu, setiap memenangkan level, kemampuan komputer akan ditambah, agar game lebih menantang. Selain itu, pemain yang memiliki kemampuan lebih, bisa memilih lawan yang seimbang, begitu pula dengan pemain yang masih pemula. e. Membuat situasi yang menarik Dalam sebuah game, akan lebih menarik jika ada perbedaan kemampuan dan perbedaan objektif yang harus dipenuhi agar menang. Setiap pemain akan berfikir bagaimana cara dan strategi yang tepat agar bisa memenangkan game tersebut. Selain itu terdapat kelebihan dan keuntungan dalam setiap pilihan pemain. Inilah yang membuat permainan menjadi semakin menarik. 2. Type 2 : Challenge vs Success Membuat pemain tetap memainkan game merupakan hal yang penting. Game dengan kesulitan tinggi dapat membuat pemain frustasi dan stress, tetapi game yang mudah dimenangkan akan membuat pemain cepat bosan karena terlalu mudah. Setiap pemain mungkin memiliki persepsi yang
29 berbeda mengenai setiap game, apakah terlalu mudah atau terlalau sulit. Berikut ini adalah teknik-teknik yang digunakan untuk membuat game tetap balance : a. Menambah kesulitan setiap kemenangan Akan membosankan jika setiap level permainan memiliki kesulitan yang sama. Hal tersebut akan membuat pemain cepat bosan. Karena itu, setiap level dibuat memiliki tantangan yang berbeda agar pemain semakin tertarik untuk memainkan game tersebut. b. Melewati tahap mudah dengan cepat Pemain biasanya cepat menguasai teknik permainan pada bagian yang mudah. Karena itu sebaiknya tahapan yang mudah diberikan waktu yang singkat agar cepat sampai ke tahapan yang sulit dan menantang pemain. c. Membuat lapisan tantangan Dalam sebuah game biasanya diberikan suatu grade jika telah menyelesaikan suatu misi. Jika mendapat grade kecil, misi tersebut harus diulang. Ada batasan grade yang harus dipenuhi agar bisa melewati misi tersebut. Bahkan jika mencapai grade tertentu, akan muncul misi khusus. Hal ini membuat setiap pemain ingin bermain terus menerus agar mendapatkan grade yang diinginkan. d. Bisa memilih tingkat kesulitan Biasanya setiap game sekarang ini telah memiliki pilihan tingkat kesulitan. Hal ini membuat pemain bisa menyesuaikan kesulitan dengan kemampuan yang dimilikinya. e. Testing dengan berbagai macam pemain
30 Biasanya, testing sebuah game hanya ditujukan kepada orang-orang yang sering bermain game, atau dengan orang-orang yang sama sekali belum pernah bermain game. Hal ini membuat game tersebut tidak cocok untuk dimainkan semua pemain. Untuk itu, perlu dilakukan testing dengan banyak orang, baik yang sering memainkan game atau yang belum pernah sama sekali bermain game. 3. Type 3 : Meaningful Choice Sebuah game yang bagus memiliki pilihan yang sangat berarti. Pilihan tersebut harus memiliki hubungan dengan game yang kita mainkan. Sebagai contoh dalam permainan racing, ada 10 mobil dan setiap mobil memiliki kelebihan dan kekurangannya, sehingga ketika digunakan akan memberikan perbedaan dari mobil lainnya. 4. Type 4 : Skill vs Chance Kemampuan dan kesempatan adalah hal yang bertolak belakang dalam game. Terlalu banyak menggunakan kemampuan akan membuat pemain yang memiliki kemampuan bagus, terus memenangkan permainan. Sebaliknya, game yang terlalu banyak menggunakan kesempatan akan membuat pemain yang memiliki keberuntungan tinggi terus menang. Untuk itu diperlukan balancing dalam hal ini. Sebaiknya sebuah game menggunakan dua hal tersebut. 5. Type 5 : Head vs Hands Tipe game balancing ini mengacu pada seberapa besar game tersebut menggunakan aktifitas otak dan tangan. Sekarang ini banyak game yang menggunakan dua hal tersebut dalam gameplay-nya. 6. Type 6 : Competition vs Cooperation
31 Kompetisi dan kerjasama merupakan hal yang dasar dalam sebuah game. Untuk berada dalam tingkatan khusus, diperlukan sebuah kompetisi untuk menentukan siapa yang terbaik. Sedangkan kerjasama diperlukan untuk bertahan hidup dan bersosialisasi. 7. Type 7 : Short vs Long Salah satu hal penting dalam game balancing adalah jangka waktu permainan. Jika waktu permainan terlalu sebentar, pemain tidak bisa mengembangkan permainan secara bebas. Sedangkan jika permainan terlalu lama, pemain akan bosan atau mungkin tidak akan memainkan game tersebut karena membutuhkan waktu lama untuk menyelesaikannya. 8. Type 8 : Rewards Tidak mungkin seorang pemain mau bermain sebuah game dalam waktu yang cukup lama tanpa sebuah penghargaan atau hadiah. Berikut ini adalah beberapa hadiah atau penghargaan yang diterima pemain secara umum : a. Pujian Pujian merupakan bentuk hadiah yang paling mendasar. Setiap orang akan senang jika diberikan pujian ketika menyelesaikan sesuatu dengan baik. Begitu pula dalam sebuah game. b. Poin Hampir dalam semua game, terdapat poin yang didapatkan pemain dengan berbagai cara. Poin ini bisa berperan dalam game sebagai mata uang, atau sebagai tolak ukur keberhasilan seorang pemain. c. Penambahan waktu bermain
32 Dalam beberapa game, banyak yang menyediakan waktu bermain lebih dengan berbagai cara. Dalam beberapa game, jika menyentuh poin tertentu, pemain akan mendapatkan life tambahan. d. Sebuah jalan baru Seorang pemain akan senang jika bisa mengeksplorasi sebuah game. Karena itu, banyak game yang menyediakan hadiah seperti ini. Ketika mereka menyelesaikan misi tertentu, mereka akan mendapatkan sebuah misi tertentu atau sebuah akses khusus ke level tertentu. e. Sebuah tontonan Dalam beberapa game, kita bisa mendapatkan beberapa video atau animasi yang hanya bisa didapatkan dengan menyelesaikan misi tertentu. Tidak sedikit pemain game yang senang dengan hal ini. f. Berekspresi Beberapa pemain lebih suka berekspresi dalam sebuah game dengan pakaian dan dekorasi tertentu. Contohnya saja dalam Sims, jika pemain mempunyai uang banyak, pemain dapat membeli dekorasi yang bagus. g. Kekuatan Menjadi kuat adalah impian setiap orang di dunia, tetapi di dunia game, hal tersebut bukanlah mustahil. Beberapa game memberikan kekuatan sebagai hadiah sebuah permainan. Contohnya Mario dalam Mario Bros yang menjadi kuat setelah memakan jamur. h. Sumber daya Beberapa game memberikan mata uang virtual yang bisa digunakan untuk membeli barang-barang di dunia game tersebut. Hadiah uang virtual ini sangat popular, terlebih di dunia MMORPG.
33 i. Penyelesaian Penyelesaian semua misi dan level dalam sebuah game adalah hadiah yang paling umum dalam dunia game. Setelah menyelesaikan game atau semua level dalam game tersebut, kita akan merasa puas. 9. Type 9 : Punishment Sebuah game memang seharusnya memberikan kesenangan, bukan hukuman. Tetapi memberikan hukuman sebagai game balancing bukan tidak berdasarkan alasan. Berikut adalah alasan mengapa menggunakan hukuman sebagai game balancing : a. Memberikan nilai endogen. b. Mengambil resiko menyenangkan. c. Memberikan hukuman membuat game semakin menantang. Berikut ini adalah beberapa hukuman yang sering diberikan dalam sebuah game : a. Malu b. Poin berkurang c. Waktu bermain berkurang d. Tidak bisa bermain e. Kembali ke suatu titik f. Hilangnya kekuatan g. Sumber daya berkurang 10. Type 10 : Freedom vs Controlled Experience Dalam sebuah game, kebebasan dan kontrol terhadap permainan merupakan hal yang penting. Tetapi kebebasan dan kontrol harus dibatasi
34 sesuai dengan kebutuhan. Sebuah game dengan kebebasan penuh akan membuat pemain menjadi bosan. 11. Type 11 : Simple vs Complex Dalam setiap game, kesederhanaan dan kompleksitas sebuah game sangat bertolak belakang. Sebuah game yang sederhana seringkali dikritik sebagai sebuah game yang membosankan, tetapi seringkali game yang sederhana menjadi sebuah game yang elegan, begitu pula dengan game kompleks. Untuk itu, ada baiknya desainer game memperhatikan seberapa kompleks dan seberapa sederhana sebuah game. 12. Type 12 : Detail vs Imagination Tampilan sebuah game menyita banyak perhatian pemain. Tampilan dan latar yang bagus dan menarik akan membuat pemain menyukai game tersebut. 2.2.4 Unity 3D – Game Engine Menurut anonim1, Unity adalah sebuah ekosistem pengembangan game. Ekosistem ini meliputi mesin rendering yang kuat terintergrasi penuh dengan satu set lengkap alat intuitif dan alur kerja yang cepat untuk membuat konten 3D interaktif, kemudahan untuk dibuat dalam berbagai platform, terdapat ribuan aset yang berkualitas dan siap pakai di dalam Asset Store dan tersedia komunitas untuk berbagi pengetahuan. Untuk pengembang mandiri dan studio, ekosistem bebas unity mengurangi waktu dan biaya untuk membuat games yang bagus serta berbeda. Para pengembang menggunakan Unity untuk membangun sebuah penghidupan dimana para pengembang dapat melakukan apa yang mereka
35 sukai seperti membuat games yang menarik dan dapat menyenangkan pemain dalam berbagai platform. “Unity membuat produksi game menjadi lebih mudah dengan memberikan beberapa logika untuk membangun scenario game yang sudah dibayangkan”, menurut Goldstone (2009, p14). Unity salah satu game engine yang mudah digunakan, hanya membuat objek dan diberikan fungsi untuk menjalankan objek tersebut. Dalam setiap objeknya mempunyai variabel, variabel inilah yang harus dimengerti supaya dapat membuat game yang berkualitas. Berikut ini adalah bagian – bagian dalam unity : 1. Assets Assets adalah tempat penyimpanan dalam Unity seperti suara, gambar, video, tekstur, semua yang dapat dipakai dalam unity disimpan di dalam assets. 2. Scenes Scenes adalah sebuah area yang berisikan konten-konten dalam game, seperti membuat sebuah level, membuat menu, tampilan tunggu, dan sebagainya. 3. Game Objects Ketika sebuah objek di dalam assets dimasukkan ke dalam scenes, maka objek tersebut berubah menjadi game objects. Dimana objek tersebut bisa digerakkan, diatur ukurannya dan diatur rotasinya. 4.
Components Components
dapat
dimasukkan
ke
dalam
game
objects
untuk
menciptakan reaksi baru, seperti collision, memunculkan partikel, dan sebagainya. Intinya components membuat reaksi baru di dalam game objects.
36 5. Script Script yang dapat digunakan dalam unity ada tiga, yaitu javascript, C# dan BOO. Tetapi Unity tidak menyediakan cara untuk menggunakan script tersebut. Script dalam Unity tidaklah begitu sulit karena script langsung menunjuk kepada aksi yang ingin diberikan. Penggunaan script dalam Unity harus menggunakan program lain yang telah di sediakan oleh Unity. 6. Prefabs Prefabs adalah tempat untuk menyimpan satu jenis game objects, sehingga mudah untuk diperbanyak. Prefebs juga mempermudah dalam pembuatan objek-objek yang kompleks, tetapi tujuan utama prefabs adalah untuk mempermudah memunculkan banyak objek dalam seketika.