TEORI GAME
Teori game adalah suatu model matematika yang diterapkan untuk menganalisa situasi persaingan dan konflik antara berbagai kepentingan sehingga dapat mengambil suatu keputusan. Teori permainan ini awalnya dikembangkan oleh seorang ahli matematika perancis yang bernama Emile Borel pada tahun 1921. Yang selanjutnya dikembangkan lebih lanjut oleh John Van Neemann dan Oskar Morgenstern sebagai alat untuk merumuskan perilaku ekonomi yang bersaing. John Van Neemann dan Oskar Morgenstern mengungkapkan bahwa, “Permainan terdiri atas sekumpulan peraturan yang membangun situasi bersaing dari dua sampai beberapa orang atau kelompok dengan memilih strategi yang dibangun untuk memaksimalkan kemenangan sendiri atau pun untuk meminimalkan kemenangan lawan. Peraturan-peraturan menentukan kemungkinan tindakan untuk setiap pemain, sejumlah keterangan diterima setiap pemain sebagai kemajuan bermain, dan sejumlah kemenangan atau kekalahan dalam berbagai situasi.”
Dari pengertian diatas dapat disimpulkan bahwa, teori bermain adalah merupakan suatu teori yang mengedepankan konsep konsep dalam suatu permainan sebagai landasan. Dimana didalam permainan terdapat peraturan, yang secara langsung mampu menciptakan situasi bersaing dan digunakan untuk mencari strategi terbaik dalam suatu aktivitas, dimana setiap pemain didalamnya sama-sama mencapai utilitas tertinggi.
Contoh game:
• Intel vs AMD
• Penulis buku dengan pembacanya
• Maskapai penerbangan dengan penumpangnya
• Penjual dengan pembeli
Asumsi-asumsi Teori game:
Agar game dapat dimodelkan secara matematis, diperlukan 4 elemen dasar dari sebuah game:
1. Pemain
2. Tindakan
3. Payoff
4. Informasi
Keempat elemen itu disebut juga Rules of The Game. Para pemain berusaha memaksimalkan payoff mereka, dengan cara memilih strategi yang tepat berdasarkan informasi yang mereka miliki. Keadaan di mana setiap pemain telah menentukan strategi yang optimal disebut kesetimbangan (equilibrium). Dengan mengetahui kesetimbangan dari suatu game, pemodel dapat mengetahui tindakan/strategi apa yang dipilih oleh para pemain yang terlibat, dan juga outcome dari game tersebut.
Asumsi-asumsi dasar:
- Setiap pemain memiliki strategi yang berhingga banyaknya (finite), dan mungkin berbeda dengan pemain lainnya.
- Setiap pemain bersikap rasional yaitu berusaha memilih strategi yang memberikan hasil paling optimal bagi dirinya, berdasarkan payoff dan jenis game yang dimainkan.
Model Game:
• Klasifikasi berdasarkan jumlah pemain:
- Game dua-pemain (2-person)
- Game N-pemain (N ≥ 3)
• Klasifikasi berdasarkan jumlah keuntungan dan kerugian:
- Game jumlah-nol (zero-sum game)
- Jumlah payoff dari setiap pemain sama dengan nol. Untuk game dengan 2 pemain, besar keuntungan di satu pihak sama dengan besar kerugian di pihak lain.
- Game bukan jumlah-nol (non zero-sum game)
Jumlah payoff dari setiap pemain tidak sama dengan nol. Untuk game dengan 2 pemain, besar keuntungan di satu pihak tidak sama dengan besar kerugian di pihak lain.
• Klasifikasi berdasarkan jumlah strategi:
- Game strategi-murni (pure-strategy game)
- Game strategi-campuran (mixed-strategy game)
• Klasifikasi berdasarkan urutan (giliran) bermain:
- Game sekuensial
Pemain melakukan tindakan secara bergantian. Pemain berikutnya mengetahui tindakan yang diambil oleh pemain sebelumnya (mungkin secara tidak utuh).
- Game simultan
Pemain melakukan tindakan secara bersamaan. Pada saat mengambil tindakan, pemain yang terlibat tidak mengetahui tindakan yang dipilih oleh pemain lainnya. Dalam hal ini jeda waktu pengambilan tindakan antara sesaa pemain tidak berpengaruh terhadap pilihan yang diambil oleh pemain ybs.
• Klasifikasi berdasarkan kesempurnaan informasi:
- Game dengan informasi sempurna
Pemain mengetahui dengan pasti tindakan yang diambil oleh lawannya, sebelum ia memilih tindakan → asumsi ini hanya dapat dipenuhi oelh game sekuensial.
- Game dengan informasi tidak sempurna
Pemain tidak mengetahui tindakan yang dipilih lawannya sebelum permainan berakhir.
• Klasifikasi berdasarkan kelengkapan informasi:
- Game dengan informasi lengkap
Pemain mengetahui payoff lawannya.
- Game dengan informasi tidak lengkap
Pemain tidak memiliki informasi lengkap tentang payoff lawannya.
• Klasifikasi berdasarkan adanya kesepakan (komitmen):
- Game kooperatif
Para pemain membuat komitmen yang mengikat (binding commitment) untuk meningkatkan outcome mereka.
- Game nonkooperatif
Para pemain tidak membuat komitmen yang mengikat.
Payoff
Payoff adalah angka yang menunjukkan hasil dari strategi permainan yang diinginkan oleh ybs. Hasil ini dinyatakan dalam bentuk ukuran efektivitas, seperti uang, persentase market share, atau kegunaan. Dalam suatu permainan, payoff dapat dipresentasikan dalam bentuk matriks payoff.
Untuk permainan dua-pemain bukan-jumlah-nol (2-person non-zero-sum game), payoff direpresentasikan dalam bentuk bimatriks.
Untuk permainan dua-pemain jumlah-nol (2-person zero-sum game), payoff direpresentasikan dalam bentuk matriks dan atau bimatriks.
Strategi
Strategi permainan adalah rangkaian rencana kegiatan yang menyeluruh dari pemain ybs, sebagai respon atas aksi yang mungkin dilakukan oleh pemain lain (pesaingnya). Suatu strategi dikatakan dominan bila setiap payoff dalam strategi adalah superior terhadap setiap payoff yang berhubungan dalam suatu strategi alternative. Aturan dominan ini dapat digunakan untuk mengurangi ukuran matriks payoff dan upaya perhitungan.
Strategi Terdominasi dan Strategi Dominan
Strategi terdominasi adalah strategi yang strictly inferior terhadap sejumlah strategi lain, apapun strategi yang dipilih lawan.
- Strategi dominan adalah strategi yang memiliki payoff tertinggi dibandingkan dengan strategi lainnya. Misalkan strategi “X” adalah strategi dominan bagi pemain A, maka apapun strategi yang dipilih pemain B, pemain A tetap akan memilih strategi “X”.
- Kesetimbangan strategi dominan adalah suatu outcome yang dibentuk oleh strategi dominan setiap pemain.
Contoh Pemecahan Game dengan Pohon
Pada sub bab ini akan dibahahas sepenggal contoh pemecahan game dengan bantuan pohon. Sebagai contoh akan digunakan permainan dengan kompleksitas terendah yaitu permainan Tic Tac Toe.
Aplikasi Lainnya dari Teori Game dalam berbagai bidang
Seperti kita ketahui bahwa penggunaan graf dan pohon sangat banyak aplikasinya dalam kehidupan. Game-theory juga merupakan salah satu konsep yang dapat diimplementasikan dalam bidang lainnya. Dengan menggunakan konsep pohon, kombinatorial matriks, dan dilengkapi dengan algoritma minimum.
Politik dan Ekonomi (Konsep Pohon)
Beberapa pemakaian yang paling mencolok adalah pada pengambilan keputusan yang berhubungan dengan sistem pemerintahan. Pada penerapan politik ini, untuk satu masalah yang sangat membutuhkan keputusan terbaik karena menyangkut masalah suatu negara. Dengan menggambarkannya secara ekstensif berupa pohon dengan informasi lengkap, dapat dimisalkan semua elemen yang mempengaruhi dan kemungkinan keputusan sebagai suatu node. Dengan menerapkan minimum tree dapat terlihat keputusan dengan resiko terkecil, dengan algoritma minimax (algoritma untuk mempertimbangkan keputusan terbaik) akan didapat solusi terbaik sebagai pemecahan masalah.
Biologi (Konsep Matriks Kombinatorial)
Konsep matriks kombinatorial dari game-theory banyak digunakan dalam bidang biologi khususnya yang menyangkut evolusi dan habitat hewan. Untuk masalah habitat hewan misalnya, sangat mirip dengan matriks kombinatorial pada Zero-Sum Game. Sebagai contoh permisalan adalah masalah piramida makanan yang berlaku pada hewan. Misalkan terdapat suatu populasi sebanyak n ayam dan n elang dengan asumsi bahwa ayam adalah makanan dari elang. Sehingga untuk bertahan hidup dan memperbanyak jenisnya, elang harus memakan ayam. Untuk satu kali memangsa maka di sini kemungkinan elang akan menjadi (n + 1) dan ayam akan (n - 1). Hal yang sama juga berlaku untuk teori territorial pada hewan. Selain dari dua contoh bidang di atas, masih banyak bidang lainnya yang memakai konsep hampir sama dengan game-theory.
Narasi Game petualangan
Pada
suatu waktu di suatu pulau yang asri berdirilah kerajaan besar. Kerajaan itu
memiliki tanah yang subur dan beraneka ragam sumber daya alam yang berlimpah
ruah. Kerajaan ini dipimpin oleh seorang raja yang arif dan bijaksana sehingga
rakyatnya makmur dan sejahtera. Ia memiliki seorang putri yang cantik jelita.
Putri itu bernama Ayu Lestari. Ia memiliki rambut coklat keemasan, matanya
indah bersinar, bibirnya berwarna merah semerah bunga mawar.
Berbeda
dengan kerajaan di negri sebrang kehidupan rakyatnya tidaklah sejahtera
dikarenakan pemimpinnya yang serakah dan bertindak sewena-wena. Raja sangatlah
rakus dan cerdik terhadap setiap taktik yang dia kerjakan. Ia tidak segan-segan
membuat rakyatnya hidup sengsara, bahkan tidak jarang pula raja tidak
memberikan upah untuk rakyat yang telah bekerja kepadanya.
Pada
suatu ketika raja yang sangat rakus ini mendengar kabar bahwa ada satu kerajaan
yang memiliki banyak perhiasan dan permata karena tertarik ingin menguasai maka
saga raja mengirim pasukannya untuk menculik sang putri raja dengan harapan
raja akan dapat menguasai segala perhiasan dan permata.
Pada
suatu malam raja nan rakus menjalankan taktiknya untuk menculik sang putri raja.
Singkat cerita putri raja berhasil di culik. Hal ini membuat Ayahanda sang
putri murka ketika mengetahuinya. Kemudian sang raja mengadakan sayembara untuk
menyelamatkan sang putri hingga sayembara ini terdengar di seluruh pelosok
negeri tersebut. Dari hasil sayembara terdapatlah seorang pemuda yang berani
dan gagah perkasa, bernama Januar. Pemuda tersebut sangatlah ingin
menyelamatkan sang putri dari penculikan raja yang rakus.
Dimulailah
cerita petualangan dari sang pemuda tersebut. Dimana dia harus bertarung dengan
musuh yang kuat serta menghadapi medan yang berat. Dengan level yang kian
menantang serta terbatasnya waktu penyelamatan membuat Game ini tersaji dengan
tampilan yang menarik ditambah dengan tantangan yang membuat pemain akan berpacu
dengan melodi pertempuran yang memacu adrenalin serta membuat pemain ingin
menyelesaikan misi dengan cepat.
Konsep Game
Konsep
Game kali ini, pemain mengendalikan seorang pejuang dengan membawa senjata
berupa pedang yang digunakan untuk menyerang musuh baik itu prajurit maupun
rajanya. Selain itu dapat juga menembak dengan menggunakan senjata panah.
Tujuan dari permainan ini adalah untuk menghilangkan semua prajurit di tiap
tingkat permainan dan menyelamatkan sang putri. Menggunakan pedang, pemain mengayun
dan menebaskan dengan maksud untuk
membunuh musuh secara langsung atau memenah untuk membunuh secara jarak jauh.
Dalam berbagai tahap permainan, dan kondisi musuh semakin bertambah berat baik
dari segi kemampuan maupun jumlah.
Source
Code
MainActivity.java
package
com.softskill.petualangan; //membuat package
dengan nama softskill petualangan
import android.os.Bundle; //import yang ada untuk android
import
org.apache.cordova.*; //import yang ada
untuk android
public class MainActivity extends DroidGap { //bersifat public
@Override
public void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
super.loadUrl("file:///android_asset/www/index.html");
}
}
activity_main.xml
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.softskill.petualangan.MainActivity"
tools:ignore="MergeRootFrame" />
fragment_main.xml
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.softskill.petualangan.MainActivity$PlaceholderFragment"
>
<TextView // tampilan textview
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
</RelativeLayout>
AndroidManifest.xml
<?xml version="1.0"
encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.softskill.petualangan"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="19" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.softskill.petualangan.MainActivity"
android:screenOrientation="landscape"
android:configChanges="orientation|keyboardHidden"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN"
/>
<category android:name="android.intent.category.LAUNCHER"
/>
</intent-filter>
</activity>
</application>
</manifest>
Index.html
<!DOCTYPE html>
<html manifest="offline.appcache">
<head>
<meta
charset="UTF-8" />
<meta
http-equiv="X-UA-Compatible"
content="IE=edge,chrome=1"
/>
<title>petualangan</title>
<!--
Allow fullscreen mode on iOS devices.
(These are Apple specific meta tags.) --> //
mengizinkan layar penuh untuk penggunaan perangkat iOS
<meta
name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0,
minimum-scale=1.0, user-scalable=no, minimal-ui"
/>
<meta
name="apple-mobile-web-app-capable"
content="yes" />
<meta
name="apple-mobile-web-app-status-bar-style"
content="black" />
<link
rel="apple-touch-icon"
sizes="256x256" href="icon-256.png" />
<meta
name="HandheldFriendly" content="true" />
<!-- Chrome for Android web app tags --> //mengadakan
chrome untuk aplikasi android web
<meta
name="mobile-web-app-capable"
content="yes" />
<link
rel="shortcut icon"
sizes="256x256" href="icon-256.png" />
<!--
All margins and padding must be zero for the canvas to fill the screen. -->
//semua argin dan padding harus nol pada canvas agar layar terlihat penuh
<style
type="text/css">
*
{
padding:
0;
margin:
0;
}
html, body {
background:
#000;
color:
#fff;
overflow:
hidden;
-ms-touch-action: none;
}
canvas
{
touch-action-delay:
none;
touch-action:
none;
-ms-touch-action: none;
}
</style>
</head>
<body>
<div
id="fb-root"></div>
<!--
The canvas must be inside a div called
c2canvasdiv --> //canvas harus berada di dalam sebuah div
yang disebut c2canvasdiv
<div
id="c2canvasdiv">
<!--
The canvas the project will render to.
If you change its ID, don't forget to change the
ID
the runtime looks for in the jQuery events above (ready() and cr_sizeCanvas()).
-->//canvas akan di render. Jika kamu merubah ID, jangan
lupa untuk merubah ID runtime pada jQuery
<canvas
id="c2canvas" width="854" height="480">
<!--
This text is displayed if the visitor's browser does not support HTML5.
You
can change it, but it is a good idea to link to a description of a browser
and
provide some links to download some popular HTML5-compatible browsers. -->//
teks ini akan muncul jika browser tidak mendukung HTML5. Kamu bisa merubahnya,
tapi lebih baik mendeskripsikan apa yang terjadi pada browser.
<h1>Your
browser does not appear to support HTML5.
Try upgrading your browser to the latest version. <a href="http://www.whatbrowser.org">What
is a browser?</a>
<br/><br/><a
href="http://www.microsoft.com/windows/internet-explorer/default.aspx">Microsoft
Internet Explorer</a><br/>
<a
href="http://www.mozilla.com/firefox/">Mozilla
Firefox</a><br/>
<a
href="http://www.google.com/chrome/">Google
Chrome</a><br/>
<a
href="http://www.apple.com/safari/download/">Apple
Safari</a><br/>
<a
href="http://www.google.com/chromeframe">Google
Chrome Frame for Internet
Explorer</a><br/></h1>
</canvas>
</div>
<!--
Pages load faster with scripts at the bottom -->//
halaman akan lebih cepat dengan scripts yang ada di bawah
<!--
Construct 2 exported games require jQuery. --> //
membangun 2 games yang memerlukan jQuery
<script
src="jquery-2.0.0.min.js"></script>
<!--
The runtime script. You can rename it,
but don't forget to rename the reference here as well.
This
file will have been minified and
obfuscated if you enabled "Minify
script" during export. --> //script dijalankan. Kamu
dapat memberikan nama, tapi jangan lupa memberikan namanya denagn benar. File
ini akan minified dan menghilang jika kamu mengaktifkan “Minify script” setelah
di export.
<script
src="c2runtime.js"></script>
<script>
//
Size the canvas to fill the browser viewport.
//mengatur ukuran canvas untuk browser viewport
jQuery(window).resize(function()
{
cr_sizeCanvas(jQuery(window).width(),
jQuery(window).height());
});
//
Start the Construct 2 project running on window load.// mulai
membangun 2 project yang berjalan pada jendela load
jQuery(document).ready(function
()
{
//
Create new runtime using the c2canvas //buat runtime baru
menggunakan c2canvas
cr_createRuntime("c2canvas");
});
//
Pause and resume on page becoming visible/invisible //
berhenti dan lanjutkan pada perintah visible/invisible
function
onVisibilityChanged() {
if
(document.hidden || document.mozHidden || document.webkitHidden ||
document.msHidden)
cr_setSuspended(true);
else
cr_setSuspended(false);
};
document.addEventListener("visibilitychange", onVisibilityChanged,
false);
document.addEventListener("mozvisibilitychange", onVisibilityChanged,
false);
document.addEventListener("webkitvisibilitychange",
onVisibilityChanged, false);
document.addEventListener("msvisibilitychange", onVisibilityChanged,
false);
</script>
</body>
</html>
Tools yang Digunakan
·
Construct
2 Realease 169 (64-Bit)
·
Android
ADT v22.6.2-1085508
·
cordova-2.0.0.jar
Penjelasan Permainan:
Game petualangan yang kami
buat berbasis Android. Dimana cara memainkannya pun cukup mudah. Pemain akan
dihadapi dengan musuh-musuh dan harus memenangkannya untuk mendapatkan sang
putri. Pemain akan memiliki nyawa dan skor. Jika pemain kalah maka skor akan
berkurang dan nyawa akan berkurang hingga pada akhirnya Game Over. Jika pemain
menang maka skor akan bertambah dan pemain akan mendapatkan sang puteri.
Di dalam permainan ini
terdapat tombol-tombol. Tombol yang sederhana dan tidak rumit akan memudahkan
pemain dalam menggunakan aplikasi ini. Pemain hanya perlu
melompat saja guna menghindari musuh yang ingin menyerang. Selain itu juga
terdapat koin yang harus diambil agar pemain mendapatkan skor sehingga total
skor menjadi tinggi.
Screenshoot
Game
- · Ketika memulai permainan
- · Ketika menghadapi lawan
- ·Ketika berhasil menyelamatkan putri
- Ketika pemain kalah
- Informasi pembuat game
Kesimpulan
Adapun kesimpulan dari makalah ini adalah tentang
penjelasan Game dimana Game ini sangat
mudah dimainkan dan mudah dalam pembuatannya. Game merupakan sarana hiburan
yang diperlukan manusia dalam hal pengembangan kemampuan diri dan kecerdasan
serta penenangan emosi dalam hal kesabaran dan kegigihan. Namun dalam Game terutama berbasis teknologi juga
terdapat kelemahan diantaranya menyebabkan seseorang menjadi jarang
berinteraksi dengan lainnya secara langsung dan membuat pemainnya merasa Ingin
bermain secara terus menerus dan melalaikan kegiatan penting yang harus
dilakukannya serta menjadikan seseorang menjadi pemalas. Oleh karena itu
kontrol diri sangat diperlukan dalam hal pencegahan dampak buruk terhadap Game.
Game ini masih terlalu sederhana dalam pembuatan maupun tampilan saat dimainkan
Demikianlah makalah dari kelompok kami. Bila ada kekurangan mohon dimaklumi
mengingat tiada manusia yang luput dari kesalahan.
Referensi:
Munir, Rinaldi.2006.Diktat Kuliah IF2153 Edisi Keempat. Program Studi Teknik Informatika, Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung.
bisa jelaskan tahap pembuatan game nya sampai jadi android app
BalasHapusCoba tanya teman saya januar fadilah karna beliau yang membuat gamenya..
BalasHapuswebnya atau blognya alamatnya www.catatanfadil.com
Silahkan jika ada yang ingin ditanyakan pada beliau