Pengerian Game
Dalam kamus bahasa Indonesia “Game”diartikan sebagai permainan.
Permainan merupakan bagian dari bermain dan bermain juga bagian dari permainan
keduanya saling berhubungan. Permainan adalah kegiatan yang kompleks yang
didalamnya terdapat peraturan, play dan budaya. Sebuah permainan adalah sebuah
sistem dimana pemain terlibat dalam konflik buatan, disini pemain berinteraksi
dengan sistem dan konflik dalam permainan merupakan rekayasa atau buatan, dalam
permainan terdapat peraturan yang bertujuan untuk membatasi perilaku pemain dan
menentukan permainan. Game bertujuan untuk menghibur, biasanya game banyak
disukai oleh anak – anak hingga orang dewasa. Games sebenarnya penting untuk
perkembangan otak, untuk meningkatkan konsentrasi dan melatih untuk memecahkan masalah
dengan tepat dan cepat karena dalam game terdapat berbagai konflik atau masalah
yang menuntut kita untuk menyelesaikannya dengan cepat dan tepat. Tetapi game
juga bisa merugikan karena apabila kita sudah kecanduan game kita akan lupa
waktu dan akan mengganggu kegiatan atau aktifitas yang sedang kita lakukan.
Game berasal dari kata bahasa inggris yang berarti dasar
permainan. Permainan dalam hal ini merujuk pada pengertian kelincahan
intelektual( Intellectual Playability Game) yang juga bisa diartikan sebagai
arena keputusan dan aksi pemainnya. Dalam game, ada target-target yang ingin
dicapai pemainnya.
Di dalam sebuah game, terdapat komponen-komponen dalam
game:
1. Grafik
Grafik merupakan suatu hal yang penting dalam game, dimana
grafik ini akan membuat game menjadi daya tarik user untuk memainkan game. pada
awalnya game menggunakan grafik monokrom dengan layar hitam putih sampai
sekarang sudah menggunakan teknologi 3D, semakin bagus grafik maka game
tersebut semakin seperti dalam dunia nyata.
2. Suara
suara menjadi komponen game karena dengan adanya suara pada game
maka game tersebut akan menarik sehingga kita dapat merasakan kondisi dalam
game tersebut. selain itu, dengan adanya suara, kita tidak bosan bermain game.
3. AI(kecerdasan Buatan)
Kecerdasan buatan atau AI(artificial Inteligence) menjadi
komponen game karena dengan hal tersebut game menjadi lebih menantang. Dengan
menggunakan AI, game dapat berpikir untuk mengalahkan pemain sehingga membuat
game lebih seru.
4. Skenario Game
Skenario game menjadi komponen game karena dengan adanya
skenario dalam game, si pemain seolah-olah bermain sesuai dengan petunjuk yang
ada di game tersebut, sehingga dapat dikatakan game tersebut memiliki cerita
sehingga membuat pemain lebih asyik memainkan game tersebut
5. Multiplayer
Multiplayer bisa menjadi komponen game karena dengan
hal tersebut, pemain dapat bermain dengan teman-temannya dan orang lain
sehingga game itu dapat dimainkan lebih dari 1 orang. dengan kata lain,
multiplayer adalah sebuah mode dalam game dimana game dimainkan oleh pemain
lainnya sehingga bermain game secara bersama-sama.
Game Engine dan Sejarahnya
(Game Engine) mesin permainan adalah sebuah sistem yang
dirancang untuk penciptaan dan pengembangan video game. Ada banyak mesin
permainan yang dirancang untuk bekerja pada video game konsol dan komputer
pribadi. Fungsionalitas inti biasanya disediakan oleh mesin permainan mencakup
mesin rendering (“renderer”) untuk grafis 2D atau 3D, mesin fisika atau deteksi
tabrakan (dan tanggapan tabrakan), suara, script, animasi, kecerdasan buatan,
jaringan, streaming, memori manajemen, threading, dukungan lokalisasi, dan
grafik adegan. Proses pengembangan game sering dihemat oleh di menggunakan
kembali sebagian besar / mengadaptasi mesin permainan yang sama untuk membuat
game yang berbeda.
Sebelum (Game Engine) mesin permainan, permainan yang biasanya
ditulis sebagai entitas tunggal: game untuk Atari 2600, misalnya, harus
dirancang dari bawah ke atas untuk memanfaatkan optimal hardware layar tampilan
ini rutin-core hari ini disebut kernel oleh retro pengembang. Platform lain
telah kelonggaran lebih, tetapi bahkan ketika layar itu bukan masalah, kendala
memori biasanya menyabotase upaya untuk menciptakan desain data-berat yang
mesin kebutuhan. Bahkan pada platform menampung lebih, sangat kecil dapat
digunakan kembali antara permainan. Kemajuan pesat hardware arcade-ujung tombak
dari pasar-berarti bahwa sebagian besar kode harus dibuang setelah itu pula,
sebagai generasi kemudian akan menggunakan desain permainan game yang sama
sekali berbeda yang mengambil keuntungan dari sumber daya tambahan. Jadi desain
paling permainan melalui 1980 dirancang melalui ruleset-keras dikodekan dengan
sejumlah kecil data tingkat dan grafis.
Generasi pertama dari mesin grafis pihak ketiga atau renderers
(dan pelopor untuk apa yang sekarang kita kenal sebagai mesin) didominasi oleh
tiga pemain; BRender dari Argonaut Software, Renderware dari Kriteria Software
Limited dan RenderMorphics ‘Realitas Lab. Realitas Lab adalah tercepat dari
tiga dan adalah yang pertama diperoleh dalam langkah agresif oleh Microsoft.
Tim RenderMorphics Pegawai Negeri Keondjian, Kate Seekings dan Doug Rabson
kemudian bergabung dengan proyek Microsoft yang berubah Realita Lab ke Direct3D
sebelum Keondjian dan Rabson kiri untuk memulai perusahaan lain middleware Qube
Software. Renderware akhirnya dibeli oleh EA (Electronic Arts) tetapi
dikesampingkan oleh raksasa permainan.
Istilah “Game Engine (Mesin Permainan)” muncul pada
pertengahan 1990-an, terutama dalam kaitannya dengan game 3D seperti penembak
orang pertama (FPS). (Lihat juga:. mesin first-person shooter) tersebut adalah
popularitas Id Doom Software dan game Quake, daripada bekerja dari awal,
pengembang lain berlisensi bagian inti dari perangkat lunak dan desain grafis
mereka sendiri, karakter, senjata dan tingkat -The “permainan isi ” atau “aset
permainan.” Pemisahan aturan permainan spesifik dan data dari konsep-konsep
dasar seperti deteksi tabrakan dan entitas permainan berarti bahwa tim bisa
tumbuh dan mengkhususkan.
Kemudian permainan, seperti Quake III Arena dan 1998 Epic’s
Unreal Games dirancang dengan pendekatan ini dalam pikiran, dengan mesin dan
konten dikembangkan secara terpisah. Praktek lisensi teknologi tersebut telah
terbukti menjadi aliran pendapatan yang berguna tambahan untuk beberapa
pengembang game, sebagai lisensi satu untuk mesin game high-end komersial dapat
berkisar dari US $ 10.000 untuk jutaan dolar, dan jumlah lisensi dapat mencapai
beberapa lusin perusahaan, seperti terlihat dengan Unreal Engine. Paling tidak,
mesin dapat digunakan kembali membuat sekuel game berkembang lebih cepat dan
mudah, yang merupakan keunggulan yang berharga dalam industri video game yang
kompetitif.
Mesin permainan modern adalah beberapa aplikasi yang paling
kompleks yang ditulis, sering menampilkan puluhan sistem tersetel berinteraksi
untuk memastikan pengalaman pengguna yang tepat dikendalikan. Evolusi terus
mesin permainan telah menciptakan sebuah pemisahan yang kuat antara rendering,
scripting, karya seni, dan desain tingkat. Sekarang umum, misalnya, untuk tim
pengembangan game khas untuk memiliki beberapa kali banyak seniman sebagai
programmer yang sebenarnya.
Permainan penembak orang-pertama tetap menjadi pengguna utama
dari mesin permainan pihak ketiga, tetapi mereka sekarang juga digunakan dalam
genre lain. Sebagai contoh, RPG The Elder Scrolls III: Morrowind dan MMORPG
Dark Age of Camelot didasarkan pada mesin Gamebryo, dan MMORPG Lineage II
didasarkan pada Unreal Engine. Game mesin digunakan untuk game awalnya
dikembangkan untuk rumah konsol juga, misalnya, mesin RenderWare digunakan
dalam Grand Theft Auto dan waralaba Burnout.
Threading adalah mengambil lebih penting karena sistem
multi-core modern (misalnya Cell) dan tuntutan meningkat pada realisme. Benang
Khas melibatkan rendering, streaming, audio, dan fisika. Permainan Balapan yang
biasanya berada di garis depan threading dengan mesin fisika berjalan di sebuah
thread terpisah jauh sebelum subsistem inti lainnya dipindahkan, sebagian
karena rendering dan tugas terkait perlu update hanya pada 30-60 Hz. Sebagai
contoh, di PlayStation 3, fisika berlari di Need For Speed pada 100 Hz versus
Forza Motorsport 2 pada 360 Hz.
Meskipun istilah ini pertama kali digunakan pada 1990-an, ada
sistem sebelumnya beberapa tahun 1980-an yang juga dianggap permainan mesin,
seperti Sierra’s Adventure Game Interpreter (AGI) dan sistem SCI, LucasArts
‘SCUMM sistem dan Insentif Software mesin Freescape . Tidak seperti kebanyakan
mesin permainan modern, mesin permainan ini tidak pernah digunakan dalam produk
pihak ketiga (kecuali untuk sistem SCUMM yang dilisensikan dan digunakan oleh
humongous Entertainment).
Tujuan Penggunaan Game Engine
Game engine menyediakan seperangkat alat pengembangan visual di
samping komponen software digunakan kembali. Alat-alat ini umumnya diberikan
dalam suatu lingkungan pengembangan terpadu untuk mengaktifkan disederhanakan,
perkembangan pesat dari permainan dengan cara data-driven. Mesin pengembang
Game upaya untuk “pra-menciptakan roda” dengan mengembangkan suite perangkat
lunak kuat yang mencakup banyak unsur pengembang game mungkin perlu untuk
membangun sebuah permainan. Kebanyakan mesin permainan suite menyediakan
fasilitas yang memudahkan pengembangan, seperti grafik, suara, fisika dan
fungsi AI. Mesin permainan ini kadang-kadang disebut “middleware” karena,
seperti dengan istilah naluri bisnis, mereka menyediakan sebuah platform
perangkat lunak yang fleksibel dan dapat digunakan kembali yang menyediakan
semua fungsionalitas inti yang dibutuhkan, langsung dari kotak, untuk
mengembangkan sebuah aplikasi permainan sambil mengurangi biaya , kompleksitas,
dan waktu-ke-pasar-semua faktor penting dalam industri video game yang sangat
kompetitif. Gamebryo dan RenderWare adalah seperti program middleware banyak
digunakan.
Seperti solusi middleware lainnya, mesin permainan biasanya
menyediakan abstraksi platform, yang memungkinkan permainan yang sama untuk
dijalankan pada berbagai platform termasuk game konsol dan komputer pribadi
dengan sedikit, jika ada, perubahan yang dibuat ke kode sumber permainan.
Seringkali, mesin permainan dirancang dengan arsitektur berbasis komponen yang
memungkinkan sistem tertentu dalam mesin yang akan diganti atau diperpanjang
dengan lebih khusus (dan sering kali lebih mahal) komponen middleware game
seperti Havok untuk fisika, Miles Sound System untuk suara, atau Bink untuk
Video. Beberapa mesin permainan seperti RenderWare bahkan dirancang sebagai
rangkaian dihubungkan secara longgar komponen middleware permainan yang bisa
selektif dikombinasikan untuk membuat mesin khusus, bukan pendekatan yang lebih
umum dari memperluas atau menyesuaikan solusi terintegrasi yang fleksibel.
Namun diperpanjang tercapai, hal itu tetap menjadi prioritas tinggi dalam mesin
game karena berbagai kegunaan yang mereka diterapkan. Meskipun kekhususan nama,
mesin permainan yang sering digunakan untuk jenis lain aplikasi interaktif
dengan kebutuhan grafis real-time seperti demo pemasaran, visualisasi
arsitektur, simulasi pelatihan, dan lingkungan pemodelan.
Beberapa mesin permainan hanya menyediakan 3D real-time
rendering kemampuan bukan berbagai fungsi yang dibutuhkan oleh game. Mesin ini
mengandalkan pengembang game untuk melaksanakan seluruh fungsi ini atau merakit
dari komponen middleware permainan lainnya. Jenis mesin umumnya disebut sebagai
“mesin grafis,” “mesin render,” atau “mesin 3D” bukan meliputi lebih istilah
“mesin permainan.” Terminologi ini tidak konsisten banyak digunakan sebagai
fitur lengkap mesin permainan 3D disebut hanya sebagai “mesin 3D.” Beberapa
contoh mesin grafis adalah: Crystal Space, Genesis3D, Irrlicht, JMonkey Engine,
OGRE, RealmForge, Truevision3D, dan Visi Engine. Modern permainan atau mesin
grafis umumnya memberikan grafik adegan, yang merupakan representasi
berorientasi objek dari dunia permainan 3D yang sering menyederhanakan desain
game dan dapat digunakan untuk rendering yang lebih efisien dari dunia maya
yang luas.
Beberapa Contoh Game Engine Open Source :
– 3Dgame Studio
– Delta 3D
– UnrealEngine
– Panda3D
– Torque
– Quake Engine
Pemilihan Bahasa Pemrograman
1. 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.
2. 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.
3. 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 mencaritahu apa yang bisa dilihat dan kemudian
membiarkan game tahu apa yang akan dilakukan sebagai aksinya.
4. 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 membiarkankontrol
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 limatahapan 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.
Embedding (Penanaman)
Embedding berhubungan dengan ekstensibilitas.Sebuah bahasa yang
tertanam dirancang untuk dimasukkan ke dalam program lain. Ketika
kitamenjalankan bahasa scripting dari workstation, biasanya akan
menjalankan program khusus untuk menafsirkan file source code. Dalam game,
sistemscripting perlu dikontrol dari dalam program utama.Game yang menentukan
jalannya script harusdijalankan dan harus dapat memberitahu mesin
terkait bahasa scripting yang cocok untuk memproses scripttersebut.
Memilih Sebuah Bahasa
Sejumlah besar bahasa scripting tersedia, dan banyak dari
mereka yang dirilis di bawah lisensi yang cocok untuk dimasukkan dalam sebuah
game. 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.
Open Source
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.
Bahasa yang open source yaitu bahasa yang bisa di pakai di
berbagai operasi sistem. Bahasa seperti ini contohnya C++, Java. Sebaiknya
dalam membuat script game menggunakan bahasa yang open source, agar aplikasi
game dapat dipakai oleh pengguna operasi sistem apapun.
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.
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;
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. 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.
Contoh :
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.
Bahasa Yang Sering Digunakan
· 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.
· Python
Python adalah bahasa yang 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.
Tools 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.