Official Everybody Edits Forums

Do you think I could just leave this part blank and it'd be okay? We're just going to replace the whole thing with a header image anyway, right?

You are not logged in.

#1 2022-07-14 00:05:02

From: somewhere probably.
Joined: 2015-02-19
Posts: 1,015

Looking back on Chess EE

I always wanted to make a forum post regarding my EE chess project. Explaining the development process/history. But time slips away. Years go by. Well here we are.

Around 2017 or 2018 I was inspired by the various system worlds going around, like connect 4 built with switch/portal based logic. I wanted to make a playable chess game. One not controlled by bots or by simply placing blocks.

Had I made any system worlds before? No. Did I know if it was possible? No. But I had hope.

This entire project wouldn't have been possible without EEditor. Lots of moving things around, copying and pasting the same pattern over and over, making copies of worlds to test new ideas.

Multiplayer Version 1


I started with the board display. As small as I could make it, so that most of the board would fit within the players view, and because I figured the systems would take up most of the world. 3x3 cells for each square of the board, made of orange global switches. 64 cells for the 8x8 board. The back pieces were displayed as the inverse of the white piece pattern.

The gameplay for this version wasn't very intuitive, but at the time, it didn't seem like a bad idea.

At the top right of the world was the board display, connected to it was the piece selector.

The player would pick which type of chess piece (Rook, kight, bishop, king, queen, pawn) they wanted to play. Limited by what piece type they were allowed to play.

Each piece type had its own system, color coded.

purple basic - rook

red basic - knight

cyan basic - bishop

orange basic - king

purple brick - queen

yellow green - pawn

These systems looked at the entire display and determined what locations contained the specific piece type.

Each piece on a 3x3 cell was recued to a unique 2 or 3 block pattern. So it only needed to check for that pattern, rather then the entire pattern of the piece. The display, which was already storing the information, could be used instead of using adicional switches to store the data.

This brought the player to a separate board, the cell selector, that let them pick from the available spots.

i.e. the player could pick to move a pawn, then would be given all the spots with their pawns. Then pick the specific pawn they wanted to move.

I never made it to the logic determining what could move where, or what pieces were available for the player to play.

At some point I found out ice makes you go faster, so I started adding it to systems so they wouldn't take so long.

The other systems/segments in the world:

Spawn, where the one player could choose the White (yellow team) side, which would unlock the Black (magenta team) for one player.

A switch reseter, to reset the board. Quite large because this was before there was a block to reset switches.

The grey system, does some kinda routing combined with the tall grey and ice system. I'm not really sure anymore what exactly it was meant to do.

The blue system set the cell selector based on the results of the piece color system.

Sections to set a cell for a piece, also color coded. But only the rook and pawn seem to have them built.

Version 1.5 vs computer.

While still working on version 1 I branched off and wondered if a chess AI was possible. Never got very far, but I did come up with some good improvements.

The wonderful idea to combine the display and the cell selector. The player would select the cell they want to play, out of the available cells. Selecting a specific piece to move or location to move to.

I literally cut the different colored piece systems and stitched them together into one rainbow system. Instead of checking the entire board for a 1 piece type, it checked one cell to figure out what was there. It took a bit of work to make the system fit in the world. I had switched from great to huge because huge had more area.

They grey system also started to take shape. Each cell on the board corresponded to a cell on the grey system, which either routed to the rainbow system or to the display setting system.

I started to make a checkmate calculating system, orange basic.

And the start of a system to determine where knight's can move.

The board had some color to it.

Version 2

The new board was used.

A major challenge of this project was size. Worlds were only so big. There was a limited about of ids for portals and switches.  And a discovery, there was a limit to the number of switches and portals one can put into a level, even if there was space available and ids. I actually had to be careful.

I always had the though of the blue system being complex, moving the player around depending on what was needed, instead of going over the entire board. But the idea was half baked until now. Most chess pieces move horizontally/vertically or diagonally. the queen, king, rook, bishop. a king is just a queen that moves by one. a rook is half a queen. a bishop is half a queen. I combined their movement into one system.

The blue system checks for posible moves. Starting at the original cell moving outwards on each axis/diagonal, making open spaces until it hits another piece. If of the same team, that space is not included, if its the other team, the space is included.

A smaller blue settings system controls the order and directions.

There was also a separate system for determining where knights could move. I literally wrote out on a piece of paper what id numbers needed to be checked for each cell.

The grey system also really came together. It was combined with the display setter. So it could route to the rainbow system, remove the piece form the board, place a piece on the board, and route to the blue settings system.

cell selector -> grey system -> rainbow. rainbow detects what piece type was picked. rainbow -> grey system. grey system removes piece from board. grey system -> blue system (or separate knight system). Blue system determines where the player can move. Blue system - > cell selector. pick where you want to move. cell selector -> grey system. grey system places piece on the board.

I also had the idea to use the board reseter random access, so i could use to clear a space before placing a new one. but i didn't finish it.

Version 3


Reduced the size of the rainbow system.

Combined the knight movement system with the blue system.

Check make system.

The non active player can spectate the board. at the cost of the board looking a bit weird.

Abandoned the inverted pattern for the black player. the board says if the piece is white or black.

The board reseter is random access.

The game is playable from start to finish. Albeit there are some bugs due to incorrect portal/switch ids. and maybe some logical issues.

You can promote pawns if you reach the end. But no en passant and no castling. 

Final Thoughts
If I were to go back and fix stuff, id replace the board setter with the switch reset block, and fix the bug issues. All and all I loved doing this project, it really sparked my love for logic. Heck, it was a direct factor in choosing my college major.

color = #1E1E1E       



Wooted by:

#2 2022-07-14 07:38:41

Joined: 2022-06-17
Posts: 44

Re: Looking back on Chess EE

people are going to play doom on eeo in a couple years

since 2012


Wooted by: (2)

#3 2022-07-14 07:48:21

Wiki Mod
From: ဪဪဪဪဪ From: ဪဪဪဪဪ From: ဪဪဪဪဪ
Joined: 2015-02-15
Posts: 11,005

Re: Looking back on Chess EE

ExFabian wrote:

people are going to play doom on eeo in a couple years

Exactly. I considered trying to recreate a basic version of EEO within EEO itself using switches, but like most of my projects it hasn't gotten past the prototype phase yet. If somebody willing to try wants to do this, then feel free to take this as a challenge to do it before I can.

Everybody Edits Offline World Upload - New worlds are still being published...sorta!



Board footer

Powered by FluxBB

[ Started around 1709060859.5157 - Generated in 0.038 seconds, 12 queries executed - Memory usage: 1.42 MiB (Peak: 1.54 MiB) ]