Inspiration

Bullet hell games like "Devil Daggers" and "Yawnoc" where the player fights endless waves of enemies. We wanted to take that chaos and see if an artificial intelligence can tackle it.

What it does

Watch an A.I. train in real time against enemies with unique behaviors and skillsets. The enemies are programmed with pattern-based behavior, while the player (the ninja) is controlled by an RL model in real time.

How we built it

PyGame for windowing, graphics, and sound effects. stable_baselines3 and gym for machine learning.

Challenges we ran into

Finding a way to train a model within the context of a rapid game loop was difficult. There were some architectural issues with out current approach. We had to compartmentalize the game to be able to work seemlessly with the model.

Accomplishments that we're proud of

We are proud of the work we did to load in the game map, procedurally create waves, and integrate an RL model.

What we learned

We learned to work as a team and communicate properly. We also learned how to properly integrate RL into a realtime application.

What's next for Journey of the Ninja King

More enemies, more levels!

Built With

Share this project:

Updates