In RaycastMaze the agent must navigate a 3D environment searching for the exit denoted with a bright red square.
It is possible to increase the map size by 1 each time it successfully solves the maze. As seen below.
>>> #init and setup etc. >>> while True: >>> if game.game_over(): >>> game.map_size += 1 >>> game.step(dt) #assume dt is given
Not valid code above.
Forwards, backwards, turn left and turn right.
Terminal states (game_over)¶
When the agent is a short distance, nearly touching the red square, the game is considered over.
Currently it receives a postive reward of +1 when it finds the red block.
- class ple.games.raycastmaze.RaycastMaze(init_pos=(1, 1), resolution=1, move_speed=20, turn_speed=13, map_size=10, height=48, width=48)¶
init_pos : tuple of int (default: (1,1))
The position the player starts on in the grid. The grid is zero indexed.
resolution : int (default: 1)
This instructs the Raycast engine on how many vertical lines to use when drawing the screen. The number is equal to the width / resolution.
move_speed : int (default: 20)
How fast the agent moves forwards or backwards.
turn_speed : int (default: 13)
The speed at which the agent turns left or right.
map_size : int (default: 10)
The size of the maze that is generated. Must be greater then 5. Can be incremented to increase difficulty by adjusting the attribute between game resets.
width : int (default: 48)
height : int (default: 48)
Screen height, recommended to be same dimension as width.
Does not have a non-visual representation of game state. Would be possible to return the location of the maze end.