Author Topic: Master's Thesis ~ Ara: The Second World - Crucible  (Read 2879 times)

Master's Thesis ~ Ara: The Second World - Crucible
« on: November 11, 2016, 06:07:52 PM »
Master's Thesis ~ Ara: The Second World - Crucible
Real time Adaptive Difficulty AI in a Procedurally Generated Bullet Hell Game
by Mew77

Ara: The Second World - Crucible is a 2D vertical scrolling shooter game with an AI director that procedurally generates and adjusts gameplay variables to properly challenge the player. The goal of the thesis is to design a system that can challenge players of all skill levels. The bullet hell genre has a significant skill gap between novice and advanced players making it an ideal framework to use.

Story: None yet, the idea was that the Crucible was the final test for aspiring battle mages.

Game Controls

Arrow Keys = Movement
Z = Primary Shot
Hold Shift = Focus Mode
X = Activate Barrier
1-6 or Cursor = Select Feat

Debug Controls
F4 = Draw Game Debug
F5 = Draw Collision Debug
F6 = Draw AI Debug, and enable AI logging.

Mechanics

Focus Mode: 50% player move speed, show hitbox and slow enemies and enemy bullets by 15%.
Barrier: 20 mana to conjure a barrier that lasts for 10 seconds or 2 hits, whichever comes first.

The primary shot is changed with powerups rather than the traditional touhou style.

The player collects XP orbs based on the relative difference between the player and enemy level. Every 100 XP grants 1 Lv.

The player gains Feats when leveling up, feats are permanent upgrades to your character. There are a few feats that will always be in the list if selectable, otherwise the AI system will recommend feats to the player based on how they are doing.

Adaptive Difficulty AI System

The Adaptive Difficulty AI looks at gameplay metrics and makes judgements every 10 seconds to adjust gameplay variables to create a challenging but fair experience for all skill levels. Press F6 to enable AI debug and AI logging.

Final Thoughts

The game has just one procedurally generated stage consisting of 20 encounters and is meant to be a 10 minute test for the Adaptive AI System.

Notes
I wrote the engine on a WIndows 7 PC, and honestly probably used C++ calls that are windows specific. Please let me know if it does not run on other PCs as I have not done proper compatibility testing on this.

Added a means for the system to adjust bullet patterns and bullets, with the means of adjustment in the XML.

Any feedback will be helpful, also of anyone can help me out with sprites, sounds or whatever that would be great, most of the current enemy sprites are stolen lovingly from Touhoumon and then color shifted in photoshop. The character sprite is taken from CTC, which needs to change too. I do hope to develop this into a full commercial bullet hell game one day, so any help will be appreciated.

:P

Download Game (Win32 Application): https://www.dropbox.com/sh/tdow0dldnqsje89/AADPTmZhl-Kua8ff0hLqkBkGa?dl=0
« Last Edit: January 05, 2017, 04:15:52 PM by mew77 »

Dark Kitsune

  • Code Fox
Re: Ara: The Second World - Crucible
« Reply #1 on: November 11, 2016, 09:36:20 PM »
I'm not sure if this is just an engine incompatiblity with Wine (I'm on Linux), but when I start the game it begins to load then shows an error message saying "ERROR: Attemped to load from file at path: Data/Fonts/lucidaConsole.fnt" and crashes.

Re: Ara: The Second World - Crucible
« Reply #2 on: November 12, 2016, 05:17:20 PM »
The primary reason errors like that show up for me is if the file in question is missing. if that's the case, perhaps you will need to redownload it. I have checked and the file should be present in the dropbox folder, please let me know if the files in the data folder fail to download.

If not, then perhaps there is an issue with engine incompatibility. Do note that I developed the engine on a PC running Windows 7. To be honest, I am almost certain that I used some C++ calls that are Windows specific in the engine.

I have not tested the application for compatibility with Linux or Macintosh.

In that regard, I apologize if it does not work.

« Last Edit: November 12, 2016, 05:23:02 PM by mew77 »

Dark Kitsune

  • Code Fox
Re: Ara: The Second World - Crucible
« Reply #3 on: November 12, 2016, 05:57:52 PM »
Yeah, I tried downloading and extracting again just now (and double checked the files that it extracted) and it still did not work.
I tried reinstalling the lucida console fonts for wine to see if that would help but it didn't either.

What Windows-specific includes are there? So I can make sure I have all of the required DLLs installed.

Anyway, I'll try the game again a little later when I can use a Windows computer.
« Last Edit: November 12, 2016, 06:00:40 PM by Dark Kitsune »

Re: Ara: The Second World - Crucible
« Reply #4 on: December 18, 2016, 04:27:00 PM »
I have updated the original post. Please note that the game is a win32 application and may have unintended behavior in other operating systems.

SInce this is my thesis, users who would like to provide data can activate AI debug with F6 and attach the accompanying Adaptive AI Log txt to their post here.

Please Enjoy and Danmaku responsibly. :p
« Last Edit: December 18, 2016, 04:30:10 PM by mew77 »

Dark Kitsune

  • Code Fox
Re: Ara: The Second World - Crucible
« Reply #5 on: December 18, 2016, 08:43:51 PM »
I actually got the game to work in Wine for Linux by converting all the data folder names to upper case (because in Linux folders are case sensitive and it was trying to load the content from upper case folder names when a bunch of them were lower case which would normally work fine in Windows), and by converting all the shaders to GLSL version 1.30 using the following terminal command inside the shader folder:
Code: [Select]
find ./ -type f -exec sed -i 's/#version 330 core/#version 130/g' {} \;
Runs great.
« Last Edit: December 18, 2016, 08:47:18 PM by Dark Kitsune »

Re: Ara: The Second World - Crucible
« Reply #6 on: December 19, 2016, 06:24:29 PM »
Sweet, I'll keep that in mind if I develop for linux in the future.

Great thanks.

To all: I have updated the XML files for the thesis now.

Please help test the new build, I have updated the original post with the latest information.
« Last Edit: January 04, 2017, 04:50:32 PM by mew77 »