Pengertian
Teknologi Game
Teknologi game terdiri dari 2 kata, yaitu teknologi
dan game. Pertama pengertian dari teknologi. Kata teknologi sebenarnya berasal
dari Bahasa Perancis yaitu La Teknique yang dapat diartikan
dengan semua proses yang dilaksanakan dalam upaya untuk mewujudkan sesuatu
secara rasional. Dalam hal ini yang dimasukkan dengtan sesuatu tersebut dapat
saja berupa benda atau konsep, pembatasan cara yaitu secara rasional adalah
penting sekali dipahami disini sedemikian pembuatan atau pewujudan sesuatu
tersebut dapat dilaksanakan secara berulang.
Dan yang kedua adalah pengertian dari Game. Game 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.
Ada 2 cara yang dapat digunakan dalam membuat game,
yaitu :
1. Dengan
membuat sendiri program yang akan digunakan untuk membuat game (umumnya
professional game developer yang menggunakan cara ini).
2. Dengan
menggunakan program jadi yang tinggal kita gunakan.
Jadi teknologi game adalah proses baik berupa
yang dilakukan system atau perangkat keras yang dilaksanakan dalam upaya untuk
mewujudkan dan mendukung kinerja dari game.
Bisnis dalam Game Komputer
Bisnis dalam game komputer berkembang pesat seiring
dengan berkembangnya teknologi canggih saat ini. Dahulu kita hanya dapat
menikmati game yang tersedia di dalam komputer itu sendiri, seperti pinball dan
solitaire. Namun sekarang sudah tersedia game online, dan juga games yang dapat
didownload baik free maupun berbayar. Games berbayar juga merupakan bisnis
karena sama saja dengan kita mengeluarkan uang untuk membeli sebuah barang.
Games berbayar ini biasanya memberikan kepuasan tersendiri bagi pembelinya,
karena terdapat fitur yang bagus di dalamnya. Perkembangan lainnya ialah warung
internet atau yang sering kita dengar dengan istilah warnet. Warnet kini
identik dengan game online yang mereka sediakan, adapun game berbayar yang
disediakan warnet sehingga kita hanya tinggal memainkannya. Baik anak kecil
hingga orang dewasa mempunyai hobi bermain game online ini. Dengan menyediakan
tempat, perangkat komputer yang lengkap, dan fasilitas pendukung lainnya,
membuat gamers betah berlama-lama untuk bermain.
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.
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.
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.
3. SmartPhones/PocketPC. Aplikasi games yang jalan pada
mobile devices bersistem operasi Windows Mobile 2003/2004 ataupun windows
mobile 5.0.
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.
Industri game memang masih terbilang baru di Indonesia.
Kendati begitu, perkembangannya sudah sangat pesat dan menjadi bisnis yang
sangat menggiurkan. Penyebab utamanya adalah berkembangnya era teknologi dan
komunikasi.
Perkembangan ini terlihat dari banyaknya game center yang
terus bermunculan, terutama yang menyediakan jasa gameonline. Bukan tanpa
alasan game online menjadi semakin marak dan digandrungi, karena fasilitas
online memungkinkan sebuah game dapat dimainkan oleh 100 orang lebih secara
bersama-sama dalam satu waktu.
Masuknya game online ke Indonesia sendiri baru terjadi
pada tahun 2001 dengan masuknya Nexia Online. Sejak saat itu, berbagai game
dari masing-masing genre seperti action, sports, hingga RPG (Role-Playing Game)
terus bermunculan
Contoh untuk bisnis dalam game komputer itu beragam.
Seperti kita dituntut melakukan pembayaran untuk game tersebut. Maksud dari
pembayaran ini adalah bagaimana perusahaan game online mendapatkan uang dari
gamesnya. Bedasarkan kategori ini games online dapat dibedakan menjadi 2 yaitu
:
A. Pay Per Item, game yang berada pada category ini
merupakan game yang bisa diinstall atau dimainkan secara gratis, dan game ini
biasanya mengenakan biaya pada pemainnya apabila pemainnya ingin cepat
menaikkan level atau membeli barang (item) langka yang tidak pernah dijumpai
pada permainan. Jenis game seperti ini yang paling dijumpai di Indonesia.
Contoh: Gunbound, Ragnarok, Ghost Online,dll.
B. Pay per Play, game ini harus dibeli dan diinstal
secara legal karena pada saat diinstal game terebut akan mendaftarkan pemain ke
internet langsung dan apabila yang diinstal adalah program bajakan maka secara
otomatis system akan memblokirnya. Contoh: War of Warcraft,dll.
Scripting Pada Game Komputer
Pilihan bahasa pemrograman
Walaupun terdapat banyak sekali pilihan bahasa pemrograman untuk membuat
game, namun pada intinya 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 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). 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.
A.
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.
B.
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.
a)
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.
b)
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.
C.
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.
D.
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.
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.
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.
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.
E.
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.
F.
Tools: Sekilas
tentang 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.
Artificial Intelligence Pada Game
Algoritma
yang digunakan untuk membuat Game antara lain:
- MINIMAX,
Sebuah prosedur pencarian yg melihat kedepan, memperhatikan apa yg akan
terjadi, kemudian yang digunakan untuk memilih langkah berikutnya.
- ALPHA-BETA
PRUNING, Algoritma ini merupakan improvisasi dari algoritma minimax. Algoritma
ini untuk meningkatkan efisiensi fungsi minimax dalam hal pencarian, kemudian
fungsi evaluasi ditambahkan sepasang nilai alpha dan beta.
- FUZZY,
Logika fuzzy merupakan pengembangan dari logika boolean. Sistem fuzzy atau
logika fuzzy adalah salah satu bahasa soft computing yang memiliki
karakteristik dan keunggulan dalam menangani permasalahan yang bersifat
ketidakpastian dan kebenaran parsial. Logika fuzzy merupakan pengembangan dari
logika boolean yang hanya memiliki nilai true (1) atau false (0).
- ALGORITMA
GENETIKA, Algoritma genetika adalah algoritma yang berusaha menerapkan
pemahaman mengenai evolusi alamiah pada tugas-tugas pemecahanmasalah (problem
solving). Pendekatan yang diambil oleh algoritma ini adalah dengan
menggabungkan secara acak berbagai pilihan solusi terbaik di dalam suatu kumpulan
(populasi) untuk mendapatkan generasi solusi terbaik berikutnya yaitu pada
suatu kondisi yang memaksimalkan kecocokannya atau lazim disebut fitness.
- ALGORITMA
AI (ARTIFICIAL INTELEGENCE), Kecerdasan Buatan (Artificial Intelligence)
merupakan cabang terpenting dalam dunia computer yang membuat agar mesin
(computer) dapat melakukan pekerjaan seperti dan sebaik yang dilakukan manusia.
Pada awalnya diciptakan computer hanya berfungsi sebagai alat hitung. Tapi
sekarang peran computer makin mendominasi kehidupan manusia. Komputer di
harapkan data diberdayakan untuk mengerjakan segala sesuatu yang biasa
dikerjakan oleh manusia.
-ALGORITMA A* (A Star / A Bintang) adalah algoritma pencarian graf/pohon yang mencari jalur dari satu
titik awal ke sebuah titik akhir yang telah ditentukan. Algoritma A*
menggunakan pendekatan heuristik h(x) yang memberikan peringkat ke
tiap-tiap titik x dengan cara memperkirakan rute terbaik yang dapat
dilalui dari titik tersebut. Setelah itu tiap-tiap titk x tersebut dicek
satu-persatu berdasarkan urutan yang dibuat dengan pendekatan heuristik
tersebut. Maka dari itulah algoritma A* adalah contoh dari best-first search.
Algoritma ini pertama kali ditemukan pada tahun 1968 oleh Peter Hart, Nils
Nilsson dan Bertram Raphael.
Arsitektur Game Engine
Game Engine
adalah system perangkat lunak yang dirancang untuk menciptakan dan pengembangan
video game. Ada banyak mesin permainan yang dirancang untuk bekerja pada konsol
permainan video dan sistem operasi desktop seperti Microsoft Windows, Linux,
dan Mac OS X. fungsionalitas inti biasanya disediakan
oleh mesin permainan mencakup mesin render ( “renderer”) untuk 2D atau 3D
grafis, mesin fisika atau tabrakan (dan tanggapan tabrakan), suara, script,
animasi, kecerdasan buatan, jaringan, streaming, manajemen memori, threading,
dukungan lokalisasi, dan adegan grafik. Proses pengembangan permainan sering
dihemat oleh sebagian besar menggunakan kembali mesin permainan yang sama untuk
menciptakan permainan yang berbeda.
Engine
bukanlah executable program, artinya engine tidak bisa dijalankan sebagai
program yang berdiri sendiri. Diperlukan sebuah program utama sebagai entry
point atau titik awal jalannya program. Pada C++, entry point-nya adalah fungsi
‘main().’ Biasanya program utama ini relatif pendek. Game engine adalah program
yang ‘memotori’ jalannya suatu program game. Dengan adanya engine, waktu,
tenaga dan biaya yang dibutuhkan untuk membuat game software menjadi berkurang
secara signifikan.
Beberapa
game dengan jenis dan gameplay yang hampir sama bisa dibuat dengan sedikit
usaha bila terlebih dulu dibuat engine-nya. Setelah engine diselesaikan,
programmer hanya perlu menambahkan program utama, memakai resources (objek 3D,
musik, efek suara) yang baru, dan, jika benar-benar dibutuhkan, sedikit
memodifikasi engine sesuai kebutuhan spesifk dari game yang bersangkutan.
Program game engine seluruhnya berorientasi objek. Dia lebih bersifat reaktif
daripada prosedural. Sulit untuk menggambarkan engine secara keseluruhan dalam
flow-chart, karena alur program bisa diatur sesuai dengan keinginan pemakai
engine, yaitu game programmer.
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.
Tipe Game Engine
Game engine
biasanya datang dengan berbagai macam jenis dan ditujukan untuk berbagai
kemampuan pemrograman. Ada 3 tipe game engine yang ada saat ini, diantaranya :
- Roll – your – own –
Game Engine.Banyak perusahaan game kecil seperti publisher indie biasanya
menggunakan engine-nya sendiri. Mereka menggunakan API seperti XNA,
DirectX atau OpenGL untuk membuat game engine mereka sendiri. Di sisi
lain, mereka kadang menggunakan library komersil atau yang open source.
Terkadang mereka juga membuat semuanya mulai dari nol.Biasanya game engine
tipe ini lebih disukai karena selain kemungkinan besar diberikan secara
gratis, juga memperbolehkan mereka (para developer) lebih fleksibel dalam
mengintegrasikan komponen yang diinginkan untuk dibentuk sebagai game
engine mereka sendiri. Kelemahannya banyak engine yang dibuat dengan cara
semacam ini malah menyerang balik developernya. Tower Games Studio
membutuhkan satu tahun penuh untuk menyempurnakan game engine-nya, hanya
untuk ditulis ulang semuanya dalam beberapa hari sebelum penggunaannya
karena adanya bug kecil yang sangat mengganggu.
- Mostly-ready game
engines.Engine ini biasanya sudah menyediakan semuanya begitu diberikan
pada developer/programer. Semuanya termasuk contoh GUI, physiscs,
libraries model, texture dan lain-lain. Banyak dari mereka yang sudah
benar-benar matang, sehingga dapat langsung digunakan untuk scripting
sejak hari pertama. Game engine semacam ini memiliki beberapa batasan,
terutama jika dibandingkan dengan game engine sebelumnya yang benar-benar
terbuka lebar.Hal ini ditujukan agar
tidak terjadi banyak error yang mungkin terjadi setelah sebuah game yang
menggunakan engine ini dirilis dan masih memungkinkan game engine-nya
tersebut untuk mengoptimalkan kinerja game-nya. Contoh tipe game engine
seperti ini adalah Unreal Engine, Source Engine, id Tech Engine dan
sebagainya yang sudah sangat optimal dibandingkan jika harus membuat dari
awal. Dengan hal ini dapat menyingkat menghemat waktu dan biaya dari para
developer game.
- Point – and – click
Engine.Engine ini merupakan engine yang sangat dibatasi, tapi dibuat
dengan sangat user friendly. Anda bahkan bisa mulai membuat game sendiri
menggunakan engine seperti GameMaker, Torque Game Builder dan Unity3D.
Dengan sedikit memanfaatkan coding, kamu sudah bisa merilis game
point-and-click yang kamu banget. Kekurangannya terletak pada terbatasnya
jenis interaksi yang bisa dilakukan dan biasanya hal ini mencakup
semuanya, mulai dari grafis hingga tata suara.Tapi
bukan berarti game engine jenis ini tidak berguna, bagi developer cerdas
dan memiliki kreativitas tinggi, game engine seperti ini bisa dirubah
menjadi sebuah game menyenangkan, seperti Flow. Game engine ini memang
ditujukan bagi developer yang ingin menyingkat waktu pemrogramman dan merilis
game-game mereka secepatnya.
Beberapa Contoh Game Engine Open Source :
- 3D Game
Studio
- Delta 3D
- Unreal Engine
- Panda 3D
- Torque
- Quake Engine
Interaksi Fisik dalam
teknologi Game
Game Engine adalah perangkat
lunak yang digunakan untuk menciptakan perangkat lunak lain, dalam hal ini
adalah game. Kita bisa menyebutnya game authoring software, game creator tool,
software pembuat game, dan sebagainya.
Efek fisik dalam game engine
Game konsol modern saat ini sudah
dilengkapi dengan perangkat gerak yang melibatkan aktivitas fisik sehingga
permainan video game dapat sekaligus melatih otot dan gerak selayaknya
berolahraga, seperti halnya yang disediakan oleh konsol Nintendo Wii, PS3 Move,
atau yang lebih canggih lagi, Xbox 360 Kinect.
Game – game yang melibatkan
aktivitas fisik seperti game tinju, tennis, sepakbola dsb, yang mengharuskan
anda untuk menggerakkan tangan dan anggota tubuh anda sesuai tema video game
yang dimainkan. Untuk mendapatkan seperangkat konsol tersebut tidaklah
perlu mengeluarkan kocek yang dalam.
Efek fisik dalam game ada 2,
yaitu positif dan negatif :
Efek positif dalam game :
- Setiap game memiliki tingkat kesulitan/Level yang
berbeda.
- Meningkatkan konsentrasi.
- Meningkatkan koordinasi tangan dan mata.
- Meningkatkan kemampuan membaca.
- Meningkatkan kemampuan berbahasa inggris.
- Meningkatkan pengetahuan tentang komputer.
- Meningkatkan kemampuan mengetik.
Efek negatif dalam game :
- Kecanduan
- Membatasi Hubungan
Sosial
- Mengganggu Kesehatan
Collision Detection
Algoritma untuk mendeteksi
collision (tabrakan) sangat dibutuhkan untuk program game. Flash mulai versi 5
ke atas menyediakan method yang bernama hitTest untuk memeriksa apakah sebuah
movie clip bertabrakan dengan movie yang lain. Sebelum method hitTest ini
tersedia, seorang programmer Flash harus mendeteksi secara manual koordinat
sebuah movie clip, apakah movie clip ini bertabrakan dengan movie clip lain.
Cara ini sangat merepotkan karena harus mempertimbangkan pula ukuran movie
clipnya.
User Interface Pada Game
Antarmuka
(Interface) merupakan mekanisme komunikasi antara pengguna (user) dengan
sistem. Antarmuka (Interface) dapat menerima informasi dari pengguna (user) dan
memberikan informasi kepada pengguna (user) untuk membantu mengarahkan alur
penelusuran masalah sampai ditemukan suatu solusi. Antarmuka (Interface) berfungsi untuk menginput pengetahuan baru ke
dalam basis pengetahuan sistem pakar (ES), menampilkan penjelasan sistem dan
memberikan panduan pemakaian sistem secara berurutan sehingga pengguna mengerti apa yang akan
dilakukan terhadap suatu sistem.
Desain
user interface dalam game berbeda dari desain UI lainnya karena melibatkan
unsur tambahan fiksi. Fiksi melibatkan avatar dari pengguna yang sebenarnya,
atau player. Sebuah Desain Antarmuka (Interface) pada suatu Game
mempengaruhi kenyamanan dan sejauh mana user/pengguna meminati Game tersebut.
Dalam desain user interface game, terdapat sebuah teori
yang dikemukakan oleh Erik Fagerholt dan Magnus Lorentzon dari Chalmers
University of Technology. Dalam tesisnya mereka menulis tesis tentang
desain user interface berjudul Beyond the HUD - User Interfaces for
Increased Player Immersion in FPS
Dalam
desain antarmuka game terdapat beberapa elemen yang diantaranya adalah
1. Diagetic: Desain antarmuka yang
termasuk dalam permainan game yaitu yang
dapat dilihat dan didengar oleh karakter dalam permainan. Yang dimaksudkan pada
antarmuka diagetic ini segala sesuatu yang terlihat terkecuali elemen-elemen
non-diegetic seperti HUD, Kursor mouse, Informasi dari Komputer,dll Contoh: Interface dalam game Dead Space, pada game Assassin’s Creed
2. Non-diegetic: Desain Antarmuka yang diberikan sebagai tambahan di
luar dunia game itu sendiri, hanya terlihat dan terdengar ke pemain di dunia
nyata. Sehingga seakan-akan karakter dalam dunia game tidak melihatnya. Mass
Effect 3 menggunakan banyak Non-diegetik elemen UI untuk menginformasikan
pemain senjata karakter dipilih dan kekuasaan - antara lain.
3. Spatial: Elemen User Interface yang
disajikan dalam ruang permainan 3D dengan atau tanpa suatu entitas dari dunia
permainan yang sebenarnya (diegetik atau non-diegetik). Outline karakter dalam Left
4 Dead adalah contoh dari non-diegetik User Interface spatial.
4. Meta: Gambaran yang bisa muncul dalam dunia
game, namun tidak selalu divisualisasikan spasial untuk pemain.Contoh yang
paling jelas adalah efek ditampilkan di layar, seperti percikan darah pada
kamera untuk menunjukkan kerusakan. Contoh: Duty Calls- The Calm Before the Storm.
Penggunaan icon pada game juga mempengaruhi kenyamanan pemain dalam
memilih perintah-perintah pada game. Desain icons dalam user
Interface dibedakan menjadi dua jenis yaitu picons dan micons.
1. PICONS adalah
singkatan dari Personal ICONS yaitu "ikon pribadi". Berbentuk kecil, gambar terbatas dan digunakan
untuk mewakili pengguna dan domain
di internet, disusun dalam database sehingga gambar
yang sesuai untuk alamat e-mail yang diberikan dapat ditemukan. Selain pengguna dan domain,
ada picons database
untuk newsgroup Usenet
dan prakiraan cuaca. Para picons berada
dalam format XBM monokrom
atau XPM warna
dan format GIF.
2. MICONS adalah Moving ICONS atau picons yang bergerak
(dalam hal ini berupa file GIF animasi). Micons ini adalah animasi dari Picons
tetapi bisa juga berupa video khusus yang dijadikan micons.
Keunggulan picons :
a. Hemat
kapasitas
b. Lebih praktis
c. Tidak
membuat beban pada kinerja komputer
Keunggulan micons :
a. Icons
menjadi terlihat menyenangkan
b. Seperti
melihat video dengan kapasitas kecil
Penampilan Grafik Scene Game Komputer
Pengertian
Visibility merupakan tampilan grafik scene game pada komputer.
Bagaimana sebuah game terlihat oleh user agar menarik dan berkualitas sehingga
user menikmati game tersebut.
Biasanya pada video
game terdapat istilah scene 2.5D. Sebenarnya istilah tersebut tidak
berbeda jauh dari scene 2D (dua dimensi). Hanya saja 2.5D memiliki beberapa fitur
tambahan berupa efek cahaya, bayangan dan sebagainya yang dibuat agar
seakan-akan menyerupai scene 3D.
Biasanya gameplaynya
memang mirip game 2D dimana kita hanya bisa bergerak secara horizontal dan
vertical namun beberapa gambarnya di render secara 3D. Teori grafik 2.5D ini
biasa juga disebut dengan pseudo-3D sedangkan pada istilah game lebih dikenal
dengan isometric/diametric/trimetric projection.
Game bertipe ini
menggunakan 2 macam tipe pemodelan:
-> 3
Dimensi object/model
ini merupakan model/object
3D yang nantinya akan dijadikan sebagai karakter utama, bangunan, object-object
seperti senjata, musuh, permukaan tanah, pohon, dan bukit. Object 3D seperti
ini bisa dibuat dengan menggunakan program seperti 3DS Max, Maya, Hash, dan
Blender.
-> 2 Dimensi graphic
Gambar 2D juga
berperan dalam membuat game ini yaitu sebagai texture untuk object, sebagai
latar belakang seperti langit dan pemandangan, sebagai meteran untuk
nyawa dan gambar untuk speedometer pada game racing.
Kegunaan 2.5D dalam
game adalah sebagai pengaturan gerakan seperti golden axe, double dragon, path
finding yang biasanya cukup sederhana. Hal ini berguna untuk mengikuti posisi
pemain dan agar game lebih 'hidup'. Pada video game, biasanya scene 2.5D ini lebih
digunakan dalam visualisasi geografis (GVIS) untuk membantu memahami
representasi visual spasial-kognitif atau visualisasi 3D.
Game Berjaringan
Dalam
pembahasan game berjaringan terdapat dua kata yaitu GAME dan JARINGAN
dimana memiliki pengertian yang berbeda. Dapat dikatakan bahwa Game Berjaringan
adalah suatu permainan dengan media elektronik yang dimainkan dengan cara
terhubung dengan user lain dengan memanfaatkan sebuah alat penghubung jaringan
agar dapat bermain game secara bersamaan dengan user lain yang berbeda tempat,
waktu, hingga kondisi dengan bantuan jaringan yang dapat menghubungkan atau
mengkoneksikan antar perangkat, entah itu device komputer atau perangkat lain
untuk dapat bermain game.
Banyak
contoh dari Game Berjaringan. Contoh dari Game Berjaringan adalah Dota.
game atau permainan Dota pada PC ini cara mainnya adalah dengan kita terhubung
antar perangkat yang menggunakan alat perantara seperti router atau yang
lainnya yang dapat menguhubungkan sebuah jaringan, bahkan kita dapat bermain
secara lokal atau offline bersama teman-teman dengan memanfaatkan jaringan.
Contoh lain
dari Game Berjaringan adalah CS (Counter Strike) dimana game ini dapat kita
mainkan bukan hanya bermain sendiri, tapi bahkan dapat kita mainkan beramai
ramai
dengan teman-teman via jaringan lokal hingga online yang beda lokasi negara
ataupun
benua yang baermain secara realtime bersamaan.
URL :
https://cyberxskynet.wordpress.com/2015/04/24/interaksi-fisik-dalam-teknologi-game/
http://eituzed.blogspot.co.id/2015/04/penampilan-grafik-scene-game-komputer.html