Print Chess Pieces, Then Defeat The Chess-Playing Printer

Chess is undoubtedly a game of the mind. Sadly, some of the nuances are lost when you play on a computer screen. When a game is tactile, it carries a different gravity. Look at a poker player shuffling chips, and you’ll see that when a physical object is on the line, you play for keeps. [Matou], who is no stranger to 3D printing, wanted that tactility, but he didn’t stop at 3D printed pieces. He made parts to transform his Creality Ender 3 Pro into a chess-playing robot.

To convert his printer, [Matou] designed a kit that fits over the print head to turn a hotend into a cool gripper. The extruder motor now pulls a string to close the claw, which is a darn clever way to repurpose the mechanism. A webcam watches the action, while machine vision determines what the player is doing, then queries a chess AI, and sends the next move to OctoPrint on a connected RasPi. If two people had similar setups, it should be no trouble to play tactile chess from opposite ends of the globe.

Physical chess pieces and computers have mixed for a while and probably claimed equal time for design and gameplay. There are a couple of approaches to automating movement from lifting like [Matou], or you can keep them in contact with the board and move them from below.

Continue reading “Print Chess Pieces, Then Defeat The Chess-Playing Printer”

Python Settles Bet About Best Strategy In Children’s Board Game

Simulating a tabletop game can be done for several reasons: to play the game digitally, to create computer opponent(s), or to prove someone wrong. In [Everett]’s case, he used Python to prove which adult was right about basic strategy in a children’s game.

[Everett]’s 5-year-old loves a simple game called Hoot Owl Hoot! in which players cooperatively work to move owls along a track to the safety of a nest. Player pieces move on spaces according to the matching colors drawn from a deck of cards. If a space is already occupied, a piece may jump ahead to the next available spot. The game has a bit more to it than that, but those are the important parts. After a few games, the adults in the room found themselves disagreeing about which strategy was optimal in this simple game.

It seemed to [Everett] that it was best to move pieces in the rear, keeping player pieces grouped together and maximizing the chance of free moves gained by jumping over occupied spaces. [Everett]’s wife countered that a “longest move” strategy was best, and one should always select whichever piece would benefit the most (i.e. move the furthest distance) from any given move. Which approach wins games in the fewest moves? This small Python script simulates the game enough to iteratively determine that the two strategies are quite close in results, but the “longest move” strategy does ultimately come out on top.

As far as simulations go, it’s no Tamagotchi Singularity and [Everett] admits that the simulation isn’t a completely accurate one. But since its only purpose is to compare whether “no stragglers” or “longest move” wins in fewer moves, shortcuts like using random color generation in place of drawing the colors from a deck shouldn’t make a big difference. Or would it? Regardless, we can agree that board games can be fitting metaphors for the human condition.

Building A Vector Graphics Machine From Scratch Including The CRT

Over the years we’ve seen quite a few projects involving vector graphics, but the spaceship game created by [Mark Aren] especially caught our eye because in it he has tackled building a vector display from scratch rather than simply using a ready-made one such as an oscilloscope. As if the vector game itself wasn’t interesting enough, the process of designing the electronics required to drive a CRT is something that might have been commonplace decades ago but which few electronics enthusiasts in 2020 will have seen.

In his write-up he goes into detail on the path that took him to his component choices, and given the unusual nature of the design for 2020 it;s a fascinating opportunity to see the job done with components that would have been unheard of in the 1950s or 1960s. He eventually settled on a high voltage long-tailed pair of bipolar transistors, driven by a single op-amp to provide the differential signal required by the deflection electrodes. The mix of old and new also required a custom-fabricated socket for the CRT. On the game side meanwhile, an ATmega328 does the heavy lifting, through a DAC. He goes into some detail on DAC selection, having found some chips gave significant distortion.

All in all this is an impressive project from all angles, and we’re bowled over by it. Of course, if you fancy a play with vector graphics, perhaps there’s a simpler way.

Among Us Emergency Meeting Button Becomes Reality

Among UsĀ has been an indie gaming success story. A game built by a small team has, after several years on the market, become a worldwide sensation. Gameplay consists of players attempting to find the imposter amongst their ranks and an “Emergency Meeting” can be called if players need to speak to each other. [john lemme] wanted to be able to do the same with his roommates, and set about building the real thing.

The build relies on an ESP32, which reads the state of a big red emergency button. When pressed, the ESP32 uses its WiFi connection to trigger a Discord conference call containing all the roommates. Naturally, it also plays the buzzer sound from the actual game, too – via a small amplifier and a speaker yanked from some headphones.

It’s a fun build, though [john] notes it has its limits. The call takes 10 seconds to initiate after the button press, and the audio hardware doesn’t do a great job of recreating the buzzer noise from the game. However, it’s a good starting point, and we think the concept could actually prove useful with some refinement. Video after the break.

Continue reading Among Us Emergency Meeting Button Becomes Reality”

Automation With A New Twist

Turning on a lightbulb has never been easier. You can do it from your mobile. Voice activation through home assistants is robust. Wall switches even play nicely with the above methods. It was only a matter of time before someone decided to make it fun, if you consider a Rubik’s cube enjoyable. [Alastair Aitchison] at Playful Technology demonstrated that it is possible to trigger a relay when you match all the colors. Video also after the break.

The cube does little to obfuscate game data, so in this scope, it sends unencrypted transmissions. An ESP32 with [Alastair]’s Arduino code, can track each movement, and recognize a solved state. In the video, he solves the puzzle, and an actuator releases a balloon. He talks about some other cool things this could do, like home automation or a puzzle room, which is in his wheelhouse judging by the rest of his YouTube channel.

We would love to see different actions perform remote tasks. Twisting the top could set a timer for 1-2-3-4-5 minutes, while the bottom would change the bedroom lights from red-orange-yellow-green-blue-violet. Solving the puzzle should result in a barrage of NERF darts or maybe keep housemates from cranking the A/C on a whim.

Continue reading “Automation With A New Twist”

GTA V Mod Shows (And Cheats) Those Stunt Jump Hoops

While the recent announcement of Grand Theft Auto V for the upcoming next-generation game consoles was a disappointment for those fervently waiting for a successor in the infamous video game series, it shows that after almost seven years of its initial release, the epic title is still going strong — and rightfully so. But a game as varied and complex as GTA V isn’t without some quirks, especially if you’re going for 100% completeness.

The stunt jumps seem a particular pesky nut to crack here, so [Anthony Som] made it his mission to shed some light on what qualifies as a successful jump by reverse engineering the system and writing both a mod for displaying the landing zone and a cheat to instant success.

If you’re not familiar with the game, its vast open world map features a variety of side quests, one of them being stunt jumps, where certain locations allow you to launch the vehicle you’re driving into the air in hopes to land on an adjacent road or area — whether to evade the people chasing you, or just for fun. There’s no telling how to actually succeed though, the game just tells you if you did or not afterwards, causing some degree of frustration. As an avid speedrunner (as in finishing a game in the shortest possible time), [Anthony] was looking for a way to increase the success rate for those stunt jumps, and decided to dig into the code to find out how to get there. Of course, being a proprietary game, he had to resort to reverse engineering and utilizing GTA’s vivid modding scene to do so.

His initial outcome was a mod that displays the launch and landing area as rectangles inside the game itself, which was a great help. But well, after already getting that far, [Anthony] figured he might as well continue and add a cheat mode to teleport the car right inside that expected landing area and be done with second-guessing his attempts once and for all.

If you’re curious about modding GTA yourself, his write-up has a few good pointers for that, and of course features some real examples of it. Whether this is a good idea for the self-driving AI that uses GTA as learning environment is probably a different story though.

Gaming In Different Languages

One of the perks of using older hardware is its comparative simplicity and extensive documentation. After years or decades of users programming on a platform, the amount of knowledge available for it can become extensive. This is certainly the case with the 6502 microprocessor, used in old Apple computers and some video game systems from the ’80s. The extensive amount of resources available make it a prime candidate in exploring various programming languages, and their advantages and disadvantage.

This project looks into those differences using a robot game, which has been programmed four different ways in three languages. [Joey] created the game in Python first and then began to port it to the 65C02, a CMOS variant of the 6502. The first iteration is its assembly language, and then a second iteration with optimized assembly code. From there, he ports it to C and then finally to Forth. Each version of the game is available to play in a browser using an emulator to run the 6502 hardware.

Since the games run in the browser, other tools are available to examine the way the game runs in each language. Registers can be viewed in real time, as well as the values stored in the memory. It’s an interesting look at an old piece of hardware and of its inner workings. For an even deeper dive into the 6502, it’s possible to build a working computer on breadboards using one.