Wonky

People are still making stuff for the Sinclair related machines. Tell us about new games and other software that runs on the Spectrum, ZX80/ZX81, Pentagon and Next.
Post Reply
dfzx
Manic Miner
Posts: 634
Joined: Mon Nov 13, 2017 6:55 pm
Location: New Forest, UK
Contact:

Wonky

Post 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.
Derek Fountain, author of the ZX Spectrum C Programmer's Getting Started Guide and various open source games, hardware and other projects, including an IF1 and ZX Microdrive emulator.
User avatar
Kweepa
Manic Miner
Posts: 311
Joined: Sat Feb 03, 2018 6:14 pm
Location: Albuquerque, New Mexico

Re: Wonky

Post 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?
dfzx
Manic Miner
Posts: 634
Joined: Mon Nov 13, 2017 6:55 pm
Location: New Forest, UK
Contact:

Re: Wonky

Post 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
Derek Fountain, author of the ZX Spectrum C Programmer's Getting Started Guide and various open source games, hardware and other projects, including an IF1 and ZX Microdrive emulator.
User avatar
djnzx48
Manic Miner
Posts: 723
Joined: Wed Dec 06, 2017 2:13 am
Location: New Zealand

Re: Wonky

Post 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.
User avatar
Turrican
Microbot
Posts: 181
Joined: Thu Apr 12, 2018 5:48 pm
Location: Brazil

Re: Wonky

Post by Turrican »

Goooood game! It´s funny and haaaard.
I can´t reach the top. :lol:
dfzx
Manic Miner
Posts: 634
Joined: Mon Nov 13, 2017 6:55 pm
Location: New Forest, UK
Contact:

Re: Wonky

Post 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:
Derek Fountain, author of the ZX Spectrum C Programmer's Getting Started Guide and various open source games, hardware and other projects, including an IF1 and ZX Microdrive emulator.
dfzx
Manic Miner
Posts: 634
Joined: Mon Nov 13, 2017 6:55 pm
Location: New Forest, UK
Contact:

Re: Wonky

Post 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
Derek Fountain, author of the ZX Spectrum C Programmer's Getting Started Guide and various open source games, hardware and other projects, including an IF1 and ZX Microdrive emulator.
User avatar
Ersh
Manic Miner
Posts: 480
Joined: Mon Nov 13, 2017 1:06 pm

Re: Wonky

Post 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!
dfzx
Manic Miner
Posts: 634
Joined: Mon Nov 13, 2017 6:55 pm
Location: New Forest, UK
Contact:

Re: Wonky

Post 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?
Derek Fountain, author of the ZX Spectrum C Programmer's Getting Started Guide and various open source games, hardware and other projects, including an IF1 and ZX Microdrive emulator.
User avatar
djnzx48
Manic Miner
Posts: 723
Joined: Wed Dec 06, 2017 2:13 am
Location: New Zealand

Re: Wonky

Post 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.
Post Reply