Yuka | A JavaScript library for developing Game AI

I’d like to inform this great community about a new Open-Source project. Yuka is a JavaScript library for developing Game AI for web-based applications. Myself and a colleague are working on Yuka the last few months and we would like to share a first pre-release. Check out the official examples to get an impression of the project.

image

Some important facts about Yuka:

  • Yuka is a standalone AI engine and independent of a particular 3D engine. You can use it with three.js but it’s also possible to combine it with any other 3D library like BabylonJS.
  • The idea is to implement the actual game logic with Yuka and the visual representation with your preferred JavaScript 3D library. Of course we use three.js in all examples and showcases :wink:.
  • Everything is work in progress :innocent:. If you find a bug or have a suggestion, please report it at the issue section on gihub. Your contribution is welcome.
  • Yuka is MIT licensed :raised_hands: .

Features:

  • Game Entity concept
  • Autonomous Agent Design (State- and Goal-Driven Agent Design)
  • Steering Behaviors and a Locomotion Model
  • Navigation (Graphs and Navigation Meshes)
  • Perception (Vision and Memory)
  • Triggers

Links:

Roadmap:

  • We plan to implement a more advanced showcase (a First-Person Shooter) at the beginning of next year which demonstrates the usage of Yuka in a more complex and performance-critical scenario. The code will be open source.
  • Apart from that, we are going to enhance the examples section, improve/optimize the core functionality and try to add some tutorials.
13 Likes

Great project!
Storm of applause :clap:

1 Like

@prisoner849 Thanks! The project really makes a lot of fun :grin:

1 Like

Man, where do you find the time to do so much! :sweat_smile:

Great work, looking forward to playing the FPS.

2 Likes

Hey @Mugen87, I’ve been following the project since your original posting. Didn’t have too much to say on it initially.

A few years ago, when I started working on my game, I was looking for an AI framework, and I couldn’t find one that would fit my needs well enough, so I ended up writing all of the AI myself.

It’s great to see something like Yuka be available today, and for the low low price of 0 rupees!

After looking at your engine, I came away both impressed with the code, and a little disappointed with the overall structure and tools on the offer. Disappointed for my own needs, not because I think the library is crap! The things I didn’t like were:

  1. the library is very tight, it’s hard to pull bits from it
  2. the behaviour implementation is very concrete, there was pretty much 0 abstraction, if I wanted to create my own behavior - it looked like it would be either impossible or a Major Payne.
  3. it runs itself, if you want to integrate it into another engine - you would not be able to integrate it into a common simulation step.
  4. lack of simulation tools (like MCTS)
  5. lack of grid-based tools

for me the two latter points were pretty much deal-breakers.

I thought you might find feedback useful. Anyway, great job on the library and thank you for releasing it to the community, I’m sure many will benefit from it.

Thanks for the feedback! Yeah, there are still a lot of open points^^. My colleague and I currently try to get a sponsorship in Germany so we have more room to enhance/improve the library. Right now, it’s hard for us to work at the project for time and financial reasons.

The official demos at the website all use three.js so it is actually possible to integrate it in other engines. I suspect we both have a different understand of what integration means^^.

1 Like