(Space) Cauldron is an electronic board game for 2 ~ 4 players. Players (alchemists) have to collect the right ingredients and cook them in the cauldron. Every ingredient works differently and could either enhance or cancel other ingredients’ flavors. Whoever successfully cook the item(s) on their unique recipe card wins the game.
The inspiration for this idea came when I was looking at multi-RFID readers. The technology is being used in the casino to count RFID embedded chips and it can read more than 1000 chips at once accurately. I wanted it as a game controller. However, the first model that I looked at was too big. Recently, when I followed up with the vendor and asked for code samples, I found out they have a new board with a smaller factor.
This board can read multiple RFID tags accurately but does not know the location of each chip on the board. The first mechanic that I thought of is some kind of mixing pot. A magic cauldron is the best mixing pot there is.
There is a Japanese amusement game called JARASTA (ジャラステ 2017) which uses similar technology in its’ gameplay. However, there is no mixing fun, but just an interesting way of reading multiple game items at the same time. The stirring pot mechanic wasn’t really playing an important role in the game. I am interested in making the stirring pot and mixing ingredients the mechanic of my game.
It is worth mentioning there is another game called ゾイドワイルド バトルカードハンター (ZOIDS World Battle Card Hunter) that comes out later and shares the same game cabinet with JARASTA.
For someone who doesn’t speak the language, I had to learn these amusement games with prior knowledge and lots of imagination. ZOIDS was not an intuitive game to pick up mostly because of the disconnection between the gaming hardware and the actual gameplay itself. I eventually found out the RFID reader was not even a part of the game at all. This must be a project on a budget.
–KY-040 Arduino Rotary Encoder User Manuel
–Arduino IDE setup
The sample code to work with:
int pinA = 9; // Connected to CLK on KY-040
int pinB = 6; // Connected to DT on KY-040
int encoderPosCount = 0;
int pinALast;
int aVal;
boolean bCW;
void setup() {
pinMode (pinA,INPUT);
pinMode (pinB,INPUT);
/* Read Pin A
Whatever state it's in will reflect the last position
*/
pinALast = digitalRead(pinA);
Serial.begin (9600);
}
void loop() {
aVal = digitalRead(pinA);
if (aVal != pinALast){ // Means the knob is rotating
// if the knob is rotating, we need to determine direction
// We do that by reading pin B.
if (digitalRead(pinB) != aVal) { // Means pin A Changed first - We're Rotating Clockwise
encoderPosCount ++;
bCW = true;
} else {// Otherwise B changed first and we're moving CCW
bCW = false;
encoderPosCount--;
}
Serial.print ("Rotated: ");
if (bCW){
Serial.println ("clockwise");
}else{
Serial.println("counterclockwise");
}
Serial.print("Encoder Position: ");
Serial.println(encoderPosCount);
}
pinALast = aVal;
}
Now the rotation only affects the bubbles. I had tried rotating the smoke as well, but my son thinks the whole pot is rotating. Maybe after adding floating objects/ingredients, the rotation will be more obvious.
01/15/2024
Adding a herb cabinet next to the cauldron.
Herb illustrations (svg):
https://svgsilh.com/image/37616.html
Plants symbolized in the chant:
Eye of newt – mustard seed.
Toe of frog – buttercup leaves.
Wool of bat – holly or moss.
Tongue of dog – hounds tooth
Adder’s fork – violet
Blind worm’s sting – Knotweed
Lizard’s leg – Ivy
Howlet’s wing – garlic or maybe ginger (but garlic was more common)
There are variations but these are most common ones according here.