This reminds me a lot of reYal and KITSUNE.control, except those games have you control a meta level down by pressing keys instead of using physics. (KITSUNE.control in particular, since it also has you lining up larger multi-layer moves)

Fractal tic-tac-toe is like this too, with smaller board placement determining where on the big board you go.

(also some multi-board pinball games?)

I wonder how many other game genres this can be applied to?

## rerere284

### Recent community posts

ok bugs probably don't matter in something like this, but I still feel obligated to report a crash I found

I think it was because I hit the ball so slowly it got -0 velocity on collision maybe

ERROR in

action number 1

of Step Event0

for object o_ball:

Cannot apply sqrt to negative number.

at gml_Script_check_ball_collision_gml_Object_o_ball_Step_0

###

gml_Script_check_ball_collision_gml_Object_o_ball_Step_0 (line -1)

gml_Object_o_ball_Step_0

once you get the drill, you can use the drill's ability to snap you to the grid to jump 4 blocks in height, sorta like the quick-turn in pac-man speedruns.

(with how many 4 block tall things there are in Ziggurat, this might be intentional?)

also it's possible to softlock by switching off blue, entering the main menu, leaving the menu with the player's position in the center of the A, then when you come back with blue switched on again you'll be stuck in the A without ctrl+Z doing anything. (since it doesn't undo level entering)

Sorry to add to this, but the last update didn't fix everything for me. (Playing the downloaded version, browser version works fine)

Before the last update, the colored areas filling up didn't display at all.

After that update, they display and fill up, but if I click them they freeze, and I can't drain resources from them.

This is with a blank save with only the shoveller active.

The thought process for making a move in this game at level 5:

"Okay, so if #0 taps downward, #1 will stand on the right button, making #2 walk over the down button, making #3 stand on the right button, making #4 walk right."

"BUT, I want #4 to only move one tile right, meaning #3 has to walk down over the right button, meaning #2 has to hold the down button, #1 has to walk over the right button, #0 has to hold the down button."

Madness.

I love trying to wrap my brain around that, but it's waaay to tedious to do nine levels of this. The amount of time and moves required seem to increase exponentially. I just got to level six after an hour and I think I'll stop there.

I'm surprised that this isn't the first time I've seen a mechanic like this though. I've seen it once before in "reYal" by xrrawva, although that doesn't have the mechanic of holding a button down.

Just stuck to one color scheme and made a bunch of characters that might be jester themed enemies. It's neat how strong of an expression you can get out of a bunch of diagonal lines and pointy bits.

[[{"setdata1":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"setdata2":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"sectordata":["#000000"],"xflip":-1,"yflip":1,"rot":0},{"setdata1":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"setdata2":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"sectordata":["#000000"],"xflip":-1,"yflip":1,"rot":0},{"setdata1":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"setdata2":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"sectordata":["#000000"],"xflip":-1,"yflip":1,"rot":0},{"setdata1":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"setdata2":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"sectordata":["#000000"],"xflip":-1,"yflip":1,"rot":0},{"setdata1":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"setdata2":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"sectordata":["#000000"],"xflip":-1,"yflip":1,"rot":0},{"setdata1":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"setdata2":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"sectordata":["#000000"],"xflip":-1,"yflip":1,"rot":0}],[{"setdata1":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"setdata2":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"sectordata":["#000000"],"xflip":-1,"yflip":1,"rot":0},{"setdata1":{"index":4,"rot":1,"count":4,"dist":1,"refl":0,"skew":4},"setdata2":{"index":4,"rot":0,"count":4,"dist":1,"refl":0,"skew":0},"sectordata":["#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#430067","#94216a","#94216a","#94216a","#ffdd34","#ffdd34","#94216a","#94216a","#94216a","#94216a","#94216a","#fff1e8","#fff1e8","#94216a","#94216a","#94216a","#94216a","#fff1e8","#94216a","#94216a","#94216a","#fff1e8","#430067","#430067","#000000","#ffdd34","#ffdd34","#94216a","#94216a","#000000","#000000","#430067","#94216a","#94216a","#94216a","#94216a","#000000","#430067","#430067","#94216a","#94216a","#94216a"],"xflip":-1,"yflip":1,"rot":0},{"setdata1":{"index":6,"rot":0,"count":2,"dist":0,"refl":0,"skew":2},"setdata2":{"index":6,"rot":0,"count":2,"dist":0,"refl":0,"skew":0},"sectordata":["#94216a","#94216a","#000000","#000000","#000000","#430067","#ffdd34","#430067"],"xflip":-1,"yflip":1,"rot":0},{"setdata1":{"index":2,"rot":1,"count":4,"dist":0,"refl":0,"skew":0},"setdata2":{"index":2,"rot":0,"count":4,"dist":0,"refl":0,"skew":0},"sectordata":["#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#430067","#94216a","#430067","#ffdd34","#94216a","#ffdd34","#94216a","#94216a"],"xflip":-1,"yflip":1,"rot":0},{"setdata1":{"index":7,"rot":0,"count":4,"dist":0,"refl":0,"skew":4},"setdata2":{"index":7,"rot":0,"count":4,"dist":0,"refl":0,"skew":0},"sectordata":["#94216a","#94216a","#94216a","#94216a","#000000","#000000","#000000","#430067","#ffdd34","#94216a","#ffdd34","#fff1e8","#fff1e8","#fff1e8","#ab5236","#94216a","#ffdd34","#94216a","#ff004d","#ffdd34","#430067","#50e112"],"xflip":-1,"yflip":1,"rot":0},{"setdata1":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"setdata2":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"sectordata":["#000000"],"xflip":-1,"yflip":1,"rot":0}],[{"setdata1":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"setdata2":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"sectordata":["#000000"],"xflip":-1,"yflip":1,"rot":0},{"setdata1":{"index":4,"rot":1,"count":4,"dist":1,"refl":0,"skew":4},"setdata2":{"index":4,"rot":0,"count":4,"dist":1,"refl":0,"skew":0},"sectordata":["#000000","#000000","#000000","#000000","#000000","#fff1e8","#430067","#fff1e8","#430067","#fff1e8","#430067","#fff1e8","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#430067","#94216a","#94216a","#94216a","#ffdd34","#ffdd34","#94216a","#94216a","#fff1e8","#fff1e8","#000000","#430067","#ffdd34","#94216a","#fff1e8","#000000","#94216a","#94216a","#fff1e8","#000000","#000000","#000000","#94216a","#94216a","#ffdd34","#94216a","#000000","#000000","#000000","#000000","#430067","#430067","#94216a","#000000","#000000","#000000","#000000","#000000","#000000"],"xflip":-1,"yflip":1,"rot":0},{"setdata1":{"index":2,"rot":3,"count":6,"dist":0,"refl":0,"skew":4},"setdata2":{"index":2,"rot":2,"count":6,"dist":0,"refl":0,"skew":0},"sectordata":["#430067","#000000","#000000","#000000","#000000","#430067","#430067","#430067","#000000","#000000","#000000","#000000","#000000","#94216a","#000000","#000000","#000000","#000000","#94216a","#000000","#000000","#000000","#000000","#000000","#430067","#430067","#430067","#430067","#430067","#430067","#94216a","#430067","#ffdd34","#94216a","#94216a","#430067","#94216a","#94216a","#ffdd34","#fff1e8","#ffdd34","#ffdd34","#fff1e8","#94216a","#fff1e8","#94216a","#ab5236"],"xflip":-1,"yflip":1,"rot":0},{"setdata1":{"index":2,"rot":3,"count":6,"dist":0,"refl":0,"skew":0},"setdata2":{"index":2,"rot":2,"count":6,"dist":0,"refl":0,"skew":0},"sectordata":["#000000","#000000","#000000","#000000","#000000","#000000","#430067","#430067","#430067","#430067","#000000","#000000","#000000","#94216a","#c2c3c7","#c2c3c7","#c2c3c7","#c2c3c7","#94216a","#000000","#000000","#000000","#430067","#430067","#430067","#430067","#000000","#430067","#94216a","#430067","#94216a","#430067","#ffdd34","#ffdd34","#fff1e8","#430067","#94216a","#94216a","#ffdd34","#fff1e8","#ffdd34","#ffdd34","#fff1e8","#ffdd34","#fff1e8","#fff1e8","#ab5236"],"xflip":-1,"yflip":1,"rot":0},{"setdata1":{"index":5,"rot":0,"count":6,"dist":0,"refl":0,"skew":-2},"setdata2":{"index":5,"rot":0,"count":6,"dist":0,"refl":0,"skew":2},"sectordata":["#000000","#430067","#430067","#430067","#430067","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#430067","#94216a","#94216a","#fff1e8","#ffdd34","#000000","#fff1e8","#94216a","#ffdd34","#000000","#29adff","#ffdd34","#ffdd34","#94216a","#ab5236","#5f574f","#94216a","#000000","#000000","#ff8426","#ffdd34","#50e112","#fff1e8","#fff1e8","#000000","#0033ff","#29adff","#00ffcc","#fff1e8","#c2c3c7","#ab5236","#5f574f","#430067","#94216a"],"xflip":-1,"yflip":1,"rot":0},{"setdata1":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"setdata2":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"sectordata":["#000000"],"xflip":-1,"yflip":1,"rot":0}],[{"setdata1":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"setdata2":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"sectordata":["#000000"],"xflip":-1,"yflip":1,"rot":0},{"setdata1":{"index":6,"rot":3,"count":6,"dist":0,"refl":3,"skew":3},"setdata2":{"index":6,"rot":1,"count":6,"dist":0,"refl":2,"skew":-3},"sectordata":["#000000","#000000","#000000","#000000","#000000","#430067","#000000","#000000","#000000","#430067","#000000","#000000","#000000","#000000","#94216a","#430067","#000000","#94216a","#94216a","#430067","#fff1e8","#94216a","#94216a","#ffdd34","#430067","#ffdd34","#430067","#94216a","#ffdd34","#430067","#430067","#ffdd34"],"xflip":-1,"yflip":1,"rot":0},{"setdata1":{"index":7,"rot":3,"count":6,"dist":0,"refl":3,"skew":3},"setdata2":{"index":6,"rot":1,"count":6,"dist":0,"refl":2,"skew":-3},"sectordata":["#000000","#000000","#ffdd34","#430067","#430067","#ffdd34","#000000","#000000","#94216a","#94216a","#94216a","#94216a","#94216a","#94216a","#430067","#430067","#fff1e8","#fff1e8","#94216a","#fff1e8","#ffdd34","#50e112","#430067","#430067","#fff1e8","#fff1e8","#94216a","#430067","#fff1e8","#430067","#ab5236","#fff1e8","#430067","#430067"],"xflip":-1,"yflip":1,"rot":3},{"setdata1":{"index":4,"rot":3,"count":6,"dist":0,"refl":3,"skew":3},"setdata2":{"index":4,"rot":0,"count":6,"dist":0,"refl":2,"skew":-3},"sectordata":["#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#fff1e8","#000000","#94216a","#000000","#94216a","#000000","#430067","#000000","#430067","#000000","#430067","#000000","#430067","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#94216a","#fff1e8","#94216a","#94216a","#94216a","#94216a","#430067","#430067","#430067","#430067","#000000","#94216a","#94216a","#94216a","#ffdd34","#ffdd34","#94216a","#94216a","#94216a","#94216a","#430067","#000000","#430067","#94216a","#ffdd34","#94216a","#94216a","#94216a","#94216a","#430067","#94216a","#430067","#000000","#430067","#94216a","#ffdd34","#94216a","#fff1e8","#94216a","#94216a","#430067","#94216a","#430067","#000000","#430067","#94216a","#94216a","#94216a","#94216a","#fff1e8","#94216a","#430067","#430067","#430067","#000000","#000000","#430067","#430067","#430067","#430067","#430067","#000000","#000000","#430067","#94216a","#94216a","#94216a","#430067","#430067","#000000","#000000","#430067","#94216a","#430067","#430067","#430067","#430067","#430067","#000000","#430067","#430067","#94216a","#94216a","#94216a","#94216a","#fff1e8","#430067","#430067"],"xflip":-1,"yflip":1,"rot":3},{"setdata1":{"index":3,"rot":3,"count":4,"dist":1,"refl":3,"skew":3},"setdata2":{"index":3,"rot":0,"count":4,"dist":1,"refl":3,"skew":-3},"sectordata":["#000000","#000000","#000000","#000000","#000000","#000000","#000000","#430067","#430067","#000000","#000000","#000000","#430067","#430067","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#94216a","#94216a","#94216a","#430067","#94216a","#94216a","#94216a","#000000","#94216a","#ffdd34","#fff1e8","#430067","#ffdd34","#430067","#000000","#94216a","#000000","#430067","#000000"],"xflip":-1,"yflip":1,"rot":3},{"setdata1":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"setdata2":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"sectordata":["#000000"],"xflip":-1,"yflip":1,"rot":0}],[{"setdata1":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"setdata2":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"sectordata":["#000000"],"xflip":-1,"yflip":1,"rot":0},{"setdata1":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"setdata2":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"sectordata":["#000000"],"xflip":-1,"yflip":1,"rot":0},{"setdata1":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"setdata2":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"sectordata":["#000000"],"xflip":-1,"yflip":1,"rot":0},{"setdata1":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"setdata2":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"sectordata":["#000000"],"xflip":-1,"yflip":1,"rot":0},{"setdata1":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"setdata2":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"sectordata":["#000000"],"xflip":-1,"yflip":1,"rot":0},{"setdata1":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"setdata2":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"sectordata":["#000000"],"xflip":-1,"yflip":1,"rot":0}],[{"setdata1":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"setdata2":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"sectordata":["#000000"],"xflip":-1,"yflip":1,"rot":0},{"setdata1":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"setdata2":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"sectordata":["#000000"],"xflip":-1,"yflip":1,"rot":0},{"setdata1":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"setdata2":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"sectordata":["#000000"],"xflip":-1,"yflip":1,"rot":0},{"setdata1":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"setdata2":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"sectordata":["#000000"],"xflip":-1,"yflip":1,"rot":0},{"setdata1":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"setdata2":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"sectordata":["#000000"],"xflip":-1,"yflip":1,"rot":0},{"setdata1":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"setdata2":{"index":0,"rot":0,"count":6,"dist":0,"refl":0,"skew":0},"sectordata":["#000000"],"xflip":-1,"yflip":1,"rot":0}]]

This is a cool concept, but there are some features from another minesweeper variant called mamano sweeper that might make this better.

The first those features being the ability to defuse a mine and see the number at the mine's location. I think that would increase visibility and prevent 50/50 situations from happening as often.

The second feature is that you could put multiple mines on the same tile, which would prevent mines from blocking off visibility of areas as often by bunching up the mines.

I got this bug too on the level after this, and I think I know what causes it maybe? In the level this person is showing, I managed to exit the level before dad did. Then in the level right after, it only let me complete that level when I completed it before dad again.

To complete the levels before dad, I used a glitch where if you have a reprogrammed/possessed robot's code open when the level ends, it gets permanently reprogrammed with what your code page 0 was when the level ended with its code open.

Hope that helps!

I love that you can automate throwing money into garbage, thus gaining a net positive garbage loop to use for nefarious purposes such as selling babies and gaining large amounts of negative money. I wish you could have lines output to multiple places so you wouldn't have to alternate which garbage pile the cash goes to.

I like the new UI!

Took a bit to figure out that I have to click the WAILA to open the guidebook, not sure if I missed a tutorial message. Maybe the WAILA could hilight on hover like the magnifying glass does or something.

I also found that since the repulsion core doesn't repulse through frames or wire, you can use a bunch of frames and wire to cheese the end of the tutorial.

I DID IT! :D

Not sure if you are adding more to this or not, but for suggestions:

- a memory viewer
- the game saving so you don't have to complete it in one sitting (esp. if more gets added)
- It seems like sometimes the wires were pointers, and other times they carried the raw data? That was a little confusing at first.
- A puzzle based on recursing in/out would be neat
- Would be nice if there was more visual distinciveness to components so you could understand stuff at a glance, but that might be against the art style idk, and the setup makes it inevitable that it's a mess of wires and squares anyways, so maybe it's part of the challenge?

I know it would be unrealistic, but being able to reatatch limbs to make a weird humonculous would be cool. It would fit with the horror aesthetic, doing horrific things to a person in a dungeon.

This game reminds me of the dr mods from wxsand, where you could kill and revive someone over and over, doing weird things to them, like giving them illnesses or zombifying them. Except you can't revive him in this, other than resetting to the beginning. That would be nice.

If you ever want to add something that is magic/scifi, you could keep it in the aesthetic by making it eldritch magic I guess.

Share textures that you made that you find neat or are proud of, or just otherwise feel like sharing.

here are mine:

my first texture with this, I thought that what this tool would be good for would be randomly generated organic shapes that need variation in a game. So naturally, I made chunks of flesh! xp Came out well for my first texture. If I did it again now, (only two days later) I could probably make it look better. Though most of the gain over those two days would come from making new nodes.

Some godus layered terrain. Pretty simple, just thought it looked neat.

A strange experiment inspired by the former. Should probably make the grass and beach be thinner.

An accident made while trying to make some weathered stone. Looks underwater-y.

I figured out how to do specularity and made shiny chocolate. Couldn't figure out how to color it though, since multiplying would make the white be brown.

This one is probably the most complicated one I have made. Came out looking very 3d, reminds me of voxel destruction demos. Had to go and lerp the colors together, make sure there wasn't color where there was shadow or light, glad it came out well.

Also made me realize that the lighting node changes contrast based on tile size.

It's strange that I'm this proud of stuff I've accomplished after only a couple days O.o

Was playing a game of pulling out random nodes and trying to put them together, came up with this. Probably will be my new avatar.

I managed to color a thing that went through the lighting node with the white part staying white! yay!

Now to figure out how to combine this with the specularity to redo the chocolate.

Been having lots of fun with this, here are the nodes I've made:

Gray noise:

randomly mixes each pixel on the output between the two inputs.

For use with directional blur. Makes each point point toward the center. Offset rotates these.

Regulate:

Makes the pixels be 'regular' as in regular polygons, snapping them to repeating values and also looping them after a certain value. This is basically just a neat way of rounding numbers thrown in with the modulo function.

Distance:

Gets the distance (abs(a-b)) between the two inputs.

Lump:

Highlights pixels of around a certain brightness. Named as such due to how it looks when graphed:

More hill shaped really, but lump sounded better.

Edge Distance:

Tries to get the distance from a dark spot each pixel is. Lags exponentially with tile size, not sure how to optimize it. :/

Lerp:

Linearly interpolates between two inputs, based on a third input. If t is 0, it returns the first one. If t is 1, it returns the second one. If t is anywhere in between, it returns a mix of the two inputs. Each input is an input parameter.

http://pastebin.com/s2tCfU8K

Square pattern:

Gives a chessboard type pattern, with the option for more than two colors. Due to a weird bug, the only sizes that don't have strange artifacting are numbers in 2^x, so the size input uses that.

(Note: there were some visual errors with the nodes that have been fixed since the pictures were taken.)

Been having fun with this tool, keep on accidentally calling it a game. Hope people find these useful!

edit: some more:

Inflate Heightmap:

This raises up a texture by a heightmap. Not pictured is also an option to set whether it loops off the top of the image or not.

Good for visualizing heightmaps you make. Note that without a surface input it will all be one color, shading just came from the lighting node.

Vector to Direction and Direction to Vector:

Don't know how often these would be useful, but I made these too.