Teknologi Game - E

advertisement
Teknologi Game
ratnokustiawan.wordpress.com
Game Genres / Aliran Permainan
Digunakan untuk mengkategorikan game berdasarkan pada perbedaan cara bermain daripada
perbedaan secara visual atau naratif. Sebuah aliran dari permainan didefinisikan oleh sekumpulan
tantangan. Beberapa genre yang ada antara lain
1. Action
Sebuah game dengan jenis Action membutuhkan pemain untuk menggunakan reflek yang cepat,
akurasi, dan waktu untuk mengatasi rintangan. Hal ini mungkin yang paling dasar aliran game
ini. Game action cenderung memiliki gameplay dengan penekanan pada pertempuran. Ada
banyak subgenre game action, seperti “figting games” dan “first person shooter”.
2. Adventure
Tidak seperti film-film petualangan, game petualangan tidak didefinisikan oleh cerita atau
konten. Sebaliknya, petualangan menjelaskan cara permainan tanpa adanya tantangan refleks
atau tindakan. Mereka biasanya meminta pemain untuk memecahkan berbagai teka-teki
dengan berinteraksi dengan orang atau lingkungan, paling sering dalam cara non-konfrontatif.
3. Role Playing
Sebuah role-playing game (RPG) adalah permainan di mana pemain mengatur suatu karakter.
Pemain bertanggung jawab untuk mengarahkan karakter sesuai narasi, baik melalui akting
harfiah, atau melalui proses pengambilan keputusan terstruktur atau pengembangan karakter.
Tindakan yang dilakukan dalam permainan berhasil atau gagal akan ditentukan menurut
pedoman yang berlaku
4. Simulation
Konstruksi dan simulasi manajemen (CMS/Construction Simulation Management) adalah suatu
jenis permainan simulasi di mana pemain membangun, memperluas atau mengelola komunitas
fiktif atau proyek-proyek dengan sumber daya terbatas. Permainan strategi kadang-kadang
menggabungkan aspek-aspek CMS ke dalam perekonomian permainan mereka, sebagai pemain
harus mengelola sumber daya sementara memperluas proyek mereka. Tapi murni CMS berbeda
dari game game strategi, "tujuan pemain tidak untuk mengalahkan musuh, tetapi untuk
membangun sesuatu dalam konteks dari proses yang berkelanjutan. Permainan dalam kategori
ini kadang-kadang juga disebut" manajemen game
5. Strategy
Strategi game fokus pada permainan yang membutuhkan pemikiran yang cermat dan terampil
dan perencanaan dalam rangka mencapai kemenangan. Dalam permainan strategi yang paling
video, kata Andrew Hollings, "pemain diberikan pandangan atas dari dunia permainan, secara
tidak langsung mengendalikan unit-unit di bawah komandonya." Hollings juga mencatat bahwa
"Asal usul permainan strategi berakar di dekat sepupu mereka, permainan papan. "permainan
strategi yang biasanya mengambil salah satu dari empat bentuk pola dasar, tergantung pada
apakah permainan ini adalah turn-based atau real-time dan apakah fokus permainan adalah
Page 1
Teknologi Game
ratnokustiawan.wordpress.com
pada strategi atau taktik militer. Game real time strategi sering merupakan pilihan permainan
unit ganda (beberapa karakter permainan dapat dipilih sekaligus untuk melakukan tugas yang
berbeda, sebagai lawan hanya memilih satu karakter pada satu waktu) dengan melihat langit
(melihat melihat ke bawah dari atas) tetapi beberapa permainan terakhir seperti Tom Clancy
EndWar, adalah unit pilihan tunggal dan melihat sebagai sisi orang ketiga. Seperti game banyak
RPG.
6. Casual
Sebuah permainan kasual biasanya ditargetkan oleh khalayak massa gamer kasual. Game kasual
dapat memiliki semua jenis permainan, dan cocok di genre apapun. Mereka biasanya dibedakan
dengan aturan sederhana mereka dan tidak diperlukan kompleksitas seperti pada game lain.
Mereka tidak memerlukan komitmen jangka panjang waktu atau keahlian khusus untuk
bermain, dan ada relatif produksi rendah dan biaya distribusi bagi produsen .
Casual game biasanya dimainkan pada komputer pribadi secara online di web browser,
meskipun sekarang mulai menjadi populer di konsol game dan ponsel juga. Gamer kasual
biasanya lebih tua dari gamer komputer tradisional, dan lebih sering dimainkan perempuan,
dengan lebih dari 74% dari gamer kasual adalah perempuan .
7. Educational
Game pendidikan adalah permainan yang telah dirancang untuk mengajar orang tentang topik
tertentu, memperluas konsep, memperkuat pembangunan, memahami sebuah peristiwa
sejarah atau budaya, atau membantu mereka dalam belajar keterampilan karena mereka
bermain.
Dan masih banyak sekali jenis game yang belum dijelaskan disini.
Page 2
Teknologi Game
ratnokustiawan.wordpress.com
Istilah dalam Game Programming
1. Sprite
Dalam grafik komputer, sebuah sprite adalah gambar dua dimensi atau animasi yang terintegrasi
ke dalam adegan yang lebih besar. Digunakan untuk mendeskripsikan setiap objek dalam game
yang memiliki gambar dan karakteristik. Anda dapat membayangkan sprite sebagai suatu
gambar yang terletak di suatu tempat di layar, yang mana gambar tersebut dapat bergerak,
beranimasi, dan memiliki karakteristiknya masing-masing.
2. Tile Set/Sprite Sheet
koleksi gambar kecil yang disusun menyerupai ubin (biasanya ukuran seragam) yang kemudian
digabungkan menjadi sebuah gambar yang lebih besar tunggal. Tile set sering digunakan dalam
video game 2D untuk membuat peta yang kompleks. Menggunakan tile sets mengurangi jumlah
memori sistem yang diperlukan untuk menampilkan peta karena memungkinkan untuk ubin
yang sama untuk digunakan kembali beberapa kali dalam peta. Hal ini juga mengurangi jumlah
karya seni yang dibutuhkan. Agar peta terbuat dari tile sets tampak lebih khas, permainan
biasanya menampilkan mereka dengan ubin yang berbeda yang ditetapkan untuk setiap
lingkungan yang unik.
Page 3
Teknologi Game
ratnokustiawan.wordpress.com
Instalasi

Android SDK
SDK manager dapat diperoleh di http://developer.android.com/index.html, anda juga dapat
memperolehnya sewaktu kuliah. Gambar dibawah ini menunjukkan paket yang sudah di
download, kurang lebih 3,26 GB.

Eclipse
Pada praktikum digunakan eclipse versi 3.7.1, bagi anda yang hendak menggunakan versi
dibawahnya atau versi 64 bit tidak menjadi masalah selama eclipse tersebut mendukung ADT
12.0.0
ADT
Android Development Tools (ADT) adalah plugin untuk Eclipse IDE yang dirancang untuk
memberikan Anda lingkunganyang terintegrasi untuk membangun aplikasi Android.
ADT memperluas kemampuan Eclipse untuk mempermudah anda mengatur proyek-proyek baru
Android, membuat UI aplikasi, menambahkan komponen berdasarkan Kerangka Android API,
debug aplikasi Anda menggunakan alat SDK Android, dan bahkan ekspor file APL. File APK untuk
mendistribusikan aplikasi Anda.
Pengembangan aplikasi android dalam Eclipse dengan ADT adalah sangat dianjurkan dan
merupakan cara tercepat untuk memulai. Dengan dipandu setup proyek, serta integrasi alat,

Page 4
Teknologi Game
ratnokustiawan.wordpress.com
XML editor, dan panel ouput debug, ADT memberikan Anda sebuah peningkatan yang luar biasa
dalam mengembangkan aplikasi Android. Untuk tutorial instalasi dapat anda ikuti pada link
berikut ini http://developer.android.com/sdk/eclipse-adt.html.
Page 5
Teknologi Game
ratnokustiawan.wordpress.com
AndEngine (http://code.google.com/p/andengine/)
AndEngine adalah Engine permainan berbasiskan OpenGL 2D gratis untuk platform Android. Dibuat oleh
Nicolas Gramlich.
Android Virtual Device
Android Virtual Device (AVD) adalah emulator yang konfigurasi memungkinkan Anda memiliki model
perangkat yang sebenarnya dengan mendefinisikan pilihan hardware dan software yang akan ditiru oleh
Emulator Android. Untuk keterangan selengkapnya klik link berikut ini
http://developer.android.com/guide/developing/devices/index.html
1. Buka eclipse anda
2. Cek apakah Eclipse anda sudah terkoneksi dengan
Android SDK melalui Window  Android SDK and AVD Manager
Bila muncul pesan berikut
Page 6
Teknologi Game
ratnokustiawan.wordpress.com
Menandakan bahwa Android SDK anda belum terkoneksi dengan eclipse, maka pilih menu
Window  Preferences, maka akan muncul window preferences sebagai berikut
Pilih Android
Page 7
Teknologi Game
ratnokustiawan.wordpress.com
Pada SDK Location isi lokasi dari folder SDK Manager.exe, contohnya ditempat saya adalah
F:\android-sdk_r11-windows\android-sdk-windows, kemudian tekan Apply. Maka akan muncul
daftar dari list SDK anda.
Lalu tekan OK
3. Cek kembali melalui menu berikut :
Android SDK melalui Window  Android SDK and AVD Manager, maka muncul window berikut
Page 8
Teknologi Game
ratnokustiawan.wordpress.com
4. Untuk membuat Android Virtual Device silahkan ikuti petunjuk pada manual SDK Manager atau
link berikut ini http://developer.android.com/guide/developing/devices/managing-avds.html.
5. Yang perlu anda ingat adalah
a. Target
Disini saya akan menggunakan Android 2.2 – API Level 8, dengan tujuan agar
mendukung APP to SD tanpa melakukan root terhadap device apabila nanti aplikasi kita
dideploy.
b. Size
Saya beri 100 MiB
c. Snapshot
Saya beri nilai false atau tanpa tanda check, bila anda beri tanda check maka anda
mengaktifkan mode untuk menyimpan state terakhir dari virtual device anda
d. Skin
Disini saya pilih Built-in kemudian HVGA
e. Hardware
i. Max VM Application Head Size
Saya beri nilai 256 MB
ii. Device ram size
Saya beri nilai 512 MB
Tampak seperti gambar berikut
Klik create AVD, maka pada Android SDK and AVD Manager tampak seperti gambar berikut ini
Page 9
Teknologi Game
ratnokustiawan.wordpress.com
6. Silahkan anda pilih device anda kemudian klik Tombol Start
7. Pada Launch Options, beri tanda check pada Checkbox bertuliskan Scale display to real size, ini
agar device anda disesuaikan dengan ukuran sesungguhnya,
a. Untuk Screen Size beri nilai 4, disini saya mengambil ukuran sama dengan LG Optimus
Black, silahkan sesuaikan dengan kebutuhan anda
8. Pilih Launch
Page
10
Teknologi Game
ratnokustiawan.wordpress.com
Project Android Standard di Eclipse
Pada bagian ini kita akan mencoba untuk membuat project android, project yang kita buat adalah
project standard bawaan ADT
1. Jalankan Eclipse anda
2. File  New  Android Project
3. Setelah muncul window New Android Project, beri nama project HelloAndroid. Pada Content
pilih Create new project in workspace, beri tanda check pada use Default Location.
4. Untuk build target pilih Android 2.2
5. Untuk ApplicationName pastikan namanya HelloAndroid, untuk package name berinama
com.teknogame atau terserah anda yang penting minimal 2 kata yang dipisahkan tanda titik.
Lalu Pilih Finish
6. Pastikan tampilan eclipse anda seperti gambar dibawah ini
Jika belum maka klik menu Window Show View Project Explorer
Page
11
Teknologi Game
ratnokustiawan.wordpress.com
7. Pastikan anda mendapatkan tampilan seperti gambar berikut
8. Disana terdapat file HelloAndroidActivity, Apakah Activity itu ??
Activity
komponen aplikasi yang memberikan tampilan dimana pengguna bisa dengan aplikasi untuk
memerintahkan suatu perintah. Sebuah aplikasi biasanya terdiri dari banyak activity. Umumnya,
satu activity dalam aplikasi berlaku sebagai main activity (activity utama) yang akan tampil
pertama kali ketika pengguna menjalankan aplikasi untuk pertama kalinya.
Tiap activity dapat menjalankan activity yang lain untuk menjalankan suatu aksi yang berbeda.
Setiap kali suatu activity dijalankan, maka activity sebelumnya akan dalam kondisi “stop”, tapi
system tetap menjaga activity yang distop dalam stack. Ketika suatu activity baru mulai
dijalankan, maka activity baru ini akan diposisikan di tumpukan teratas dan menjadi tampilan
yang akan difokuskan ke pengguna.
Jadi ketika pengguna sudah selesai beurusan dengan activity yang aktif saat ini dengan menekan
tombol back, maka activity yang aktif saat ini dan terletak di tumpukan paling atas akan
dihancurkan dan menampilkan activity sebelumnya.
Biasanya sebuah Activity semisal HelloAndroidActivity, adalah turunan dari Activity, dalam
AndEngine adalah turunan dari BaseGameActivity.
9. Disana terdapat file AndroidManifest.xml, Apakah AndroidManifest??
Android manifest
file yang dimiliki Setiap aplikasi android didalam root directory. Manifest ini menyimpan
informasi mengenai aplikasi kepada sistem Android, informasi kepada sistem harus ada sebelum
aplikasi dapat dijalankan.
Page
12
Teknologi Game
ratnokustiawan.wordpress.com
Page
13
Teknologi Game
ratnokustiawan.wordpress.com
10. Silahkan anda jalankan project HelloAndroid anda dengan cara klik kanan HelloAndroid RunAs
 Android Application.
11. Tampilan ketika booting sistem operasi Android
Sambil menunggu diharap juga sebagai sarana belajar sabar 
Page
14
Teknologi Game
ratnokustiawan.wordpress.com
12. Tampilan android anda ketika sudah running
13. Sampai saat ini anda sudah berhasil membuat Hello World, HelloAndroidActivity.
Page
15
Teknologi Game
ratnokustiawan.wordpress.com
Latihan 1.1 (Background)
AndEngine, Menampilkan Gambar Background
1.
2.
3.
4.
5.
Buat project android standard dengan nama HoneyCombRush, build target pilih Android 2.2
Paket name beri nama com.teknogame.honey
Finish
Klik kanan project HoneyCombRush  Properties
Pilih Java Build Path  Libraries  Add External Jars
Cari file andengine.jar anda, sehingga library andengine.jar terdaftar pada libraries project anda
Page
16
Teknologi Game
ratnokustiawan.wordpress.com
Lalu ok
Page
17
Teknologi Game
ratnokustiawan.wordpress.com
6. Pada referenced libraries tampak andengine.jar
7. Silahkan anda buka HoneyCombRushActivity
8. Ganti extends Activity menjadi BaseGameActivity
9. Hapus method onCreate, hasilnya seperti berikut
package com.teknogame.honey;
import org.anddev.andengine.ui.activity.BaseGameActivity;
import android.app.Activity;
import android.os.Bundle;
public class HoneyCombRushActivity extends BaseGameActivity {
/** Called when the activity is first created. */
}
Penjelasan kode program 1.1 :
o
package com.teknogame.honey;
Kode program diatas maksudnya adalah kelas HoneyCombRushActivity terletak pada
paket com.teknogame.honey
o
import org.anddev.andengine.ui.activity.BaseGameActivity;
Mengimport kelas BaseGameActivity dari paket org.anddev.andengine.ui.activity,
import ini berguna agar kelas HoneyCombRushActivity dapat menggunakan kelas
BaseGameActivity entah sebagai kelas induk, field atau yang lain.
o
public class HoneyCombRushActivity extends BaseGameActivity
Kode program diatas maksudnya adalah kelas HoneyComRushActivity merupakan
turunan dari kelas BaseGameActivity
Page
18
Teknologi Game
ratnokustiawan.wordpress.com
10. Tampak pada eclipse terdapat error
11. Klik bohlam yang menyala, kemudian pilih add unimplemented method
Disini kita akan mengimplementasikan method yang wajib diimplemetasikan ketika kita
membuat sebuah kelas (dalam hal ini HoneyComRush) menjadi turunan dari BaseGameActivity.
Method tersebut adalah
a. onLoadComplete
b. onLoadEngine
c. onLoadResources
d. onLoadScene
12. Tambahkan 2 attribut untuk menentukan resolusi lebar dan tinggi pada kelas HoneyCombRush
private static final int CAMERA_WIDTH = 720;
private static final int CAMERA_HEIGHT = 480;
Penjelasan kode program 1.2 :
Maksud dari 2 baris kode program diatas adalah kita menambahkan 2 buah attribut yang
sifatnya statis, memiliki modifier private, bersifat final (tidak bisa diubah ketika saat runtime).
Attribut pertama bernama CAMERA_WIDTH untuk menyimpan lebar layar dan attribut kedua
bernama CAMERA_HEIGHT untuk menyimpan tinggi layar.
13. Tambahkan 4 buah variabel ini di kelas HoneyCombRush
private Texture textureBackground;
private TextureRegion regionBackground;
protected Camera camera;
private Scene scene;
Penjelasan kode program 1.3
Texture
Digunakan untuk menyimpan image background di memory. 1 Texture dapat menyimpan lebih
dari 1 image
Texture Region
Mendefinisikan kotak atau batasan dari texture. TextureRegion digunakan oleh sprite untuk
menentukan bagian mana dari texture yang akan ditampilkan
Page
19
Teknologi Game
ratnokustiawan.wordpress.com
Camera
Digunakan untuk menentukan area mana yang akan digambar di layar.
Scene
Adalah root container bagi semua objek yang akan digambar di layar
14. Import yang anda butuhkan sampai saat ini adalah
import
import
import
import
import
import
org.anddev.andengine.engine.Engine;
org.anddev.andengine.engine.camera.Camera;
org.anddev.andengine.entity.scene.Scene;
org.anddev.andengine.opengl.texture.Texture;
org.anddev.andengine.opengl.texture.region.TextureRegion;
org.anddev.andengine.ui.activity.BaseGameActivity;
15. Untuk method onLoadEngine, isi dengan kode program dibawah ini
camera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
Engine engine=new Engine(new EngineOptions(true, ScreenOrientation.LANDSCAPE,
new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT),
this.camera));
return engine;
Penjelasan kode program 1.4 :
Inisialisasi object camera
camera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
Maksud dari kode program diatas adalah membuat objek camera, dimana camera mengambil
posisi awal x dan y adalah 0 dan memiliki panjang dan lebar mengikuti nilai dari attribut
CAMERA_WIDTH dan CAMERA_HEIGHT.
Inisialisasi object engine
Engine engine=new Engine(new EngineOptions(true, ScreenOrientation.LANDSCAPE,
new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT),
this.camera));
Maksud dari kode program diatas adalah membuat object engine, dimana object tersebut
memiliki options sebagai berikut
a. True  berarti fullscreen
b. ScrrenOrientation.LANDSCAPE  orientasi layar untuk landscape (HP android di
miringkan)
c. new RatioResolutionPolicy  bahwa resolusi yang dipakai sama dengan resolusi camera
d. this.camera  camera yang digunakan sebagai acuan
Page
20
Teknologi Game
ratnokustiawan.wordpress.com
16. Import yang ditambahkan adalah sebagai berikut
import org.anddev.andengine.engine.options.EngineOptions;
import org.anddev.andengine.engine.options.EngineOptions.ScreenOrientation;
import org.anddev.andengine.engine.options.resolutionpolicy.RatioResolutionPolicy;
17. Pada method onLoadResources kita tambahkan kode program berikut
textureBackground = new Texture(2048, 2048, TextureOptions.BILINEAR);
regionBackground = TextureRegionFactory
.createFromAsset(textureBackground, this,
"background/titleScreen.png", 0, 50);
mEngine.getTextureManager().loadTexture(this.textureBackground);
Penjelasan kode program 1.5 :
Inisialisasi object textureBackground
textureBackground = new Texture(2048, 2048, TextureOptions.BILINEAR);
Inisialisasi object textureBackground dengan ukuran 2048x2048 dan jenis texture Bilinier.
Inisialisasi object regionBackground
regionBackground = TextureRegionFactory
.createFromAsset(textureBackground, this,
"background/titleScreen.png", 0, 0);
Inisialisasi object regionBackground dengan memanggil static method createFromAsset dari
kelas TextureRegionFactory. Parameternya diisi :
o textureBackground  tempat menyimpan gambar di memory
o this  context dari game
o background/titleScreen.png  file background yang akan di load
o 0  posisi x dan y di textureBackground
Load Texture
mEngine.getTextureManager().loadTexture(this.textureBackground);
melakukan load texture dari object textureBackground dengan menggunakan method
loadTexture yang didapat dari object TextureManager yang dipanggil dari method
getTextureManager di object mEngine.
18. Pastikan anda sudah menambahkan 2 buah import dibawah ini
import org.anddev.andengine.opengl.texture.TextureOptions;
import org.anddev.andengine.opengl.texture.region.TextureRegionFactory;
Page
21
Teknologi Game
ratnokustiawan.wordpress.com
19. Pada method onLoadScene tambahkan kode program berikut ini
scene=new Scene(1);
Sprite spBackground=new Sprite(0, 0, regionBackground);
scene.getLastChild().attachChild(spBackground);
return scene;
Penjelasan kode program 1.6 :
Inisialisasi object scene
scene=new Scene(1);
melakukan inisialisasi object scene
Inisialisasi object spBackground
Sprite spBackground=new Sprite(0, 0, regionBackground);
Melakukan deklarasi object spBackground dengan type Sprite kemudian melakukan inisialisasi
dengan posisi x dan y adalah 0 dimana sprite ini akan menampilkan gambar yang dipetakan oleh
regionBackground
Penambahan object spBackground ke scene
scene.getLastChild().attachChild(spBackground);
Menambahkan object spBackground ke scene
20. Pada folder asset tambahkan folder background kemudian beri file titleScreen.png
Menambahkan file gambar di folder asset
Page
22
Teknologi Game
ratnokustiawan.wordpress.com
21. Jalankan project HoneyCombRush anda, maka hasilnya seperi gambar berikut
Hasil dari latihan 1
Coba tekan CTRL + F11
Selamat, anda sudah berhasil menampilkan halaman awal dari project game ini.
Latihan 1.2
a. Buat 1 buah activity lagi dengan nama InstructionsActivity
b. Tampilkan file instructions.png
c. Pada file AndroidManifest.xml,
<activity android:name=".HoneyCombRushActivity"
android:label="@string/app_name">
Ubah tulisan .HoneyCombRushActivity menjadi .InstructionsActivity
agar file
InstructionsActivity menjadi activity yang pertama kali dijalankan (main activity)
d. Selamat mencoba
Latihan 1.3
a. Buat 1 buah activity lagi dengan nama PlayActivity
b. Tampilkan file GamePlayBackground.png
c. Lakukan perintah latihan 1.2 bagian c dan sesuaikan nama Activity menjadi PlayActivity
d. Selamat mencoba
Page
23
Download