Inspired by the PicoMino game, I decided to create my own attempt at replicating the famous Russian puzzle game.
Pretty much all the expected functionality is available, such as 1- and 2-player gameplay, preliminary sound and graphical effects, level (garbage height) and speed selection, etc.
The game provides two modes: A (endless) and B (25 lines).
In the A mode, the game continues until any of the players top out (until the game can't put a new piece on top of the playfield).
In a 2-player game, the surviving player is declared the winner.
In the B mode, the game also ends if the player eliminates 25 lines of blocks.
In a 2-player game, the player who manages to do so first is declared the winner.
When playing a 2-player game in any of the modes, elimination of more than one line will also send one fewer line of "garbage" to the other player, which will rise from the bottom of their playfield as soon as they put down a block. However, the players can defend against oncoming garbage if their current piece eliminates some lines, too. Each line removed prevents a garbage line from appearing. The amount of garbage lines the player is about to receive is shown as a blinking line saying "+1L" (or more) on top of their playfield.
left/right/down - move piece
up - drop piece immediately
O (Z or C) - rotate counterclockwise
X (X) - rotate clockwise
(You can swap the rotation directions in the options menu if you prefer.)
On the "copyleft" screen, press the following buttons in order. If you pressed them correctly, you should hear a short sound. If you made a mistake, press the âœ• button and try again. The screen stays on for 5 seconds.
LEFT, RIGHT, O, O - Use a modern style randomizer.
O, DOWN, DOWN, DOWN - Draw a "shadow" at the spot where the piece will fall.
To play at speeds 10~19, hold LEFT while selecting between 1 and 2 player modes.
- Add any missing sound effects and two more music tracks
- Got rid of another embarrassing bug that prevented 2-player games from starting.
- Got rid of a rather embarrassing bug that crashed the game whenever lines were being cleared.
- Switched from storing the current game board in the map to using tables. Fixed the bug where, after a finished game, the options menu is corrupted.
- Used PICO-8 0.2.3's new TOSTR flags to simplify handling scores. This will break high score tables, however.
- Added an options menu, with the option to swap the rotation so that O rotates clockwise and X rotates counterclockwise instead.
- Removed some unused code, cleaned up indentation.
- Divided score variables in two to avoid overflow
- Set a hard cap on all scores (999999)
- Tweaked the interface to allow for scores higher than 99999.
- Introduced a high score list (work in progress, may have some bugs)
- Changed the menus to accomodate for high score lists
- Fixed shadow display
- Fixed the ability to play on speeds 10+ (the key combination was changed)
- Fixed garbage prevention mechanics
- Added a functioning two-player mode
- Switched from 8x8 tile blocks to 6x6 sprites
- Increased repeat speed for horizontal movement
This is an experimental "pirated" cartridge with a custom label. Its actual contents are exactly the same compared to the previous version, only the label (the PNG itself) is different.
- Some slight bug fixes
- Added a way to unlock higher speeds
- Added a "show shadow" secret code
- Added a speed display
- Added speed increases every 10 lines
- Readjusted delays
- Fixed a missing tile in the title screen.
- Tried to fix the second part of the first music track.
- Fixed some small bugs
- Added a better victory screen
- Fixed the bug that made it impossible to use the â—¯ button to re-enter secret codes
- Added an alternative piece randomizer
- Added a secret code system
- Fixed the square piece's "NEXT" sprites
- Added a hard drop feature
Aaack, you don't have hard drop when you press up.
After that it starts to get a lot pickier... notably that most modern implementations usually use a 'shuffled list' randomizer, so you always get all 7 pieces in a random order before you have a chance of seeing a piece again.
There. The current version should have both the randomizer and the hard drop. I haven't tested both extensively, but they should work.
The hard drop is available automatically. To enable the modern randomizer, see the "SECRET CODES" section.
It's probably one of the best I saw on pico-8, but please FIX the music, it's just sound horrible on the second part..
Anyway, good job even if it's not a finished version!
You should also add the shadow that we have on the modern rules, also on level 1, the drop speed is too quick, but that's not a big issue :)
This is very nice. I love that music! You did a great job.
Now, if you want to get really serious and awesome with this, I present to you a document that has fueled many nights of late obsessive programming: http://tetris.wikia.com/wiki/Tetris_Guideline.
@Godzil: Added a sound for that, should work. I was a bit lazy with the key repeat, using the keyp() function for it, but, having checked it with the Game Boy original, it seems to fit.
@e3th: Well, I was going more for a replication of the Game Boy games, but some features from newer titles are already included (hard drop, shadow pieces, the "Random Generator").
I will keep that list in mind, but I can certainly say I won't be able to introduce every single feature in there (the screen size of the PICO-8 only allows for a 10x16 playfield, for example, and I'm not planning on switching to smaller blocks any time soon).
Wow huge improvements!
That's definitely the best tetris on Pico-8!
Two things to report:
- a bug as we can't move and rotate a block at the same time, at high speed it's start to be really important
- hard drop should give you some points, I can't remember exactly how much, but as hard dropping is risky it reward you. (so the end score is higher if you hard drop a block instead of just waiting for it to fall, there is no hard drop on the gameboy version, but I'm pretty sure that a soft drop was rewarded too)
One other thing is that my hands don't like pico's key for that game, they had the habit of the GB/DS (& WonderSwan) key layout, and I tend to harddrop instead of rotate, and the reverse, weird :D But you can't do anything for that, it's pico's fault ;)
The Guideline is totally a thing to keep in mind, but for an implementation on limited hardware it's not like you'll get dragged off in the night by Tetris Ninjas or anything for ignoring it. I'm pretty sure the official post-guideline J2ME phone implementations often bent it a bit for platform reasons too.
This was just an experiment in trying to guess how the PICO-8 encodes cartridge data into PNGs. Looks like the experiment succeeded. The newer versions of Tetromix will use the standard cartridge picture.
I also made a simple command-line program that allows one to replace their PICO-8 cartridge images with custom PNGs of the same size: https://github.com/usrshare/pico8-customcart
[Please log in to post a comment]