Rockbox

Tasklist

FS#5416 - New puzzle game - "MazezaM"

Attached to Project: Rockbox
Opened by Malcolm Tyrrell (Malcohol) - Monday, 22 May 2006, 21:52 GMT
Task Type Patches
Category Games
Status Closed
Assigned To No-one
Operating System All players
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details


MazezaM (pronounced "may-zam") is a simple puzzle game I
came up with a few years ago. I really just ported it to
get my C up to speed and to get the feel of Rockbox
development. I hope you'll enjoy it anyway.

It's been tested it on an actual iAudio X5L. I've also tried
it on most of the simulators, and it seems to work. I hope
the patch works!

Warning: the key selections might be rubbish for certain
platforms, so please improve them (or offer suggestions).
This task depends upon

Closed by  Zakk Roberts (midkay)
Tuesday, 02 January 2007, 02:00 GMT
Reason for closing:  Accepted
Additional comments about closing:  Finally committed. :) Thanks!
Comment by Zakk Roberts (midkay) - Tuesday, 23 May 2006, 02:59 GMT
Just tried it. :) The graphics could look slightly cooler (maybe with the use of external bitmaps), but I like the gameplay. :) Quite challenging.
Comment by Malcolm Tyrrell (Malcohol) - Wednesday, 24 May 2006, 10:02 GMT

Thanks for your comments! For the larger screens, bitmaps would definitely
be nice. However, for eeny-weeny screens (e.g. the Archos Recorder screen),
I think it's preferable to have each level maximally zoomed. Line graphics
are more suited for this.

BTW, subsequent to posting my patch, I've discovered that plugins need to
handle USB events. I've already written the code for this. A new patch
will be up in the next day or two.
Comment by Zakk Roberts (midkay) - Wednesday, 24 May 2006, 12:48 GMT
Ah, sure, I'm testing on the iPod 5G which has the largest color LCD that Rockbox supports. :)

I played with it more yesterday and it's rather addictive :) Got to level four, that's a toughie...

What I would like to see is maybe the ability to resume from the last level beaten, or something. It'd take away a little of the challenge, but if you end up running out of lives, it's quite annoying to get all the way back to where you left off - especially on e.g. level four where it seems like moving some bricks into specific places can ruin the level beyond a fix and need to start over...

That or remove the concept of 'lives'.. *shrugs*

Still, great game. :)
Comment by Malcolm Tyrrell (Malcohol) - Wednesday, 24 May 2006, 17:22 GMT

Well, my gaming life did start in the 1980s, when games were *HARD*!

Yes, the lives thing is a bit cruel. The motivation was to make sure
people didn't finish levels by fluke, and also to promote careful play
over trial and error. But perhaps the cost to gameplay is just too
high. I'll try to think of a compromise.
Comment by Zakk Roberts (midkay) - Wednesday, 24 May 2006, 22:18 GMT
It's not that bad until you get pretty far in, I think.

I got to level.. erm. Seven, today. With the combination of being able to completely ruin most of the later levels by one false move and the limited number of lives that you have to get all the way up there, it's pretty tricky. :)

Maybe a nice compromise would be, like.. only enable the load-to-level thing after a certain level, and/or only allow you to restore to a level before the one you're currently one.

For example it took me maybe five or six full game restarts to finally reach level 7 (maybe one less). At this point it's like.. okay, I've memorized all the first five or six by heart.. so it's just the mundane task of doing many many clicks that are extremely simple and natural by now to get to the real challenge, which is a small turn-off.

What sounds to me like quite a good idea would be simply to allow loading to the level that's one or two levels before the last one you reached. That forces you to work around flukes that you may have encountered to continue, but saves you the time of getting through all the ones you surely know how to get through by now.

Or, maybe better - only allow the user to load to a level that he's completed e.g. twice or three times at max. That ensures that he has figured it out and knows how to get through it, or at least has spent a lot of time figuring it out by accident. :) Prevents continuation from flukes, and also if you keep dying at a specific level, you'll be able to restore directly to it after two or three restarts.

BTW, loving it. :)
Comment by Malcolm Tyrrell (Malcohol) - Friday, 26 May 2006, 09:35 GMT

OK. You've persuaded me that there needs to be some kind of resume
feature. I've considered the schemes you suggested, but here's the
one that I'm going to code up (in pseudo-code):

---------------------

At end of game:

If level_reached > old_resume_level + 1 then
old_resume_level = old_resume_level + 1

---------------------

This will play very like your restart-at-the-level-
before-the-one-you've-reached suggestion, except
if you solve more than one level in a row. In this
case, you'll still have to prove that you can solve
them again.

Thanks again for your useful comments.
Comment by Malcolm Tyrrell (Malcohol) - Saturday, 27 May 2006, 10:01 GMT
This patch has USB handling and saves your progress as described
above. Enjoy!
Comment by Malcolm Tyrrell (Malcohol) - Sunday, 28 May 2006, 14:06 GMT
In order to reduce disk usage, this patch doesn't save a configfile
unless it's necessary,
Comment by Zakk Roberts (midkay) - Monday, 26 June 2006, 18:50 GMT
A month-late comment, but thanks for the checkpoint system - I'm stuck at level 10, though.. so tricky. :) I'd like to commit this when the feature freeze is over, it's a fun game.

Did you make these levels by hand? It'd be really nice to see even more of them...
Comment by Malcolm Tyrrell (Malcohol) - Tuesday, 27 June 2006, 09:44 GMT

In case you're worried, Level 10 is definitely solvable. When you're finished, I'd like to know how you felt about the level
ordering?

Yep, all developed by hand. I'm probably not going to create any more levels myself, but feel free to give it a go.
Comment by Zakk Roberts (midkay) - Tuesday, 27 June 2006, 19:01 GMT
Oh, no, I'm not worried. :) Just puzzled.. I guess that's the object of the game. :)

And wow.. all by hand, that's crazy. Must have taken quite a while...
Comment by Malcolm Tyrrell (Malcohol) - Wednesday, 26 July 2006, 16:02 GMT
I've decided to be a little more generous with the checkpoint scheme. I'm going to
create a new patch so the checkpoint is at the highest level you've beaten twice.
Should have it ready by the weekend.
Comment by Zakk Roberts (midkay) - Wednesday, 26 July 2006, 21:07 GMT
That sounds good... I could commit it then. (hadn't remembered it when the freeze ended, haven't used my iPod in a while).
Comment by Shachar (Lamed) - Friday, 11 August 2006, 19:13 GMT
IMHO, I play games like this just to solve a puzzle and get going with it. yes, you'll probably forget the solution just after you've solved it, and yes, solving it again a little while afterwards could sometimes be just as hard if you forgot how you done it...
But at least for me, I prefer to put it behind me and go on to the next phase. discovering I have to go through the same levels all over again (using the checkpoint system & lives,) kept me away of playing this game - mostly because it's a music player, you play it on the roads or on your spare time, and you are very likely to have to exit from the game for some reason.

But that's only me, and it _is_ open source...
Comment by Malcolm Tyrrell (Malcohol) - Saturday, 12 August 2006, 12:25 GMT

Thanks for the comment. I did try the compromise scheme I described above,
but I just wasn't happy with it. The whole lives thing seems pointless if
you are not disadvantaged by messing up. I do like puzzle games to be a
challenge. In summary, I've decided to use the old scheme.

Pssst, here's a secret. If you find redoing the levels a chore, open
".rockbox/rocks/mazezam.data" in a text editor and change the value of
"restart_level" to (level you want - 1). I trust you not to tell anyone ;-).

Here's my final patch (some mild improvements over the last patch).

Loading...