Skip to content

A high-performance 2D 8-ball pool environment built in C# for experimenting with algorithms and reinforcement learning

Notifications You must be signed in to change notification settings

Veddy1674/pixelpool-ai-testing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PixelPool

Yet another remake of the classic 8-ball pool game, simplified and optimized for experimenting purposes, such as comparing algorithms and AIs, benchmarking and so on.
It's a C# Based Console App, with UIs (Raylib_cs) to view results, debug, or even just to play the game normally:

image

...And a CLI mode with commands for everything: running algorithms, AIs, benchmarking, and at the end the results won't just be nosense numbers, but can actually be seen.

image

Getting Started

todo

Project Structure

Inside algorithms-ai/ the algorithms and reinforcement learning AIs are implemented, wheter through C# or Python.NET
Inside src/game/ the environment is implemented:

PhysicsBody.cs - Class-based physics
PhysicsBodyStruct.cs - Optimized struct-based and hardcoded physics
PoolEnv.cs - Standard environment, safer, uses PhysicsBody and SaveState
PoolEnvMini.cs - Optimized environment, hardcoded, uses PhysicsBodyStruct and SaveStateStruct
It is reccomended to use PoolEnvMini wherever performance is needed, both environments act about the same, but due to some physics difference, you can't, for example, train an AI on PoolEnvMini and make it play on PoolEnv or viceversa

About

A high-performance 2D 8-ball pool environment built in C# for experimenting with algorithms and reinforcement learning

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published