KONSEP
PEMBUATAN SCRIPT GAME COMPUTER
Game/permainan adalah sesuatu
yang sangat digemari oleh anak-anak hingga orang dewasa. Game berarti
“hiburan”. Permainan game juga merujuk pada pengertian sebagai “kelincahan
intelektual” (intellectual playability). Sementara kata “game” bisa diartikan
sebagai arena keputusan dan aksi pemainnya. Ada target-target yang ingin
dicapai pemainnya. Kelincahan intelektual, pada tingkat tertentu, merupakan
ukuran sejauh mana game itu menarik untuk dimainkan secara maksimal.
Beberapa waktu lalu istilah “game” yang dalam
bahasa Indonesia adalah “permainan” identik dengan
anak-anak selaku pemain. Tentunya dalam permainan itu suatu kegiatan yang
dilakukan oleh anak-anak yang menurut mereka itu dapat menyenangkan hati
mereka. Segala bentuk kegiatan yang memerlukan pemikiran, kelincahan
intelektual dan pencapaian terhadap target tertentu dapat dikatakan sebagai
game. Tetapi yang akan dibahas pada kesempatan ini adalah game yang terdapat di
komputer, baik off line maupun online.
Saat ini perkembangan games di komputer sangat
cepat. Para pengelola industri game berlomba-lomba untuk menciptakan game yang
lebih nyata dan menarik untuk para pemainnya. Hal inilah yang membuat
perkembangan games di komputer sangat cepat. Sehingga games bukan hanya sekedar
permainan untuk mengisi waktu luang atau sekedar hobi. Melainkan sebuah cara
untuk meningkatkan kreatifitas dan tingkat intelektual para penggunanya.
Script
Dalam
pemrograman komputer, naskah adalah sebuah program atau urutan instruksi yang
ditafsirkan atau dilakukan dengan program lain daripada oleh komputer
prossesor. Skrip (script) adalah semacam bahasa pemrograman dalam tingkat
kesulitan yang lebih rendah, tanpa aplikasi hasil kompilasi interpreter; skrip
biasanya disisipkan ke dalam bahasa pemrograman yang lebih kompleks dan hasil
skrip digunakan oleh bahasa pemrograman yang lebih kompleks itu.
Contohnya
ialah penyisipan skrip assembly ke dalam program Pascal untuk mengakses
hardware pada level bahasa tingkat rendah. Skrip merupakan kumpulan sintaks
bahasa pemrograman yang siap untuk di-compile. Untuk mengetahui tentang script,
disini ada sedikit rangkuman tentang script :
- Script
adalah bahasa yang digunakan untuk menerjemahkan setiap perintah dalam
situs yang pada saat di akses.
- Jenis
script sangat menentukan statis, dinamis, atau interaktifnya sebuah situs.
- Semakin
banyak script yang digunakan maka akan terlihat semakin dinamis, dan
interaktif serta terlihat lebih bagus.
- Bahasa
dasar yang di pakai setiap situs adalah HTM.
- Macam-macam
script, PHP, ASP, JSP, Java Script, Java Applets, VBScript.
Storyboard Game
Storyboard
adalah visualisasi ide dari aplikasi yang akan dibangun, sehingga dapat
memberikan gambaran dari aplikasi yang akan dihasilkan. Storyboard dapat
dikatakan juga visual script yang akan dijadikan outline dari sebuah proyek,
ditampilkan shot by shot yang biasa disebut dengan istilah scene.
Storyboard sekarang lebih banyak digunakan untuk
membuat kerangka pembuatan websites dan proyek media interaktif lainnya seperti
iklan, film pendek, games, media pembelajaran interaktif ketika dalam tahap
perancangan /desain.
Baru-baru ini istilah “Storyboard” telah
digunakan dibidang pengembangan web, pengembangan perangkat lunak dan
perancangan instruksi untuk mempresentasikan dan menjelaskan kejadian
interaktif seperti suara dan gerakan biasanya pada antarmuka pengguna, halaman
elektronik dan layar presentasi. Sebuah Storyboard media interaktif dapat
digunakan dalam antarmuka grafik pengguna untuk rancangan rencana desain sebuah
website atau proyek interaktif sebagaimana alat visual untuk perencanaan isi.
Sebaliknya, sebuah site map (peta) atau
flow chart (diagram alur) dapat lebih bagus digunakan untuk merencanakan
arsitektur informasi, navigasi, links, organisasi dan pengalaman pengguna,
terutama urutan kejadian yang susah diramalkan atau pertukaran audiovisual
kejadian menjadi kepentingan desain yang belum menyeluruh.
Salah satu keuntungan menggunakan Storyboard adalah
dapat membuat pengguna untuk mengalami perubahan dalam alur cerita untuk memicu
reaksi atau ketertarikan yang lebih dalam. Kilas balik, secara cepat menjadi
hasil dari pengaturan Storyboard secara kronologis untuk membangun rasa
penas.
Seorang pembuat Storyboard harus mampu menceritakan
sebuah cerita yang bagus. Untuk mencapainya, mereka harus mengetahui berbagai
film, dengan pengertian tampilan yang bagus, komposisi, gambaran berurut dan
editing. Mereka harus mampu untuk bekerja secara sendiri atau dalam sebuah
bagian tiam. Mereka harus mampu menerima arahan dan juga bersiap membuat
perubahan terhadap hasil kerja mereka.
Untuk proyek
tertentu, pembuat Storyboard memerlukan ketrampilan menggambar yang bagus dan
kemampuan beradaptasi terhadap gaya yang bermacam. Mereka harus mampu untuk
mengikuti desain yang telah dikeluarkan dan menghasilkan kerja konsisten, yang
digambar pada model.
Dalam pembuatan script game ini ada
beberapa konsep yang harus Anda perhatikan di antarannya adalah sebagai berikut
:
- Pikirkan
terlebih dahulu RAW PLAN gamenya.
- Pilih
jenis game yang akan Anda buat.
- Genre
apa yang akan Anda pilih.
- Judul
apa yang akan Anda pilih untuk memberikan gambaran keseluruhan game Anda.
- Siapa
tokoh Utama yang akan Anda pilih dan buat.
- Alur
atau plot cerita dari game yang akan Anda buat.
- Buatlah
detail yang Anda ingin kan agar game Anda lebih bagus.
- Kumpulkan
bahan-bahan yang ada perlukan.
Jika konsep sudah Anda miliki selanjutnya Anda dapat
memulai untuk membuat game yang ingin Anda buat. Buat lah game yang baik dan
memiliki edukasi yang bagus juga untuk mendorong daya motorik si pemain game
ini. Jika game yang Anda buat sudah jadi, selanjutnya Anda akan mengembangkan
game yang sudah Anda buat sebelumnya hingga gamenya benar-benar game pro yang
di cari para pemain game.
Dibawah ini adalah tahapan pembuatan
game komputer.
Dapat kita lihat pada tahapan pembuatan game di atas
dengan beberapa tahap sampai menghasilkan game.
Aplikasi games
dapat dijalankan pada berbagai platform. Beberapa platform media yang bisa
dijadikan pilihan untuk advergames adalah :
1. Personal Computer
berupa aplikasi games pada PC.
Games ini dijalankan pada personal computer. Pada media Personal Computer,
durasi waktu penayangan adalah tidak terbatas, selama games tersebut bagus dan
mampu menghibur audience/pemain, maka selama itulah tingkat kemungkinan untuk
dilihat audience akan semakin tinggi. Pembuatan Games ini biasanya menggunakan
Language C++ / C#, membutuhkan waktu 3-6 bulan tergantung dengan kompleksitas
games tersebut.
2. Web Based Games.
Yaitu aplikasi games yang
diletakkan pada server di internet dimana audience/pemain hanya perlu
menggunakan akses internet dan browser untuk mengakses games tersebut. Corporate
yang memiliki keinginan mengumpulkan komunitas internet dan sekaligus
memperkenalkan product/brandnya kepada komunitas Internet sangat cocok memilih
media games online internet ini. Pilihan ini banyak digunakan karena dapat
meningkatkan traffic pada suatu website Bila games yang dibutuhkan simple maka
diperlukan waktu pengembangan yang relative lebih singkat 1-2 bulan.
3.
SmartPhones/PocketPC.
Aplikasi games yang jalan pada
mobile devices bersistem operasi Windows Mobile 2003/2004 ataupun windows
mobile 5.0. Product yang memiliki target market status ekonomi A,B dan karakter
pengusaha/ eksekutif muda sangat cocok apabila menggunakan media
PocketPC/SmartPhones sebagai bagian aktivitas kegiatan advertising. Games
bertemakan strategi ataupun simulasi bisnis pada umumnya lebih disukai oleh
orang-orang golongan ini. Waktu pengembangan biasanya memerlukan waktu 3-6
bulan tergantung dengan kompleksitas games tersebut
4. CellPhones / Mobile
Phones.
Aplikasi games untuk
cell-phones atau mobile phones sebenarnya bisa dimanfaatkan untuk mendapatkan
potensial pelanggan dengan golongan Status Ekonomi Responden A,B dan C. Produk
yang memiliki target golongan ABG, remaja, anak kuliah, eksekutif muda sangat
tepat menggunakan media ini, mengingat pada golongan inilah mereka suka sekali
mencoba dan mengeksplorasi features aplikasi yang tersedia pada
mobile/cellphones mereka. Mereka biasanya aktif mencari aplikasi bersifat fun
atau game yang dapat mengisi waktu senggang mereka. Waktu pengembangan untuk
membuat aplikasi pada devices ini relative lebih pendek yaitu 1-3 bulan
tergantung dengan kompleksitas games tersebut. Pemrograman suatu game bisa menggunakan berbagai
macam jenis bahasa pemrograman. Diantaranya yang terkenal adalah C++, C dan
Java. Proses pembuatan game modern bisa memakan waktu 1-3 tahun untuk
menyelesaikannya. Lamanya suatu pengembangan bergantung pada sejumlah faktor,
seperti genre, skala, platform pengembangan dan jumlah aset. Sebagai contoh,
sebuah game puzzle yang sederhana dengan menggunakan grafik 2D akan jauh lebih
sedikit memakan waktu untuk dikembangkan daripada game role-playing komputer
3D.
Pilihan bahasa pemrograman
Walaupun
terdapat banyak sekali pilihan bahasa pemrograman untuk membuat game,
namun padaintinya bahasa tersebut harus memenuhi syarat sebagai berikut :
a.
Speed
Bahasa scripting untuk game harus mampu berjalan
secepat mungkin. Jika kita berniat untuk menggunakan banyak script untuk
perilakukarakter dan kejadian di level game, maka scriptakan perlu untuk
mengeksekusi sebagai bagiandari loop game utama. Ini berarti bahwa scriptyang
lambat akan memakan waktu yang kita butuhkan untuk membuat suatu
adegan,menjalankan mesin fisika, atau menyiapkan audio.
b. Kompilasi dan Interpretasi
(penyusunan dan penafsiran)
Bahasa scripting secara luas diinterpretasikan, melalui
susunan serangkaian byte. Penafsiran bahasa diambil melalui formatteks.
Interpreter melihat setiap baris, penyusunan bekerja sesuai yang maksud
dari script, danmelakukan tindakan yang spesifik. Bahasa byte-terkompilasi
dikonversi dari teks ke formatinternal, yang disebut byte code. Kode
byte biasanya jauh lebih padat daripada format teks. Karena kode byte
dalam suatu format dioptimalkan ketika dieksekusi, agar dapat berjalan
lebih cepat.
c. Ekstensibilitas dan Integrasi
Bahasa scripting perlu memiliki akses kefungsi yang
signifikan ke dalam game. Sebuah script yang mengendalikan karakter, misalnya, harus
mampu untuk menanyai game untuk mencari tahu apa yang bisa dilihat dan kemudian
membiarkan game tahu apa yang akan dilakukan sebagai aksinya. Serangkaian
fungsi yang dibutuhkan untuk mengakses ini jarang diketahui ketika bahasa scripting
telah diimplementasikan atau dipilih. Hal ini penting untuk memiliki sebuah
bahasa yangdapat dengan mudah memanggil fungsi-fungsi atau menggunakan kelas main
code dalam game.Biasanya, itu adalah penting bagi programmer untuk dapat
mengekspos fungsi baru atau kelasyang dengan mudah ketika pembuat script memintanya.
d. Re-Entrancy (ikut serta ulang)
Fungsi ini sering berguna untuk memanggil script
menjadi diikut sertakan ulang. Mereka dapat berjalan untuk sementara
waktu, dan ketika anggaran waktu telah habis script akan dapat ditunda. Ketika
script selanjutnya mendapatkan beberapa waktu kembali, maka akan dapat menjalankan
kembali script yang ditunda sebelumnya. Hal ini sering membantu untuk
membiarkan kontrol hasil script saat mencapai jeda normal. Kemudian sebuah
algoritma penjadwalan dapat memberikan lebih banyak waktu
untuk meminimalisasi penggunaan sumber daya. Sebuah script untuk
mengendalikan sebuah karakter. misalnya, mungkin memiliki lima tahapan yang
berbeda (memeriksa situasi, memeriksa kesehatan, menentukan gerakan, rencana
rute, dan melaksanakan gerakan). Ini semua dapat dimasukkan dalam satu script
yang menghasilkan penyekat antara setiap bagian. Kemudian masing-masing akan
berjalan dengan setiap lima frame, dan beban dari eksekusi AI akan didistribusikan.
Re-entrancy yang lebih canggih harus memungkinkan penulis script untuk
menandai bagian yang tidak boleh terputus.
Embedding (penanaman)
Embedding berhubungan dengan
ekstensibilitas. Sebuah bahasa yang tertanam dirancang untuk dimasukkan ke
dalam program lain. Ketika kita menjalankan bahasa scripting dari workstation,
biasanya akan menjalankan program khusus untuk menafsirkan file source code.
Dalam game, sistem scripting perlu dikontrol dari dalam program utama. Game
yang menentukan jalannya script harus dijalankan dan harus dapat memberitahu
mesin terkait bahasa scripting yang cocok untuk memproses script tersebut.
Memilih sebuah
bahasa
Sejumlah besar
bahasa scripting tersedia, dan banyak dari mereka yang dirilis di bawah lisensi
yang cocok untuk dimasukkan dalam sebuah game. Secara tradisional, sebagian
besar bahasa scripting dalam game telah diciptakan oleh pengembang khusus untuk
kebutuhan mereka sendiri. Dalam beberapa tahun terakhir telah ada minat dalam
bahasa off-the-shelf, yang kebanyakn diterapkan pada suatu game engine.
Beberapa mesin
game komersial dilengkapi dengan dukungan bahasa scripting ini (Unreal dan
Quake oleh id Software, misalnya). Hal ini memberikan solusi lengkap dalam
efisiensi waktu pembuatan game, karena sebagian besar bahasa yang ada yang
digunakan dalam game pada awalnya tidak dirancang untuk tujuan ini. Namun
penggunaan bahasa off-the-shelf ini memiliki hubungan dengan kelebihan dan
kekurangan yang perlu dievaluasi sebelum kita membuat pilihan.
Kelebihan
Bahasa-bahasa
off-the-shelf cenderung lebih lengkap dan handal daripada bahasa yang kita
tulis sendiri. Dengan menggunakan cara ini, kita mendapatkan manfaat dari
banyaknya waktu pengembangan, upaya debugging, dan optimasi yang telah
dilakukan oleh pihak lain sebelumnya. Bila kita telah
menggunakan bahasa off-the-shelf, pengembangan tidak berhenti sampai di situ.
Terdapat sebuah komunitas pengembang yang mungkin akan melanjutkan pengembangan
pada bahasa tersebut, memperbaiki dan menghapus bug. Banyak bahasa open source
menyediakan forum web di mana masalah dapat dibicarakan, bug dapat dilaporkan,
dan contoh kode dapat didownload. Dukungan yang berkelanjutan Ini dapat sangat
berharga dalam memastikan sistem scripting yang kuat dan bebas bug.
Banyak game,
terutama pada PC, ditulis dengan tujuan yang memungkinkan konsumen untuk
mengedit perilaku mereka. Konsumen membangun objek baru, level, atau mods
keseluruhan dapat memperpanjang hidup sebuah rak game. Menggunakan bahasa
scripting yang umum memungkinkan pengguna untuk mempelajari bahasa yang mudah
dengan menggunakan tutorial, contoh kode, dan penerjemah baris perintah yang
dapat didownload dari web. Kebanyakan bahasa memiliki newsgroup atau forum web
di mana pelanggan bisa mendapatkan nasihat tanpa menyebut garis bantuan
penerbit.
Kekurangan
Bila kita
membuat game menggunakan bahasa ini, anda dapat memastikan itu tidak persis apa
yang anda inginkan. Karena game peka terhadap keterbatasan memori dan
kecepatan, anda dapat menaruh fitur yang anda butuhkan saja ke dalam bahasa.
Seperti yang kita lihat pada re-entrancy, anda juga dapat menambahkan fitur
yang khusus untuk aplikasi game dan yang biasanya tidak dimasukkan dalam bahasa
umum.
Dengan cara yang
sama, bila ada sesuatu yang salah dengan bahasa tersebut, staf anda yang tahu
bagaimana susunan game dan biasanya dapat menemukan bug dan menciptakan solusi
yang lebih cepat.
Setiap kali anda
menyertakan kode pihak ketiga ke dalam game anda, anda akan kehilangan kontrol
atas hal itu. Dalam kebanyakan kasus, keuntungan lebih besar daripada kurangnya
fleksibilitas, tapi hanya untuk beberapa proyek kontrol.
Bahasa
Open-Source
Banyak bahasa
scripting game populer yang dirilis di bawah lisensi open source. Software
open-source dirilis di bawah lisensi yang memberikan hak user untuk
memasukkannya ke dalam perangkat lunak mereka sendiri tanpa membayar biaya
tambahan. Beberapa lisensi open source mengharuskan user membebaskan produk
open source yang baru dibuat. Ini jelas tidak cocok bagi game komersial.
Open-source
software, seperti namanya, juga memungkinkan akses untuk melihat dan mengubah
source code. Hal ini membuat mudah untuk menarik studio dengan memberikan
kebebasan untuk menarik keluar setiap kode asing atau kode yang tidak efisien.
Beberapa lisensi open source, bahkan yang mengijinkan anda untuk menggunakan
bahasa dalam produk komersial, mengharuskan anda membebaskan modifikasi bahasa
itu sendiri. Ini mungkin akan menjadi masalah bagi proyek anda.
Walaupun ada
atau tidak sebuah bahasa scripting open source, terdapat implikasi hukum dari
penggunaan bahasa tersebut dalam proyek anda. Sebelum menggunakan teknologi
luar dalam produk yang ingin anda distribusikan (apakah komersial atau tidak),
anda harus selalu berkonsultasi dengan pengacara properti intelektual yang
baik. Buku ini tidak bisa dengan benar menyarankan anda pada implikasi hukum
dari penggunaan bahasa pihak ketiga. Isi komentar berikut ini dimaksudkan
sebagai indikasi dari hal-hal yang mungkin menimbulkan kekhawatiran. Ada banyak
lainnya.
Bila Anda
menggunakan perangkat lunak open source, tidak ada orang yang melisensi
perangkat lunak untuk anda, dan karena anda tidak menulis itu, anda tidak tahu
apakah bagian dari itu dicuri atau disalin. Kecuali jika anda sangat
berhati-hati, anda tidak akan tahu kalau itu merusak paten atau hak kekayaan
intelektual. Hasilnya adalah bahwa anda bisa bertanggung jawab atas pelanggaran
tersebut.
Anda perlu
memastikan bahwa anda memahami implikasi hukum dari penggunaan
"bebas" software. Hal ini tidak selalu menjadi pilihan termurah atau
terbaik, meskipun biaya di muka yang sangat rendah. Berkonsultasilah dengan
seorang pengacara sebelum anda membuat komitmen.
Tahapan
Pengolahan Bahasa
Memulai sebagai
teks dalam sebuah file teks, script biasanya
melewati empat tahap:
tokenization, parsing
(penguraian), kompilasi, dan interpretasi. Keempat tahapan membentuk sebuah jalur, masing-masing memodifikasi
masukan untuk mengubahnya menjadi format yang lebih mudah dimanipulasi. Tahapan
tidak mungkin terjadi satu demi satu. Semua langkah bisa saling terkait, atau
set tahapan bisa membentuk fase terpisah. Script mungkin berupa tokenized,
diuraikan, dan dikompilasi secara offline, misalnya untuk interpretasi
kemudian.
1) Tokenizing
Tokenizing
mengidentifikasi unsur-unsur dalam teks. Sebuah file teks hanya berisi
serangkaian karakter (dalam pengertian karakter ASCII). Hasil tokenizer keluar
sebagai kumpulan byte tertentu dan jenis dari kelompok tertentu yang membentuk
mereka. Sebuah string dalam bentuk :
1 a = 3.2;
dapat dipisah menjadi 6 token :
a -- text
<space> : -- whitespace
= -- equality operator
<space> -- whitespace
3.2 -- floating point number
; -- end of statement identifier
2) Parsing
Makna dari
sebuah program adalah sangat hirarkis: nama variabel dapat ditemukan dalam
sebuah statement pemberian nilai, ditemukan di dalam pernyataan IF-, yang ada
di dalam tubuh fungsi, di dalam definisi kelas, maupun di dalam sebuah
deklarasi namespace, misalnya. Parser mengambil urutan token, mengidentifikasi
peran masing-masing kode dalam program, dan mengidentifikasi struktur hirarkis
keseluruhan program.
Contoh : 1
if (a < b) return;
dapat dilakukan
proses parsing seperti pada bagan di bawah ini :
3) Compiling
Compiler
mengubah parse tree ke dalam kode byte yang dapat dijalankan oleh interpreter.
Kode byte biasanya berbentuk data biner berurutan. Compiler non-optimasi
biasanya berisi output kode byte sebagai terjemahan literal dari parse tree.
Jadi code seperti :
1 a = 3;
2 if (a < 0) return 1;
3 else return 0;
akan dicompile menjadi :
1 load 3
2 set-value-of a
3 get-value-of a
4 compare-with-zero
5 if-greater-jump-to LABEL
6 load 1
7 return
8 LABEL:
9 load 0
10 return
4) Interpreting
Tahap akhir dari
serangkaian ini ialah menjalankan kode byte. Dalam sebuah compiler untuk bahasa
seperti C atau C++, produk akhir akan menjadi mesin instruksi yang dapat
langsung dijalankan oleh prosesor. Dalam bahasa scripting, anda sering perlu
untuk menyediakan layanan (seperti re-entrancy dan eksekusi yang aman) yang
tidak mudah dicapai dengan bahasa mesin.
Kode byte akhir
dijalankan pada sebuah "mesin virtual". Ini secara efektif menjadi sebuah
emulator untuk sebuah mesin yang belum pernah ada di hardware. Anda menentukan
instruksi agar mesin dapat mengeksekusi, dengan instruksi kode byte.
Contoh bahasa
yang sering digunakan:
1) Lua
Lua adalah
bahasa prosedural sederhana yang dibangun dari dasar ke atas sebagai bahasa
embedding. Desain bahasa didorong oleh ekstensibilitas. Tidak seperti
kebanyakan bahasa embedded, hal ini tidak terbatas untuk menambahkan fungsi
baru atau tipe data di C atau C + +. Cara kerja bahasa Lua juga dapat men-tweak. Lua memiliki sejumlah kecil core library yang
menyediakan fungsionalitas dasar. Core yang relatif tanpa sifat khusus
merupakan bagian objek tersebut, bagaimanapun. Dalam game anda tidak mungkin
membutuhkan library untuk memproses apa pun kecuali matematika dan logika. Core
kecil ini mudah dipelajari dan sangat fleksibel.
2) Python
Python adalah
mudah dipelajari, bahasa scripting berorientasi objek dengan ekstensibilitas
baik dan dukungan embedding. Python menyediakan dukungan yang sangat baik untuk
pemrograman bahasa campuran, termasuk kemampuan untuk secara transparan
memanggil C dan C + + dari Python. Python memiliki dukungan untuk fungsi
re-entrant sebagai bagian dari bahasa inti dari versi 2.2 dan seterusnya
(disebut Generator).
Python memiliki
sejumlah besar library yang tersedia untuk itu dan memiliki komunitas yang
sangat besar dari usernya. Pengguna python memiliki reputasi untuk menolong,
dan newsgroup comp.lang.python merupakan sumber troubleshooting dan saran yang
sangat baik.
Kelemahan utama
Python adalah dalam kecepatan dan ukuran. Meskipun mengalami kemajuan
signifikan dalam kecepatan eksekusi telah dibuat selama beberapa tahun
terakhir, namun masih terasa lambat ketika dijalankan. Python bergantung pada
lookup tabel hash (oleh string) bagi banyak operasi fundamental (fungsi
panggilan, akses variabel, object-oriented programming). Hal ini menambahkan
banyak biaya overhead.
Lex dan Yacc
Lex dan Yacc
adalah dua tool utama yang digunakan dalam membangun tokenizers dan parser.
Masing-masing memiliki implementasi yang berbeda dan kebanyakan disediakan
untuk platform UNIX (namun tersedia versi untuk platform lain juga). Varian
Linux yang sering digunakan contohnya adalah Flex dan Bison.
Untuk membuat
tokenizer dengan Lex, kita harus menjelaskan apa yang membuat token yang
berbeda dalam bahasa anda. Ini akan menghasilkan kode C yang akan mengkonversi
aliran teks dari program ke dalam aliran kode token dan data token, kemudian
menghasilkan output yang lebih baik dan lebih cepat daripada kita membuatnya sendiri.
Yacc digunakan
untuk membangun parser. Dibutuhkan representasi dari tata bahasa kita. Tata
bahasa ini kemudian diberikan dalam seperangkat aturan yang menunjukkan
bagaimana struktur yang lebih besar yang terbuat dari yang sederhana atau dari
token.
Game Panjat Tebing
1. Buat sebuah project dengan nama “Panjat
Tebing” karena game ini game Panjat Tebing. tapi jika anda menginginkan nama
yang lain silahkan menggunakan nama yang lain sesuai keinginan anda.
2. Setelah halaman muncul selanjutnya import
karakter 3d utama yang telah anda buat tadi dengan cara di drag ke Project.
Ubah Animation Type pada bagian Inspector karakter tersebut, yang semula
Generic menjadi Legacy lalu Apply.
3. Sama Seperti halnya nomor 2, import object Bebatuan
dan juga object Coin yang telah dibuat sebelumnya, untuk pengaturan di
inspector tidak diubah pun tidak masalah.
4. selanjutnya buat Script js baru dengan nama
clone.js lalu masukan script dibawah.
#pragma strict
public var tebing : Rigidbody;
public var barrelEnd : Transform;
function OnTriggerEnter (col : Collider) {
if(col.tag =="Player"){
var rocketInstance : Rigidbody;
rocketInstance = Instantiate(tebing, barrelEnd.position, barrelEnd.rotation);
rocketInstance.AddForce(barrelEnd.forward * 0);
}
}
*Script diatas nantinya digunakan untuk mengclone
tebing, jadi seolah olah karakter yang bergerak naik, padahal background tebing
yang bergerak turun.
5. Buat kembali script baru dengan nama maju.js
lalu masukan kode berikut.
var speed : float = 5.0;
function Update () {
transform.Translate(Vector3(0,0,speed) * Time.deltaTime);
}
*Script ini fungsinya agar object bergerak dari
atas kebawah atau sebaliknya, bisa juga dari depan ke belakang atau kiri ke
kanan. tergantung posisi sumbu yang diatur.
6. Buatlah sebuah plane, ukuran bisa disesuaikan,
lalu beri texture seperti bebatuan, lalu beri nama tebing dan Add Component
Rigidbody, Script clone.js dan maju.js yang tadi sudah dibuat. atur pengaturan
seperti gambar dibawah.
7. pada gambar di atas terlihat pada script clone
ada Tebing dan juga end. untuk Tebing silahkan drag ke project agar menjadi
sebuah prefab. setelah di drag maka masukan prefab tebing tadi kedalam
pengaturan inspector objek Tebing yang sudah ada pada menu hierarchy. dan untuk
end buatlah object kosong dan beri namaend. posisinya harus berada diatas
karakter utama. fungsi object end ini adalah output dari object tebing itu
sendiri. jadi seolah olah karakter sedang naik ke atas. padahal tebing yang
bergerak seolah olah tidak ada habisnya. padalah diclone secara berulang ulang.
8. Buatlah Script baru dengan nama destroy.js
masukan kodenya.
function OnTriggerEnter(col : Collider){
if(col.gameObject.tag == "Tebing")
Destroy(col.gameObject);
if(col.gameObject.tag == "point")
Destroy(col.gameObject);
if(col.gameObject.tag == "batu")
Destroy(col.gameObject);
}
*kegunaan script diatas untuk menghilangkan
object tebing, point dan juga batu ketiga bersentuhan dengan objek yang sudah
diberi tersebut.
PENTING jangan lupa untuk menguubah tag pada
masing – masing objek sesuai secript diatas. untuk tebing menjadi tebing, untuk
coin menjadi point, untuk batu menjadi Batu.
8. buatlah object cube lalu simpan posisinya
dibawah player lebih jauh. lebar sesuai ruang jatuhnya tebing, point dan
bebatuan tadi. kegunaannya unuk menghilangkan/menghapus objek tersebut saat
keluar dari pantauan camera. jika tidak dihilangkan atau dihapus maka Lag berat
dan Crash.
9. buatlah script js dengan nama muncul.js
kemudian masukan kode berikut.
var projectile : Rigidbody;
var end : Transform;
function OnTriggerEnter (col : Collider) {
if(col.tag =="Player"){
/// untuk clone objek batu dan juga point
var clone : Rigidbody; clone = Instantiate(projectile, end.position, end.rotation);
clone.velocity = transform.TransformDirection (Vector3.back * 10); } }
*Script diatas berguna untuk clone objek. yang
nati akan digunakan untuk clone objek batu dan juga point.
10. buatlah 40 buah sphere dengan nama bebas
dengan ukuran tinggi sama seperti karakter. dan lebar 2 kali lebih besar dari
karakter. jangan lupa centang trigger pada inspector. 20 puluh sejajar dengan
karakter untuk 20 lagi jauh diatas karakter. untuk posisi saling berjajar
diberi sedikit jarak dari satu ke yang lainya. kegunaannya ketika anda masuk
kewilayah antara 20 objek yang sejajar dengan karakter tersebut maka batu
dan point akan diclone oleh objek tersebut. output dari klone tersebut yaitu
berada di 20 objek atas. selanjutnya masukan 2 script muncul.js kedalam 20
objek yang sejajar dengan karakter. Untuk pengaturan pada di inspector yaitu.
- Projectile:
nama batu dan juga nama point.
- End:
nama salah satu objek dibagian atas yang sejajar dengan objek tersebut.
gambarnya seperti ini.
11. buatlah sebuah script js baru dengan nama
tombol.js dan masukan kode berikut.
var speed : float = 5.0;
function Update () {
if(Input.GetKey(KeyCode.D))
transform.Translate(Vector3(speed,0,0) * Time.deltaTime);
if(Input.GetKey(KeyCode.A))
transform.Translate(Vector3(-speed,0,0) * Time.deltaTime);
}
*Script diatas berguna untuk menggerakan
karakter.
12. masukan karakter utama dengan posisi sesuai
dengan gambar di atas tadi. lalu Add component tombol.js, centang is trigger.
lalu sesuaikan pengaturan dengan gambar dibawah.
Selesai Selanjutnya coba play.
#Sumber Referensi