Interdimensional Chess is the next Generation of Chess. You can play chess in mindblowing 6 Dimensions, while training your spatial awareness and learning about the maths of linear algebra in more than 3 dimensions.
Interdimensional Chess can be played in 1-6 dimensions (normal Chess is 2-dimensional). But how could a game of chess in more than 3 dimensions even work? 2D Chess has 8^2 Tiles, 3D Chess has 8^3, so 4D Chess has to have 8^4 Tiles, or 8^3 * 8 Tiles or just 8 8x8x8 Cubes next to each in a line(lines are 1D, Cubes are 3D, 3D+1D = 4D). That means in 5D it'd be 8^3 * 8^2, which leads to an 8x8 plane of 8x8x8 cubes (plane is 2D, Cubes are 3D, 2D+3D = 5D).
Since there'll be multiple kings on either side, checkmate is pretty impossible in interdimensional chess. That's why your goal is to capture a single enemy king.
in the "Create a new Gamepay" screen, please pay attention to the Lag-O-Meter at the bottom. If you don't have a strong computer, make sure it'll stay in the green, and only strong computers are able to run the game at red. Ignoring the Lag-O-Meter can make the game unplayable due to lag or might crash the program.
Interdimensional Chess is a very complicated concept and I haven't yet got around to integrate a satisfying tutorial, so if you wanna know more about the game write me an Email to Felix.Windisch01@gmail.com or join our discord server: Discord.gg . I'll answer all messages,.
Programming: Felix Windisch
Art Design: Tomasla
Special Thanks to Elmar van Koordenordt and Christopher Cantwell from Quantum Realm Games
I started by setting up the playing with some simple embedded for loops, that'd alternate between white tiles and black tiles. Each of the tiles has a position in the form of a 6D Vector and a Reference to a piece, if one finds it itself in it. The Controller for the Cursor was rather easy with Unitys Axis Input manager. I then created a Piece class, that'd save all the directions the Piece was allowed to move in an array of normalised 6D Vectors. Once a Piece is selected, it'll loop through each of the Vectors through the value i and will check the tile at direction*i. if there is no obstruction, it'll be selected by setting a flag in the tile class and changing the color. If there is a piece in the way however the direction will be added to another array called blockedDirections and every time it loops through it it checks that !blockedDirection.contains(direction).