Konsep Pembuatan Script Game Computer



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
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

Disqus Comments