Jump to content
IGNORED

Jet! (WIP)


Lumi

Recommended Posts

I'm really happy you're all helping me improve this game!

 

It looks like I'm going to be removing joystick mode. It's a bit of a shame, but I do feel it's holding the game back. By focusing on paddles, I have some ideas on how to make this more fun.

 

As for the repeating walls issue, I'm not really sure why the RNG I used would be acting up so much, but I'll try the LFSR approach and hopefully that will fix.

 

I'll be taking a short break from development to focus on work, so rest easy - you won't have to keep testing new updates constantly ;)

Link to comment
Share on other sites

How about sharing your RNG code? Then we can maybe find the problem.

Sure. It looks like this:

lda INTIM
eor RNG
sta RNG

I thought this would work, since this game doesn't use the timer and only does this once or twice per frame. I may have misunderstood how INTIM works, though.

Link to comment
Share on other sites

Wait, you do not use any timer? Why not? And how do you get a stable frame rate then?

I developed the base game without the timer, and decided to stick with it because the RNG depended on it.

 

As for how I achieved the stable scanline count, whenever I wrote a new chunk of code, I tested it thoroughly and kept an eye on the number of scanlines. If it simply caused the game to exceed 262 scanlines, I made the game wait one fewer scanline. If the code resulted in variable scanline counts, I added a "sta WSYNC" before it. I realize this would be a bad idea if you're cramped for ROM space, but I have most of the engine down and still a comfortable amount of free space, so it's not an immediate worry.

Link to comment
Share on other sites

OK, this is a little earlier than anticipated, but I had a lot more time to work on this than I thought I did. Version 4, everybody!

 

This update removes joystick mode, but completely optimizes the game and difficulty for paddle control! It's now a lot more functional and fun to play because of it!

 

More new features:

- You can plug the paddles into either the left or right controller port! (Just note that you can't switch once progressing past the title screen.)

- Paddle control has been improved again. You now have a full range of motion between the two barriers. As a result, the player sprite is also drawn a few lines lower.

- The scoring system has been reworked to be based on time, rather than distance. It also accumulates at a slower pace. However, speeding up (which I'm now officially going to refer to as "boosting", because it sounds better) still quadruples the points you get.

- While boosting, powerups are now twice as likely to appear.

- Moving obstacles! There are two variants of these. They move back and forth across the screen, so you need to time your movements accordingly.

- To reflect the updated scoring system, white powerups now give 1500 points instead of the previous 3000.

- There is now a fourth, purple powerup. These are extremely uncommon compared to the other 3, but they give you a whopping 4000 points!

- The game now has 5 speeds rather than 3. It speeds up every 10,000 points until the max speed is reached at 40,000 points.

 

Additionally, random number generation is now based on a LFSR, which should hopefully spell the end of the repeating walls bug once and for all.

 

Give it a try, I promise it's a better experience!

 

Jet! v4 NTSC.bin

Jet! v4 PAL60.bin

  • Like 2
Link to comment
Share on other sites

Played until 21k. Died immediately at the speedup.

 

Some feedback:

  1. The 2nd speed looks a bit jerky. How do you scroll at that speed?
  2. It takes quite long until the 1st speedup. How about increasing the speed at e.g. 5000, 10000, 20000, 40000 and 80000?
  3. It seems you still gain points faster at higher speed, but maybe that's a wrong impression
  4. When you loose a life, the game should stop for a brief moment (half a second or so), so that you can check your mistake
  5. The sound which shows the end of invincibility comes a little bit late, sometimes I die because I cannot react fast enough.
  6. The power ups should come with distinct sounds. The player is too much focused on the screen to check score or lives.
  7. The power up color is a bit hard to recognize, can you make them a bit larger?
  8. The vertical space between the barriers should vary. Also the barrier gaps should vary a bit.
  9. I like the moving obstacles!
  10. How about some game variations? E.g. with/without moving obstacles, starting at a higher difficulty...
  11. Probably you should increase the maximum points to 999,999
  12. The speedup should be more gradual, over a few seconds. With fractional math, this should be quite easy.

Overall this game is coming along very nicely. :thumbsup:

Link to comment
Share on other sites

nice job! I played on a Harmony on hardware with paddle and joystick. I definitely prefer paddle, given the way you have the obstacles designed, it's much more frustrating with a joystick.

 

also, on the paddle controller, it appears you're not using the entire range of the paddle. if I turn all the way to the right (until the hardware limit), I'm at the right edge of the screen, and turning left from there the ship starts moving left right away, but it reaches the left side of the screen well before the left turn limit of the paddle. It makes me think that you could use a bit more range of the paddle to make the controls slightly less sensitive (they feel a bit touchy to me).

 

overall great progress! I'd be glad to play future versions on hardware and give feedback.

Link to comment
Share on other sites

Wow, a lot of feedback! I'll definitely keep it in mind. Some things I'd like to respond to/clarify:

 

The 2nd speed looks a bit jerky. How do you scroll at that speed?

At that speed, the screen moves down in a repeating pattern of "one-one-two" lines. It is a bit jerky, but I'm not sure how else to do it? Speed 3 is a smoother "one-two" pattern, but is too great a leap from the first speed - there has to be something in between.

 

It seems you still gain points faster at higher speed, but maybe that's a wrong impression

You don't gain points faster, I checked in the debugger. It's just your imagination :)

 

The sound which shows the end of invincibility comes a little bit late, sometimes I die because I cannot react fast enough.

Do you mean there should be more time to react, or that the sound itself is playing too late? Currently, the warning sound is timed to finish just before the invincibility runs out - I could definitely have the sound play earlier so you have more reaction time, but if it's playing too late then that's a different issue.

 

The power ups should come with distinct sounds. The player is too much focused on the screen to check score or lives.

They do! Each powerup should play a distinct jingle when collected. Are they all making the same sound for you? If so, something's not working correctly.

 

The power up color is a bit hard to recognize, can you make them a bit larger?

I could make them wider, but probably not taller - allowing the object to remain visible only for two scanlines is essential to the display kernel. The other option is to use more saturated colors. The biggest hurdle is making them stand out against the blue background, but that's a little easier to deal with.

 

Probably you should increase the maximum points to 999,999

At 99,999 points you "win" the game. I wanted there to be an ulterior goal instead of just going for high scores, and going for 999,999 would be a massive undertaking for the player.

 

 

 

nice job! I played on a Harmony on hardware with paddle and joystick. I definitely prefer paddle, given the way you have the obstacles designed, it's much more frustrating with a joystick.

 

also, on the paddle controller, it appears you're not using the entire range of the paddle. if I turn all the way to the right (until the hardware limit), I'm at the right edge of the screen, and turning left from there the ship starts moving left right away, but it reaches the left side of the screen well before the left turn limit of the paddle. It makes me think that you could use a bit more range of the paddle to make the controls slightly less sensitive (they feel a bit touchy to me).

 

overall great progress! I'd be glad to play future versions on hardware and give feedback.

Which version did you play? The most recent revision removes joystick controls entirely. Some earlier versions had more sensitive paddle controls, but as far as I can tell, Version 4's range should be comparable to that of "Kaboom!" (At least according to the potentiometer values in Stella's debugger). Thank you for taking the time to test it on actual hardware, though!

 

BTW I also tried using the driving controller (in the right-hand port), and it didn't work (as you probably know).

I didn't know that! I'm not very familiar with the driving controller, should it work the same as paddles?

Link to comment
Share on other sites

At that speed, the screen moves down in a repeating pattern of "one-one-two" lines. It is a bit jerky, but I'm not sure how else to do it? Speed 3 is a smoother "one-two" pattern, but is too great a leap from the first speed - there has to be something in between.

You can use one variable and add an increasing value. Whenever the sum wraps, you scroll one extra line. That way you can control the speed in very small steps.

 

Do you mean there should be more time to react...

This.

 

They do! Each powerup should play a distinct jingle when collected. Are they all making the same sound for you? If so, something's not working correctly.

Probably I am just too busy to survive to notice. icon_smile.gif

 

At 99,999 points you "win" the game. I wanted there to be an ulterior goal instead of just going for high scores, and going for 999,999 would be a massive undertaking for the player.

Ok, but 99,999 seems too easy to get. Why should you short-cut your game intentionally?

 

I didn't know that! I'm not very familiar with the driving controller, should it work the same as paddles?

Nope. Completely unrelated and with very low resolution.
Link to comment
Share on other sites

You can use one variable and add an increasing value. Whenever the sum wraps, you scroll one extra line. That way you can control the speed in very small steps.

That makes sense. I don't think it would solve the jumpiness, though, would it?

 

 

Ok, but 99,999 seems too easy to get. Why should you short-cut your game intentionally?

It's actually not easy once you get into the high speeds - to be honest, I haven't been able to do it legitimately. When I started this game, I was planning to make something like Super Hexagon (a game where surviving one minute is an accomplishment). I steered away from that idea, but I decided to keep the "short but tough" style of gameplay.

Link to comment
Share on other sites

That makes sense. I don't think it would solve the jumpiness, though, would it?

I think there are two problems:

  1. You always scroll 2 rows at at time (or multiple of 2)
  2. You scroll 2,2,2,2,4,4,2,2,2,2,4,4... but it should be 2,2,4,2,2,4.... Both average to 2.67 lines/frame, but the latter should look smoother.

For fixing the #1, you have to enter the kernel at two different places. Then you can do 2,3,3,2,3,3...

#2 seems to be a bug which should be an easy fix.

Link to comment
Share on other sites

I think there are two problems:

  1. You always scroll 2 rows at at time (or multiple of 2)
  2. You scroll 2,2,2,2,4,4,2,2,2,2,4,4... but it should be 2,2,4,2,2,4.... Both average to 2.67 lines/frame, but the latter should look smoother.

For fixing the #1, you have to enter the kernel at two different places. Then you can do 2,3,3,2,3,3...

#2 seems to be a bug which should be an easy fix.

Hmm, I didn't think of entering the kernel in different places. That's a clever solution and would be easy to implement.

 

Also, at first I was confused when you said "2,2,2,2,4,4,2,2,2,2,4,4..." because it didn't work like that before, but then I took a look at the movement in the debugger. Yikes, no wonder it's so choppy. I think that bug was introduced when I modified the scoring system. It's a very easy fix, so thank you for bringing this to my attention.

Link to comment
Share on other sites

you were right, I was indeed on version 3! Just played 4 and it's much improved! nice work.

 

I got up to around 9,000 points and didn't feel the game speed up, does that come later?

 

Also I'm a bit confused on the powerups. they all look the same, and I only seemed to encounter 2:

1- you blink and are invulnerable for a short period (cool!)

2- you pick it up and a different sound plays, but nothing noticeable happens :woozy:

 

The music is indeed really great, like others have mentioned.

Link to comment
Share on other sites

I played the Latest version on my 7800 which is connected to a CRT tv. The paddle control is much tighter, almost too tight. I no longer feel like I'm out of control. I really like the moving walls dynamic. The game play is fast and I find myself not going for the power ups in fear of crashing. It's hard to discern one color power up from another. I know you have white, pink and green, but they are all very light. Unfortunately I keep seeing the repeat bug even on the 7800. And on a minor note the player with the flames coming out of the jet pack, does look like he is wearing a dress.on a CRT. But other than that I really like your game and it is challenging.

Link to comment
Share on other sites

Just a heads up, I'm going to have to pause development of this game for a little while, but I'm keeping a list of all your suggestions and concerns, so I have a good list of things to add/fix next time.

 

However, this really concerns me:

Unfortunately I keep seeing the repeat bug even on the 7800.

I'm honestly stumped here... I have no idea why this bug is happening, and why it doesn't happen in Stella. If anyone wants to help me get to the bottom of this, here's how the RNG works:

 

When the game is reset, the following code is run to seed the RNG:

		lda INTIM	;fetch a random number
		adc SWCHB	;make it a little more random by adding the status of the console switches
		bne notzero
		lda #$93	;the seed can't be 0. If it is, this arbitrary number will be loaded instead
notzero		sta RNG

Every frame, the following occurs:

		lda RNG
		lsr
		bcc skipeor
		eor #$B2
skipeor		sta RNG

Sometimes 2-3 random numbers are needed per frame. In those cases, the above snippet of code will be run again to get the new number.

 

Obstacles are generated by ANDing the variable RNG with #$0F. If the result is greater than 0, the corresponding playfield data will be loaded from a table in ROM. Otherwise, a moving obstacle is generated, which is handled by a separate chunk of code.

 

Does anyone know what might be causing the problem?

Link to comment
Share on other sites

I haven't observed the bug yet. Can you describe it in more detail. E.g. how often do the pattern repeat? Is it always the same pattern that repeats?

 

Some suggestions regarding the LFSR and random number generation:

  1. call the random number generator once per frame. This makes the sequence more random.
  2. try using a 16-bit LFSR
  3. If RND is $80, the next 4 calls (ANDed with $0f) will result into $00, maybe that's your problem?

BTW: In theory a LFSR only generates one new bit per loop, but usually you can get away and use multiple bits.

Link to comment
Share on other sites

Okay, it looks like the repeat bug only happens when you go full throttle. And it only seems to happen on level 1. When you hit the next threshold it seems to go back to random, but i didn't survive long enough to tell. I took a video and I'll try to post it to show you what I mean.

 

Edited by Mountain King
Link to comment
Share on other sites

Okay, it looks like the repeat bug only happens when you go full throttle. And it only seems to happen on level 1. When you hit the next threshold it seems to go back to random, but i didn't survive long enough to tell. I took a video and I'll try to post it to show you what I mean.

 

Thank you, this is really helpful. I still have no idea why only you seem to be getting it, but this gives me a few ideas as to what might be going wrong. Hopefully I can fix it next time.

 

EDIT: Never mind, I was able to reproduce it in Stella! I should be able to fix it now.

Edited by Lumi
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...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...