Minggu, 08 Mei 2016

TUGAS PENGANTAR TEKNOLOGI GAME 3



ANALISA GAME
Aplikasi Permainan Agar.io Menggunakan Algoritma Greedy
Agar.io merupakan game online multiplayer berbasis web base dengan gameplay dimana player bertahan pada area permainan dan menjadikan dirinya menjadi lebih besar dengan memakan makanan atau lawan yang lebih kecil pada area permainan, yang dapat dimainkan hanya dengan bermodalkan koneksi internet dan aplikasi browser yang telah terinstall addons flash player. Tidak hanya media komputer, setalah semakin populer Agar.io kini dapat dimainkan pada smartphone juga.
 


Sampai saat ini Agar.io sendiri memiliki 3 mode permainan yang dapat dimainkan :

  • FFA (Free-For-All) Mode : Disini Kita Bisa Bermain Menggunakan Skin. Misismu Adalah Menjadi No 1 di leaderboards
  • Teams Mode : Di Mode ini Ada Tiga Warna Sel : Biru, Merah Dan Hijau Ketiga Tim Tersebut Harus Bersaing Untuk Mendominasi Map Tersebut, Bekerjasamalah Untuk Mendapat Hasli Yang Terbaik
  • Experimental Mode : Di Sini Kita Tetap bisa menggunakan Skin. Di Tengah Map Ada Cell Berwarna Coklat Besar yang Disebut Mother Cell (Sel Induk)
Algoritma greedy merupakan jenis algoritma yang menggunakan pendekatan penyelesaian masalah dengan mencari nilai maksimum sementara pada setiap langkahnya. Algoritma greedy adalah algoritma yang besifat heuristik, mencari nilai maksimal sementara dengan harapan akan mendapatkan solusi yang cukup baik. Meskipun tidak selalu mendapatkan solusi terbaik (optimum), algoritma greedy umumnya memiliki kompleksitas waktu yang cukup baik, sehingga algoritma ini sering digunakan untuk kasus yang memerlukan solusi cepat meskipun tidak optimal seperti sistem real-time atau game.

 

Bisa dikatakan bahwa algoritma ini merupakan algoritma yang digunakan pada game Agar.io, karea jika dilihat dari gameplaynya bahwa player harus bertahan hidup dengan tidak dimakan oleh lawan yang lebih besar dan menjadikan dirinya makin besar pada arena permainan dengan cara mamakan makanan yang ada dan memakan lawan lain yang lebih kecil pada arena permainan. Dengan kata lain game ini sangat memenuhi Prinsip utama dari algoritma greedy yang berbunyi “ take what you can get now! ” 


Aplikasi Permainan Battleship Menggunakan Algoritma Backtracking Dengan Breadth First Search 
Battleship merupakan permainan berjenis  board  game.  Cara memainkannya dengan  menembakan  kotak-kotak  yang  kosong  pada  papan permainan   sampai  salah  satu  menang  antara  pemain  atau  komputer  (AI). Permainan  battleship  ini  berbasis  komputer  memiliki  kecerdasan  buatan  atau Artificial Intelligence (AI) sehingga permainan ini tidak membutuhkan dua orang untuk bermain.  Selain juga tidak memerlukan dua orang untuk bermain, pemain juga dapat menimati permainan battleship ini dengan kecerdasan buatan (AI) yang dilengkapi   dengan   algoritma   atau   metode.  
Metode   yang   diambil   sebagai pembuatan  permainan   battleship   ini  adalah  algoritma  backtracking  dengan menggunakan metode BFS. Tujuan  dari  pembuatan  aplikasi  ini  adalah  agar  pemain  yang  ingin memainkan  permainan  battleship  ini  dapat  menjalankan  aplikasi  ini  dengan algoritma yang sudah dilengkapi dengan pencarian solusi yang dibuat. Gambaran permainan  battleship  ini seperti permainan  yang  saling menghancurkan,  tetapi yang tema yang  diambil dalam pembuatan aplikasi ini adalah apakah pencarian solusi  dengan  menggunakan  algoritma  backtracking  metode  BFS  merupakan metode atau algoritma  yang sangat efisien dalam aplikasi permainan battleship ini.
 Aplikasi  permainan  battleship  ini  dibuat  dengan  menggunakan  metode waterfall    dengan   pemodelan   Unified   Modeling  Language   (UML).  Serta menerapkan   algoritma   backtracking metode   BFS.   Aplikasi   menggunakan penerapan  pencarian  solusi  yang  digunakan  dengan  menggunakan  algoritma backtracking. Aplikasi ini dapat digunakan sebagai media hiburan. Selain sebagai media  hiburan,  aplikasi  ini  pun  dapat  dikembangkan  dengan  fitur  yang  lebih menarik lagi.  





Aplikasi Algoritma Greedy pada Permainan Tower Defense
Permainan Tower Defense (TD) merupakan permainan strategi pengaturan tower (bangunan, senjata, naga, tanaman, dan lain-lain) yang bertujuan menghentikan musuh yang akan melintas. Tower ini akan menembaki musuh dalam radiusnya. Tower memiliki beberapa tipe dan level dengan kemampuan, biaya pembelian, biaya penggunaan, dan biaya upgrade yang berbeda. Untuk setiap musuh yang berhasil dikalahkan, pemain akan mendapatkan uang untuk meng-upgrade towers. Strategi dalam permainan ini mencakup pemilihan tower yang akan di-upgrade. 

Permainan ini biasanya memiliki misi untuk meminimalkan jumlah musuh yang lolos atau menjaga sejumlah barang. Pemain dianggap menang jika jumlah musuh yang lolos kurang dari batas yang ditentukan atau barang yang dijaga masih ada.  
Komputer bermain menggunakan algoritma greedy, sedangkan manusia bermain menggunakan akal dan intuisinya. Program yang dibuat harus memungkinkan melakukan permainan TD dengan pemainnya adalah: 1. User (manusia) lawan komputer 2. Komputer dengan dirinya sendiri. 
Jika pemainnya adalah user (manusia) versus komputer, maka manusia akan mengatur kemampuan sejumlah tower yang ada, dan komputer akan mengaplikasikan algoritma greedy untuk melakukan penyusunan rombongan musuh (wave) agar semakin banyak musuh yang dapat lolos. Penyusunan rombongan musuh dibatasi oleh jumlah uang yang tersedia. Penyusunan wave ini akan dilakukan setelah tower selesai diatur. 
Jika pemain adalah komputer versus dirinya sendiri, maka pihak komputer pertama mengaplikasikan algoritma greedy  untuk penyusunan wave, dan pihak komputer kedua mengaplikasikan algoritma greedy untuk pengaturan kemampuan tower. Pengaturan tower akan dilakukan setelah hasil penyusunan wave diberikan. 
Anda harus merancang minimal masing-masing dua buah strategi greedy yang berbeda (greedy by X dan greedy by Y) untuk penyusunan rombongan musuh (wave) dan strategi pengaturan kemampuan tower. Deskripsi algoritma greedy tersebut harus dapat memperlihatkan properti algoritmanya, yaitu himpunan kandidiat, himpunan solusi, fungsi seleksi, fungsi kelayakan, dan fungis obyektif.


ALGORITMA KNUTH MORRIS PRATT PADA GAME HANACARAKA

Hanacaraka adalah game ber-genre word puzzle game yang dapat digunakan sebagai media pengenalan aksara jawa bagi orang umum dengan implementasi algoritma Knuth Morris Pratt pada pencocokan string-nya yang dapat dimainkan pada platform mobile berbasis OS Android.
Dalam game ini, terdapat soal yang ditulis dengan aksara jawa dan juga gambar sebagai pendukung, kemudian pemain diminta untuk menerjemahkan aksara jawa tersebut ke dalam aksara latin kemudian digabungkan dengan gambar yang ada untuk mengetahui jawaban dari soal tersebut. Setelah itu menuliskan jawabannya ke dalam field yang sudah disediakan.
Algoritma yang digunakan untuk pencocokan string pada game Hanacaraka  adalah menggunakan algoritma Knuth Morris Pratt atau sering disingkat menjadi algoritma KMP. Algoritma Kunth Morris Pratt sendiri adalah algoritma yang dikembangkan secara terpisah oleh D. E. Knuth pada tahun 1967, dan J.H Morris bersama V. R. Pratt pada tahun 1966, namun keduanya mempublikasikannya secara bersamaan pada tahun 1977 (Munir, 2007).
Tidak seperti algoritma Brute Force yang mencocokkan string dengan melakukan pengecekan dan melakukan pergeseran setiap satu karakter, pada algoritma Knuth Morris Pratt informasi ketidak cocokan pattern dengan teks disimpan untuk menentukan jumlah pergeseran. Sehingga algoritma Knuth Morris Pratt melakukan pergeseran lebih jauh sesuai dengan informasi yang disimpan, yang menyebabkan waktu pencarian dapat dikurangi secara signifikan.  
Selain itu, dari penyimpanan informasi pada pencocokan string yang dilakukan algoritma Knuth Morris Pratt dapat diambil keuntungan lain. Yaitu dari informasi yang disimpan dapat digunakan untuk menentukan berapa persen kedekatan string yang akan dicocokkan dengan pattern yang ada. Dan hal ini juga yang diimplementasikan pada game Hanacaraka. Sehingga apabila pemain salah dalam memasukkan jawaban, maka akan dilihat berapa persen kesalahannya. Apabila kesalahan nya kurang dari 30 persen maka status jawabanyya bukan “salah”, melainkan “hampir benar” dan nyawa yang diberikan kepada pemain tidak berkurang.

PENGGUNAAN ALGORITMA GREEDY PADA ARTIFICIAL INTELIGENCE DALAM PERMAINAN DEFENCE OF THE ANCIENTS

Defence of the Ancients (atau disingkat DotA) adalah sebuah peta buatan untuk permainan komputer buatan Blizzard berjudul Warcraft III : Frozen Throne, yang dibuat berdasarkan map “Aeon of Strife”dari permainan Blizzard lainnya, Starcraft. Tujuan utama permainan ini adalah untuk menghancurkan “Ancient” musuh, sebuah struktur yang dijaga ketat di pojok kiri bawah atau  (yang satu untuk sisi sendiri dan yang satu lagi untuk sisi musuh). Kedua sisi yang bertarung adalah The Sentinel dan The Scourge. Permainan dapat menggunakan tokoh kuat yang disebut pahlawan dan dibantu oleh pasukan sekutu dan anak buah petarung yang dikontrol oleh Artificial Inteligence. Seperti dalam permainan peran lainnya, pemain dapat meningkatkan level tokoh pahlawan mereka dan menggunakan emas untuk membeli perlengkapan selama permainan, DotA dapat dimainkan dengan sistem pemain lawan pemain dan pemain lawan Artificial Inteligence.

Pahlawan dapat membeli senjata untuk digunakan dalam pertempuran. AI dalam melakukan pembelian barang menggunakan algoritma Greedy. Dengan uang yang dimiliki oleh AI, AI akan membeli senjata termurah yang dapat dibeli dengan uang yang dimilikinya, akan tetapi pembelian barang dan senjata tidak sembarangan karena setiap AI sudah memiliki daftar senjata yang harus dibeli untuk pahlawan yang digunakannya.

Dalam menghancurkan anak buah petarung, AI menggunakan algoritma Greedy. AI akan menghancurkan anak buah petarung yang memiliki darah tersedikit dan berada di sekitarnya. Dalam melakukan penghancuran anak buah petarung ini, AI memiliki tiga perhitungan prioritas yaitu:
·         Anak buah petarung teman.
·         Anak buah petarung musuh.
·         Anak buah petarung terdekat.
Dalam penggunaan algoritma Greedy dalam hal ini akan tepat sekali jika digunakan bersama algoritma Divide and Conquer. Dengan menggunakan algoritma Divide and Conquer akan sangat memudahkan AI untuk mendeteksi anak buah petarung yang sekarat. Sehingga kebutuhan akan komputasi sistem permainan yang cepat pun akan tercapai.

Dalam memperhitungkan kapan menyerang pahlawan musuh, AI juga akan menggunakan algoritma Greedy. Selama AI berada dalam posisi menguntungkan, yaitu:
1. Pahlawan AI memiliki jarak serang yang lebih jauh dibandingkan dengan jarak serang      pahlawan musuh.
2. Pahlawan AI memiliki darah yang lebih banyak dibandingkan pahlawan musuh.
3. Pahlawan AI memiliki tingkatan yang lebih tinggi dibanding pahlawan musuh.
4. Pahlawan musuh berada di wilayah kekuasaan AI.
5. Pahlawan musuh menyerang pahlawan AI.
6. Pahlawan AI memiliki persedian obat-obatan.
7. Dan kondisi lainnya yang menguntungkan bagi AI.
Kelebihan dari algoritma Greedy dalam hal ini, dengan kondisi awal yang jelas, AI menjadi lebih hati-hati dalam menyerang dan bertahan. Dan kekurangannya adalah AI tidak terlalu memikirkan keadaan setelah aksi yang dilakukannya, misal AI menyerang pahlawan musuh, AI akan terus menyerang walaupun pahlawan musuh dibantu oleh anak buah petarungnya. Sehingga menyebabkan AI akan cepat memasuki kondisi yang tidak menguntungkan baginya.

Kekurangan lainnya adalah serangan yang dilakukan tidak menghancurkan pahlawan musuh. Karena pahlawan AI menyerang ketika berada pada kondisi yang menguntungkannya bukan ketika pahlawan musuh tidak menguntungkan. Tujuan penyerangan yang dilakukan oleh AI untuk menghancurkan tetapi terkadang tidak tercapai karena serangan yang lemah, tidak adanya skill yang dapat membantu dalam penyerangan, atau pahlawan musuh berada dalam kondisi yang baik atau tidak sekarat. 

Kekurangan algoritma Greedy yang digunakan dalam usaha kabur adalah AI tidak memikirkan apa saja yang akan terjadi di masa mendatang, jadi ketika sedang berada di posisi yang tidak menguntungkan bagi pahlawannya maka AI akan kabur walaupun terkadang pahlawannya dapat menghancurkan bangunan atau pahlawan musuh dengan kondisi pahlawannya yang tidak menguntungkan tersebut. Tetapi di kasus lain, algoritma Greedy ini memberikan solusi terbaik yaitu menghindarkan pahlawan AI untuk dihancurkan.

Dalam penggunaan skill pahlawan, AI juga menggunakan algoritma Greedy. Jika terdapat banyak anak buah petarung dan pahlawan musuh dalam satu daerah AI akan otomatis mengeluarkan skill area yang dapat memberikan kerusakan ke banyak unit. Keuntungannya, AI mendapatkan banyak uang dari banyaknya anak buah petarung yang hancur dan sekaligus memberikan kerusakan kepada pahlawan musuh. Kekurangannya karena hanya menginginkan uang, biasanya serangan ini tidak dilanjutkan dengan serangan lainnya yang bersifat serius untuk menghancurkan pahlawan musuh (jika berada pada posisi yang tidak menguntungkan bagi AI).  

Dalam melindungi bangunannya AI memiliki dua cara yaitu menggunakan Glyph yang menyebabkan bangunan menjadi kebal dan mendatangi bangunan dan melindunginya secara langsung. Beberapa keuntungan dalam penggunaan algoritma Greedy di dalam perlindungan bangunan ini adalah AI sangat protektif dengan bangunannya. Tetapi tentu saja terdapat kekurangan yang sangat mendasar dari algoritma ini ketika digunakan dalam perlindungan bangunan.






Sumber :
Aliyanto, Arif., Ishak, Novendo, Felix. 2013. Aplikasi Permainan Battleship Menggunakan Algoritma Runut-Balik Dengan Breadth First Search.Semantik,Semarang.
Zaky, Mahan, Abi.2015.Implementasi Algoritma Knuth Morris Pratt pada Perancangan Game Hanacaraka.
Nevada, Gurun.2011.Penerapan Algoritma Greedy pada Artificial Inteligence dalam Permainan Defence of the Ancient.
http://luckybinuntung.b

Minggu, 17 April 2016

TUGAS PENGANTAR TEKNOLOGI GAME 2


MACAM-MACAM SOFTWARE UNTUK MEMBUAT GAME

TURBO PASCAL GRAPH.TPU
Sebagian besar orang pernah menggunakan GRAPH.TPU dalam pemrograman graphic. GRAPH.TPU merupakan unit dari Turbo Pascal yang menyediakan banyak fasilitas untuk pemrograman graphic. Procedure-procedure untuk pembuatan garis, lingkaran, pengisian warna dan sebagainya ada di dalam unit ini.
Dalam penggunaannya, GRAPH.TPU perlu dibantu dengan driver-driver yang dikemas dalam file berekstensi BGI (Borland Graphic Interface) diantaranya CGA.BGI dan EGAVGA.BGI. Kegunaan dari file BGI ini adalah sebagai driver monitor yang nantinya akan digunakan.
Selain itu terdapat pula file-file font berekstensi OBJ yang menyimpan tipe-tipe huruf yang dapat kita gunakan. Dengan adanya file-file ini, kita dapat menampilkan tulisan dalam mode graphic dengan model/style yang berbeda-beda. Dengan GRAPH.TPU kita bisa membuat game arcade pesawat, game space invader dan sebagainya.

SCRATCH
Scratch merupakan bahasa pemrograman yang tidak rumit dan bahasa pemrograman tersebut digantikan dengan tombol-tombol yang mudah diaplikasikan dengan memakai konsep blok program yang dapat diklik, drag dan drop, yang didalamnya terdapat bahasa visual.
Pada Scratch sebuah program diwakili sebuah proyek, kode terkecil disebut blok dan kumpulan blok membentuk script, script pada Scratch berupa kumpulan-
kumpulan perintah untuk menjalankan suatu sprite, didalam pengembangan simulasi
Scratch terdapat unsur pada simulasi non fisik dan fisik.
Scratch mendukung adanya pengaturan dan penambahan suara untuk
simulasinya, penambahan untuk banyak gambar yang mendukung sebuah
simulasinya. Didalam Scratch terdapat beberapa komponen yang berfungsi untuk
mengoperasikan Scratch, diantaranya yaitu :
1. Komponen Background merupakan komponen yang berfungsi sebagai latarlatar
    cerita interaktif animasi maupun game. Scratch menyediakan beberapa
    background yang siap pakai meliputi : indoors, nature, outdoors, sports dan
    Xy-grid.
2. Komponen Sprite merupakan komponen yag berguna sebagai gambar dan
    animasi. Sprite dalam Scratch terdiri dari animasi, fantasy, letters, people,
    thing, transportation.
3. Komponen Script merupakan komponen yang berisi instruksi-instruksi
    (perintah). Script pada program Scratch divisualisasikan dalam bentuk blokblok
    seperti memasang sebuah puzzle.
4. Komponen Sounds merupakan komponen yang berguna untuk menambahkan
    efek suara pada cerita interaktif agar dapat membuat cerita lebih menarik dan
    lebih hidup. Adapun beberapa efek sounds yang tersedia dalam Scratch yaitu
    animal, percussion, effects, vocals, electronic, instrument, human, dan music
   loops.

GAME MAKER
Game Maker adalah tools untuk membuat game komputer pc dengan mudah.
Dalam Game Maker terdapat fitur yang lengkap, pengembangan secara drag &
drop, tetapi jika bisa menguasai bahasa GML (Game Maker Language) maka akan mampu membuat game yang professional. Game Maker terdiri dari 2 edisi yaitu edisi Lite dan Pro. Keduanya mempunyai potensi yang besar untuk bisa membuat game.

UNITY
Unity 3D merupakan sebuah game engine, yaitu software pengolah gambar, grafik, suara, input dan lain-lain yang ditunjukan untuk membuat game. Unity 3D merupakan game engine multiplatform yang mampu dipublish secara standalone (.exe) berbasis web, android, Ios, XBOX maupun PS3, dengan catatan mendapatkan lisensi.
Unity dibuat oleh Unity Technology dimana pendirinya adalah David Helgason, Nicholas Francis dan Joachim Ante. Game engine ini dibangun atas dasar kepedulian mereka terhadap indie developer yang tidak bisa membeli game engine karena terlalu mahal. Kelebihan Unity dibanding game engine lainnya adalah kemampuan membuat game cross platform. Dengan Unity 3D game yang kita buat dapat dimainkan dismartphone dan game console.
Unity adalah sebuah game engine yang memungkinkan anda, baik perseorang mau pun tim, untuk membuat sebuah game 3D dengan mudah dan cepat. Secara default, Unity telah diatur untuk pembuatan game bergenre First Person Shooting (FPS), namun Unity juga bisa digunakan untuk membuat game bergenre Role Playing Game (RPG), dan Real Time Shooting (RTS).
Unity dibagi menjadi dua versi yaitu versi pro (berbayar) dan versi personal (gratis). Pada versi personal terdapat beberapa fitur yang tidak dapat digunakan seperti tidak dapat melakukan konversi game ke console.

Sumber :
 Nalwan, Agustinus.Pemrograman Animasi dan Game Profesional.PT Elex Media Komputindo,Jakarta,1995.
 Kadir, Abdul dan Lukman Arif Nureito-cet.1.Bahasa Pemrogramman Scratch.MediaKom,Yogyakarta,2011.
 http://tutorial-gamemaker.blogspot.com/2010/07/game-maker-software-pembuat-game.html
 Roedavan, Rickman. UNITY-Tutorial GameEngine. Informatika, Bandung, 2016.
 Seno, Bowo, Tomy dan Andang.Mudah Membuat Game 3 Dimensi Menggunakan Unity 3D.Wahana Komputer,Semarang,2014.

Rabu, 16 Maret 2016

TUGAS PENGANTAR TEKNOLOGI GAME

Arsitektur Game Engine

Game engine adalah sebuah sistem perangkat lunak (software) yang dirancang untuk pembuatan dan pengembangan suatu video game. Game engine memberikan kemudahan dalam menciptakan konsep sebuah game yang akan di buat. Mulai dari sistem rendering, physics, aristektur suara scripting, AI, dan bahkan system networking. Game engine dapat dikatakan sebagai jiwa dari seluruh aspek sebuah game. 

Tujuan digunakannya game engine adalah untuk mempermudah pembuatan bagian-bagian tertentu dalam game, membagi-bagi pengembangan game menjadi modul-modul tertentu, dan memudahkan kolaborasi antar pihak.


A.      Tipe-tipe Game Engine

Game engine biasanya datang dengan berbagai macam jenis dan ditujukan untuk berbagai kemampuan pemrogramman. Berikut ini beberapa tipe dari game engine.

- Roll Your-Game Engine

Game engine tipe lebih disukai karena selain kemungkinan besar gratis, tipe game engine ini juga memperbolehkan para developer lebih fleksibel dalam mengitegrasikan komponen yang diinginkan untuk dibentuk sebagai game engine mereka sendiri. Namun kelemahan dan tipe game engine ini banyak engine yang dibuat dengan cara semacam ini malah menyerang balik developernya.


- Mostly-Ready-Game Engine

Engine ini biasanya sudah menyediakan semuanya begitu diberikan pada developer/programmer. Semuanya termasuk contoh GUI, phisycs, libraries models, texture dan lain-lain. Banyak dari mereka yang sudah benar-benar matang, sehingga dapat langsung digunakan untuk scripting sejak hari pertama. Game engine semacam mi memiliki beberapa batasan, terutama jika dibandingkan dengan game engine sebelumnya yang benar-benar terbuka lebar. Hal ini ditujukan agar tidak banyak terjadi error yang mungkin terjadi setelah sebuah game yang menggunakan engine ini dirilis dan masih memungkinkan game engine-nya tersebut untuk mengoptimalkan kinerja game-nya. Dengan hal ini dapat menghemat waktu dan biaya dan para developer game.


-  Point-and-Click Engine

Engine ini merupakan engine yang sangat dibatasi, tetapi dibuat dengan sangat user friendly. Anda bahkan bisa mulai membuat game sendiri menggunakan engine seperti GameMAker, Torque Game Builder don Unity3D. Dengan sedikit memanfaatkan coding. Kekurangannya terletak pada terbatasnya jenis interaksi yang bisa dilakukan dan biasanya hal mi 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.



B. Elemen pada Game Engine

Seperti halnya perangkat lunak lainnya, pada game engine juga terdapat beberapa elemen diantaranya:
-          Tools/ Data
Dalam pengembangan game, dibutuhkan data yang tidak semudah menuliskan text files. Dalam pengembangan game, paling tidak dibutuhkan beberapa tools seperti 3d model editor, level editor dan graphics programs. Bahkan jika diperlukan, seringkali kita mengembangkan game engine tersebut dengan menambahkan beberapa code dan fitur yang diperlukan.
-          System
System adalah bagian dan game engine yang berfungsi untuk melakukan komunikasi dengan hardware yang berada di dalam mesin. Jika game engine sudah dibuat dengan baik maka system ini adalah satu-satunya bagian yang membutuhkan perubahan yang cukup banyak apabila dilakukan implementasi pada platform yang berbeda. Di dalam system sendiri terdapat beberapa sub system yaitu graphics, input, sound, timer, configuration. System sendiri bertanggung jawab untuk melakukan inisialisasi, update dan mematikan sub system yang terdapat di dalamnya.
-          Console
Dengan menambahkan console, kita dapat merubah setting game dan setting game engine di dalam game tanpa perlu melakukan restart pada game tersebut. Console sendiri lebih sering digunakan dalam proses debugging. Apabila game engine tersebut mengalami error kita tinggal mengoutputkan error message tersebut ke dalam console tanpa harus melakukan restart. Console sendiri dapat dihidupkan dan dimatikan sesuai keinginan.
-          Support
Support adalah bagian yang paling sering digunakan oleh system di dalam game engine. Support sendiri berisi rumus-rumus matematika yang biasa digunakan seperti : vector, matrix, memory manager, file loader merupakan dasar dari game engine dan hampir digunakan semua projek game engine.
-          Renderer / Engine Core
Pada game engine, engine core/renderer terdiri dan beberapa sub yaitu Visibility, Collision Detection dan Response, Camera, Static Geometry, Dynamic Geometry, Particle Systems, Blilboording, Meshes, Skybox, Lighting, Fogging, Vertex Shading, dan Output.
-          Game Interface
Game interface sendiri merupakan layer diantara game engine dan game itu sendiri. Berfungsi sebagai control yang bertujuan untuk memberikan interface apabila di dalam game engine tersebut terdapat fungsi-fungsi yang bersifat dinamis sehingga memudahkan untuk mengembangkan game tersebut.  
-          The Game
Merupakan inti dari penggunaan game engine sendiri, sehingga user dapat mengembangkan game tersebut sesuai dengan yang diinginkan.


Penerapan Algoritma Game pada Point 5x5




Algoritma greedy adalah metode yang paling popular dan mudah diimplementasikan untuk memecahkan persoalan-persoalan yang membutuhkan suatu optimasi. Dalam permainan Points 5x5, optimasi dilakukan pada saat kapan kita harus mengambil langkah mencoret, berapa kotak yang harus diambil, ataupun langkah mana yang harus dilakukan. Karena algoritma greedy sederhana dan lempang, maka algoritma greedy dapat diterapkan sebagai pemikir komputer dalam permainan Points 5x5 menggantikan pemain manusia.

Algoritma greedy adalah algoritma yang memecahkan masalah langkah per langkah, dan pada setiap langkahnya mengambil pilihan yang terbaik yang dapat diperoleh pada saat itu tanpa memperhatikan konsekuensi ke depan. Berharap bahwa dengan memilih optimum lokal pada setiap langkah akan berakhir dengan optimum global. Algoritma ini mengasumsikan bahwa optimum lokal adalah optimum global, karena itu jika tiap langkah didapatkan optimum lokal, maka akan diperoleh optimum global pada akhir penyelesaian masalah.

Dalam penerapan algoritma greedy sebagai pemain komputer pada permainan Points 5x5, algoritma ini memiliki batasan-batasan tertentu. Misalnya, algoritma ini hanya mencari pasangan titik yang tidak membentuk garis ketiga dalam kotak atau pasangan titik yang dapat membentuk sebuah kotak.

Algoritma greedy terdiri dari beberapa elemen, yaitu himpunan kandidat (C) yang berisi elemen pembentuk solusi, himpunan solusi (S) yang berisi kandidat yang terpilih sebagai solusi persoalan, fungsi seleksi yaitu fungsi yang pada setiap langkah meimilih kandidat yang paling memungkinkan untuk mencapai solusi optimal, fungsi kelayakan (feasible) yaitu fungsi yang memeriksa apakah suatu kandidat yang telah dipilih dapat memberikan solusi yang layak (kandidat tersebut bersama-sama dengan himpunan solusi yang sudah terbentuk tidak melanggar kendala yang ada), dan fungsi objektif yaitu fungsi yang memaksimumkan atau meminimumkan nilai solusi.

Dalam persoalan permainan Points 5x5, himpunan kandidat adalah titik-titik yang belum dihubungkan oleh garis. Banyaknya himpunan ini adalah (m+1)(n+1) dengan m adalah panjang papan dan n adalah lebar papan. Himpunan solusi adalah pasangan titik yang tidak dapat membentuk garis ketiga dalam kotak ataupun pasangan titik yang dapat membentuk sebuah kotak. Jika tidak ditemukan pasangan titik tersebut maka himpunan solusi adalah pasangan titik yang dipilih secara acak yang dapat membentuk garis. Fungsi seleksi dalam algoritma ini adalah fungsi yang mencari pasangan titik yang dapat membentuk garis. Fungsi kelayakan adalah fungsi yang memeriksa pasangan titik yang diambil tidak membentuk garis ketiga dalam kotak. Sedangkan fungsi objektif adalah fungsi yang membentuk sebuah kotak.

Algoritma ini terdiri dari dua bagian yaitu mencari titik-titik yang dapat membentuk kotak terlebih dahulu kemudian jika tidak ditemukan maka dicari pasangan titik yang tidak membentuk garis ketiga dalam kotak. Secara umum, dua bagian ini memiliki bentuk perulangan yang sama, hanya saja berbeda pada fungsi kelayakan yang digunakan. Dalam algoritma secara keseluruhan, diprioritaskan pencarian pasangan titik yang dapat membentuk kotak terlebih dahulu dengan tujuan agar komputer mendapatkan poin sebanyaknya.

Algoritma ini berjalan menelusuri titik-titik yang ada dan memeriksa apakah dua titik yang ditemukan dapat membuat garis atau tidak (dengan fungsi seleksi). Kemudian setelah ditemukan pasangan titik yang dapat membuat garis, himpunan kandidat dikurangi dengan pasangan titik ini agar pasangan titik ini tidak dicek lagi saat pengulangan berikutnya. Fungsi kelayakan digunakan untuk memeriksa apakah pasangan titik ini dapat membentuk kotak atau tidak membentuk garis ketiga dalam kotak.

Tujuan dari algoritma ini adalah untuk mendapatkan poin sebanyak-banyaknya dengan cara memilih pasangan titik yang dapat membuat kotak. Jika tidak ditemukan, maka algoritma ini memilih pasangan titik yang tidak membuat garis ketiga pada kotak agar lawan tidak mengambil poin dari kotak yang hampir jadi tersebut.


Referensi :

Grivin Wilsen Mokodaser, April 2003, "Game Engine".




  


Rabu, 03 Februari 2016

TUGAS DISAIN PERMODELAN GRAFIK

Different Cubehelix Palettes


Martha Dinalova
55413316
3IA15


Buku Different Cubehelix Palettes ini disusun untuk mengembangkan materi dan memenuhi tugas Softskill yang dapat mendorong berkembangnya kompetensi mahasiswa/i. Mahasiswa/i dapat menggunakan buku ini sebagai referensi pelajaran bedasarkan petunjuk dosen. 

Buku ini dilengkapi dengan penjelasan materi mengenai Different Cubehelix Palettes. Materi yang dipaparkan bukan hanya materi mengenai Different Cubehelix, namun juga materi kasus atau contoh pemanfaatan perangkat lunak Different Cubehelix Palettes agar mahasiswa/i dapat memahami materi dan pemanfaatan Different Cubehelix Palettes. 

Penulis menyadari bahwa karena sulitnya percetakan notasi dan gambar pada buku ini masih sangat banyak kesalahan cetak maupun kekurangsempurnaan gambar yang terjadi. Semoga dalam cetakkan berikutnya dapat diadakan koreksi dan perbaikan seperlunya. Disamping kesalahan cetak tersebut, susunan dan isi buku ini pun masih belum memadai, karena itulah segala kritik dan saran yang membangun sangat diharapkan. Semoga buku ini dapat bermanfaat bagi yang membacanya.

Untuk Buku Different Cubehelix Palettes selengkapnya dapat didownload pada link dibawah ini :