Procedural Generation in 2D Metroidvania Game with Answer Set Programming

Johnny Xu, John Morris
{"title":"Procedural Generation in 2D Metroidvania Game with Answer Set Programming","authors":"Johnny Xu, John Morris","doi":"10.5121/csit.2023.130511","DOIUrl":null,"url":null,"abstract":"Video game designers often find themselves at a crossroad when designing levels; namely, many have a difficult time balancing the amount of control they want to have over what their levels look like [1]. If too little control is given, like in the case of pure perlin-noise generation, levels can end up with too much variation and unideal generations [2]. Softlock is an example of unideal generation in the case of metroidvania games, if the placement of keys cannot be easily controlled and end up being placed behind gates, the players can get permanently stuck [3]. Developers may usually hand-make all levels in order to try and prevent this from happening, however they risk spending too much effort and time on designing levels, resulting in a general lack of quantity in levels. Objectively speaking, both methods have their strengths and work well in specific genres of games, but limiting oneself to the boundaries of these methods does not fundamentally achieve both quantity and accuracy. This paper proposes an unique solution to this dilemma, providing automated generation of levels while also giving developers much more control over the overall output. Our method uses Answer Set Programming (ASP) to verify generation based on restrictions we place, guaranteeing the outcome to be what we want [4]. To demonstrate our method, we applied our solution to a 2D metroidvania game made in the Unity game engine and conducted quantitative tests to assess how well our method works as a level generator [5].","PeriodicalId":261978,"journal":{"name":"Computer Science, Engineering and Applications","volume":"124 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2023-03-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Computer Science, Engineering and Applications","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.5121/csit.2023.130511","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

Video game designers often find themselves at a crossroad when designing levels; namely, many have a difficult time balancing the amount of control they want to have over what their levels look like [1]. If too little control is given, like in the case of pure perlin-noise generation, levels can end up with too much variation and unideal generations [2]. Softlock is an example of unideal generation in the case of metroidvania games, if the placement of keys cannot be easily controlled and end up being placed behind gates, the players can get permanently stuck [3]. Developers may usually hand-make all levels in order to try and prevent this from happening, however they risk spending too much effort and time on designing levels, resulting in a general lack of quantity in levels. Objectively speaking, both methods have their strengths and work well in specific genres of games, but limiting oneself to the boundaries of these methods does not fundamentally achieve both quantity and accuracy. This paper proposes an unique solution to this dilemma, providing automated generation of levels while also giving developers much more control over the overall output. Our method uses Answer Set Programming (ASP) to verify generation based on restrictions we place, guaranteeing the outcome to be what we want [4]. To demonstrate our method, we applied our solution to a 2D metroidvania game made in the Unity game engine and conducted quantitative tests to assess how well our method works as a level generator [5].
基于答案集编程的2D《银河战士》程序生成
电子游戏设计师在设计关卡时经常发现自己处于十字路口;也就是说,许多人很难平衡他们想要控制关卡的数量[1]。如果控制得太少,就像在纯柏林噪声产生的情况下,电平最终会有太多的变化和不理想的代[2]。《银河恶魔城》中的软锁便是一个不理想生成的例子,如果玩家不能轻松控制钥匙的放置,并最终将钥匙放置在门后,玩家便会被永久卡住[3]。为了防止这种情况发生,开发者通常会手工制作所有关卡,但他们可能会在关卡设计上花费太多精力和时间,导致关卡数量普遍不足。客观地说,这两种方法都有各自的优势,在特定的游戏类型中也能发挥作用,但将自己限制在这些方法的范围内并不能从根本上实现数量和准确性。本文针对这一困境提出了一个独特的解决方案,即提供自动生成关卡,同时让开发者能够更好地控制整体输出。我们的方法使用答案集编程(ASP)根据我们设置的限制来验证生成,保证结果是我们想要的[4]。为了演示我们的方法,我们将我们的解决方案应用于一款使用Unity游戏引擎制作的2D《恶魔城》游戏,并进行了定量测试,以评估我们的方法作为关卡生成器的效果[5]。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信