Minggu, 06 Maret 2016

Pengantar Teknologi Game



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 :
  1. Setiap game memiliki tingkat kesulitan/Level yang berbeda.
  2. Meningkatkan konsentrasi.
  3. Meningkatkan koordinasi tangan dan mata.
  4. Meningkatkan kemampuan membaca.
  5. Meningkatkan kemampuan berbahasa inggris.
  6. Meningkatkan pengetahuan tentang komputer.
  7. Meningkatkan kemampuan mengetik.
Efek negatif dalam game :
  1. Kecanduan
  2. Membatasi Hubungan Sosial
  3. 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

1 komentar: