New engines

So are y’all no longer acquiring new engines other than the updates to nnue?

I’m speaking with regards to dragon and still leelenstein,
Feedback is appreciated!

Hi James!

I’m overdue for an update, so here goes –

Back in June we started the process of migrating everything from Ruby+Rails to Elixir+Phoenix, and are completely rebuilding our infrastructure in the process.

As of early October, all of NCM’s backend servers (the servers that run the engines) use the “new system” written in Elixir. This new system has several benefits, but specifically, with respect to additional engines, one of the major changes is that engines now run inside Docker containers. This makes it easier to distribute engines to backend servers, manage runtime dependencies, and provides a convenient point of abstraction to normalize each engine’s UCI interface via. – in our case – engine-specific sed and awk scripts.

Internally we now have NCM running with the following engine/versions:

  • Cfish 12, 11a, 11, 10, 9, 8,
  • Ethereal 12.75, 12.50, 12.25, 12.00, 11.75
  • Xiphos 0.6, 0.5, 0.4
  • Laser 1.7, 1.6
  • Defenchess 2.2, 2.1, 2.0
  • Arasan 22.1.0, 22.0.0, 21.4.0
  • Vajolet2 2.8, 2.7

That selection of engines is arbitrary – we can in theory run any engine that compiles and runs on Linux, and can potentially include Windows engines under emulation with Wine. Please let me know if there’s any additional engines you’d like to be included!

And also there’s better support in the new backends for community Lc0 networks such as Leelenstein.

What we’re working on right now is finishing the frontend rewrite. Currently the front-end is still Ruby+Rails, but communicating to the backends via. a thin abstraction layer.

Once the frontend rewrite is deployed, and I think we’re getting close, you’ll be able to use the new engines and networks, License-permitting of course.

The one other benefit with the new system is two-way communication between the browser and the backend, which means you’ll be able to stop a calculation early to get immediate results.

Anyways, that’s a rough update. I’m sorry this is taking longer than expected – there’s just a lot of details that need to be ported over.

Let me know if there’s anything I can expand upon or clear up!

  • chad

Hey Chad,

Sounds like you’ve been busy!

As part of the frontend rewrite would it be possible to add the option to skip to the beginning or end of a game?

Thanks Chad! I look forward to the updates, as always appreciate what you do here :bowing_man:t3: