Perkembangan teknologi komputer sangat mempengaruhi
perkembangan yang ada dalam dunia game. Pembentukan karakter pada game semakin
mendekati dengan keadaan sebenarnya pada dunia nyata. Ketika proses pembuatan game membutuhkan susunan
yang lebih kompleks, timbullah
kebutuhan untuk memisahkan konten (desain perilaku) dari mesin. Kehandalan seorang desainer game benar-benar dibutuhkan untuk merancang perilaku yang luas dari karakter. Banyak tersedia berbagai
macam bentuk bahasa pemrograman yang ada. Tentunya dari kesemuanya 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 game dapat berjalan lancar, tanpa bug, dan mampu menjalankan 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. 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.
1. Pilihan bahasa pemrograman
a) Speed
Bahasa
scripting untuk game harus mampu berjalan secepat mungkin. Jika kita berniat
untuk menggunakan banyak script untuk perilaku karakter dan kejadian di level
game, maka script akan perlu untuk mengeksekusi sebagai bagian dari loop game
utama. Ini berarti bahwa script yang 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 format teks. Interpreter melihat setiap
baris, penyusunan bekerja sesuai yang maksud dari script, dan melakukan
tindakan yang spesifik. Bahasa byte-terkompilasi dikonversi dari teks ke format
internal, 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 ke fungsi 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 yang dapat dengan mudah memanggil fungsi-fungsi atau menggunakan
kelas main code dalam game. Biasanya, itu adalah penting bagi programmer untuk
dapat mengekspos fungsi baru atau kelas yang dengan mudah ketika pembuat script
memintanya.
d) 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.
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).
2. 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.
3.
Memilih sebuah
bahasa
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.
4.
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.
A. 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).
A. Contoh Script Game Komputer
Ini adalah contoh script game Tebak Angka
//variable awal
var angkaMisteri:uint;
var angkaPrediksi:uint;
//kondisi awal permainan
display.text="Tebak angka yang aku pikirkan, dari 1-100!";
//menghasilkan angka acak dari 1 sampai 100
angkaMisteri=Math.ceil(Math.random()*100);
//event pada tombol cek
cekBtn.addEventListener(MouseEvent.CLICK, cekAngka);
function cekAngka(event:MouseEvent):void
{
angkaPrediksi=uint(inputTeks.text);
//jika angka yang
ditebak kurang dari target
if(angkaPrediksi
< angkaMisteri)
{
display.text="Angka terlalu kecil! coba lagi";
}
//jika angka yang
ditebak lebih dari target
else
if(angkaPrediksi > angkaMisteri)
{
display.text="Angka terlalu besar! coba lagi";
}
//jika angka yang
ditebak sama dengan target
else
{
display.text="Anda
benar!!!";
}
Dan ini adalah hasilnya :
}
Sumber :
https://www.academia.edu/3875722/Scripting_dalam_Pembuatan_Game?auto=download
0 komentar:
Posting Komentar