Jump to content
IGNORED

Powernoid 2024 Preview (2 Pinball Gimmicks)


Recommended Posts

Powernoid 2024 - Pinball Gimmick Preview 24th June.

 

Five lives with no on screen indication of lives remaining.
Printed Score. Two Pinball gimmicks with perfect collision.

New C implementation of sample playback based on Bastian's

asm code used for "Game Over" speech sample.

 

This version has speed dialled up in level 2,

when the ball is reflected off the Spinwheel.

 

Level One - Teleporter
Level 2x - Spinwheel
Level Three - Teleporter and Spinwheel
Level Four - Plain 63 Bricks

 

Currently working on a new gimmick called "Wormhole",

to split the ball into two balls that appear from each

side of the teleporter, like the iOS version in the video.

 

This project has 1 day left!

 

 

 

 

 

 

 

Powernoid.lnx

Edited by Brek Martin
Updated Binary
  • Like 1
Link to comment
Share on other sites

I already like the way I introduced a new ball back then. Better than now.

The ball followed the bat until player pressed fire.

Anyway, it can't be quite like this on a Lynx of course, but I don't see any reason why the fun elements can't be reproduced.

The boring prototype I'd prefer to be solid before moving on.

 

Link to comment
Share on other sites

Just played it. It is very basic... I would suggest a "hook" to differentiate it from other Breakout style games, and it sounds like you've already got one planned. If you're planning to incorporate elements of pinball, I'd suggest playing other Breakout clones which do this, like Capcom's Block Block and Namco's Geebee series.

 

Also, Breakout games don't typically work all that well with a landscape (yoko, or horizontal) orientation. There's just not enough room to catch the ball when it falls, a problem I noticed with the recent Steam game Strikey Sisters. You could flip the playfield, the way the Lynx version of KLAX does, but that means having to redesign the game from scratch, and you're probably not eager to do this.

 

One other thing... you may want to let the player release a new ball with the tap of a button, like Arkanoid does.

 

Can I ask how you're making this? Are you using C or C++ for the programming language? There's no BASIC for the Lynx to the best of my knowledge; otherwise I would be dipping my toe into Lynx development as well. Bravo if you are using C; I never got a taste for that programming language, myself.

  • Like 1
Link to comment
Share on other sites

Posted (edited)

Thanks for trying it in the state it's in :D

It's C in CC65. I don't see how that's particularly commendable.

I suspect people actually use C properly with lynx, and slow things down as a result

with their function calls with arguments, and private variables, all formally and technically correct,

when spaghetti code will actually perform!

 

Boring and basic, yes. I think it's the right time to hit problems.

The game can easily run at twice the speed through frame skip, and you wouldn't know,

but that will probably be a powerup brick for a particular level.

 

Tap button to release ball... already said it in the post right above yours :D

 

It's news to me that other clones do pinball elements. I will have to check that out.

Vertical? Hmmm... I know about Fission, it has good ideas, but I have mixed feelings about it.

My Tetris (Tate-Tris) will be vertical, but that's more out of necessity than I think this would be.

It could be that I'm simply adverse to vertical games on this platform.

 

It has occurred to me that the bottom row of bricks could go, because it could be a little difficult there.

I'm hopeless at determining game difficulty. The main tester of my last game was heaps better than me at it.

 

I'm influenced by Megaball for Commodore Amiga.

 

Edited by Brek Martin
Link to comment
Share on other sites

The paddle seems to be "flat", if the ball hits with 90° it is reflected with 90°. I think the "original" paddle is a curve, to that there incoming angle is never the outgoing.

 

image.thumb.png.7ae7b25e5ca29b98550a2b1576cd1ccb.png

Edited by 42bs
Link to comment
Share on other sites

On the flat part yes, but not quite. If you hit an edge it will make a different sound and always reflect to the 

side of the bat that was hit. The rest is angle of incidence reflection. Again... Amiga Megaball... what I played as a teenager.

The Megaball bat is pictured, But I'm not really stuck on that idea. In fact it's easier because I currently have five bat collision areas.

 

I wonder what the "original" game is? I will have to play more, or at least watch more on YouTube.

I did play Megaball yesterday and realised mouse control is absolute position, just like touch screen on smartphone,

much more conducive to control of this than a Lynx D-pad, but have to make do.

 

Megaball.png

Link to comment
Share on other sites

9 hours ago, Brek Martin said:

On the flat part yes, but not quite. If you hit an edge it will make a different sound and always reflect to the 

side of the bat that was hit. The rest is angle of incidence reflection. Again... Amiga Megaball... what I played as a teenager.

The Megaball bat is pictured, But I'm not really stuck on that idea. In fact it's easier because I currently have five bat collision areas.

 

I wonder what the "original" game is? I will have to play more, or at least watch more on YouTube.

I did play Megaball yesterday and realised mouse control is absolute position, just like touch screen on smartphone,

much more conducive to control of this than a Lynx D-pad, but have to make do.

 

Megaball.png

Ok "original" might be wrong wording, but all breakout variants I played use a "flat" paddle on the screen, but reflection is done as if it is curved.

 

  • Like 1
Link to comment
Share on other sites

If that's what's most common then that's probably how it should be.

I assume that means you could hit it toward 90 degrees if you hit the ball close to the centre of the bat,

but I'll watch more of the games on YouTube.

 

I blame the Lynx for buying an oscilloscope today :D 

 

 

Link to comment
Share on other sites

I mean, you could turn the paddle slightly to adjust the trajectory. Flipper Slipper for the ColecoVision did this, but it didn't do it WELL. If you can make it work, that could be the angle you're looking for to make this game unique, no pun intended.

  • Like 2
Link to comment
Share on other sites

On 6/16/2024 at 12:29 PM, Jess Ragan said:

There's no BASIC for the Lynx to the best of my knowledge; otherwise I would be dipping my toe into Lynx development as well. Bravo if you are using C; I never got a taste for that programming language, myself.

Noted, and I'll add it to the list of games to YouTube!

I like to do programming continuously, but I've been forced to interrupt this project for a couple of reasons.

 

Your hesitation with C is irrational by the way.

You can learn C syntax, and then copy any BASIC program line by line as C, and do it very quickly,

so long as you're proficient with the syntax of both languages. This means that your thinking need not change.

That does not mean the opposite however, and does not mean you'll be taking full advantage of C.

 

For example,

if you're given a C program that makes extensive use of pointers, good luck directly porting that in the same manner,

without changing your thinking, to BASIC.... but the other way round is a good start.

 

 

 

Link to comment
Share on other sites

You've unwittingly typed the correct strings into the thread to cause me to let it go early.

It changes nothing from my end other than exposing myself early. It was destined to be open.

I wonder if anyone has had the guts to do this :D the source file ends with log.

I'll do collision differently if I run out of processing time for a frame.

 

Lynx has a collision buffer, but I'd do that separate with actual brick ID as values in a custom collision buffer.

A comment on Discord alluded to another idea as well. Both offer something, but complicate things for beginners I think.

 

 

main.c

Link to comment
Share on other sites

Ok, there's a version to play with two funky gadgets that interact with the ball, while I work on the third.

Collision detection between two circular objects was never going to happen with bounding boxes,

so I have created collision buffer maps. There are actually four, so in the case of the spinwheel,

the reflected angle can appear semi-random, and prevent the ball being stuck bouncing back and forth forever.

If the collision map isn't perfect, it can be made perfect by filling in some missing values.

Refer to the angle graphic on graph paper posted above to see the meaning of reflected angles in the map.

The spinwheel never causes the ball to pass through it, unlike the iOS version in the video, which can.

Octagon_Collision.png

Edited by Brek Martin
Link to comment
Share on other sites

3 hours ago, Brek Martin said:

Ok, there's a version to play with two funky gadgets that interact with the ball, while I work on the third.

Collision detection between two circular objects was never going to happen with bounding boxes,

so I have created collision buffer maps. There are actually four, so in the case of the spinwheel,

the reflected angle can appear semi-random, and prevent the ball being stuck bouncing back and forth forever.

If the collision map isn't perfect, it can be made perfect by filling in some missing values.

Refer to the angle graphic on graph paper posted above to see the meaning of reflected angles in the map.

The spinwheel never causes the ball to pass through it, unlike the iOS version in the video, which can.

Octagon_Collision.png

The edge cases in the collisions where one of the reasons my breakout was suspended ;/

 

demo.zip

Link to comment
Share on other sites

1 hour ago, sage said:

The edge cases in the collisions where one of the reasons my breakout was suspended ;/

 

I've updated the binary in the first post to align it with this source.

There's a few ways I could tackle it, but in this case, when the two objects are always the same size

(6x6 ball and 16x16 circle), the constant collision bitmap may be the sum of both dimensions (22x22).

 

I still check a 22x22 pixel bounding box for a frame, and only look at the collision buffer when the ball is within it.

Not so bad.

 

I assume that image is meant to be "hi colour"? It's a shame it doesn't go over well on new displays.

In Fury, I'm creating the same fragmentation because it's difficult to see on original displays :D

 

I still say it's ballsy to post your source mid game!

 

Powernoid.c

Edited by Brek Martin
  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...