Skip to content

This project combines the power of reinforcement learning with a custom raycasting game engine written in Golang, reminiscent of the classic Wolf3D game.

License

Notifications You must be signed in to change notification settings

andrewjc/wolf3d-golang

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Navigating Raycasting Worlds using GoLang, Python and Reinforcement Learning

Welcome to the Navigating Raycasting Worlds project! This project aims to provide a custom raycasting game engine written in GoLang, reminiscent of the classic Wolf3D game, and to explore the use of reinforcement learning techniques to train artificial agents to navigate through randomly generated maps.

Screenshot

Getting Started

To get started with the project, you will need to have the following dependencies installed:

  • GoLang: You can download the latest version of GoLang from the official website.

  • Python: You will need to have Python installed to run the neural network trainer. You can download Python from the official website.

Once you have these dependencies installed, you can clone the project repository and build the GoLang code by running the following commands:

git clone https://github.com/andrewjc/wolf3d-golang.git
cd wolfenstein-3d-golang
make build-game

You can then run the game by running the following command:

./build/game

This will start the game env and open an IPC interface allowing the player and enemy character(s) to be controlled by the neural network trainer. You can then run the neural network trainer by running the following command:

make train