And said Hmm, I wonder if an Asteroids pattern is possible and of course the rabbit hole got deeper as I pondered what could be done.
Life, Snake, Pong… Space Invaders?
I’m not even thinking they have to be playable.
A tiny ship rotating and blasting asteroid pixels?
How big a matrix would you need to show that? 8x8 seems a bit small but 16x16 would work.
The ship would be 1-2 pixels, the asteroids would be 1 or 4 (2x2) maybe [not all 4 need to be lit, you could light 3 and rotate?]… Shots would be 1 pixel.
Space Invaders… 16x16 with marching pixels, and a base on the bottom?
I remember going to a Hobby Electronics fair in the early eighties, there was a stand by CSC (Continental Specialities Corp). They made breadboards and other hobby electronics stuff. They had a game which was a row of LEDs which moved back and forth with the middle one being green. And you had to shoot the green LED. The gun only had a switch and a debounce circuit. So when you pressed the switch and the green LED was lit you got a point. It was all done with shift registers and logic gates. So when the green LED was lit and you pressed at the right time you generated a logic 1 input to a basic counter that displayed the result on a seven segment LED display.
Another one is a tug of war game a row of LEDs and a button at each end the faster you press the button compared to your opponent, the quicker you move the LEDs to your side of the central line and win.
You could probably do something similar with a PixelBlaze.
If you turn off demo mode, you can use the slider to control the paddle…or if you have a potentiometer handy, you could wire it up to the appropriate input pin and get the position with readADC() on v2, or AnalogRead() on v3.
If I had a volumetric cube I’d make a 3D version, but I don’t so I won’t…yet.
I have a self playing Tetris half finished (I need to go back, fix bugs/cleanup the existing code and finish it). The code I’m basing it is amazing good at playing, and will go for hours and hours.
Last night, after thinking about the arraybuffer/translate stuff (which I still want to build an example of), I started researching into a self-playing Pacman, perhaps with custom mazes… And then wondered if Pacman in just 16x16 was doable, and went down that rabbit hole, and need to write some code for that.
Plus my GF asked if the bubbles could travel at different speeds (multiple layers?), I bought some cheap infinity mirrors to retrofit after seeing someone do that on Reddit, toyed with some hexes and WLED… And the days not over yet.
For the Pacman, I’ll need a pathfinder algo, but most of them use a queue system, which for JS is normally just add an element to an array… But PB doesn’t allow that, since we have to preallocate the array. Ideas? Anyone done any pathfinding patterns?
My image-loading code has a rudimentary scrollable viewport over a frame buffer, so I started a Pacman with a 3x3 cell size (so it could show a bit of detail), but stopped because the image data was so big it was making the pattern editor hang.
I wasn’t going to bother with an optimal pursuit algorithm; I was planning to have the NPCs move until they hit a wall, then turn whichever direction was closer to the current location of the Pacman.
If you’re using a queue, the maximum size would be a bounded multiple of the number of possible positions so you could still allocate a fixed-size array…
My pixel blaze is used for our house lights. I was thinking of hooking to detect hits from our laser tag guns and have various feedback about which parts are hostile / vulnerable as well as show health and such. This project might take a while but I think it would be really cool.
This PC version ran at 160x100 16 colour mode (which was really 80 column text mode with only 2 scan lines per character; every character was the left-side-block and the pixels were set via the fg/bg colour of each character), even lower res than that Taito video:
Fun fact: My cousin later worked for Windmill Software … which was by then making software to manage retirement home logistics.
Wow, qix reminded me of a remake I’d played from Ambrosia Software called Barrak
Before I found that video, I wen’t looking for it and ended up in a wikipedia rabbit hole and found this PAX 19 talk about the history, rise and fall, of Ambrosia Software. This is full of 90s, mac, game, and early-internet world shareware nostalgia.