Log In  
Follow
someone
Follow

Voxatron doesn't have enough Lua!

It turns out that it's still Turing complete, though!

Oh wait, now it does. Yay!

Cart #stopatnothing-2 | 2019-10-07 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Arrow keys: Select direction, Move cursor
Z: Commit move, Next level
X: Select marker, Cancel move, Undo

Stop at Nothing is a block-sliding puzzle game. Each level starts with a block on each start point, and ends with nothing. Move the blocks to the goal tiles to remove them.

Stop at Nothing is a block-unsliding puzzle game. Each anti-level starts with nothing, and ends with a block on each start point. Unmove the blocks from the goal tiles to unremove them.

Made in 72 hours for Ludum Dare 45: https://ldjam.com/events/ludum-dare/45/stop-at-nothing

Update 1.1: Fixed minor graphical bug

P#68628 2019-10-07 21:42 ( Edited 2019-10-07 22:28)

Cart #59357 | 2018-11-26 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

You've heard of Go, the classic board game with two players, but what about Mega Go?!

Here are the standard rules of Go:

  • Players take turns placing tokens on the board
  • If a group of one color is completely surrounded, all the tokens in it are removed
  • A move is illegal if it would result in the previous board position being matched (Ko)

The version shown here uses the following variant on the rules:

  • The board is, like, huge
  • There are ten players instead of two
  • no Ko rule, 'cause I'm too lazy to implement it and it's very unlikely to ever happen

The ten CPU players take turns playing onto random empty spaces on the board. The version shown here partitions the board into 36 smaller 19*19 boards (plus some extra on the edges).

Feel free to experiment with the parameters on the first tab to try different board configurations or different numbers of players. I found an odd phenomenon where, on a blank 128*128 board with two players, the second player would almost always end up filling the board. See what other interesting things you can find!

P#59358 2018-11-26 12:06 ( Edited 2018-11-26 17:06)

Cart #59244 | 2018-11-21 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
1

A demake of a game I made for LDjam #48, called Polypack.

Fill the grid with polyominoes! When no more pieces can be placed, press Z to switch to the next board. Every tile that you left empty will be permanently blocked. Try to place as many pieces as possible.

Arrows to move, Z to place a tile, X to rotate.

Still to do:

  • Main menu
  • Score
  • SFX
  • Hold queue
  • Change board to 10x10?

Hotfix 0.1.1: Fixed a bug where single tile pieces would never spawn
Hotfix 0.1.2: Fixed it FOR REAL, this time
Hotfix 0.1.3: Fixed incorrect blocker texture introduced in the last update... I should really test my code

P#59241 2018-11-20 20:18 ( Edited 2018-11-21 02:16)

Cart #11304 | 2015-06-16 | Embed ▽ | No License
1

So according to a thread I read five seconds ago, Lua script is coming soon. BUT WHAT IF IT ISN'T SOON ENOUGH?!?! (Or maybe that wasn't what I read.)

Anyway, here is a way to add simple logic in Voxatron levels, within a single object, (ab)using the Priority and Modifier mechanics.

The first demo shows how Priority works. Each rectangle represents a triggerable object (such as an animation or a modifier). The white objects have their duration set to 5, and the black objects have their duration set to 0 (indefinite). They each have their priority written on them. When you activate one, it 'shadows' all of the ones beneath it, preventing them from activating or activating the one set as 'next'. The indefinite ones can still be turned off by activating a higher priority one. This can be used to create things like S/R latches.

By the way, the diagram is one object. It receives input from the buttons via IS:OBJ_ID:##:M_STATE:SHOT.

Next is a demo of Modifiers, represented by hollow rectangles. Like normal objects, they can be forced off by shadowing them. They will also disable all of their children while they are disabled. The red object's trigger is set to PARENT:ACTIVE, so it will always be active while the modifier is. You can use this to shadow other objects or have multiple 'next' objects for one modifier. The children also won't send or receive 'next' triggers while their parent is disabled, as shown with the one at the bottom.

Using these, you can build complicated networks, like the one for this passcode door. Here's how it works:

  • The object at the top resets the lock using three children (not pictured) that are set to IS:PARENT:TIME = 1, so that they'll activate once, setting the state triggers appropriately.

  • One object, unlike the others, is not set to reset on activation. It will only activate once, triggering the reset object to initialize the lock. (also not pictured)

  • The state triggers at the right are S/R latches that each have their own group. When active, they shadow the button triggers so that they don't activate erroneously.

  • The buttons each trigger 3 objects, 2 of which are shadowed. The unshadowed one determines the action that will be performed: Either activating the next row, or resetting the lock.

  • When the last trigger is activated, it will disable the lock, play a sound, and use an animation to clear a hole in the wall.

And that's how you make mechanisms out of the bits and bobs lying around in Voxatron! Maybe, to prove that it is Turing-Complete, I'll build.. A TURING MACHINE! Wish me luck...

P#11305 2015-06-16 16:41 ( Edited 2015-06-16 21:05)

Follow Lexaloffle:        
Generated 2019-12-06 18:17 | 0.075s | 2097k | Q:57