Jump to content
IGNORED

Jet! (WIP)


Lumi

Recommended Posts

=== NOTICE: ===

This game has become a new game called "Drive!". See the new topic here.

=============

 

Hello, everyone!

 

This is the first real game I've ever made with any kind of assembly. It's a simple 4K game called "Jet!", where you take control of a guy with a fancy jetpack, dodging obstacles in his way.

 

As you play, obstacles will drop down from the top of the screen. Use left and right on the joystick to move in between the gaps. You can push up to increase the speed, and down to decrease it. Increasing the speed will make it more difficult, but it'll get you more points!

This game can be tough, and it takes a bit of practice to get good at it. Here are a few techniques I recommend using:

- A good way to get points is to go at a high speed during easy parts (such as flying through obstacles), then decrease your speed as soon as you see an obstacle coming your way so you can get into position. It's a bit tricky to do this with arrow keys, so I recommend using a gamepad or joystick if you're playing in Stella.

- The walls on the sides act a little bit like trampolines. If you're near a wall and you need to switch directions quickly, simply bounce off the wall. This will reverse your horizontal momentum, giving you an opportunity to switch your direction quickly.

 

This is still a WIP, but I'm very interested to hear what you all think! What would you like to see in this game?

 

Screenshots:

post-44583-0-90537800-1450433211_thumb.pngpost-44583-0-10196500-1450433220_thumb.png

 

Downloads:

== NOTE == These are outdated, check the topic to get the latest version.

Jet! v1 NTSC.bin

Jet! v1 PAL60.bin

Edited by Lumi
  • Like 8
Link to comment
Share on other sites

Nice little game. icon_thumbsup.gif And I am always positively biased when people use Assembler. icon_smile.gif

 

Ideas:

  1. How about using paddles? Then the game would automatically accelerate and the fire button would slow down (or vice versa).
  2. Add some power ups (bonus points/lives; temporary shield which allows ignoring the barriers; temporary speed or gap changes...)
  3. Add a difficulty ramp up (higher minimal speed, narrower gaps...), indicated by e.g. changing colors.
  4. Scoring should heavily depend on speed, else people will just fly with minimal speed.
  5. Maybe some better look ahead. It would be nice to know the position of the next gap before it shows on screen. That would allow some tactical risks.
  6. Hitting a barrier should slow down to minimum speed. Else you risk loosing a lot of lives in a row.
  7. Change the score font to something less generic looking.
  8. ... icon_smile.gif
  • Like 1
Link to comment
Share on other sites

Thanks for the feedback, everyone! As you can tell, this is still a very early build. I haven't had time to balance the gameplay properly. I mainly wanted to see whether you guys liked the concept or not :)

 

Difficulty ramp-up is a priority, as is making your speed count more towards your score. I'm also considering making the overall speed significantly slower so you can see two or three obstacles on-screen at a time.

 

As Thomas Jentzsch pointed out, powerups would be a great addition, but I'm not sure how to pull it off. Between the asymmetric playfield and the player sprites, there isn't enough time in the kernel to place another object, unless I expand it to 3 or 4 lines. Would you guys mind too much if the gap between playfield lines was bigger?

 

Also, I did consider making this utilize paddle controllers instead of the joystick, but I can't seem to get paddle games to work properly in Stella. If I can fix this, I'd definitely consider implementing paddles. It would be really great if I could let the player choose a control method via one of the console switches!

Link to comment
Share on other sites

You should a symmetric playfield except for the barriers. So you only use asymmetrical mode while the barrier is displayed. Then, if you place the powerup outside the barriers, you should have plenty of CPU time.

 

What's your problem with paddles and Stella? You can either select paddles inside Stella (TAB, Game Properties/Controller/P0 Controller = Paddles) or directly via command line "-lc Paddles".

Link to comment
Share on other sites

You should a symmetric playfield except for the barriers. So you only use asymmetrical mode while the barrier is displayed. Then, if you place the powerup outside the barriers, you should have plenty of CPU time.

That's a good idea. I'll see if I can make that work.

 

What's your problem with paddles and Stella? You can either select paddles inside Stella (TAB, Game Properties/Controller/P0 Controller = Paddles) or directly via command line "-lc Paddles".

Ah, so that's what I was missing. Thanks! The next build should allow you to use paddle controls.

Edited by Lumi
Link to comment
Share on other sites

I had the chance to play this a little more. Thomas is right. The game is asking for power ups. I kept wanting to press the button to do something. Power ups might be in a form of a single shot that makes an opening, shields or invincibility. I was able to get my high score by going as slow as I could until I hit a wall. Then I would take advantage of being temporarily invincible and go full speed for about a second and a half.

post-17-0-83065700-1450531298_thumb.png

Edited by Mountain King
Link to comment
Share on other sites

Thank you all for the feedback!

 

I have a new revision here. It doesn't have paddle controls or powerups yet, but I want to see what you guys think about this new setup. I think it's a lot more fun than the old version, personally.

 

What's new:

- The game now runs at about half the speed (at the start), but you can see more obstacles on-screen at a time.

- Speeding up is now done by holding the button, rather than using the joystick. It's just a less clunky way of doing things.

- Speaking of speeding up, it now works like this: holding the button will make you go twice as fast, but it'll quadruple the points you get. And now that you can see further ahead, it's easier to tell when you have a good opportunity to use it.

- Every 10,000 points will cause the game to speed up a bit, so keep an eye on your score.

- You can keep playing until you have -1 lives.

- Various graphical updates.

 

I'm curious to hear what you think!

 

Jet! v2 NTSC.bin

Jet! v2 PAL60.bin

Link to comment
Share on other sites

I love the concept, and it reminds me very much of the Gate Racer games I made a few years ago. The music is incredible, you've done a great job so far. My suggestions would be to include some left/right velocity, include a powerup of some kind, maybe an obstacle of some kind, and savekey/atarivox support is always welcomed for high scores. As Thomas mentioned already, paddle support for a game like this would be perfect. I look forward to future updates! :)

Link to comment
Share on other sites

Thanks, Atarius Maximus!

 

I've implemented a new feature: paddle support! On the title screen, you can now use the left difficulty switch to choose between joystick or paddle controls.

 

Unfortunately, there's a catch. Because the display kernel is too busy to check INPT0 regularly, my only option is to do all that during overscan. What this means is, to allow the player free movement over most of the screen, the player can only move in increments of four pixels. It's not unplayable or anything, but it feels overly sensitive, at least in Stella.

 

However, I haven't tested this on actual hardware. This is where I need help. Can anyone with a Harmony cartridge (or another flashcart) and paddles please spend a few minutes with this, and let me know if the paddle controls are acceptable or not? I really want the option to be there, but if this isn't going to be a viable control method, I'll remove paddles and focus on joystick-only play.

 

Thank you.

 

Jet! v2.1 NTSC.bin

Jet! v2.1 PAL60.bin

Edited by Lumi
Link to comment
Share on other sites

Sorry for the double post, but I have a major new revision! This is actually starting to feel like a complete game now.

 

What's new:

- Powerups! I was able to optimize the kernel a bit and fit these in. They appear randomly and have different effects depending on the color:

- White: Gives you a 3000 point bonus.

- Pink: Gives you an extra life. If you have the max of four lives, it'll act like a white powerup.

- Green: Makes you invincible for 5 seconds. An alarm will sound just before the effect runs out, so you'll have a bit of warning.

- Rather than accelerating infinitely as you gain points, the game will only speed up twice, at 20000 and 40000 points. The background also gets darker as you speed up.

- The game is now winnable! If you reach the max of 99,999 points, you'll get a special "win" screen. It's not easy to do, though.

- Paddle control has been improved, and I've decided to keep them in. I can't do anything about the sensitivity, but I was able to make the movement a lot less choppy by checking INPT0 four times per scanline instead of once.

 

I need to talk about the possibility of AtariVox support, however. I spent a few days considering it, but I've decided not to add AtariVox features. I know it's a bit disappointing, but here are the reasons why:

- The hardware's not that well documented, at least from what I could find after days of searching. I found an old document and a few .inc files, but they don't really explain how to use it properly. I don't like having to guess how hardware works, especially when other games' save data is on the line.

- It would be good to let players choose whether or not to keep track of separate high scores based on the control method used, and that choice would be tough to implement in software.

So, I'm sorry to all the AtariVox owners out there, but I hope the high score screen will make keeping track of your scores the old fashioned way a little easier. :)

 

If anyone has any other suggestions or bug reports (especially relating to differences between how Stella and an actual Atari runs the game), now would be the time to let me know. I really appreciate feedback!

 

Also, here's a question: should I make a standard PAL version? The speed adjustment wouldn't be too difficult, but I'm wondering if anyone would want it over the PAL60 version.

Jet! v3 NTSC.bin

Jet! v3 PAL60.bin

Edited by Lumi
Link to comment
Share on other sites

Great Job Lumi! I think I need a lot of practice to get 99,999. The power ups are nice touch. I have not tried it on actual hardware with the paddles. I'll try to do that tonight. The only criticism I have is when you lose your last life. if you happen to be pressing the button when you die, the game immediately starts over again. There is no delay, no chance to look at your score.

Link to comment
Share on other sites

Lumi,

I just tried your latest version on real hardware. Atari 4 switch with an LCD TV. Looks good and no Jitter. A couple of points.

1. Controls are really sensitive on both joystick mode and Paddle mode. I'm guessing this is deliberate. New players and people with jittery paddles may find this frustrating. It's almost unplayable with a bad set of paddle.

 

2. There doesn't seem to be a way to change modes mid game from paddle to joystick or from joystick to paddle, It can only be done at the title screen.

 

3 I found a bug where the walls do not change or repeat the same pattern over and over and the power ups don't show up. It took me a while to recreate the issue, but it seems to happen if you have a joystick plugged in and have the game set to paddle mode. Then if you start the game by pressing right on the joystick, then unplug the joystick and plug the paddles in then play the game with the paddle, the bug occurs. I actually beat the game this way staying in one spot the whole time.

 

Hope that helps.

 

Still a fun game.

Link to comment
Share on other sites

Thank you so much for testing it!

 

1. Controls are really sensitive on both joystick mode and Paddle mode. I'm guessing this is deliberate. New players and people with jittery paddles may find this frustrating. It's almost unplayable with a bad set of paddle.

The sensitive controls, at least in paddle mode, are not deliberate... Paddles require you to constantly check a value, usually during the visible display, but I can't do that - I have to jam it all into the overscan period. (This is what I was concerned about when I first implemented paddles, and why I needed people to test them.) But if they're really that bad, I have one last idea which I'll try. I just can't make any promises.

 

About the joystick controls, do you think they would be better if the top speed was lower? Keep in mind, they need to still be usable when the game speeds up. I suppose I could make the joystick controls speed up with the game, I just hope that doesn't throw anyone off...

 

2. There doesn't seem to be a way to change modes mid game from paddle to joystick or from joystick to paddle, It can only be done at the title screen.

This was intentional. Joystick and paddle controls are not handled the same way, so switching mid-game could cause glitches.

 

3 I found a bug where the walls do not change or repeat the same pattern over and over and the power ups don't show up. It took me a while to recreate the issue, but it seems to happen if you have a joystick plugged in and have the game set to paddle mode. Then if you start the game by pressing right on the joystick, then unplug the joystick and plug the paddles in then play the game with the paddle, the bug occurs. I actually beat the game this way staying in one spot the whole time.

This is a tough one, and I have no way of testing it since Stella doesn't support hot-swapping controllers. Hmm.

 

Do you know if there's a way to automatically detect which type of controller is plugged in, rather than having the user select it manually? That would help a lot... Otherwise, maybe the only solution is to remove one control type.

Edited by Lumi
Link to comment
Share on other sites

OK, I think I've made some major improvements here!

 

I took a different approach to the whole thing, and the paddle controls should be a lot less sensitive now. It feels more like a real paddle game. The display kernel chews up a lot more space, but it's a fair trade-off, I think.

 

Also, I took your suggestion and now the paddles must be in the right controller port.

 

 

Edit: You know, the more I think about it, the more I feel like the joystick controls are holding this game back. Especially with the new paddle controls, it's starting to feel too easy. So here are a few questions:

 

1) Would anyone object if I made this a paddle-only game, with a higher difficulty?

 

2) Are the new paddle controls good enough for this idea to work, or do they still need fine-tuning?

 

Jet! v3.2 NTSC.bin

Jet! v3.2 PAL60.bin

Edited by Lumi
Link to comment
Share on other sites

It looks like it is not possible to start the game with paddles. I would make it as a paddle only game if it means improvement for paddles control. There are enough of similar games that use joystick. Atari 2600 needs more paddle games.

 

I like it. Perhaps I would change the player graphics a bit. It does not remind me of a guy sitting on a jetpak. Or use some kind of lunar jet vehicle or buggy. With the top down view.

Link to comment
Share on other sites

It looks like it is not possible to start the game with paddles. I would make it as a paddle only game if it means improvement for paddles control. There are enough of similar games that use joystick. Atari 2600 needs more paddle games.

You need to put the paddles in the right controller port... I did this by request and possibly to prevent a glitch, but if I make this a paddle-only game I might have to switch it back to the left port, because it is a bit confusing if you don't know that beforehand.

 

It does not remind me of a guy sitting on a jetpak.

He's supposed to be wearing it like a backpack, like how it's depicted in cartoons. I'll see if I can make that any clearer, though.

Link to comment
Share on other sites

I tested 3.2 on the harmony cart.

I like that paddles use the right port and it's definitely tighter, that being said compared to the joystick it is easier.

My paddle high score 42000

My joystick high score 12000

I personally like having the option of using either controller to play. But if you only focus on just the paddles it will allow you to fine tune the game to just one control type and not worry about balancing the two.

I think the game could use some surprises, something random you have to react to.

 

The repeat bug still exists, where the same 4 walls keep repeating over and over. I'm not really sure what is causing it. I thought it might be caused by switching the difficulty switch at the title screen, but the bug happened to me twice when I immediately started the game. It seems to happen more in Joystick Mode, But I did have it happen in Paddle mode. So I'm not sure why it's happening.

The bug does not seem to show up in stella.

Link to comment
Share on other sites

The repeat bug still exists, where the same 4 walls keep repeating over and over. I'm not really sure what is causing it. I thought it might be caused by switching the difficulty switch at the title screen, but the bug happened to me twice when I immediately started the game. It seems to happen more in Joystick Mode, But I did have it happen in Paddle mode. So I'm not sure why it's happening.

Maybe a problem with random number generation. I suggest using a LFSR as discussed here.

 

And I opt for a paddle-only game.

Edited by Thomas Jentzsch
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...