Generative adversarial networks based level generation for angry birds
Çekişmeli üretici ağlar ile angry birds bölümlerinin üretilmesi
- Tez No: 740041
- Danışmanlar: DOÇ. DR. SANEM SARIEL UZER
- Tez Türü: Yüksek Lisans
- Konular: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol, Computer Engineering and Computer Science and Control
- Anahtar Kelimeler: Belirtilmemiş.
- Yıl: 2022
- Dil: İngilizce
- Üniversite: İstanbul Teknik Üniversitesi
- Enstitü: Lisansüstü Eğitim Enstitüsü
- Ana Bilim Dalı: Oyun ve Etkileşim Teknolojileri Ana Bilim Dalı
- Bilim Dalı: Oyun ve Etkileşim Teknolojileri Bilim Dalı
- Sayfa Sayısı: 106
Özet
İçerik oluşturma, üretici insanların karşılaştığı en büyük zorluklardan biri haline gelmiş durumdadır. Bu işlem üretilen içeriklerin kullanılacak olan ortamlara uygun olmasından, üretim sürecine ve içeriğin özgün olmasına kadar pek çok koşulu da bereberinde getirmektedir. İçerik üretimi bilimden sanata, sanattan teknolojiye pek çok alanda önemli bir role sahiptir. Günümüzde içerik üretimi özelleştirilerek prosedürel haliyle pek çok alanda kullanılmaktadır. Bilgisayar grafikleri, yapay zeka, insan-bilgisayar etkileşimi gibi pek çok bilgisayar bilimi alanında prosedürel içerik oluşturma yöntemleri sıklıkla kullanılmaktadır. Genel olarak prosedürel içerik oluşturma, manüel içerik üretmek yerine algoritma ve parametrelerin kullanılarak içeriğin oluşturulması olarak tanımlanmaktadır. Video oyunlarında içerik, çok çeşitli ürünlere tekabül edebilir. Ses efektleri, müzik parçaları, dokular, materyaller, nesne modelleri, açık dünya haritası, düşman yerleşimi, karakter gelişimi ve daha fazlası video oyun içeriklerine örnek olarak verilebilir. Prosedürel İçerik Oluşturma (PİO) için kullanılan algoritmalardaki en önemli nokta, raslantıdan yararlanılmasıdır. Algoritma için kullanılan raslatı fonksiyonları sayesinde verilen parametrelerle çok çeşitli çıktılar üretilebilmektedir. Oluşturulabilecek bu çeşitlilk her oyunda farklı olacağından oyunun zengin bir içeriğe sahip olmasından tekrar oynanabilirliğini arttırmaya kadar pek çok fayda sağlayabilir. Teknolojinin henüz çok ilerlemediği dönemlerde, kaynaklar ve işlem yetenekleri kısıtlı olduğu için PİO yöntemine sıklıkla başvuruluyordu. Bu dönemlerde oyun üreticileri de kısıtlı hafızaya sahip cihazlarda oyunların çalışabilmesi ve oyun içeriklerinin çeşitlendirilmesi için PİO yöntemlerini kullanarak oyun içeriklerini üretiyorlardı. 1980 yılında üretilen Rogue isimli oyun, PİO kullanarak oluşturulmuş dikkat çeken sıra tabanlı oyunlardan biriydi [2]. Rogue içindeki bölümler, hafıza kısıtları olduğu için algoritma kullanılarak oluşturulmuştur. Aslında bu oyun o kadar popüler oldu ki, video oyunlarının benzersiz bir alt kategorisini ortaya çıkardı:“Roguelike”[3]. Kaynakların çok sınırlı olduğu bu dönemlerde PİO, oyun geliştiricileri tarafından oyunların her oynanışta farklı olması için de kullanılıyordu. Bunun en güzel örneğini Blizzard oyun firması tarafından 1996 yılında geliştirilen Diablo oyununda görebiliyoruz. Diablo oyununda, oyuncular prosedürel olarak tamamen rastgele oluşturulmuş bir oyun haritasıyla karşılaşıyorlardı. Günümüzdeki oyunlarda PİO, çevrimiçi ve çevrimdışı olarak iki farklı yöntemle kullanılmaktadır. Çevrimiçi yöntemde oyun içeriği, oyun oynanırken oluşturuluyor. Çevrimiçi olarak kullanılan PİO yöntemlerine, oyunun oyuncunun oynayış şekline göre zorlaşması veya farklı içeriklerin oluşturulması örnek olarak verilebilir. Çevrimiçi olarak PİO oyunara en güzel örnek Electronic Arts firması tarafında yayınlanan Spore [4] adlı video oyunudur. Bu oyunda oyuncular karakterlerini oyun içerisinde buldukları diğer içeriklerle birleştirerek diledikleri gibi karakterler oluşturabilmektedir. Oyuncuların istedikleri şekilde tasarladıkları karakterlerin tüm animasyonları da PİO yöntemleri ile oluşturulmaktadır [4]. Çevrimdışı yöntemde ise oyun içeriği oyunun geliştirme sürecinde oluşturuluyor ve oyuna dahil ediliyor. Çevrimdışı olarak üretilen içerikler oyuna doğrudan dahil edilebildiği gibi tasarımcıların süzgecinden geçtikten sonra da değişiklik yapılarak oyuna eklenebiliyor. Hello Games tarafından geliştirilen No Man's Sky [5], çevrimdışı PİO yöntemi kullanılarak içeriği oluşturulan oyunlara örnek olarak verilebilir. No Man's Sky, prosedürel olarak oluşturulmuş sonsuz bir galakside keşif ve hayatta kalma oyunudur [5]. PİO için farklı çeşitlerde algoritmalar tercih edilmektedir. Kural tabanlı yöntemler olduğu gibi evrimsel algoritmaları kullanan yöntemler ve makine öğrenmesine dayalı yöntemler de kullanılabiliyor. Bu algoritmaları aramaya dayalı yaklaşımlar ve yapıcı yaklaşımlara olarak iki gruba ayırabiliriz [6]. Yapıcı algoritmalarda kullanılan işlemlerin üreteceği içeriğin, kullanıma uygun olması beklenir ve elde edilen çıktı bu haliyle kullanılır. Kurallar kümesi oluşturularak elde edilen algoritmalar bu yapıcı olarak isimlendirilen grupta yer almaktadır. Aramaya dayalı algoritmalar ise çok daha farklı bir yapıdadır. İsimlendirilme şeklinde de belirtildiği gibi üretilen içeriğin en iyi olanının aranılması üzerine kurulmuşlardır. Bu yöntemde içerik, algoritma tarafından üretilmekte, test edilmekte ve uygunsa kullanılmaktadır. Uygun değilse de yeni bir içerik tekrar üretilmekte ve bu işleme, en uygunu bulana kadar devam edilmektedir. En uygun içeriği belirlemek için de bir uygunluk fonksiyonu kullanılmaktadır. İçeriğin olması istenilen kriterlerine göre hazırlanan bu uygunluk fonksiyonu, oluşturulan içeriğin istenilen kriterlere uygun olup olmadığını kontrol etmektedir. Makine öğrenmesine dayalı algoritmalar ve evrimsel algoritmalar, aramaya dayalı yöntemler için örnek olarak verilmektedir. PİO yöntemlerinin gelişmesi ve kullanımının yaygınlaşması, video oyun içeriklerinin veri setleri haline getirilmesine ve paylaşılmasına da ön ayak olmuştur. Mario'dan Diablo'ya kadar pek çok video oyunun veri setinin oluşturulması ve paylaşılması buna örnek olarak verilebilmektedir [15]. Veri setlerinin oluşturulması, PİO için makine öğrenmesi yöntemlerinin kullanılmasına da yardımcı olmuştur. Bu sayede hem denetimli hem de denetimsiz makine öğrenmesi yöntemleri PİO için de kullanılabilir hale gelmiştir. Gelişen teknolojiyle birlikte derin öğrenme yöntemleri de PİO yöntemi olarak kullanılmaya başlanmıştır. Yapay sinir ağları kullanılarak oluşturulan üretken modellerden Değişken Oto Kodlayıcılar [16] ve Çekişmeli Üretici Ağlar, [11] PİO için kullanılabilen yöntemlerdendir. Çekişmeli Üretici Ağlar, temelde iki farklı ağdan meydana gelmektedir. Bunlardan ilki üretici ağ, diğeri ise ayrıştırıcı ağdır. Üretici ağın görevi, ayrıştırıcı ağ'ın ayrıştırma kontrolünden geçebilmesi için gerçek verilerden ayırt edilemeyecek kadar gerçekçi sahte veriler üretmektir. Ayrıştırıcı ağın görevi ise, gerçek verilerle üretici ağ tarafından üretilen sahte verileri birbirinden ayırmaktır. Çekişmeli üretici ağlarda bulunan bu iki yapay sinir ağının birlikte eğitilmesi gerekmektedir. Üretici ağın ve ayrıştırıcı ağın eğitimlerinde geri bildirim yöntemi kullanılmaktadır. Birbirlerinden aldıkları geribildirimleri, dönüşümlü olarak tek bir yinelemede kullanarak eğitimlerini tamamlamaktadırlar. Üretken modeller genel olarak denetimsiz makine öğreniminin bir dalıdır. Fakat üretken modellerden biri olan çekişmeli üretici ağların yapısını oluşturan mimarilerin eğitimi, denetimli makine öğreniminin bir alt dalı olarak kabul edilir. Bu tezde prosedürel olarak içerik oluşturmak için çekişmeli üretici ağ yöntemleri incelenmektedir. Angry Birds, Rovio Entertainment tarafından geliştirilen ve mobil cihazlar için 2009 yılında piyasaya sürülen fizik tabanlı popüler bulmaca oyunudur [7]. Bu oyun kısa zamanda büyük bir başarı elde etti ve 2014'te 2 milyar indirmeye ulaşmıştır [17]. Angry Birds de diğer fizik oyunları gibi PİO çalışmalarında örnek olarak kullanılmıştır [8]. Angry Birds üzerinde çalışmaların artması ile Angry Birds için bölüm oluşturma, oyuncu ajan oluşturma gibi yarışmalar düzenlenmeye başlanmıştır [18]. Bu tür fizik tabanlı oyunlarda kullanılan fizik kısıtlamaları, prosedürel bölüm oluşturma için birçok sorun oluşturmaktadır. Bu durum oyun için oluşturulan bölümlerin kalitesini değerlendirmeyi de zorlaştırmaktadır. Fizik tabanlı oyunlardaki çok sayıdaki durum ve büyük hareket alanları nedeniyle, oluşturulan seviyelerin oynanabilirliğini/çözülebilirliğini doğrulamak özellikle zordur [9]. Bu tezde, Angry Birds oyunu için prosedürel olarak bölüm oluşturulmaya (PBO) çalışılmıştır. Angry Birds oyunu ticari bir oyun olduğu için Rovio şirketi tarafından kaynak kodları paylaşılmamaktadır. Bu sebeple üretilen bölümler, Lucas Ferreira tarafından geliştirilen Science Birds isimli Angry Birds klonu üzerinde denendi ve görselleştirilmiştir [10]. Tez kapsamında bölüm oluşturmak için üç farklı Çekişmeli Üretici Ağı mimarisi gerçeklenmiştir. Bu mimarilerden ilki Goodfellow tarafından tanıtılan Çekişmeli Üretici Ağların en yalın halidir [11]. İncelenen mimarilerden ikicisi, Derin Evrişimli Çekişmeli Üretici Ağlardır. Yalın Çekişmeli Üretici Ağ yapısının geliştirilmiş bir versiyonudur. Denetimli ve denetimsiz makine öğrenmesi olarak her iki şekilde de kullanılan evrişimli sinir ağlarından türetilerek oluşturulmuş Derin Evrişimli Çekişmeli Üretici Ağlar Alec Radford tarafından 2015 yılında tanıtılmıştır [12]. Bölüm oluşturmak için uygulanan mimarilerden sonuncusu da Çekişmeli Üretici Ağların özelleşmiş hali olan Wasserstein Çekişmeli Üretici Ağlarıdır [13]. Günümüzde derin öğrenme yöntemleri de kural tabanlı veya evrimsel algoritmalar gibi prosedürel içerik oluşturma için popüler hale gelmiş ve kullanımı artmıştır. Derin öğrenme, büyük veri kümeleri kullanarak eğitimin verilmesini ve sayısal yöntemlerle çıkarılması zor olan özniteliklerin daha kolay bir şekilde elde edilmesini sağlamaktadır. Yapay sinir ağlarının kullanımının kolaylaşmasıyla birlikte literatüre yeni eklenen Çekişmeli Üretici Ağ mimarileri de eklenmeye başlamıştır. Bu tezde çekişmeli üretici ağların eğitilebilmesi için gerekli olan eğitim bölümleri, Iratus Aves isimli kural tabanlı bir bölüm üreticisi kullanılarak oluşturulmuştur [14]. Tez kapsamında eğitim bölümü üretildikten sonra bu bölümler üzerinde belirli optimizasyonlar ve kodlama yapılarak gerçeklenen Çekişmeli Üretici Ağların çıktılarının iyileştirilmesi hedeflenmiştir. Tez kapsamında yapılan gerçeklemeler, Angry Birds gibi fizik tabanlı oyunlarda prosedürel bölüm oluşturabilmek için Çekişmeli Üretici Ağların da kullanılabileceğini göstermiştir. Oluşturulan bölümler, fizik tabanlı bir oyun içinde kullanılacağı için sağlamlık, oynanabilirlik, lineerlik vb. gibi kriterlere göre değerlendirilmiştir. Yapılan analizler sonucunda Derin Evrişimli Çekişmeli Üretici Ağların, Angry Birds gibi fizik tabanlı oyunların bölümlerini üretmek için başarılı bir şekilde kullanılabileceğini göstermiştir.
Özet (Çeviri)
Recently, content generation has become one of the biggest challenges faced by creators. This process brings with it many conditions such as from the usefulness of the produced content to the environments to be used, to the production process, and to the originality of the content. Content generation has an important role in many fields from science to art, from art to technology. In these days, content generation is customized and used in many areas procedurally. Procedural content generation methods are frequently used in many computer science fields such as computer graphics, artificial intelligence, human-computer interaction. As Togelius described that as a result, PCG can be described as algorithmic game content development with little or indirect user input [1]. In video games, content can correspond to a wide variety of products. There are lots of examples for video game contents such as sound effects, music tracks, textures, materials, object models, world terrain, enemy placement, character development, and more. The most important point in algorithms which are used for PCG, is the implementation of randomness. A wide variety of outputs can be produced through the given parameters and the random functions used in the algorithm. Since this diversity in every game, can provide many benefits from having a rich content of the game to increasing its replayability. PCG methods were frequently used in the past because the resources and processing capabilities were limited. During this period, game manufacturers were also producing game content using PCG methods to run on devices with limited memory. As Joseph stated the game named Rogue, produced in 1980, was one of the remarkable turn-based games created using PCG technique [2]. Because of the memory constraints, Rogue was created using with generation algorithm. As Joel stated that Rogue was so successful, in fact, that it created a new subgenre of video games: the roguelike [3]. PCG was also used by game developers to make games different every time they are played. We can see the best example of this in the game named Diablo, which was developed by the Blizzard game company in 1996. In Diablo, players were procedurally encountering a completely randomly generated game map. In today's games, PCG is used in two different ways, online and offline. In the online method, the game content is created while the game is being played. Games can be more difficult depending on player plays, or game contents can be created differently in online PCG methods. The best example of online PCG games is the video game Spore, published by Electronic Arts. In this game, players can create characters as they wish by combining their characters with other contents they find in the game. Rather than having game designers create hundreds of 3-D models of game contents in preparation and program their behavior, he had his team create algorithms to animate the contents that are created by gamers using procedural generation [4]. In the offline method, the game content is created during the development process of the game and then included in the game. Content produced offline can be included directly in the game, or it can be added to the game after passing through the filters of the designers. No Man's Sky, developed by Hello Games, can be given as an example game whose content is created using the offline PCG method. In an unlimited randomly created galaxy, No Man's Sky is a videogame about discovery and surviving [5]. Different kinds of algorithms are preferred for PCG. As well as rule-based methods, evolutionary algorithms and methods based on machine learning can also be implemented in PCG. We can divide these algorithms into two groups as search-based approaches and constructive approaches [6]. The content produced by constructive algorithms is expected to be suitable for use, and the output is used as it is. Algorithms obtained by creating a set of rules are in this group called constructive. On the other hand, Search-based algorithms have a very different structure. As stated in the naming, they are used to find the most suitable generated content. In this method, the content is generated by the algorithm, tested, and then if it is accepted, it is used. Even if it is not suitable, new content is produced again and again until the most suitable one is found. Machine learning-based algorithms and evolutionary algorithms are good examples of search-based methods. The widespread use of PCG methods has enabled video game contents to be converted into data sets and shared. The creation of game corpuses also helped to use machine learning methods for PCG. In this way, both supervised and unsupervised machine learning methods became available. Along with the developing technology, deep learning methods also started to be used as a PCG method. Today, deep learning methods like Variational Autoencoders and Generative Adversarial Networks, are used for generating content studies. In this thesis, Generative Adversarial Network methods are implemented and examined to generate game content procedurally. Rovio Entertainment's Angry Birds is a popular physics-based game that was published in 2009 for mobile devices [7]. Angry Birds, like other physics games, was also used as a domain in PCG studies [8]. The physics constraints used in such games cause many problems for procedural level generation. These constraints also make it difficult to rate the quality of the generated levels of the game. As Shaker states, one of the most difficult aspects of creating game content is determining the quality of the created artifacts [9]. Due to a large number of situations and large movement areas in physics-based games, it is particularly difficult to verify the playability/solvability of the generated levels. In this thesis, a procedural content generation method is developed for generating levels of the Angry Birds. Since Angry Birds is a commercial video game, source codes are not shared by the Rovio company. Thus, the generated levels were tested and visualized on the clone Angry Birds game named Science Birds, developed by Lucas Ferreira [10]. In order to generate levels, three different Generative Adversarial Network architectures are implemented. The first of these architectures is the main form of Generative Adversarial Networks (GAN) introduced by Goodfellow [11]. The second of the examined architectures is the Deep Convolutional Generative Adversarial Networks (DCGAN) which are derived from Convolutional Neural Networks and were introduced by Alec Radford in 2015 [12]. The last of the architectures applied to generate levels is the Wasserstein Generative Adversarial Networks, which is the specialized version of the GAN [13]. Nowadays, deep learning methods have also become popular for procedural level generation, like as rule-based or evolutionary algorithms. Deep learning provides training using large data sets and provides an easier way to obtain features that are difficult to extract with numerical methods. With the ease of use of artificial neural networks, new Generative Adversarial Network architectures are proposed. In this thesis, the training data required to train GAN, were created using a rule-based Angry Birds level generator called Iratus Aves [14]. After the training levels were generated, optimizations like encoding were implemented on newly generated levels. These optimizations helped to improve the outputs of the GAN. Implementations made within the thesis have shown that GANs can also be used to generate levels procedurally in physics-based games such as Angry Birds. Since the generated levels are used in a physics-based game, the generated levels were evaluated according to performance criteria such as stability, playability, linearity, density, etc. As a consequence of the level expressivity analysis, it has been shown that Deep Convolutional Generative Adversarial Networks can be used successfully to generate levels of Angry Birds.
Benzer Tezler
- Mimari kesit aracıyla sentetik üretim: Oditoryum örneği
Synthetic generation with the architectural section tool: An example of auditorium
ŞEMSİ BARIŞ TERZİ
Yüksek Lisans
Türkçe
2023
Mimarlıkİstanbul Teknik ÜniversitesiBilişim Ana Bilim Dalı
DOÇ. DR. SEMA ALAÇAM
DR. ÖZGÜN BALABAN
- Mimari tasarımda yapay zekâ yaklaşımı: Makine öğrenmesi ile mekân işlevlerinin tanınması ve üretken çekişmeli ağlarla mimari plan üretimi
Artificial intelligence approach in architectural design: Recognition of space functions with machine learning and architectural plan generation with generative adversarial networks
BERFİN YILDIZ
Doktora
Türkçe
2024
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik ÜniversitesiBilişim Ana Bilim Dalı
PROF. DR. GÜLEN ÇAĞDAŞ
DR. ÖĞR. ÜYESİ İBRAHİM ZİNCİR
- Yüz ifadesi tanıma başarımı için ilgili bölge belirleme ve çekişmeli üretici ağlar kullanılarak örnek artırım yöntemlerinin geliştirilmesi
Development of a region of interest detection and a generative adversarial network based image augmentation approach for improving facial expression recognition performance
ÖMER FARUK SÖYLEMEZ
Doktora
Türkçe
2021
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolFırat ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
PROF. DR. BURHAN ERGEN
- Improved image generation in normalizing flows through a multi-scale architecture and variational training
Normalleştirici akım modellerinde çok-ölçekli mimari ve değişimsel eğitim ile geliştirilmiş resim üretimi
DENİZ SAYIN
Yüksek Lisans
İngilizce
2022
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolOrta Doğu Teknik ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
DR. ÖĞR. ÜYESİ RAMAZAN GÖKBERK CİNBİŞ
- Termal görüntülere derin öğrenme tabanlı süper çözünürlük yöntemlerinin uygulanması
Application of deep learning based super resolution in thermal images
CANER CİVE
Yüksek Lisans
Türkçe
2023
Elektrik ve Elektronik Mühendisliğiİstanbul Teknik ÜniversitesiElektronik ve Haberleşme Mühendisliği Ana Bilim Dalı
PROF. DR. ENDER METE EKŞİOĞLU