Where do I even begin? The idea of mixing Tetris and Collapse! came from a very silly brainstorming in the GM48 discord server (as they usually do). We joked about "death-less" Tetris, with ideas such as "the board is infinitely tall", or "the closer you get to the top, the more the pieces get squished to make room", and such. It was nonsensical, but it got me wondering: Can I make this work? How can I make this interesting? What if something happens when you fill up the board? One idea led to another, and eventually the idea of a board that switched between gameplays was born.
Developing both of those game loops was actually very straightforward -- although due to it being a jam, the code makes very little sense at times; for example, each piece breaks down into fragments upon landing, and those fragments contain the logic of the Collapse! game loop, but the Tetris game loop is actually in a separate manager altogether. That said, and although I consider myself a fairly experimented Tetris player, I've learned a few things about how it works internally. For example, when you rotate pieces, where is the pivot point? And what happens if you try to rotate into an illegal position?
Turns out, that's a very well-documented system! And it's called the SRS (or Super Rotation System). Unfortunately, this is a short game and so we don't have time to unpack all of that, so I implemented a very basic wall-kick system and called it a day (in short: I check if I can move the piece around a bit, and if not, I simply don't rotate the piece).
If I continue to support this project in the future, there are several things that I'll have to change or add:
- Add the Hold feature
- Add a system where you gain power-ups in the Collapse! phase, depending on how well the player does in the Tetris phase
- Add full keyboard support so you don't have to use the mouse
Fun project all in all!