Minggu, 25 Maret 2018

GAME




BAB I

Teknologi Game
Game/permainan 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.
Beberapa waktu lalu istilah “game” yang dalam bahasa Indonesia adalah “permainan” identik dengan anak-anak  selaku pemain. Tentunya dalam permainan itu suatu kegiatan yang dilakukan oleh anak-anak yang menurut mereka itu dapat menyenangkan hati mereka. Segala bentuk kegiatan yang memerlukan pemikiran, kelincahan intelektual dan pencapaian terhadap target tertentu dapat dikatakan sebagai game. Tetapi yang akan dibahas pada kesempatan ini adalah game yang terdapat di komputer, baik off line maupun online.
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. Pada media Personal Computer, durasi waktu penayangan adalah tidak terbatas, selama games tersebut bagus dan mampu menghibur audience/pemain, maka selama itulah tingkat kemungkinan untuk dilihat audience akan semakin tinggi. Pembuatan Games ini biasanya menggunakan Language C++ / C#, membutuhkan waktu 3-6 bulan tergantung dengan kompleksitas games tersebut.
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. Corporate yang memiliki keinginan mengumpulkan komunitas internet dan sekaligus memperkenalkan product/brandnya kepada komunitas Internet sangat cocok memilih media games online internet ini. Pilihan ini banyak digunakan karena dapat meningkatkan traffic pada suatu website Bila games yang dibutuhkan simple maka diperlukan waktu pengembangan yang relative lebih singkat 1-2 bulan.
3. SmartPhones/PocketPC. Aplikasi games yang jalan pada mobile devices bersistem operasi Windows Mobile 2003/2004 ataupun windows mobile 5.0. Product yang memiliki target market status ekonomi A,B dan karakter pengusaha/ eksekutif muda sangat cocok apabila menggunakan media PocketPC/SmartPhones sebagai bagian aktivitas kegiatan advertising. Games bertemakan strategi ataupun simulasi bisnis pada umumnya lebih disukai oleh orang-orang golongan ini. Waktu pengembangan biasanya memerlukan waktu 3-6 bulan tergantung dengan kompleksitas games tersebut
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. Produk yang memiliki target golongan ABG, remaja, anak kuliah, eksekutif muda sangat tepat menggunakan media ini, mengingat pada golongan inilah mereka suka sekali mencoba dan mengeksplorasi features aplikasi yang tersedia pada mobile/cellphones mereka. Mereka biasanya aktif mencari aplikasi bersifat fun atau game yang dapat mengisi waktu senggang mereka. Waktu pengembangan untuk membuat aplikasi pada devices ini relative lebih pendek yaitu 1-3 bulan tergantung dengan kompleksitas games tersebut.


Bisnis Dalam Game Komputer
Di tengah maraknya game mobile, game berbasis komputer PC masih akan mendominasi bisnis game digital secara keseluruhan. Sementara itu, aneka teknologi baru akan memberi suntikan tenaga baru untuk game konsol yang diramalkan segera tamat riwayatnya.
Menurut data terbaru Juniper Research, bisnis game digital diprediksi akan menyumbang pendapatan sebesar lebih dari USD 80 triliun tahun ini, dan USD 104 triliun di tahun 2018.
Kontribusi terbesar akan datang dari game berbasis komputer PC. Tahun ini saja, pendapatan dari game komputer PC menguasai 42% dari total pendapatan bisnis game digital.
Seperti diperkirakan, game berbasis platform mobile terus memperlihatkan peningkatan pendapatan. Tahun 2020 sektor ini akan berkontribusi sekitar 35%, dengan pangsa pasar mendekati angka 32%. Pertumbuhan tersebut tak lepas dari popularitas game berkategori freemiumyang memungkinkan user melakukan in-app purchase di beberapa game, seperti Clash of Clans, Candy Crush dan Game of War.
Bagaimana nasib game konsol? Umur game konsol diramalkan tidak lama lagi, tapi ternyata jenis permainan ini masih meraih pandapatan sebesar USD 21 triliun tahun ini dan USD 27 triliun di tahun 2018 nanti.
Melalui riset berjudul Worldwide Digital Games Market 2015-2020, Juniper menebarkan optimisme bahwa game konsol masih akan berevolusi, padahal platformnya sendiri sudah memasuki generasi ke-8.
Menurut penulis riset Juniper, Lauren Foye, “Seiring meningkatnya pembelian game secara digital oleh konsumen, penjualan konsol generasi saat ini masih akan terdorong penjualannya. Teknologi baru seperti Virtual Reality akan mendorong adopsi game konsol oleh konsumen, dan game konsol terus berevolusi menjadi bagian utama dari home entertainment centre.”
Integrasi lintas platform juga akan menjadi jalan bagi game konsol untuk terus eksis. Microsoft akan membenamkan Windows 10 di Xbox One bulan November ini sehingga pengguna dapat memainkan game di PC maupun konsol.

3D Engine dan Scene Graph

Di dalam grafika komputer, 3D merupakan bentuk grafik yang menggunakan representasi data geometri tiga dimensi. Grafik 3D ini tersimpan didalam komputer untuk keperluan kalkulasi atau rendering gambar 3D. Pada 3D, engine bukanlah exutable program, artinya engine tidak bisa dijalankan sebagai program yang berdiri sendiri.

3D engine adalah sistem perangkat lunak yang dibuat dan dirancang untuk menciptakan dan mengembangkan gambar 3D, fungsionalitas inti biasanya disediakan oleh mesin permainan mencakup mesin render (renderer) untuk 2D/3D grafis.

Berbeda dengan dukungan grafik 2D yang sudah built in, dukungan Java terhadap grafik 3D diletakkan ke dalam API terpisah, yakni Java3D. Java3D merupakan API 3D berbasis scene graph di platform Java, dimana scene graph merupakan sebuah pohon yang berisi hierarki data scene. Di dalam api Java3D didefinisikan sejumlah kelas dan interface yang menyediakan beragam operasi grafik 3D.
Konsep scene graph merupakan inti dari Java3D. Sebuah scene graph merupakan g rafik yang mempresentasikan geometri, material, dan pencahayaan. Scene graph dimulai dari root dengan sebuah Virtual Universe dan mencakup transformasi serta geometri untuk mendefinisikan objek di dunia maya. Secara garis besar, ada tiga tahap fundamental yang diperlukan untuk menghasilkan objek 3D, yaitu:
1.                   Menciptakan objek Canvas3D
2.                   Menciptakan sebuah scene graph
3.                   Menghubungkan objek Canvas3D ke objek BranchGroup yang menunjuk root dari scene graph
·                     Ogre 3D
Objected-Oriented Graphics Rendering Engine atau bisa disingkat dengan OGRE merupakan engine yang object oriented & flexible 3D rendering pada game engine yang ditulis dengan menggunakan bahasa C++ serta didesain agar mampu men-developer dengan mudah kepada aplikasi produksi dengan menggunakan utility hardware-accelerated 3D graphic. Gambaran abstraknya OGRE menggunakan sistem library seperti Direct3D & OpenGL, serta menyediakan sebuah dasar interface di dunia objek dan class objek yang lebih tinggi.

OGRE hanya digunakan untuk me-render. Dengan kata lain, fitur OGRE hanya khusus menangani vector & matOix classes, memory handling, dan lain lain. Ini bukan lah salah satu dari semua solusi dalam istilah game development/simulasi. OGRE tidak menyediakan audio/physics support.

Walaupun penjelasan diatas bisa dikatakan sebagai kelemahan dari OGRE itu sendiri, akan tetapi semua itu sebanding dengan kemampuan grafis yang ada pada game engine tersebut. Kelebihan yang paling menonjol pada OGRE adalah graphics engine yang bisa memberikan para developer sebuah kebebasan untuk menggunakan physics apapun, input, audio, & library lainnya. OGRE memberikan para tim development untuk fokus pada graphics daripada beberapa sistem-sistem yang ada dalam game development. OGRE dapat mendupport OIS, SDL, CEGUI libraries. Sekarang ini OGRE adalah publish dibawah dua lisensi, yaitu LGPL & OUL. Maka sekarang ini para publish tersebut membuka OGRE sebagai free/open source software.

Fitur-fitur pada OGRE:
1.                   Desain yang object-oriented dengan menggunakan plugin untuk mempermudah memasukkan fitur lainnya
2.                   Engine berbasis scane graph dengan bantuan untuk sebuah varietas yang luas, octree, BSP, & paging landscape scene manager
3.                   Multi-platform dengan dukungan OpenGL & Direct 3D. Bisa me-render konten yang sama di beda platform tanpa harus mempunyai content creator. dapat diakses pada platform Linux, Mac OS, dan semua versi Windows
4.                   OGRE mendukung program vertex dan fragment selama ditulis dengan GLSH, HLSL, Cg, dan assembler 
5.                   The landscape scene manager untuk progressive LOD, yang mana bisa dibuat secara otomatis dan manual
6.                   Engine annimasi yang men-support penuh untuk multiple hardware
·                     Processing
Processing adalah bahasa pemrograman dan lingkungan pemrograman yang bersifat open source yang digunakan untuk memprogram gambar, animasi, dan interaksi. Processing digunakan untuk mengajarkan dasar-dasar pemrograman komputer dalam konteks rupa dan berfungsi sebagai buku sketsa perangkat lunak dan alat produksi profesional. Processing mengintegrasikan suatu bahasa pemrograman, lingkungan pemrograman, dan metodologi pengajaran ke dalam sistem terpadu.

Processing merupakan suatu projek yang dinisiasi oleh Ben fry dan casey reas. Berkembang dari ide-ide yang dieksplorasi di Aesthetics and Computation Group (ACG) di Mit Media Lab. Projek ini kini terus diperbaiki dan dikelola oleh sejumlah Tim Voluntir.
·                     Game Maker
Game Maker adalah software yang bisa membantu anda menjadi pengembang game komputer tanpa menggunakan coding sedikitpun. Dapat digunakan untuk membuat 3 dimensi dan Multiplayer. Game Maker dapat menjadikan hak penuh dari software (game) yang anda buat termasuk dapat menjual game tersebut, bahkan bisa mendownload musik, efek suara, gambar, script, serta background.
·                     Unity 3D
Unity 3D adalah sebuah game developing software. Dengan software ini, kita bisa membuat game 3D yang seru. Game developer ini sangat mudah digunakan, dengan GUI yang memudahkan kita untuk membuat derta mengedit script untuk menciptakan sebuah game 3D. Selain bisa untuk build game PC, Unity juga dapat digunakan untuk membangun game console seperti Nintendo Wii, PS3, Xbox 360, juga Ipad, Iphone, dan Android. Namun masing-masing membutuhkan biaya lisensinya sendiri. Unity kurang lebih sama dengan Blender game engine, namun unity lebih ringan dan diintegrasi lebih dalam suasana grafik.

Kelebihan Unity terdapat pada multiple platform, artinya banyak platform yang disupport oleh unity, seperti Windows, Mac, iPhone, iPad, Android, Nintendo Wii, dan juga browser. Untuk browser, kita memerlukan sebuah plug-in, yaitu Unity Web player, sama halnya dengan Flash Player pada browser. Pada unity, kita tidak bisa melakukan desain/modelling dikarenakan unity bukan tool untuk mendesain. Jadi jika kita ingin mendesain, dibutuhkan 3D editor lain seperti 3Dsmax atau Blender, kemudian kita export menjadi format .fbx.



BAB II

Desain Skenario

Desain skenario pada sebuah game sama halnya dengan desain skenario pada sebuah film.  Jika pada sebuah film terdapat sutradara namun pada game terdapat perancang game, mengapa dibutuhkan sutradara pada sebuah film? Jawabannya adalah karena pada sebuah film membutuhkan skenario dan adegan yang setiap pemain memiliki ciri khas masing-masing. Jadi dibutuhkannya perancang game dalam suatu desain game ialah untuk memberikan ide dalam pembuatan skenario serta adegan yang terdapat di setiap karakter dalam sebuah game. Selain itu karakter pada sebuah game pasti memiliki ciri khas yang tidak dimilki oleh karakter lain.
Pada sebuah game untuk menggambarkan bagaimana game tersebut akan dibuat dinamakan GDD( Game Design Document). GDD tersebut merupakan acuan yang digunakan oleh para anggota tim pengembang dalam pembuatan game. Hal itu sesuai dengan pendapat yang dikemukakan oleh Bob Gates (2004), “pembuatan game akan dimulai dari pembuatan game desain dokumen. Game desain dokumen digunakan untuk menjadi landasan pengembangan game tersebut, dan untuk menarik minat pembaca serta menginformasikan gambaran keseluruhan game yang akan dibuat kepada tim pengembang”.
GDD bisa dikatakan sebagai living document, yang berarti perubahan bisa dilakukan sesuai dengan kebutuhan baru. Akan tetapi jika terlalu sering melakukan perubahan akan menyebabkan implementasi pada sebuah game akan terganggu. Dengan adanya game desain dokumen yang detail akan mampu memberikan gambaran lengkap bagi seluruh tim sehingga proses pengembangan game lebih efektif dan efisien.
Pada penjelasan barusan sudah menyinggung mengenai perancang game, terdapat empat bagian pada saat perancangan game yakni:
Pemimpin Desainer
Orang yang menggerakan konsep game tersebut menjadi lebih menarik dan membuat game tersebut memiliki nilai artistik didalamnya.
      2. Game Mechanic Designer
          Orang yang membuat suatu aturan pada sebuah permainan, sehinggan permainan tersebut tidak berat sebelah atau bisa dikatakan seimbang.
      3. Tingkat Desainer atau Lingkungan Desainer
          Orang yang bertanggung jawab dalam membuat lingkungan permainan, agar pada sebuah game menjadi lebih real.
      4. Writter
           Seseorang yang bertanggung jawab dalam membentuk suatu narasi dalam game. Dimulai dari alur cerita, hingga apa saja yang harus dilakukan pemain pada saat memainkan game tersebut. Oleh karena itu penulis harus bekerja sama dengan desainer utama dalam pembuatan skenario game.  
Jadi yang dimaksud desain skenario pada sebuah game adalah suatu perancangan dalam membangun sebuah skenario yang  didalamnya terdapat gameplay, karakter atau tokoh, lingkungan. Ketiga unsur tersebutlah yang digunakan selama tahap memproduksi sebuah desain pada game komputer.

 

 

Script

Sebelum kita bahas lebih jauh mengenai game script apa kalian tahu pengertian dari script? Bahasa script merupakan suatu bahasa pemrograman komputer yang diterjemahkan secara khas dan dapat diketik secara lansung dari keyboard.
Script sendiri dibedakan dari program, mengapa dari program? Jawabannya adalah karena program dikonversi atau diubah ke dalam file yang berseifat executable berbasis biner (0 atau 1) sebelum script tersebut dijalankan. Ketika script dijalankan tidak akan merubah isi didalamnya dan menterjemahkan setiap instruksi yang dilaksanakan. Script sendiri digunakan untuk mempersingkat proses pada saat kompilasi sampai pada akhirnya dijalankan.
Game script sendiri berfungsi untuk mendokumentasikan rules dan core-mechanics pada sebuah game. Fungsinya adalah untuk membuat suatu aturan yang mendetail pada sebuah game dan agar kita bisa mengetahui cara memainkan game tersebut.
Pada saat pemilihan bahasa pemrograman yang digunakan untuk membuat suatu game perlu diperhatikan beberapa syarat berikut ini:
a. Speed
Bahasa script untuk sebuah game harus memiliki kemampuan berjalan secepat mungkin. Mengapa dibutuhkan speed pada sebuah script game? Jawabannya adalah karena ketika kita akan membuat suatu game dengan suatu level, pasti secara logikanya suatu perilaku karakter dan rintangan yang terdapat didalamnya akan berbeda. Jika, kita menggunakan bahasa script yang lambat, maka akan memakan waktu yang cukup lama untuk membuatnya.
b. Kompilasi dan Interpretasi
Bahasa script jika ditinjau secara luas diinterpretasikan melalui susunan suatu rangakaian byte. Interpreter akan melihat script setiap baris, serta penyusunan sesuai maksud dari script itu sendiri dan melakukan tindakan yang spesifik.  Suatu byte akan terkompilasi, dan akan dikonversi atau diubah dari teks menjadi suatu byte code. Byte code biasanya lebih padat jika dibandingkan dengan format teks, mengapa disebut lebih padat? Jawabannya adalah karena kode byte dalam suatu format akan lebih optimal ketika dieksekusi, sehingga dapat berjalan lebih cepat.
c. Ekstensibilitas dan Integrasi
Bahasa script sangat dianjurkan mempunyai akses ke fungsi yang signifikan ke dalam sebuah game. Sebuah script untuk mengendalikan sebuah karakter misalnya, harus dapat memiliki kemampuan untuk menanyai game untuk mencari tahu apa y ang bisa dilihat dan selanjutnya membiarkan game mengerti apa yang harus dilakukan untuk melakukan aksinya. Kumpulan fungsi yang dibutuhkan untuk mengakses sangat jarang diketahui ketika bahasa script telah diimplementasikan. Oleh karena itu, hal ini penting untuk memiliki sebuah bahasa yang dapat dengan mudah memanggil fungsi atau menggunakan kelas main code dalam sebuah game.
d. Re-Entrancy
Fungsi ini sering berguna untuk memanggil script secara ulang sehingga bisa digunakan kembali. Selain itu fungsi ini dapat berjalan untuk sementara waktu, dan ketika waktu telah habis maka script bisa ditunda. Dan jika script selanjutnya memiliki waktu lagi, maka akan menjalankan kembali script yang telah ditunda sebelumnya.

Storyboard

Storyboard merupakan suatu sketsa gambar yang disusun secara berurutan yang sesuai dengan naskah yang ada. Dengan adanya storyboard ini, kita dapat menyampaikan ide cerita kepada orang lain dengan lebih mudah. Mengapa dikatakan lebih mudah ketika menyampaikan ide menggunakan storyboard? Jawabannya adalah karena dengan menggunakan suatu gambar secara berurut orang akan berkhayal dengan mengikuti gambar yang telah disajikan sedemikian rupa, sehingga menghasilkan persepsi yang sama sesuai dengan ide cerita yang kita buat.
Namun, untuk storyboard pada game akan memperlihatkan suatu gambaran yang berurutan yang menunjukkan level pada setiap game, menggambarkan adegan disetiap kejadian berbeda dan memiliki goal/mission yang dibuat pada game itu sendiri. Storyboard pada game juga mejelaskan alur cerita yang dimiliki oleh game tersebut tapi itu semua tergantung dari genre game itu sendiri. Disini saya akan mengambil sebuah contoh game ber-genre arcade yang lebih memfokuskan pada perolehan point, sehingga tidak memiliki alur cerita. Sehingga, storyboard pada game arcade tersebut adalah bagaimana player dapat mengumpulkan nilai/point setinggi mungkin untuk bisa memenangkan game tersebut.


BAB III

Artificial Intelligence dalam Game
Salah satu unsur yang berperan penting dalam sebuah game adalah kecerdasan buatan. Dengan kecerdasan buatan, elemen-elemen dalam game dapat berperilaku sealami mungkin layaknya manusia.
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)
Untuk pembentukan Artificial Intelligence pada game ternyata digunakan pula algoritma, yaitu jenis pohon n-ary untuk suatu struktur. Implementasi pohon (tree) ini biasa disebut game tree. Berdasarkan game tree inilah sebuah game disusun algoritma kecerdasan buatannya. Artificial intellegence yang disematkan dalam sebuah game yang membentuk analisis game tree biasanya merepresentasikan kondisi atau posisi permainan dari game sebagai suatu node, dan merepresentasikan langkah yang mungkin dilakukan sebagai sisi berarah yang menghubungkan node kondisi tersebut ke anak (child) sebagaimana representasi suatu pohon (tree).
Namun, biasanya representasi langsung tersebut mempunyai kelemahan, yaitu representasi data pohon akan menjadi sangat lebar dan banyak. Mungkin bagi sebuah mesin komputer mampu melakukan kalkulasi sebanyak apapun masalah, namun game tree yang lebar dan besar memberikan beberapa masalah, antara lain konsumsi proses memori, kapasitas penyimpanan yang cukup besar dan kinerja yang kurang pada konsol game berspesifikasi rendah. Karena itu dibentuklah beberapa algoritma dan penyederhanaan bagi sebuah game tree.
Pada salah satu contoh game klasik, yaitu tic tac toe, penyederhanaan dapat dilakukan dengan berbagai metode. Salah satu diantaranya adalah minimax. Metode ini berhasil diterapkan dan memberikan nilai reduksi yang cukup signifikan. Dan tidak hanya bisa digunakan secara monoton, minimax juga bisa digunakan untuk game-game yang lebih rumit seperti catur, tentunya dengan algoritma dan representasi berbeda.
Minimax yang merupakan salah satu metode penerapan (implementasi) pohon n-ary pada suatu game, menandakan bahwa implementasi struktur (pohon khusunya) sangatlah diperlukan pada pembuatan dan penerapan Artificial Intelligence, dan tidak menutup kemungkinan ilmu dan metode baru yang lebih canggih akan ditemukan di masa depan.

 

A. Decision Making

Decision Making merupakan serangkaian algoritma yang dirancang sedemikian rupa dengan cara memasukkan beberapa kemungkinan langkah yang bisa diambil oleh suatu aplikasi. Decision Making pada game memberikan kemampuan suatu karakter untuk menentukan langkah apa yang akan diambil. Cara kerja dari Decision Making adalah dengan menentukan satu pilihan diantara banyak list yang telah dibuat pada algoritma yang dirancang.
Decision Making sendiri terbagi menjadi 3 bagian yakni :

1. Decision Tree

Decision Tree atau biasa disebut pohon keputusan merupakan metode klasifikasi dan prediksi yang sangat kuat dan terkenal. Metode pohon keputusan mengubah fakta yang sangat besar menjadi pohon keputusan yang mempresentasikan aturam. Aturannya dapat dengan mudah dipahami dengan bahasa yang alami. Aturan ini juga dapat diekspresikan dalam bentuk bahasa basis data seperti SQL untuk mencari record pada kategori tertentu. Selain itu, 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).

2. State Machine

FSM(Finite State Machines) merupakan sebuah metodologi perancangan sistem kontrol yang menggambarkan tingkah laku atau prinsip kerja sistem dengan menggunakan tiga hal berikut :
§  State(Keadaan)
§  Event(Kejadian)
§   Action(Aksi)
Pada suatu saat ketika periode waktu yang cukup signifikan, sistem akan berada pada salah state yang aktif. Kemudian sistem dapat beralih atau bertransisi menuju state yang lain jika mendapatkan suatu masukan atau event tertentu, baik yang berasal dari perangkat luar ataupun komponen dalam sistemnya itu sendiri. Transisi keadaan ini biasanya disertai oleh aksi yang dilakukan oleh sistem ketika menanggapi masukan. Aksi yang dilakukan dapat berupa aksi yang sederhana atau bisa melibatkan rangkaian proses yang relative kompleks.

3. Rule System

Rule Based System merupakan metode pengambilan keputusan yang 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 dipresentasikan oleh set aturan yaitu penyebab, proses dan hasil dari tindakan yang dilakukan.
RBS merupakan sistem yang baik jika menjawab pertanyan mengenai What(Apa), How(Bagaimana), dan Why(Mengapa) dari Rule Base(RB) selama proses inferensia. Jawaban serta penjelasannya dapat disediakan dengan baik.

B. 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.
Metode pada Path Finding terbagi menjadi 4 bagian yakni:

1. Waypoints

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.


Referensi :
BAB 1
https://witanduty.wordpress.com/6/
https://infokomputer.grid.id/2015/10/berita/berita-reguler/game-pc-masih-mendominasi/
http://dinyfr.blogspot.co.id/2013/10/3d-engine-dan-scene-graph_20.html
BAB 2
https://septianbudiuntoro.wordpress.com/2016/03/12/konsep-pembuatan-script-game-komputer/
BAB 3
https://setiyanugroho.wordpress.com/2011/04/12/kecerdasan-buatan-dalam-game/
https://septianbudiuntoro.wordpress.com/2016/04/19/artificial-intelligence/


Share:

greenday

BTemplates.com