Page 1 of 3

Wonky

Posted: Sat Feb 23, 2019 10:41 am
by dfzx
I wrote a game! Compared to most of the stuff that's released these days it's pretty awful, but I'm quite proud of it because it's the first Spectrum program I've completed since my Computer Studies O'Level project in 1985. In fact, come to think of it, it's only the second Spectrum program I've ever completed, the other one being my Computer Studies O'Level project in 1985.

It's called ZX Wonky One Key, and it's a little platformer, written in C using Z88DK and the SP1 library. It's key points:

* it's 48K only, tested under Fuse on Linux and Speccy on Windows 7 (via a virtual machine)
* it only has one control key: space, and no, you can't redefine it
* there are no baddies, mostly because I don't know how to do collision detection in SP1
* it has background music, which you'll turn off almost immediately
* it runs at 50 frames per second, achieved by virtue of there being no baddies
* it's open source, free software, licenced under GPL

There's only 5 levels, so if it takes you more than 15 minutes you're not really trying.

The pre-built TAP file is here.

The project, including source and a Wiki which other C developers might find useful, is here

Perhaps I should make clear (getting my excuses in early) that this is the only Spectrum game development project I've ever undertaken. I'm not exactly experienced at this. :) It's been a great learning exercise, and I'm looking forward to trying something else. Also, I'm not sure how well Github works as a distribution point. Any problems getting, building or playing the game, please ask.

Re: Wonky

Posted: Sat Feb 23, 2019 4:32 pm
by Kweepa
This is pretty cool!
I like the one key input approach.
I think it might take more than 15 minutes to complete, as it's pretty challenging and starts off rather hard :)
Congrats on the release!

Now when do we see your O-level project?

Re: Wonky

Posted: Sat Feb 23, 2019 6:30 pm
by dfzx
Kweepa wrote: Sat Feb 23, 2019 4:32 pm This is pretty cool!
I like the one key input approach.
I think it might take more than 15 minutes to complete, as it's pretty challenging and starts off rather hard :)
Congrats on the release!

Now when do we see your O-level project?
I have to admit I might have failed the challenge of getting the difficultly right. It's one of those intangible things, where it's hard to objectively assess how difficult a game is when, as the author, you know it so well. In reality the difficulty control is probably the emulator's speed control. The slower you run it, the easier the game becomes. Reminds me of the SlowMo device I brought in 1985 - that made a lot of games much easier as I recall. :)

As for my O'level project, MIA I'm afraid. Probably for the best really. :D

Re: Wonky

Posted: Sun Feb 24, 2019 9:54 am
by djnzx48
Nice work! It's great to see more original concepts like this. I don't get what the dots slowing you down are for, are you supposed to collect them or avoid them?

I looked at your note table in sound.c and it looks like some of the values are being used for the wrong notes. The correct values should be more like this (these aren't exact, I just based them off the low C value).
Spoiler
86 C
81 C#
77 D
72 D#
68 E
64 F
61 F#
57 G
54 G#
51 A
48 A#
46 B
43 C
41 C#
38 D
36 D#
34 E
You can get these by multiplying or dividing a note value by 2^(1/12) to go up or down one semitone.

Re: Wonky

Posted: Sun Feb 24, 2019 10:13 am
by Turrican
Goooood game! It´s funny and haaaard.
I can´t reach the top. :lol:

Re: Wonky

Posted: Sun Feb 24, 2019 10:40 am
by dfzx
djnzx48 wrote: Sun Feb 24, 2019 9:54 am Nice work! It's great to see more original concepts like this. I don't get what the dots slowing you down are for, are you supposed to collect them or avoid them?
To be honest, I got myself into a bit of a mess with the slow down things. It was a result of poor up front planning of the game design, which left me later making it up as a went along. One of the (many) lessons I learned the hard way.

Initially the game had a score - just a number which counted down. The idea was that consuming the slow down pills makes the game easier for a few seconds, so you should forfeit some points if you choose to use one. But ultimately just having a numerical score was a bit crap and meaningless, so I changed it to a slider which demonstrates the time you have remaining. But there still needed to be a penalty for taking a slow down pill, so when you consume one you lose a bit of time. When you take a pill the slider suddenly drops a chunk, which is probably too subtle for the player to notice. I think with hindsight it might have been better to accelerate the decline of the slider while the slow down period is active. Even that might be too subtle. In practise I thought the game was too hard, so I placed the pills such that they can be optionally consumed before the most difficult bits. I set the timing up so the game can still be completed within the whole allotted time even if all the slow downs are used. Man, you've got me thinking about the whole design thing again! :lol:

To answer the question succinctly, ideally you're not supposed to consume the slow down pills. The most skillfull player would complete the game at full, blurring speed!
djnzx48 wrote: Sun Feb 24, 2019 9:54 am I looked at your note table in sound.c and it looks like some of the values are being used for the wrong notes. The correct values should be more like this (these aren't exact, I just based them off the low C value).
Spoiler
86 C
81 C#
77 D
72 D#
68 E
64 F
61 F#
57 G
54 G#
51 A
48 A#
46 B
43 C
41 C#
38 D
36 D#
34 E
You can get these by multiplying or dividing a note value by 2^(1/12) to go up or down one semitone.
Oh, interesting! TBH I had no clue about that music. I didn't even understand the basics of reading music before I started this. My partner does read music, so we spent a couple of long afternoons with her telling me about music and me telling her about Z80 clock cycles, trying to marry up the concepts. :lol:

Re: Wonky

Posted: Sun Feb 24, 2019 10:46 am
by dfzx
Turrican wrote: Sun Feb 24, 2019 10:13 am Goooood game! It´s funny and haaaard.
I can´t reach the top. :lol:
Thank you!

While I wouldn't really want to encourage cheating, I'd rather people cheat and see the completion screen (which took me ages to get right!), than have players give up and know that final bit of work is not seen by anyone. So when you're at the point of giving up, set the emulator to 50% speed and have another go. It's pretty easy then. :D

Re: Wonky

Posted: Sun Feb 24, 2019 10:57 am
by Ersh
Wow! This was a surprise, such a simple yet brilliant idea. Really addictive, only managed to beat the first level so far. I think I cheated a bit as I jumped over the right wall and appeared on the left side falling down to the goal, only had to turn around and enter to win the level. Great job mate!

Re: Wonky

Posted: Sun Feb 24, 2019 11:02 am
by dfzx
Ersh wrote: Sun Feb 24, 2019 10:57 am I think I cheated a bit as I jumped over the right wall and appeared on the left side falling down to the goal, only had to turn around and enter to win the level.
Aw, cr@p! I thought I'd managed to close all the possibilities of that sort of thing. Can you explain exactly where you found a way through?

Re: Wonky

Posted: Sun Feb 24, 2019 11:07 am
by djnzx48
Well I just tried jumping into the exit on the first level (off the pad next to the dot) and I ended up landing down the bottom on the right hand side.

Re: Wonky

Posted: Sun Feb 24, 2019 11:22 am
by Turrican
dfzx wrote: Sun Feb 24, 2019 10:46 am
Turrican wrote: Sun Feb 24, 2019 10:13 am Goooood game! It´s funny and haaaard.
I can´t reach the top. :lol:
Thank you!

While I wouldn't really want to encourage cheating, I'd rather people cheat and see the completion screen (which took me ages to get right!), than have players give up and know that final bit of work is not seen by anyone. So when you're at the point of giving up, set the emulator to 50% speed and have another go. It's pretty easy then. :D
I'm playing it on real hardware!
A Brazilian Spectrum clone: TK90X. :mrgreen:

Re: Wonky

Posted: Sun Feb 24, 2019 11:23 am
by dfzx
djnzx48 wrote: Sun Feb 24, 2019 11:07 am Well I just tried jumping into the exit on the first level (off the pad next to the dot) and I ended up landing down the bottom on the right hand side.
:oops:

When I was finalising the level I decided to extend that little platform one to the left so I could put a slow down pill on it. The next bit, i.e. the bit you're supposed to do, off to the right, is a bit tricky, so I thought a slow down was fair there. But in extending the platform one block so the slow down pill would fit I made it such that if you fall off it you land on the exit platform!

I'm going to call that a shortcut, open to those smart enough to spot it. :lol:

Re: Wonky

Posted: Sun Feb 24, 2019 11:26 am
by Ersh
dfzx wrote: Sun Feb 24, 2019 11:02 am Aw, cr@p! I thought I'd managed to close all the possibilities of that sort of thing. Can you explain exactly where you found a way through?
I jumped from the spring platform over the right wall here:
Image

Onto level 3 now. Fun! :)

Re: Wonky

Posted: Sun Feb 24, 2019 11:30 am
by dfzx
Ersh wrote: Sun Feb 24, 2019 11:26 am
dfzx wrote: Sun Feb 24, 2019 11:02 am Aw, cr@p! I thought I'd managed to close all the possibilities of that sort of thing. Can you explain exactly where you found a way through?
I jumped from the spring platform over the right wall here:
Image

Onto level 3 now. Fun! :)
Ha! OK, that means there's 2 ways out of the level which aren't supposed to be there! Although it rather looks like turning and jumping off that single block is probably harder than just jumping to the left and walking across the top.

I'm still going to fix it for v1.01 though. :P

Re: Wonky

Posted: Sun Feb 24, 2019 11:43 am
by Morkin
This is great...! A simple idea but very well executed.

It can get frustratingly easy to plummet right back to the start just as you were doing well, but in that respect it reminds me of Jumping Jack, in that it has that 'just one more go' feel to it... Some proper 'twitch' gameplay going on too..

[Edit: no idea what I'm supposed to do for level 2 though?? :o ]

Image

I would've suggested making the levels a touch easier, but if there are only five that's fair enough I guess... Though it's going to take me a lot longer than 15 minutes.. :lol:

Re: Wonky

Posted: Sun Feb 24, 2019 11:51 am
by dfzx
Morkin wrote: Sun Feb 24, 2019 11:43 am I would've suggested making the levels a touch easier, but if there are only five that's fair enough I guess...
Any suggestions on how I could have made it a bit easier? I always liked the manic, 50fps speed, so I didn't really want to slow it down any. Any ideas on what I could have done to make it just a bit easier?

Re: Wonky

Posted: Sun Feb 24, 2019 11:53 am
by dfzx
Morkin wrote: Sun Feb 24, 2019 11:43 am [Edit: no idea what I'm supposed to do for level 2 though?? :o ]
Spoiler
Did you notice you can turn around mid jump? :)

Re: Wonky

Posted: Sun Feb 24, 2019 11:59 am
by Ersh
Completed it! Really enjoyed that! :D It said I had 4 bonuses left and then there were some nice fireworks. Very well though-out level design, one mistake doesn't automatically mean all progress is lost.

Re: Wonky

Posted: Sun Feb 24, 2019 12:17 pm
by Ralf
I've just only tried it.

Simple to learn, hard to master ;)

The game mechanics are simple but very original in their simplicity.
The game engine is all right, everythings moves smoothly

Unfortuantely it's too hard, as other say. Probably redesigning the levels would help but I guess the levels remain as they are.

Re: Wonky

Posted: Sun Feb 24, 2019 12:19 pm
by Morkin
dfzx wrote: Sun Feb 24, 2019 11:51 am
Morkin wrote: Sun Feb 24, 2019 11:43 am I would've suggested making the levels a touch easier, but if there are only five that's fair enough I guess...
Any suggestions on how I could have made it a bit easier? I always liked the manic, 50fps speed, so I didn't really want to slow it down any. Any ideas on what I could have done to make it just a bit easier?
It's probably just my reactions slowing with age.. The number of precision jumps you have to make in a row to complete that second level, I just can't get them.. But obviously Ersh has better skills.. :lol:

The only suggestion I would make is perhaps a visual/audio warning when it's about to speed up again (after the slow down), as I found it hard to adjust my reaction time when it happens.

Don't get me wrong - there's nothing bad about wanting your game to be challenging (it's 'good' challenging rather than 'unfair' challenging :) ). But I'm definitely going to need snapshots to get to level 5.

Re: Wonky

Posted: Sun Feb 24, 2019 12:38 pm
by Ersh
I went through it again a couple of times also recorded a RZX, you can download it here. I struggled a bit on the third stage but you can always fast forward that bit in the emulator ;)

Think the difficulty is spot on really, you've only got the 'time' as your opponent, so just keep at it. :)

Re: Wonky

Posted: Sun Feb 24, 2019 12:39 pm
by dfzx
Ralf wrote: Sun Feb 24, 2019 12:17 pm I've just only tried it.

Simple to learn, hard to master ;)

The game mechanics are simple but very original in their simplicity.
The game engine is all right, everythings moves smoothly
Thanks, good to hear. :)
Ralf wrote: Sun Feb 24, 2019 12:17 pm Unfortuantely it's too hard, as other say. Probably redesigning the levels would help but I guess the levels remain as they are.
Yes, OK, I think the lesson here, and it is a lesson because I keen to learn, is that if the author feels it's "about right", or maybe "a bit of a challenge", which is what I felt with this game, then it's probably too hard. Probably best to err on the side of too easy to prevent losing the interest of the player too early. I'll definitely take that on board.

Ralf, before you lose interest entirely, try it in an emulator at 50% speed. :)

Re: Wonky

Posted: Sun Feb 24, 2019 1:00 pm
by dfzx
Ersh wrote: Sun Feb 24, 2019 12:38 pm I went through it again a couple of times also recorded a RZX, you can download it here. I struggled a bit on the third stage but you can always fast forward that bit in the emulator ;)

Think the difficulty is spot on really, you've only got the 'time' as your opponent, so just keep at it. :)
I am utterly blown away that someone played it, mastered it and finished it at full speed, and even made a recording of it. You're right, that 3rd level is far too difficult, especially the left side near the start. Lesson learned, I assure you.

What I wasn't quite ready for is the feeling of elation caused by a handful of people I don't really know having a few minutes of fun playing something I created. It makes the project hugely worthwhile and rewarding. What it must have been like, back in the day, to have created a game tens of thousands of people enjoyed...

Thanks to everyone who gave it a try. Made my day. :D

Re: Wonky

Posted: Sun Feb 24, 2019 1:32 pm
by Ersh
dfzx wrote: Sun Feb 24, 2019 1:00 pm I am utterly blown away that someone played it, mastered it and finished it at full speed, and even made a recording of it. You're right, that 3rd level is far too difficult, especially the left side near the start. Lesson learned, I assure you.
I wouldn't say it's too difficult, if you pick up the pills in those two parts in stage 3 then it's pretty easy to tackle. Though I found that picking up pills could end up screwing you when time sped up in other places, so I just avoided them all together. ;) Helps to have an even rhythm to platforming.

Thanks for the game mate! (more please).

Re: Wonky

Posted: Sun Feb 24, 2019 1:33 pm
by R-Tape
My eyes! I am blinded by the celestial light emitted by the game finale!

This is a great game, and it joins Dave Infuriators in the 'one key' genre.

It seemed impossible at first, but after I saw how Ersh completed level 2 (IMO the hardest level by far), it was manageable after that. I liked the in-game music, but the charm wore off pretty quickly and I went for the 'M' key!

This is annoyingly good for a first project. Well done Derek. Don't stop!