Skip to content
Henry-314159 edited this page Jul 21, 2023 · 20 revisions

Welcome to the Omnipede Wiki!

This is the one-stop shop for information about Omnipede, here are some important things:

How to download Omnipede

There are 2 ways to download Omnipede

  1. Downloading the latest release
  2. Downloading the source code
  • Right now there are only windows releases, but that may change in the future
  • Releases are easier to download
  • Downloading the source code allows you to mess with it

Downloading the latest release

  1. Download the latest release
    • You only need omnipede-win-x64-v[version].zip or omnipede-win-x86-v[version].zip
  2. Unzip the file
  3. Run omnipede.exe

Downloading the source code

  1. Download the source code
    1. The zip file can be found in the latest release
  2. Unzip the file
  3. Download .NET 7.0
  4. Run omnipede.exe
  5. (optional) Open the folder in VScode if you want to mess with the source code

How to use Omnipede

Reading the output

If everything is working the output should look something like this:

Loading Config:
    maxDepth: 2
    maxTimeMiliseconds: 15000
Ply:
    startX: 5
    startY: 1
    endX: 4
    endY: 0
    pieceToMoveIndex: 0
    hasMoved: False
    piecesToAdd: 0
    piecesToRemove: 0
    startBinary: 10000000000000110
    endBinary: 10000000000000110
Ply Value: 0
Depth: 1
Ply:
    startX: 5
    startY: 1
    endX: 4
    endY: 0
    pieceToMoveIndex: 0
    hasMoved: False
    piecesToAdd: 0
    piecesToRemove: 0
    startBinary: 10000000000000110
    endBinary: 10000000000000110
Ply Value: 0
Depth: 2
00:00:00.0588891 - Config Loading Time
00:00:00.0282412 - Game State Decoding Time
00:00:00.0426284 - Search Time
00:00:00.1297594 - Total Run Time

On the infinite chess website, at the top of the screen there is a box that displays the cords of your mouse. the move the engine wants you to make is moving the piece form the startX and startY to endX and endY

You will notice that there are multiple plies shown; the most recent one is the one that it thinks should be played. the reason for this is that the program first searches at depth: 1 then depth: 2 until it runs out of time or it reaches the max depth.

Loading Config:
    maxDepth: 2
    maxTimeMiliseconds: 15000

This part of the output displays the current config options.

Ply:
    startX: 5
    startY: 1
    endX: 4
    endY: 0
    pieceToMoveIndex: 0
    hasMoved: False
    piecesToAdd: 0
    piecesToRemove: 0
    startBinary: 10000000000000110
    endBinary: 10000000000000110
Ply Value: 0
Depth: 2

This part of the output displays information about the ply it thinks should be played.

startX is the x coordinate of the piece it wants you to move

startY is the y coordinate of the piece it wants you to move

endX is the x coordinate of the square it wants you to move the piece to

endY is the y coordinate of the square it wants you to move the piece to

Ply Value is how good it thinks the move is, positive value means white is winning, negative value means black is winning.

Depth is the depth of the search in plies

00:00:00.0588891 - Config Loading Time
00:00:00.0282412 - Game State Decoding Time
00:00:00.0426284 - Search Time
00:00:00.1297594 - Total Run Time

This part of the output displays how long the various parts of the program took.

Using the input

  1. In the pause menu press the Copy Game button
  2. Open omnipede-input.json in any text editor
  3. Delete everything that is already there
  4. Paste in the game

Quick Tip: in most text editors, you can combine steps 3 and 4 by pressing Ctrl+A then Ctrl+V to quickly select everything and replace it with the contents of your clipboard

image

Messing with the config

{"maxDepth":2,"maxTimeMiliseconds":15000}
  • maxDepth
    • Default value: 2
    • Unit: plies
    • How far the program will try and search into the future
  • maxTimeMiliseconds
    • Default value: 15000
    • Unit: milliseconds
    • The time at which the program will automatically stop the search
    • After the search is canceled it may take extra time to stop the program
    • if you have a max depth of over 100 it may take awhile to cancel every search

Limitations

  • Because I haven't made infinite sliding movement work, when the slide limit is set to Infinite, it will set it's sliding limit to 50
  • It doesn't fully grasp the concept of check, it knows that if a king gets taken, then the game ends and it's really bad for the player who lost their king, so it should follow check rules if depth>=2
  • Draws probably cause problems (I haven't tested them yet)