Perkembangan teknologi komputer sangat mempengaruhi
perkembangan yang ada dalam dunia game. Pembentukan karakter pada game
semakinmendekati dengan keadaan sebenarnya pada dunianyata. Ketika proses
pembuatan game membutuhkan susunan yang lebih kompleks, timbullah
kebutuhanuntuk memisahkan konten (desain perilaku) darimesin. Kehandalan
seorang desainer game benar-benar dibutuhkan untuk merancang perilaku
yang luas dari karakter. Banyak tersedia berbagai macambentuk bahasa
pemrograman yang ada. Tentunya darikesemuanya itu memiliki kelebihan dan
kekurangan sendiri-sendiri. Maka game developer harus benar-benar jeli
dalam memilih bahasa dan menyusun script untuk membuat suatu game, agar
nantinya gamedapat berjalan lancar, tanpa bug, dan mampumenjalankan script
dengan kebutuhan hardware seminimum mungkin.
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.
C++ biasa digunakan untuk membuat game
engine. Game engine berfungsi sebagai “Middleware” atau jembatan antara
Brainware (pembuat game) dan game itu sendiri. Game engine bisa membuat
proses pembuatan sebuah game menjadi lebih cepat dan efisien karena game
engine layaknya sebuah template yang “reuseable”.
A. 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 luasdiinterpretasikan,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 formatdioptimalkan ketika dieksekusi, agar dapat berjalan lebih
cepat
c). Re-Entrancy (ikut serta ulang)
Fungsi ini sering berguna untuk memanggil
script menjadi diikutsertakan 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.
B. 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.
C. 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.
D. 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.
Memulai sebagai teks dalam sebuah file teks, script biasanya melewati empat tahap:
tokenization : 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.
-
Tokenizing : mengidentifikasi unsur-unsur dalam teks. Sebuah file teks hanya berisiserangkaian karakter (dalam pengertian karakter ASCII). Hasil tokenizer keluar sebagai kumpulan byte tertentu dan jenis dari kelompok tertentu yangmembentuk mereka. Sebuah string dalam bentuk :
- Parsing (penguraian) : 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 :tes
- 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.
- 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 yangdibangun dari
dasar ke atas sebagai bahasaembedding. Desain bahasa didorong
olehekstensibilitas. Tidak seperti kebanyakan bahasaembedded, hal ini tidak
terbatas untuk menambahkan fungsi baru atau tipe data di C atauC + +. Cara
kerja bahasa Lua juga dapat men-tweak.Lua memiliki sejumlah kecil core
libraryyang menyediakan fungsionalitas dasar. Core yangrelatif tanpa sifat
khusus merupakan bagian objek tersebut, bagaimanapun. Dalam game anda
tidak mungkin membutuhkan library untuk memprosesapa pun kecuali
matematika dan logika. Core kecilini mudah dipelajari dan sangat fleksibel.
2. Python
Python adalah mudah dipelajari, bahasascripting berorientasi
objek dengan ekstensibilitas baik dan dukungan embedding.
Pythonmenyediakan dukungan yang sangat baik untuk pemrograman bahasa
campuran, termasuk kemampuan untuk secara transparan memanggil Cdan C + +
dari Python. Python memiliki dukunganuntuk fungsi re-entrant sebagai bagian
dari bahasa inti dari versi 2.2 dan seterusnya (disebutGenerator).Python
memiliki sejumlah besar library yangtersedia untuk itu dan memiliki komunitas
yangsangat besar dari usernya. Pengguna pythonmemiliki reputasi untuk menolong,
dan newsgroupcomp.lang.python merupakan sumber troubleshooting dan saran
yang sangat baik.Kelemahan utama Python adalah dalamkecepatan dan ukuran.
Meskipun mengalamikemajuan signifikan dalam kecepatan eksekusitelah dibuat
selama beberapa tahun terakhir,namun masih terasa lambat ketika
dijalankan.Python bergantung pada lookup tabel hash (olehstring) bagi banyak
operasi fundamental (fungsi panggilan, akses variabel,
object-oriented programming). Hal ini menambahkan banyak biaya
overhead.
Refrensi
https://www.academia.edu/3875722/Scripting_dalam_Pembuatan_Game
https://wikishare27.wordpress.com/pengantar-teknologi-game1/
https://rezkinadia.wordpress.com/2016/03/07/teknologi-game/
Add Your Comments