HTML5 tabanlı oyunlar için yapay zeka kütüphanesi
Artificial intelligence library for HTML5 based games
Yazar: BERKAN USLU
Danışman: DOÇ. DR. ECİR UĞUR KÜÇÜKSİLLE
Süleyman Demirel Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2015
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control ; Bilim ve Teknoloji = Science and Technology

Özet:
Bu çalışmada; oyunlarda yapay zekanın tarihi, kullanılan yapay zeka kütüphaneleri analiz edilmiş ve en popüler olanları incelenmiştir. Bu inceleme sonucunda, geliştirilen yapay zeka sistemlerinin; aksiyon, RPG, RTS, macera, platform, spor ve yarış türlerine etki ettikleri görülmüş ve oyun türleri ile yapay zeka ilişkisi detaylı olarak ele alınmıştır. Buna göre oyun türlerinin yapay zeka gereksinimleri belirlenerek, o oyun türüne özgü kullanılan yapay zeka elementleri ve metotları incelenmiştir. Bu metotlar içerisinde; davranış ağaçları, sonlu durum makineleri, yol bulma, mantıksal durum makineleri, hiyerarşik yapay zeka ve veriye dayalı sistemler gibi metotlara atıfta bulunularak oyun türleri içerisindeki rolleri anlatılmıştır.
HTML5 ve WEBGL'in gelişimi ele alınarak, masaüstü cihazlardan mobil cihazlara kadar büyük bir yelpazede HTML5 ve WEBGL desteğinin giderek arttığı, bu artışla birlikte HTML5'in neler yapabildiği, avantajları ve dezavantajları, çalışmanın nasıl bir sistem üzerine kurgulandığını ve gelişmekte olan bu yeni teknoloji üzerine yapılan araştırmanın aslında ileride ne kadar popüler bir alana hitap edeceği konularına değinilmiştir. Bu bağlamda, HTML5 için geliştirilen oyun motorları incelenerek, özellikleri, sundukları olanaklar göz önüne alınmış ve popüler oyun motorlarının seviyesini yakalamaya yakın olmalarına rağmen, herhangi bir yapay zeka kütüphanesinin şimdiye kadar HTML5 tabanlı oyunlar için geliştirilmemiş olmasına dikkat çekilmiş ve çalışmanın bu noktada büyük bir boşluğu dolduracağına vurgu yapılmıştır.
Sonuç olarak, çalışmaya konu yapay zeka kütüphanesi DignityAI geliştilerek, yapısı, sınıfları, çerçevesi, kullanım alanı detaylıca aktarılmış, DignityAI kullanan örnek bir modelin çalışma mantığı anlatılmış ve DignityAI kullanan örnek bir oyun tasarlanmıştır. DignityAI, oyun motorundan bağımsız olarak tüm HTML5 oyunlarına entegre edilebilen ve bu oyunlara yapay zeka dinamikleri katmak için geliştirilmiş bir yazılım kütüphanesidir.

Abstract:
In this study; it was explored the history of AI, analyzed the AI library which were used and examined which are the most popular of them.  At the end of this survey, it has seen that AI systems that were developed have an effect on action, RPG, RTS, adventure, platform, sport and the racing types. With this result, relation between game types and AI was deeply analyzed. As this analyze result, the need of AI of the game types was determined and the method and element of AI that was special to that game was examined. Some of these methods like; behavior trees, finite state machines, path finding, fuzzy state machines, hierarchical artificial intelligence and data-driven systems were referred and expressed the role of them in the game types.
Developing history of HTML5 and WEBGL were discussed. It was claimed that the HTML5 and WEBGL support was gradually growing in a wide range from the desktop to the mobile. With this growth; what HTML5 could do, its advantages and disadvantages, on a what kind of system the study is fictionalized and how the survey about this new growing technology would appeal to a popular area were all mentioned in detail. In this context, game engines that were developed for HTML5 were analyzed by taking into consideration their features and advantages. Although they were closed to the level of popular game engines, it was mentioned that none of AI library was developed for HTML5 based games and it was highlighted this study would fill a big gap. 
As a result; the subject of this study, DignityAI was developed. Its structure, classes, outline, usage area was mentioned in detail. It was explained the operating logic of a model which uses DignityAI and designed a sample game which uses DignityAI. DignityAI, is a software library which was developed to add AI dynamics to HTML5 based games and independent from the game engine it was integrated to any games that was developed with HTML5.