thacuber2a03 / BlockDate

A random tetrimino game made for the Playdate console.
124 stars 11 forks source link

Shake setting doesn't save (real bug this time I promise haha) #30

Closed ajc11196 closed 1 year ago

ajc11196 commented 1 year ago

Hey, super small bug but the game saves every setting when you close the game except the board shake on send-down.

Otherwise this is a fantastic port, I love it so much. Would really love for you to add the crank control back in if it isn't a pain, but no worries if you can't/don't want to deal with the hassle. Thank you for making this the best version of this game almost ever :)

thacuber2a03 commented 1 year ago

the game saves every setting when you close it except the shake on board-down

hmm, I'll check on that, it's not as easy to debug anymore when there's a ton of code that isn't yours but I'll try

Would really love for you to crank control back in if it isn't a pain, but no worries if you can't/don't want to deal with the hassle.

it's not hard to add it back, at all; in fact, it would be a matter of just reverting the commit that got rid of it. I got rid of it because the control was a bit finicky, it didn't feel proper in a Tetris clone and virtually no one used it. but I might be opinionated on this one, heh.

Otherwise this is a fantastic port, I love it so much. ... Thank you for making the best version of this game almost ever

heh, thanks :) it still feels cathartic to have a small game have such support, but I mean, it's Tetris ¯⁠\⁠⁠(⁠ツ⁠)⁠⁠/⁠¯

thacuber2a03 commented 1 year ago

updating on this one after so long, the setting does save, it just doesn't seem to be applied to the game?

ajc11196 commented 1 year ago

The setting doesn't save when you exit the game. Join return all other settings have remained the same except that which toggles back on. Seems to act weird when you change themes too. For example "big blocks" remains on, while the shake toggles on/off and you need to manually turn it off every time. Hopefully this is more specific, it's a super tiny thing tho and doesn't really bother me too much.

thacuber2a03 commented 1 year ago

The setting doesn't save when you exit the game.

no, it does save image image again, the game just... doesn't use it???

tedbrakob commented 1 year ago

Just put in a fix for this in PR #34.

The issue was in src/globals.lua where the value was being loaded in with:

shake = loadData("shake") or true

When loadData("shake") is false, that expression resolves to:

shake = false or true

effectively forcing the value of shake to always be true. I updated the loadData function to accept a second param defaultValue which will return if the requested data is nil

thacuber2a03 commented 1 year ago

awh, damn, I had forgotten about that 😅

thacuber2a03 commented 1 year ago

@tedbrakob just checked the PR, and I saw the crank controls commit...

Would really love for you to crank control back in if it isn't a pain, but no worries if you can't/don't want to deal with the hassle.

it's not hard to add it back, at all; in fact, it would be a matter of just reverting the commit that got rid of it. I got rid of it because the control was a bit finicky, it didn't feel proper in a Tetris clone and virtually no one used it. but I might be opinionated on this one, heh.

tedbrakob commented 1 year ago

Yeah I can split those up if you want or remove it entirely. Found a post on reddit today of someone requesting it after playing an old version.

I agree that it feels like a bad way to play tetris, but I don't think it detracts anything from the game as it's easy enough to leave the crank docked.

My implementation seems to work pretty smoothly, never played the previous "finicky" version to compare though, and it seems like there's at least some small portion of players that want to see the crank made use of as evidenced by this thread and the reddit post.

Again, it's your project and I'm fine removing it, but as there's no alternate use for the crank, I see no reason not to include it.

Referenced Reddit post

thacuber2a03 commented 1 year ago

meh, alright, you can leave it in, it's not like it's gonna hurt anyone and I actually forgot to consider that the crank could be docked although there's definitely a way to make it that doesn't use as many lines as shown, and that can be inlined back into the main loop, as I had it previously