Minggu, 15 April 2018

Tugas 2 - Pengantar Teknologi Game # (Bab 3 - 4)

0

BAB 3
Artificial Intelligence Pada Game

Kecerdasan buatan (bahasa Inggris: Artificial Intelligence atau AI) didefinisikan sebagai kecerdasan yang ditunjukkan oleh suatu entitas buatan. Sistem seperti ini umumnya dianggap komputer. Kecerdasan diciptakan dan dimasukkan ke dalam suatu mesin (komputer) agar dapat melakukan pekerjaan seperti yang dapat dilakukan manusia. Beberapa macam bidang yang menggunakan kecerdasan buatan antara lain sistem pakar, permainan komputer (games), dan lain lain.

Game AI adalah aplikasi untuk memodelkan karakter yang terlibat dalam permainan baik sebagai lawan, ataupun karakter pendukung yang merupakan bagian dari permainan tetapi tidak ikut bermain (NPC = Non Playable Character). Peranan kecerdasan buatan dalam hal interaksi pemain dengan permainan adalah pada penggunaan interaksi yang bersifat alami yaitu yang biasa digunakan menusia untuk berinteraksi dengan sesama manusia. Contoh media interaksi ialah:
* Penglihatan (vision)
* Suara (voice), ucapan (speech)
* Gerakan anggota badan ( gesture)

Dalam video game, kecerdasan buatan digunakan untuk menghasilkan perilaku cerdas terutama dalam karakter non-pemain (NPC), sering simulasi kecerdasan manusia-seperti. Teknik yang digunakan biasanya memanfaatkan metode yang ada dari bidang kecerdasan buatan (AI). Namun, permainan istilah AI sering digunakan untuk merujuk kepada serangkaian luas algoritma yang juga mencakup teknik dari teori kontrol, robotika, komputer grafis dan ilmu komputer pada umumnya.

Kelebihan dan Kekurangan Artificial Intelligence
Walaupun perkembangan teknologi artificial intelligence dapat menggantikan posisi manusia, bahkan dapat dikatakan lebih pintar dari manusia, tetapi tetap saja perkembangan teknologi dengan menggunakan articial intelegensi tetap memiliki kekurangan dan keterbatasan.

Kelebihan Artificial Intelligence
1. Kemampuan menyimpan data yang tidak terbatas (dapat disesuaikan dengan kebutuhan).
2. Memiliki ketepatan dan kecepatan yang sangat akurat dalam system kerjanya
3. Dapat digunakan kapan saja karena tanpa ada rasa lelah atau bosan


Kekurangan Artificial Intelligence
1. Teknologi artificial intelegensi tidak memiliki common sense. common sense adalah sesuatu yang membuat kita tidak sekedar memproses informasi, namun kita mengerti informasi tersebut. Kemengertian ini hanya dimiliki oleh manusia.

2. Kecerdasan yang ada pada artificial intelligence terbatas pada apa yang diberikan kepadanya (terbatas pada program yang diberikan). Alat teknologi artificial intelligence tidak dapat mengolah informasi yang tidak ada dalam sistemnya.


Kelebihan dan kekurangan artificial intelligence dibandingkan dengan otak manusia, dalam hal waktu tunda propagasi Oleh karena itu manusia kalah dalam kecepatan perhitungan numerik. Dalam aspek lainnya otak manusia jauh di atas angin, terutama dalam tata letak dan jumlah elemennya. Sedangkan metoda pemrosesan secara paralel dalam komputer dikembangkan untuk menggantikan kedudukan manusia.


Gambar 3.1 Pacman



Decision Making
Decision Making adalah serangkaian algoritma yang dirancang dengan memasukan beberapa kemungkinan langkah yang bisa diambil oleh suatu aplikasi, Pada game ini decision making memberikan kemampuan suatu karakter untuk menentukan langkah apa yang akan diambil. Decision making dilakukan dengan cara menentukan satu pilihan dari list yang sudah dibuat pada algoritma yang dirancang. Algoritma decision making kerap digunakan dalam aplikasi game, akan tetapi algoritma decision making dapat diimplementasikan pada banyak aplikasi lain.

Decision Making terbagi menjadi 3 :
Decision Tree, State Machine dan Rule System

Decision Tree
Pohon Keputusan (Decision Tree) merupakan metode klasifikasi dan prediksi yang sangat kuat dan terkenal. Metode pohon keputusan mengubah fakta yang sangat besar menjadi pohon keputusan yang merepresentasikan aturan. Aturan dapat dengan mudah dipahami dengan bahasa alami. Aturan ini juga dapat diekspresikan dalam bentuk bahasa basis data seperti SQL untuk mencari record pada kategori tertentu. Pohon keputusan juga berguna untuk mengeksplorasi data, menemukan hubungan tersembunyi antara sejumlah calon variabel input dengan sebuah variabel target. Karena pohon keputusan memadukan antara eksplorasi data dan pemodelan, pohon keputusan ini sangat bagus sebagai langkah awal dalam proses pemodelan bahkan ketika dijadikan sebagai model akhir dari beberapa teknik lain(J R Quinlan, 1993).

Dalam situasi lain kemampuan untuk menjelaskan alasan pengambilan keputusan adalah sesuatu yang sangat penting. Misalnya pada perusahaan asuransi ada larangan resmi untuk mendeskriminasi berdasarkan variabel-variabel tertentu. Perusahaan asuransi dapat mencari sendiri keadaan yang mencerminkan bahwa mereka tidak menggunakan deskriminasi yang ilegal dalam memutuskan seseorang diterima atau ditolak. Sebuah pohon keputusan adalah sebuah struktur yang dapat digunakan untuk membagi kumpulan data yang besar menjadi himpunan-himpunan record yang lebih kecil dengan menerapkan serangkaian aturan keputusan. Anggota himpunan hasil menjadi mirip satu dengan yang lain dengan masing-masing rangkaian pembagian. Sebuah model pohon keputusan terdiri dari sekumpulan aturan untuk membagi sejumlah populasi yang heterogen menjadi lebih kecil, lebih homogen dengan memperhatikan pada variabel tujuannya. Sebuah pohon keputusan mungkin dibangun dengan seksama secara manual, atau dapat tumbuh secara otomatis dengan menerapkan salah satu atau beberapa algoritma pohon keputusan untuk memodelkan himpunan data yang belum terklasifikasi (Tan dkk, 2004).

Variabel tujuan biasanya dikelompokkan dengan pasti dan model pohon keputusan lebih mengarah pada perhitungan probabilitas dari masing-masing record terhadap kategori-kategori tersebut, atau untuk mengklasifikasi record dengan mengelompokkannya dalam satu kelas. Pohon keputusan juga dapat digunakan untuk mengestimasi nilai dari variabel kontinyu, meskipun ada beberapa teknik yang lebih sesuai untuk kasus ini.

Kelebihan dari metode pohon keputusan adalah:
1. Daerah pengambilan keputusan yang sebelumnya kompleks dan sangat global, dapat diubah menjadi lebih simpel dan spesifik
2. Eliminasi perhitungan-perhitungan yang tidak diperlukan, karena ketika menggunakan metode pohon keputusan maka sampel diuji hanya berdasarkan kriteria atau kelas tertentu
3. Fleksibel untuk memilih fitur dari node internal yang berbeda, fitur yang terpilih akan membedakan suatu kriteria dibandingkan kriteria yang lain dalam node yang sama. Kefleksibelan metode pohon keputusan ini meningkatkan kualitas keputusan yang dihasilkan jika dibandingkan ketika menggunakan metode penghitungan satu tahap yang lebih konvensional
4. Dalam analisis multivarian, dengan kriteria dan kelas yang jumlahnya sangat banyak, seorang penguji biasanya perlu mengestimasikan baik itu distribusi dimensi tinggi ataupun parameter tertentu dari distribusi kelas tersebut. Metode pohon keputusan dapat menghindari munculnya permasalahan ini dengan menggunakan kriteria yang jumlahnya lebih sedikit pada setiap node internal tanpa banyak mengurangi kualitas keputusan yang dihasilkan.

Kekurangan pada pohon keputusan adalah:
1. Terjadi overlapping terutama ketika kelas-kelas dan kriteria yang digunakan jumlahnya sangat banyak. Hal tersebut juga dapat menyebabkan meningkatnya waktu pengambilan keputusan dan jumlah memori yang diperlukan
2. Pengakumulasian jumlah kesalahan dari setiap tingkat dalam sebuah pohon keputusan yang besar
3. Kesulitan dalam mendesain pohon keputusan yang optimal
4. Hasil kualitas keputusan yang didapatkan dari metode pohon keputusan sangat tergantung pada bagaimana pohon tersebut didesain.

Pohon keputusan adalah model prediksi menggunakan struktur pohon atau struktur berhirarki.

Setiap percabangan menyatakan kondisi yang harus dipenuhi dan tiap ujung pohon menyatakan kelas data. Contoh pada Gambar diatas adalah identifikasi pembeli komputer. Dari pohon keputusan tersebut diketahui bahwa salah satu kelompok yang potensial membeli komputer adalah orang yang berusia di bawah 30 tahun dan juga pelajar. Setelah sebuah pohon keputusan dibangun maka dapat digunakan untuk mengklasifikasikan record yang belum ada kelasnya. Dimulai dari node root, menggunakan tes terhadap atribut dari record yang belum ada kelasnya ini lalu mengikuti cabang yang sesuai dengan hasil dari tes tersebut, yang akan membawa kepada internal node (node yang memiliki satu cabang masuk dan dua atau lebih cabang yang keluar), dengan cara harus melakukan tes lagi terhadap atribut atau node leaf. Record yang kelasnya tidak diketahui kemudian diberikan kelas yang sesuai dengan kelas yang ada pada node leaf. Pada pohon keputusan setiap simpul leaf menandai label kelas. Proses dalam pohon keputusan yaitu mengubah bentuk data (tabel) menjadi model pohon (tree) kemudian mengubah model pohon tersebut menjadi aturan (rule) (J R Quinlan, 1993).

Salah satu algoritma induksi pohon keputusan yaitu ID3 (Iterative Dichotomiser 3). ID3 dikembangkan oleh J. Ross Quinlan. Dalam prosedur algoritma ID3, input berupa sampel training, label training dan atribut. Algoritma Decision Tree C4.5 merupakan pengembangan dari ID3. Sedangkan pada perangkat lunak open source WEKA mempunyai versi sendiri dari C4.5 yang dikenal sebagai J48.


State Machine
Finite State Machines (FSM) adalah sebuah metodologi perancangan sistem kontrol yang menggambarkan tingkah laku atau prinsip kerja sistem dengan menggunakan tiga hal berikut: State (Keadaan), Event (kejadian) dan action (aksi). Pada satu saat dalam periode waktu yang cukup signifikan, sistem akan berada pada salah satu state yang aktif. Sistem dapat beralih atau bertransisi menuju state lain jika mendapatkan masukan atau event tertentu, baik yang berasal dari perangkat luar atau komponen dalam sistemnya itu sendiri (misal interupsi timer). Transisi keadaan ini umumnya juga disertai oleh aksi yang dilakukan oleh sistem ketika menanggapi masukan yang terjadi. Aksi yang dilakukan tersebut dapat berupa aksi yang sederhana atau melibatkan rangkaian proses yang relative kompleks.

Berdasarkan sifatnya, metode FSM ini sangat cocok digunakan sebagai basis perancangan perangkat lunak pengendalian yang bersifat reaktif dan real time. Salah satu keutungan nyata penggunaan FSM adalah kemampuannya dalam mendekomposisi aplikasi yang relative besar dengan hanya menggunakan sejumlah kecil item state. Selain untuk bidang kontrol, Penggunaan metode ini pada kenyataannya juga umum digunakan sebagai basis untuk perancangan protokol-protokol komunikasi, perancangan perangkat lunak game, aplikasi WEB dan sebagainya.

Dalam bahasa pemrograman prosedural seperti bahasa C, FSM ini umumnya direalisasikan dengan menggunakan statemen kontrol switch case atau/dan if..then. Dengan menggunakan statemen-statemen kontrol ini, aliran program secara praktis akan mudah dipahami dan dilacak jika terjadi kesalahan logika.


Rule Systems
Rule Based System merupakan metode pengambilan keputusan berdasarkan pada aturan-aturan tertentu yang telah ditetapkan. RBS dapat diterapkan pada agen virtual dalam bentuk kecerdasan buatan sehingga dapat melakukan tindakan tertentu. Tindakan tersebut direpresentasikan oleh set aturan yaitu penyebab tindakan itu terjadi, proses tindakan dan hasil dari tindakan tersebut.

Rule Base Systems (RBS) sistem yang baik untuk mendapat jawaban dari pertanyaan mengenai What (apa), How (bagaimana) dan Why (mengapa) dari Rule Base (RB) selama proses inferensia. Jawaban dan penjelasannya dapat disediakan dengan baik. Masalah yang ada dengan SBP adalah ia tak dapat secara mudah menjalankan proses akuisisi knowledge (pengetahuan) dan ia tak dapat mengupdate rule (aturan) secara otomatis. Hanya pakar yang dapat mengupdate Knowledge Base (KB) secara manual dengan dukungan dari knowledge engineer (insinyur pengetahuan). Lebih jauh kebanyakan peneliti dalam SBA lebih memperhatikan masalah optimasi pada rule yang sudah ada daripada pembangkitan rule baru dari rule yang sudah ada. Namun demikian, optimasi rule tak dapat mengubah hasil dari inferensia secara signifikan, yaitu dalam hal cakupan pengetahuan.

Ripple Down Rule (RDR) datang untuk mengatasi permasalahan utama dari sistem pakar: pakar tak perlu lagi selalu mengkomunikasikan pengetahuan dalam konteks yang spesifik. RDR membolehkan akuisisi yang cepat dan sederhana secara ekstrim tanpa bantuan dari knowledge engineer. Pengguna tak perlu menguji RB dalam rangka mendefinisikan rule baru: pengguna hanya perlu untuk mampu mendefinisikan rule baru yang secara benar mengklasifikasikan contoh yang diberikan, dan sistem dapat menentukan dimana suatu rule harus ditempatkan dalam hirarki rulenya. Keterbatasan dari RDR adalah kekurangan dalam hal inferensia yang berdayaguna. Tak seperti SBA yang dilengkapi dengan inferensia melalui forward dan backward chaining, RDR kelihatannya menggunakan Depth 

First Search (DFS) yang memiliki kekurangan dalam hal fleksibelitas dalam hal penjawaban pertanyaan dan penjelasan yang tumbuh dari inferensia yang berdayaguna.

Variable-Centered Intelligent Rule System (VCIRS) merupakan perkawinan dari SBA dan RDR. Arsitektur sistem diadaptasi dari SBA dan ia mengambil keuntungan-keuntungan yang ada dari RDR. Sistem ini mengorganisasi RB dalam struktur spesial sehingga pembangunan pengetahuan, inferensia pengetahuan yang berdayaguna dan peningkatan evolusional dari kinerja sistem dapat didapatkan pada waktu yang sama. Istilah “Intelligent” dalam VCIRS menekankan pada keadaan sistem ini yang dapat “belajar” untuk meningkatkan kinerja sistem dari pengguna sistem selama pembangunan pengetahuan (melalui analisis nilai) dan penghalusan pengetahuan (dengan pembangkitan rule).


Path Finding 
Metode Path Finding seringkali dijumpai pada game yang bergenre strategi, dimana kita sebagai user menunjuk satu karakter untuk digerakkan ke lokasi tertentu dengan cara mengklik lokasi yang akan dituju. Maka, si karakter tersebut akan bergerak ke arah yang telah ditentukan, dan secara “cerdas” dapat menemukan jaur terpendek ataupun menghindari rintangan yang ada.

Pathfinding merupakan metode yang sangat dibutuhkan pada berbagai game, terutama game 3d. Path finding digunakan untuk menentukan arah pergerakan suatu objek berdasarkan keadaan lokasi dan object di sekitarnya dari satu titik ke titik lain. Pencarian jalur merupakan salah satu implementasi kecerdasan buatan dalam permainan. Pencarian jalur terpendek merupakan hal yang mempengaruhi pergerakan dan pengambilan keputusan pada non-player character.

Pathfinding algorithm adalah konsep pencarian dengan menggunakan best-first search. Pada proses ini node didalam map ditempatkan dan diberi id pada setiap node yang ada. Node tersebut akan men-scan setiap node yang satu dengan lain : Node 1 scan node 2,3,4  ..,n dan seterusnya. Dan node 2 scan node 1,3,4, ..., n dan seterusnya. Sewaktu semua node telah discan maka akan dimasukan kedalam variabel 

Metode pada Path Finding terbagi menjadi 4 bagian yakni:
1. Waypoints 
Waypoint merupakan kumpulan dari beberapa titik kordinat yang kemudian dijadikan sebagai navigasi pergerakan. Dalam sebuah game, pergerakan NPC (non playable character) umumnya menggunakan titik arah antara titik kordinat yang satu dengan yang lain ditentukan oleh pencipta game. Waypoint dapat digunakan pada non playable character untuk melakukan patroli di dalam game dengan melintasi titik-titik kordinat yang ditentukan.


Waypoint search merupakan pencarian yang paling efisien dan menghemat konsumsi pada CPU-Time. Hampir semua game sekarang ini menggunakan metode waypoint sebagai metode pencarian, terutama pada 3D game action dimana contoh game yang menerapkan waypoint sebagai solusinya adalah "Counter-Strike". Terdapat dua metode pencarian dengan menggunakan waypoint search, yaitu Best-First Search dan Data-Based Search.

Merupakan titik acuan/kumpulan koordinat yang digunakan untuk keperluan navigasi. Maksud dari keperluan navigasi disini adalah mengidentifikasi sebuah titik dipeta. Disetiap koordinat biasanya menyertakan longitude, latitude, dan terkadang altitude untuk keperluan navigasi di udara.








2. A*Searching
Algoritma A* merupakan yang sering digunakan pada game yang menggunakan metode pathfinding. Algoritma ini dipilih karena A* sangat mudah untuk diimplementasikan dan sangat efisien. Dengan menggunakan algoritma A* kita dapat menentukan jalur terpendek. Pada algotitma ini akan menyeleksi dengan cara membuang langkah yang tidak perlu dengan mempertimbangkan bahwa langkah yang dibuang dipastikan tidak mencapai solusi yang diinginkan.

Prinsip dari algoritma ini yaitu dengan cara mencari jalur terpendek dari sebuah simpul awal (Starting Point) menuju ke simpul tujuan dengan memperhatikan harga (F) terkecil. Algoritma A* akan memperhitungkan cost dari current state ke tujuan dengan fungsi heuristic, selain itu algoritma ini juga mempertimbangkan cost yang telah ditempuh selama ini dari initial state ke current state. Jadi maksudnya jika jalan yang telah ditempuh terlalu panjang dan ada jalan lain yang cost nya lebih kecil tetapi memberikan posisi yang sama jika dilihat dari goal, maka jalan yang lebih pendeklah yang akan dipilih.

3. Dijkstra
Algoritma Dijkstra yang dinamai penemunya yakni seorang ilmuwan komputer, Edsger Dijkstra merupakan sebuah algoritma yang rakus atau biasa dikenal dengan algoritma greedy. Algoritma ini biasa dipakai dalam memecahkan permasalahan jarak terpendek (shortest path problem) untuk sebuah graf berarah (directed graph) dengan bobot-bobot sisi (edge weights) yang bernlai positif.

4. Tactical Pathfinding
Tactical Pathfinding merupakan algoritma pencarian jalur yang bisa melakukan pencarian jalur terpendek dengan menghitung bobot ancaman. Implementasi algoritma ini dapat memberikan gerakan taktis pada non-player character. Algoritma ini dilakukan berdasarkan algoritma pencarian jalur A* yang ditambah dengan perhitungan bobot.




BAB 4
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. Kalau game diilustrasikan sebagai ‘musik’ yang keluar dari mp3 player, maka engine adalah ‘mp3 player’ dan program utama adalah ‘data mp3’ yang dimasukkan ke dalam mp3 player tersebut. 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

Ps:
ini adalah Tugas Kelompok pada Mata Kuliah Pengantar Teknologi Game.
yang mengerjakan bab 3- 4 adalah http://mrezafatih.blogspot.co.id/

0 komentar:

Posting Komentar