(Update 1.01: Fixed a bug that caused an out of memory error with particles disabled. Thanks to @dw817 for finding it!)
So, here it is, my first ever fully completed cart. I have a real bad habit of starting lots of things and never finishing them, and this was destined to be just another one of those things. I started work on this about a month or two ago, and did most of the work back then. I decided I needed a bit of a break from my current project and thought, hey, why don't I go back and finish this?
I've learned a lot since then, and generally improved a bunch, so most of this code is a mess, and doesn't use things it really should like objects, but, everything functions well enough at least. It's super unoptimized though, mostly because I was under the assumption there was no CPU limitations in Pico-8, and going back to finish it up, I didn't really bother fixing that. The particle system is my own, written for the main cart I've been working on, but the background previously was a stolen tweetcart (the function was even called "stolentweetcart()") I was using as a placeholder. It was distracting anyway, so I replaced it with the particles and used them to make a few other things nicer as well.
The main goal here was to make it compliant to the 2009 Tetris guideline (a big document the Tetris company uses that says exactly how a Tetris game should be made) though I disregarded that going back to it, so it's halfway or so there. Also, SRS isn't implemented properly, it's good enough but it's not perfect, and the title is a typo I thought was funny so I rolled with it.
Anyway, enough of my rambling, hope you enjoy!
- Z, X: Rotate
- Z+X: Hold
- Up: Hard drop
- Down: Soft drop
- Left, Right: Move
@deraj Thank you! And you mean the integer overflow? I did somewhat deal with that, the last 0 in the score is fake, so it goes up to 32,7680. I was going to have it give you points for soft dropping and hard dropping, but that had to be cut specifically because of the overflow.
@TheV360 Yeah, that's exactly what I meant when I said it wasn't implemented properly. T-Spin triples don't really work, except they sometimes do when the tetromino is a block higher than it should be for one? That was something I did wrong back when I first worked on this like a month ago, and I didn't really feel it was worthy of addressing now since the rotation is good enough and T-Spins aren't counted.
@JWinslow23 Thanks! And yeah, it's got some quirks like that. I'm very aware that a lot of it needs to be rewritten, it was really just a coding exercise I decided to polish up and release. Someday, I may make an update that fixes it up and rewrites some of the wonky parts and etc, and add other modes and stuff like that, but for now my focus is in other places.
@gate88 Thanks! You can thank my hardcore procrastination for that, heh.
@dw817 Oof, I know exactly what that is. It's still adding stuff to the particle table, but I disabled the particle update function when you turn off particles, so they never get cleared. Let me fix that real quick.
Great work! I really like how the gameplay feels, and the graphics are very smooth.
Although, around like level 26 or so, the animations seemed to start stuttering or something? It's hard to explain. Or maybe it was like the smoothing was out of sync with where the piece actually was, like it would look like the piece was higher that it actually was, which made playing hard and I eventually succumbed to failure as a result.
@joseph3000 Well, I did encounter that problem while trying to work out the fall smoothing, so it's very possible my math was slightly wrong and falls apart at higher levels. Really, though, it's only supposed to go up to level 15, I just never implemented a cap of any kind, so I suppose you could consider it a kill screen? Regardless, if I ever get around to making a big update to the cart like I want to, I'll address stuff like that and likely add an infinite mode.
[Please log in to post a comment]