All Projects → bernhardrieder → PCGML-Game-Mechanics

bernhardrieder / PCGML-Game-Mechanics

Licence: MIT license
Master thesis: "Using Procedural Content Generation via Machine Learning as a Game Mechanic" with a prototype in Unreal Engine 4.22.

Programming Languages

Jupyter Notebook
11667 projects
TeX
3793 projects
python
139335 projects - #7 most used programming language
C++
36643 projects - #6 most used programming language
C#
18002 projects
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to PCGML-Game-Mechanics

FFMPEGMedia
Unreal FFMPEG Plugin to support more video formats and alpha videos
Stars: ✭ 162 (+276.74%)
Mutual labels:  unreal-engine-4
AnimationPreviewer
Plug-in for previewing Animation Asset
Stars: ✭ 39 (-9.3%)
Mutual labels:  unreal-engine-4
WebCameraFeed
Web Camera plugin for Unreal Engine
Stars: ✭ 50 (+16.28%)
Mutual labels:  unreal-engine-4
unrealEngine-html-pak-downloader
Unreal Engine - HTML5 Download Paks on the fly
Stars: ✭ 25 (-41.86%)
Mutual labels:  unreal-engine-4
coffee-time
Flutter application Coffee Time (Master Thesis)
Stars: ✭ 13 (-69.77%)
Mutual labels:  master-thesis
bird-species-classification
Using convolutional neural networks to build and train a bird species classifier on bird song data with corresponding species labels.
Stars: ✭ 90 (+109.3%)
Mutual labels:  master-thesis
ueversionator
ueversionator is a tool to download custom UE engine builds, extract and register them for use.
Stars: ✭ 38 (-11.63%)
Mutual labels:  unreal-engine-4
DlgSystem
Dialogue Plugin System for Unreal Engine | 🪞 Mirror of https://bit.ly/DlgSource
Stars: ✭ 136 (+216.28%)
Mutual labels:  unreal-engine-4
UnrealEngine ShaderLinking
Simple Unreal Engine project showcasing how to link custom HLSL shaders into unreal engine.
Stars: ✭ 39 (-9.3%)
Mutual labels:  unreal-engine-4
UT GameEventSystem
A flexible event system in Unreal Engine 4
Stars: ✭ 33 (-23.26%)
Mutual labels:  unreal-engine-4
cg
This repo created to manage Issues and releases Cheat Gear.
Stars: ✭ 125 (+190.7%)
Mutual labels:  unreal-engine-4
modio-ue4-legacy
Unreal Engine 4 Plugin for integrating mod.io - a modding API for game developers
Stars: ✭ 83 (+93.02%)
Mutual labels:  unreal-engine-4
RyansUE4Helpers
Extremely helpful helper functions for developing Blueprint and C++ projects in Unreal Engine.
Stars: ✭ 55 (+27.91%)
Mutual labels:  unreal-engine-4
LocalizationUE4
Translation Editor for Unreal Engine 4
Stars: ✭ 59 (+37.21%)
Mutual labels:  unreal-engine-4
BluePrintRenderer
Javascript Unreal Engine 4 Blueprints Renderer
Stars: ✭ 81 (+88.37%)
Mutual labels:  unreal-engine-4
tsu
TypeScript plugin for Unreal Engine 4
Stars: ✭ 62 (+44.19%)
Mutual labels:  unreal-engine-4
UT Framework
Various advanced tools built for Unreal Engine 4
Stars: ✭ 45 (+4.65%)
Mutual labels:  unreal-engine-4
TwitchAuth
Unreal Engine 4 Plugin for In-Game Twitch Authentication.
Stars: ✭ 21 (-51.16%)
Mutual labels:  unreal-engine-4
Realistic-Atmosphere-Godot-and-UE4
A realistic atmosphere material for both the Godot game engine and Unreal Engine 4
Stars: ✭ 119 (+176.74%)
Mutual labels:  unreal-engine-4
AndroidApkAnalyzer
Android application for analyzing installed apps
Stars: ✭ 159 (+269.77%)
Mutual labels:  master-thesis

Using Procedural Content Generation via Machine Learning as a Game Mechanic

This repository contains my master thesis which addresses the open problem of "Using Procedural Content Generation via Machine Learning as a Game Mechanic". It was written for the study program Game Engineering and Simulation Technology at the University of Applied Sciences Technikum Wien in Vienna, Austria.

Thesis Abstract

Procedural Content Generation (PCG) is a powerful and essential topic in modern video games which helps developers to create a vast amount of game elements. Brand new and recent research now connected PCG with Machine Learning (ML) to enable new horizons of content generation. Nevertheless, the research showed that there is still much to do and left the problem of using PCG via ML (PCGML) as a game mechanic open for further research.

For this reason, this thesis dedicated itself to address this open problem with a theoretical and practical approach and furthermore provides developers with a guideline about the procedure of developing PCGML game mechanics. It first addressed fundamental theoretical issues which help to create awareness for PCGML in the first place. It then addressed possible PCGML game mechanics where one of them was implemented in a game prototype scenario. The entire development process for this prototype was documented so that developers can follow them step by step to implement their PCGML game mechanics.

Now, the research showed that PCGML game mechanics are suitable for a broad range of games and are not limited to particular genres. 13 different ideas are described in the thesis and one particular idea called "Changing Weapons" was then implemented in a game prototype scenario. The game mechanics primary feature is a weapon generator which can generate new and similar weapons based on the weapons of a favorite first-person shooter game. In specific, the generator uses a with TensorFlow implemented variational autoencoder to learn the underlying and hidden structure of the provided weapon data and can generate useful weapon data. This generator was then integrated into Unreal Engine 4 to test and prove that a PCGML game mechanic can be used in a typical game engine and showed that this application is possible without any issues.

To conclude the thesis, a performance report was created which showed that the implemented game mechanic does not cause significant performance losses. Thus, it is possible to use PCGML-based game mechanics in video games regularly. Therefore, with this proof-of-concept, a new game mechanic area for creating new player experience has opened for future games.

Repository Breakdown

There are two main projects in this repository:

Playable Prototype

This repository provides a playable prototype which can be found in the release section.

Getting Started with the Project

Requirements

How to Start and Play?

  • Clone the repository
  • Open the plugins folder of the project and extract the "plugins-source-code.7z" file. This file contains the TensorFlow plugin with a modification in the UnrealEnginePython plugin to enable proper packaging support. For more information see this thread.
  • Download the "Windows x86-64 embeddable zip file" from the Python website and extract it into "../UE4/Binaries/Win64/". Note: the required Python version is 3.6.4.
  • Launch the project and make sure you can activate the Python Console in "Window/Developer Tools/Python Console". This indicates that the Python plugin is enabled and works.
  • Check the Python console and wait until all TensorFlow dependencies are installed. For more information, check out this GitHub page
  • Restart the project and then you should be able to run the game now. To make sure everything works, open the weapon generator blueprint located in "Content/Blueprints/BP_TensorFlowWeaponGenerator". It should take a while to open, and no error message should appear in the logs. That means you are ready to go!
  • Press the play button or ALT+P and you should find yourself in the main menu. Don't panic if it freezes after pressing the "Start Scenario" button! It just takes a few moments to load all the dlls.

Known Issues

  • TensorFlowComponent not found: This can happen if your path of the project is too long. Quick fix: move your project to another directory.

Want to learn more about the project?

Check out the chapters 5, 7 and 8 of my master thesis.

Credits

getnamo for this awesome Unreal Engine 4 TensorFlow plugin

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].