<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Bir Platform Oyununa Kullan c Performans Temelinde Yapay Zeka Uyarlamas</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Sercan Turkmen</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Hilmi Yal n Mungan ve Selma Tekir</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Urla/I_zmir</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Anahtar Kelimeler: Yapay zeka, Rakip Modeli</institution>
          ,
          <addr-line>O</addr-line>
        </aff>
      </contrib-group>
      <fpage>84</fpage>
      <lpage>93</lpage>
      <abstract>
        <p>O zet Oyun programlama, video oyunlar n n yaz l m gelistirme bolumudur. Diger yaz l mlardan farkl olarak oyun icindeki nesnelerin surekli guncellenmesini gerektirmektedir. Guncelleme islevinde, nesnenin dunya icinde bulundugu yer, h z, ivme gibi ziksel ozellikleri, carp sma islemleri, animasyon guncellemeleri ve kullan c girdisinin ele al nmas gibi cok cesitli islemler kapsanmaktad r. Yuksek guncelleme frekans gereksinimi de dikkate al nd g nda yaz lan kodun performans ve kalitesi on plana c kmaktad r. Oyun alan , yaz l m karakteristiklerinden kullan labilirligin otesinde kullan c n n eglenmesini saglamay hede emektedir. Yapay zekan n uygulama alanlar n n ve tekniklerinin gelismesi oyunlar n eglendirici yonunu artt rmaktad r. Bu cal smada, bir platform oyunu (Dawn) gelistirilerek oyun icerisindeki kurguyu, gecerli kullan c ya gore uyarlayan bir yapay zeka entegre edilmesi amac yla platform oyununu karakterize edebilecek oznitelikler c kar lm s ve olculmustur. Genel olarak, c kar lan oznitelikler girdi ve c kt oznitelikleri olarak grupland r larak girdi ozniteliklerinin c kt oznitelikleri ile iliskisi ortaya konmaya cal s lm st r. Belirlenen en temel c kt ozniteligi, kullan c performans d r. Kullan c performans n n olcumunde bolum tamamlanma zaman , kahraman n olum nedeni ve bolumlerde ugrad g zarar oznitelikleri baz al nm st r. Sistem, bu sayede bolum icerisindeki dusman secimini ve bir sonraki bolum onerisini kullan c n n performans na gore belirlemektedir.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Oyun programlama, video oyunlar n n yaz l m gelistirme bolumudur. Yaz l m
muhendisligi uzerinde onemli cal smalar gerektiren oyun programlama; gra k
tasar m ile birlikte varl k sistemi, kullan c arayuzu, zik motoru, girdi isleyicisi,
yapay zeka bileseni, oyun mant g , seviye ve ses sistemlerinin gelistirilerek bir
butun olusturacak sekilde biraraya getirilmesidir [1].</p>
      <p>Oyun programlama, diger yaz l mlardan farkl olarak oyun icindeki
nesnelerin surekli guncellenmesini gerektirmektedir. Bu islem icin ideal sure saniyede
60 kere olarak tan mlanm st r. Guncelleme islemi genel olarak her model
nesnesine ait \update" fonksiyonu ile yap lmaktad r. Bu fonksiyonda nesnenin dunya
icinde bulundugu yer, h z, ivme gibi ziksel ozellikleri, carp sma islemleri,
animasyon guncellemeleri ve kullan c girdisinin ele al nmas gibi cok cesitli islemler
kapsanmaktad r. Dolay s yla bu karmas k islevin gerceklestiriminde guncelleme
frekans da dikkate al nd g nda yaz lan kodun performans ve kalitesi on plana
c kmaktad r. Hede enen guncelleme suresine ulas lamamas , kullan c n n oyunda
donmalar ile kars lasmas na neden olacakt r.</p>
      <p>Oyun alan , yaz l m karakteristiklerinden kullan labilirligin otesinde, kullan c
n n eglenmesini saglamay hede emektedir. Cok oyunculu ilk video oyunlar ndan
tek oyunculu populer video oyunlar na gecis sureci yapay zekan n uygulama
alanlar n n ve tekniklerinin gelismesiyle ac klanabilir. Zira yapay zekan n varl g ,
oyunun eglendiriciligini korumakta hatta art rmaktad r. 1990'l y llar n sonlar na
dogru oyunlara entegre edilen ilk yapay zeka uygulamalar kullan c n n oyun
icerisindeki konumuna gore, daha once belirlenmis bir cozum kumesinden
oyuncuya kars kullan lacak bir eylemin secilip uygulanmas n icermekteydi. Daha
sonralar yarat lan yapay zekalarda ise yapay zekaya kullan c n n belirli bir ozelligi
aktar larak etkisi artt r lmaya cal s lm st r.</p>
      <p>Bu cal smada, bir platform oyunu (Dawn) gelistirilerek oyun, kullan c lar n
oynay s performanslar na gore eylem belirleyen bir yapay zeka ile donat lmaya
cal s lm st r. Sozkonusu yapay zeka bileseni icin ilk olarak eylem bileseni (c kt
ozniteligi) ve onunla nedensellik iliskisi icerisinde bulunabilecek girdi oznitelikleri
belirlenip olcum yap lm st r. O lcme sonucunda, hesaplanan girdi ve c kt
oznitelikleri aras ndaki formulasyon (ogrenme modeli) c kart lm st r. Bu formulasyon
yeni oynama performanslar nda oyuncuya kars eylemin bir baska ifade ile
gerekli c kt n n o andaki girdi degerlerine gore hesaplanmas nda kullan lacakt r. Bu
sekilde yapay zeka entegre edilmis oyun, musteri memnuniyetini ve eglendirici
yonunu artt rmaktad r.</p>
      <p>Bildirinin devam nda, ilk olarak literaturdeki benzer cal smalardan
bahsedilmistir. Daha sonra ise gerceklestirilen oyunda yapay zekan n uygulanma sekli
ve uygulan rken kullan lan girdi ozniteliklerinin belirlenmesinde kullan lan
kriterler anlat lm st r. Bir sonraki bolumde, gelistirilen yapay zekan n ayr nt lar ,
uygulamada kars las labilecek sorunlar ve bu sorunlar n nas l as labilecegi
aktar lm st r. Sonuc bolumunde ise elde edilen sonuclar ve kazan mlar tart s lm st r.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Literatur</title>
      <p>Oyun yapay zekas , en genel tan m yla oyunlara bir cesit yapay zekan n
entegre edilmesidir. Oyun yapay zekas terimi, oyun icerisinde carp sma tespitinin
yap lmas gibi nispeten s n rl bir islevi kars lamak icin kullan labilirken oyunda
bir sinir ag algoritmas n n uygulanmas gibi daha karmas k bir gerceklestirimin
varl g n da kastediyor olabilir. Bu cal smada, belirtilen iki uc tan m aras nda yer
alan bir yapay zeka tan m benimsenmektedir [2].</p>
      <p>Video oyunlar n n eglendiriciliginin art r lmas icin oyunlara yapay zeka
entegre edilmektedir. Oyuna entegre edilecek yapay zeka icin oyuncu davran s n n
modellenmesi vazgecilmez bir gereksinimdir cunku temel hedef oyuncuyu
yenmekten ziyade onun eglenmesini saglamakt r. Oyunlarda oyuncu davran s
modellenirken farkl bilissel seviyeler dikkate al nmaktad r. Oyuncu pro linin c kart
lmas en ust bilissel seviyeye kars l k gelirken diger seviyeler s ras yla
oyuncunun strateji, taktik ve eylem davran s modellerinin olusturulmas n icermektedir.
Oyuncu pro linden eylem davran s modeline dogru ilerlerken modelin kapsay c l g ,
hassasiyeti, genel gecerligi azal rken dogrudan olculebilir eylemler nedeniyle
olusturulmas daha kolay hale gelmektedir [3].</p>
      <p>Video oyunlar nda oyuncu modelini kullanan yapay zeka uc farkl rolden
birini ustlenmektedir: Antrenor (koc) rolu, rakip rolu ve arkadas rolu. Antrenor
rolu, bu modeller aras nda en az ayr nt l olan d r. Bu modeldeki bir yapay
zekan n yapmas gereken oyuncuya, oyunun temel mekaniklerini gostermek ve
oyuncuyu yonlendirmektir. Dolay s yla gelistirilecek bu turde bir yapay zekan n
statik ya da dinamik olmas kullan c ac s ndan, oyun deneyimi icin fark
yaratmayacakt r. Rakip rolundeki oyun yapay zekas ise, oyunun gucluk seviyesini
oyuncunun yetenegine ve oyuncunun oynama stiline uygun sekilde duzenlemeye
cal s r. Yap lan arast rmalar rakip rolunun dogru bir sekilde
derecelendirilmesinin onemini vurgulamaktad r. Zira rakip karakterlerin cok zay f olmas oyuna
ilginin kaybedilmesine neden olurken cok guclu rakipler oyuncuyu y ld rarak
oyundan c kar r. Arkadas rolu de rakip rolune benzerlik gostermektedir. Arkadas
rolundeki yapay zeka, kullan c ile birlikte cal sarak, rakip rolundeki yapay zekaya
kars eylem almaktad r. Bu sebeple gelistirilen yapay zeka, kullan c n n ald g
eylemleri yorumlayarak ve alacag eylemleri tahmin ederek hareket etmelidir [3].</p>
      <p>Oyun yapay zekas na rakip modeli dahil edilirken oyun ortam nda
gozlemlenecek oznitelikler belirlenir. O lculen oznitelikler kullan larak o andaki oynama
performans n degerlendirecek bir degerlendirme fonksiyonuna gereksinim vard r.
Bu degerlendirme fonksiyonu c kt s ve mevcut rakip modeli oyuna yap lacak
uyarlama icin kullan lacak girdilerdir. Bu sekilde bir ornek olay tabanl oyun
yapay zeka uyarlamas Bakkes et al.'da [4] gorulmektedir.</p>
      <p>Video oyunlar nda oyunun gucluk seviyesinin uygun sekilde ayarlanmas iyi
bir oyun tasar m n n vazgecilmezlerindendir. Oyunun gucluk seviyesi
belirlenirken oyun dinamik yap s n n bir kenara b rak l p oyuncunun bak s ac s na
odaklan lmas dogru bir yaklas md r. Bir oyundaki gucluk seviyesi onceden tan mlanm s
sorunlar (challenge) kombinasyonu ya da dizisi uzerinden tan mlan r. Oyuncunun
her bir sorunun ustesinden gelirken yasad g kesikli gucluk degerleri, oyuncunun
ogrenme egrisinin tahminlenmesini saglar. Amac, bu kesikli gucluk degerlerinin
oyuncunun yetenegini, ogrenme egrisini iyi bir sekilde temsil ediyor olmas d r [5].
3</p>
    </sec>
    <sec id="sec-3">
      <title>Yapay Zekan n Uygulanmas</title>
      <p>Video oyunlar na, farkl eylem turlerine sahip olan yapay zekalar eklenebilir. Bu
yapay zekalar, kullan c y yonlendirmek, kullan c ya yard m etmek ya da
kullan c ya kars olmak seklinde farkl eylemlerle donat lm st r. Her bir farkl yapay
zeka turunun, kullan c n n oyundan ald g memnuniyeti olabilecek en yuksek
seviyeye c kartmak icin, ayarlanmalar gereken belirli bir etkilesim seviyeleri vard r.
Dawn icin uygulad g m z yapay zeka, sadece kullan c ya kars eylem almaktad r.</p>
      <p>Bu cal smada gerceklestirilen yapay zeka uyarlamas , oyuncu davran s
modelini c kar rken oyuncunun dogrudan olculebilir eylemlerini baz ald g ndan oyuncu
bilissel seviyesi eylem duzeyinde temsil edilmektedir.</p>
      <p>Bu tur yapay zekan n, kullan c memnuniyetini en yuksek seviyeye c
kartabilmesi icin, zorlugunun, kullan c n n deneyimi seviyesinde olmas gerekmektedir.
Bu seviyenin dogru ayarlanmas cok onemlidir, zira bu seviye cok yuksekse,
kullan c yapay zekaya kars basar s z olmaktan b k p oyunu b rakabilir veya bu
seviye cok dusukse, kullan c oyunu eglendirici ve zorlay c bulmay p yine ayn
sekilde oyunu oynamaktan vazgecebilir. Uygulanacak yapay zekadaki en uygun
seviye, kullan c n n sahip oldugu tecrubenin seviyesidir. Yani, yapay zekan n
seviyesi, kullan c n n performans na gore olculmelidir.
3.1</p>
      <sec id="sec-3-1">
        <title>Yapay Zekan n Gelistirildigi Ortam ve Kullan lan Altyap lar</title>
        <p>Gelistirilen yapay zeka \haxe" dili [6] ve \ ixel" [7] kutuphanesi kullan larak
prototip bir oyun uzerinde gelistirilmistir. \Haxe" yuksek seviyeli, ac k kaynak bir
programlama dili ve derleyicidir. \Flixel" kutuphanesi ise ozellikle h zl prototip
gelistirmek icin uygun olup \haxe" dilinin saglad g coklu platformlara derlenme
ozelligi sayesinde oyun farkl platformlara tek kod altyap s ndan (code base)
derlenebilmektedir. Kod duzenleyici olarak \FlashDevelop" kullan lm st r. Nesneye
dayal yaklas m izlenip, \Bitbucket" uzerinden versiyon kontrolu yap lm st r.
3.2</p>
        <p>Oyuncunun O lculen O znitelikleri
Dawn icindeki oyuncu performans , belirli girdi oznitelikleri birlestirilerek elde
edilmis bir veridir. Ancak bu girdi ozniteliklerinin saptanmas nda belirli
kriterler olmas gerekir. Bu kriterler belirlendiginde, sonucta ortaya c kan girdi
ozniteliklerinin say s ne kadar fazla olursa, yapay zekan n hassasiyeti ve
bunun sonucunda belirlenen oyuncu performans o kadar dogru hesaplanabilir.
Ancak bu say n n fazla olmas oyun suresince kullan c performans hesaplan rken
olusacak islem yuku dolay s ile, altbolum gecisleri s ras nda ya da belirli ozel
altbolumlerdeki veri degisimi s ras nda olusabilecek islem yavasl g , program n
ulasabilecegi kullan c say s ndan odun verebilir. Bu tur bir odunun verilmesi,
kullan c n n oyundan s k l p b rakmas na yol acabilir. Bu sebeple veri ak s n n
oyunu yavaslatmamas icin girdi ozniteliklerinin belirli bir dengeyle saptanmas
gerekmektedir. Oyun icin kullan c performans n en iyi sekilde belirleyen
oznitelikler secilmelidir. Dawn icin bu girdi oznitelikleri;
{ oyuncunun altbolum icinde dusmanlardan ald g zarar,
{ altbolum tamamlama suresi,
{ altbolum icindeki tum dusmanlar yok etme suresi ve
{ hangi tur dusmandan daha cok zarar gordugudur.</p>
        <p>Bu ozniteliklerden kullan c n n altbolumu tamamlama suresi, oyunun
rekabetci yan n artt rmak icin secilmistir. Kullan c n n bolumu bitirme suresi,
ortalaman n alt nda bir sure ise kullan c performans artacak, uzerinde ise
azalacakt r. Bu artma ve azalma degeri oyuncu performans na oransal bir etki ile
hesaplanmaktad r.
3.3</p>
      </sec>
      <sec id="sec-3-2">
        <title>Metodoloji</title>
        <p>Bu cal smada, Bakkes at al. [4] taraf ndan onerilen ornek olay tabanl oyun
yapay zeka modeli belirlenen ozniteliklere uyarlanm st r. Dawn'da, Sekil 1'deki
rakip modeli, oyun icerisindeki dusmanlar n kullan c ya kars ald klar
eylemlerin ozelliklerini yans tmaktad r. Degerlendirme fonksiyonu, kullan c n n ald g
eylemlerdeki basar oran n olcerek, rakip modeli k sm ile birlikte, uyarlama
mekanizmas na etki eder. Uyarlama mekanizmas nda ise, kullan c n n performans
temelinde rakip modelindeki ozellikler tekrar ayarlanarak yapay zeka
guncellenmis olur.</p>
        <p>Sekil 1. Ornek olay tabanl oyun yapay zeka uyarlamas modeli [4].</p>
        <p>Sekil 1'de gorulen yapay zeka uyarlamas modelinin, rakip bir yapay zeka olan
\turret"e uygulanmas , Sekil 2'de gosterilmistir. Prototip oyununda gelistirilen
\Turret" dusman belirli aral klar ile bakt g yone dogru ates etmektedir. Sekil
2'nin ilk k sm nda goruldugu sekilde \turret", oyuncunun bulundugu yone belirli
aral klarla ates etmektedir. \Turret"in bu ozelligi rakip modelini
belirlemektedir. Degerlendirme fonksiyonu, kod icerisinde her saniyede 60 defa cagr lan
\update" fonksiyonunun icine yerlestirilerek, oyuncunun rakip modeli tan mlayan
ozellikleri degistikce, uygulama mekanizmas n etkiler. Bu durumda Sekil 2 ikinci
k sma gecilirken, oyuncu ve \turret" aras ndaki ac hesaplanarak, \turret"
oyuncunun bulundugu tarafa doner ve oyuncu performans degisirse, \turret"in son
atesinden itibaren gecen sureyi hesaplayarak, ates s kl g n artt r r ya da azalt r.</p>
        <p>Sekil 2. Turret dusman na yapay zeka uyarlamas .</p>
        <p>Oyuncu performans na etki eden ilk faktor altbolum bitirme suresinin
olculerek degerlendirilmesi seklindedir. Gelistirilen oyun bir platform oyunu oldugu
icin altbolum bitirme suresi oyuncu performans hakk nda yuksek oncelikli
olarak bilgi saglayacakt r. Altbolumleri bitirmek icin gereken ortalama sure cesitli
sekillerde belirlenebilir. Prototip olarak gelistirilen oyunda bu sureler yaklas k
degerler olarak bolumdeki dusman say s ve engellere gore belirlenmistir. Fakat
bu surenin, her bolum icin yeteri kadar kullan c ile test edilip belirlenmesi daha
uygun olacakt r. Ayr ca altbolumlerde al nan zarar belli bir s n r n alt nda ise
kul</p>
        <p>Sekil 3. Oyuncu performans n n guncellenmesi.</p>
        <p>Sekil 4. Altbolum havuzundan oyuncu performans na en yak n altbolum secimi.
lan c performans artt r lacak, bu s n r n uzerinde ise azalt lacakt r.
Altbolumlerdeki tum dusmanlar oldurme suresi ise her bir altbolumu gecmek icin o
altbolumdeki tum dusmanlar oldurene kadar gecen suredir. Bu bilgiyle de ayn sekilde
oyuncu performans uzerinde oransal bir oynama yap lm st r (Sekil 3).</p>
        <p>Dawn icindeki yapay zeka, oyuncu performans n belirtilen verilere gore olcup,
kullan c n n tecrube ve yetenek verilerine dayanarak, kullan c y zorlayacak ama
kullan c n n basar l olabilecegi altbolumleri belirlemektedir. Altbolum secimi
yap l rken oncelikle bolum bilgisini iceren dosya okunur. Bu dosyada bolumu
bitirmek icin gecilmesi gereken altbolum say s , bolum sonu canavar n n altbolum
bilgisi ve altbolum havuzu bulunmaktad r. Altbolum havuzu dizisinde altbolumun
ismi, zorluk derecesi, ortalama bitirme suresi gibi bilgiler yer almaktad r. Oyuncu
bir altbolumu tamamlad g nda diger altbolum secimi yap l rken altbolum
havuzundaki zorluk dereceleri aras nda oyuncu performans na en yak n komsu degere
sahip altbolum bulunarak oyuncunun kendi seviyesinde bir bolum ile kars lasmas
hede enmektedir (Sekil 4).
3.4</p>
      </sec>
      <sec id="sec-3-3">
        <title>Performans Girdilerinin Yapay Zekaya Yans t lmas</title>
        <p>Performans girdisi yapay zekaya yans t l rken, performans girdisi dusman n
belirlenmis ozniteliklerini artt rmak ya da azaltmak icin bir oran olarak kullan lm st r.
Buna ornek olarak prototip oyununda gelistirilen \Turret" dusman
verilebilir. Bu dusman belirli aral klar ile bakt g yone dogru ates etmektedir.
Burada dusman n ates etme s kl g , normal degeri ile oyuncu performans n n ters
orant s al narak guncellenmistir. Bu sayede performans yuksek olan bir oyuncu
kars s na, daha s k ates eden, yani oyuncunun yeteneklerine daha uygun bir
dusman c kart lmas hede enmistir (Sekil 5).</p>
        <p>Bu girdinin oran olarak kullan ld g baska niteliklerden ornek vermek
gerekirse bunlar, dusman n hareket h z (Sekil 6), uygulad g zarar miktar gibi
ozelSekil 5. Turret'in ates etme s kl g n n oyuncu performans na gore guncellenmesi.</p>
        <p>Sekil 6. Dusman n hareket h z n n oyuncu performans na gore guncellenmesi.</p>
        <p>Sekil 7. Bolum sonu canavar n n ates etme ozelliginin ac l p kapat lmas .
liklerdir. Ayr ca bu performans girdisi sadece oran olarak degil ayn zamanda
dusman n baz ozelliklerini kapatmak veya acmak icin de kullan lm st r. Sekil
7'de goruldugu uzere prototipte gelistirilen bolum sonu canavar n n ates etme
ozelligi oyuncu performans belirli bir degerin alt nda oldugunda kapat lm st r.
Ancak not edilmelidir ki bolum sonu canavar ile o an savasan oyuncunun
performans n isabetli at slar yaparak artt rmas halinde kapat lan ozellik
performans artt g anda dinamik olarak ac lacak ve ates etme s kl g eniyilestirilecektir.
Boylelikle oyun seyrederken es zamanl olarak zorluk derecesi ayarlanmaktad r.</p>
        <p>Sekil 8. Oyun suresince bir kullan c ya ait performans-zaman gra gi.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Sonuc</title>
      <p>Sonuc olarak, izlenen yontem dogrultusunda gelistirilen prototip oyun, zorluk
derecesini oyun baslamadan oyuncuya sormak yerine dinamik olarak kendisi
belirlemektedir. Oyuncu oyun icinde dusmanlara ve oyun mekanisklerine al st kca
degisen oyuncu seviyesine gore oyun kendini zorlast rmakta, oyuncuya zor geldigi
zamanlarda ise kendisini dinamik olarak kolaylast rmaktad r. Uyarlanan yapay
zekan n cok say da oynama performans verisini isleyerek oyunun zorluk
seviyesini daha iyi dengelemesi mumkundur.</p>
      <p>Ayr ca farkl turde bir oyun icin oyuna uygun oznitelikler secilerek benzer
bir metodoloji uygulanarak yapay zeka uyarlamas gerceklestirilebilir.</p>
      <p>Sekil 8'de, elde edilmis olan gra k, bir kullan c n n oyun suresince elde edilen
performans zaman gra gidir. Gra kte, oyuncu performans n n baslang c degeri
0.1'dir. Kullan c , 100. saniye civarlar na kadar, performans n n dusuk olmas ndan,
baz kolay altbolumler ile kars lasm s ve performans n artt rm st r. Ancak 100. ve
150. saniye aral g nda, artan performans degerinden dolay , baz altbolumler zor
gelmis ve kullan c performans dusmustur. 150 ve 250 aral g nda, kullan c n n
oyuna al sarak, performans n artt rd g gorulmektedir. 250. saniyeden sonra ise,
kullan c n n performans degeri, yaklas k sabit bir deger alarak ilerlemektedir ve
bu da kullan c n n ulast g istikrarl performans degerini gostermektedir. Eger
oyuncu, oturumu kapatmadan tekrar oyuna baslamak isterse, baslang c degeri
olarak 0.22 al nacakt r.
1. Oehlke, Andreas, "Learning Libgdx Game Development", Packt Publishing, 2013.
2. Bourg, David M. and Seemann, Glenn, "AI for Game Developers," O'Reilly Media,</p>
      <p>Inc., 2004.
3. S. C. J. Bakkes, P. H. M. Spronck, and G. van Lankveld, "Player behavioural
modelling for video games," Entertainment Computing, vol. 3, pp. 71-79, 2012.
4. S. C. J. Bakkes, P. H. M. Spronck, and H. Jaap van den Herik, "Opponent modelling
for case-based adaptive game AI," Entertainment Computing, vol. 1, pp. 27-37,
2009.
5. M.-V. Aponte, G. Levieux, and S. Natkin, "Measuring the level of di culty in single
player video games," Entertainment Computing, vol. 2, pp. 205-213, 2011.
6. Haxe Foundation, [http://haxe.org/manual/introduction-what-is-haxe.html]: para.</p>
      <p>1[Haziran 29, 2015]
7. HaxeFlixel, [https://github.com/HaxeFlixel/ ixel] [Haziran 29, 2015]</p>
    </sec>
  </body>
  <back>
    <ref-list />
  </back>
</article>