Jump to content
IGNORED

Rocket Pod for Atari


RHillFake

Recommended Posts

Hello everyone! I have finished my game Rocket Pod for the Atari which is MY FIRST ATARI GAME EVER :D and most likely anyone of you guys could code in one hour :D It is a port of the PC game I made. The game is complete unless you guys have any good ideas on how to make it better. (note: if you like it please DO NOT put it on a cartridge, thank you.) Please give me some feedback! Thanks ;)

 

P.S.

Thanks to bogax for making and explaining the gravity to me, to theloon for explaining how to make a lifebar, and to my dad for suggesting ideas and helping with some code.

RocketPodAtari.bas.bin

RocketPodAtariPAL.bas.bin

RocketPodAtariPAL60.bas.bin

Edited by RHillFake
  • Like 3
Link to comment
Share on other sites

Well, for starters, congratulations on your first game. Works fine in Stella on my machine, and the gameplay, albeit simple, isn't easy by any stretch, so it's an interesting game, quite playable. The only suggestions I have are that you could add some sounds, like a rocket sound for the player, a beep or something when you land on the pad, etc... Another thing is when you die, it jumps right back to the start without missing a beat, perhaps a short delay by having some sort of fail animation (the player breaking up or something), and a delay with something like "Get Ready!" message. The way it is right now, if you crash into a wall, it just pops back to the start and starts moving the reset character.

 

Overall though, I'd say you have something to be quite proud of, you did a good job coding the basic game play, you just need a bit of polish with some sounds and some delays before continuing after a death. For a first effort, I'd definitely give you an A+.

 

Good Job!

 

One other thing... I don't have a 2600 or a cartridge burner or anything, so no worries here on my putting it on a cart, but I was curious as to why you're asking people not to.

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

Well, for starters, congratulations on your first game. Works fine in Stella on my machine, and the gameplay, albeit simple, isn't easy by any stretch, so it's an interesting game, quite playable. The only suggestions I have are that you could add some sounds, like a rocket sound for the player, a beep or something when you land on the pad, etc... Another thing is when you die, it jumps right back to the start without missing a beat, perhaps a short delay by having some sort of fail animation (the player breaking up or something), and a delay with something like "Get Ready!" message. The way it is right now, if you crash into a wall, it just pops back to the start and starts moving the reset character.

 

Overall though, I'd say you have something to be quite proud of, you did a good job coding the basic game play, you just need a bit of polish with some sounds and some delays before continuing after a death. For a first effort, I'd definitely give you an A+.

 

Good Job!

 

One other thing... I don't have a 2600 or a cartridge burner or anything, so no worries here on my putting it on a cart, but I was curious as to why you're asking people not to.

Thanks for the feedback John! First off I forgot to mention, once you beat the five levels, you can restart and the up and down movement is faster. I am not actually sure how to make sounds. I have the music and sound generator but I suck at figuring out where things should go :D I also don't really know how to make an accurate time delay, pause thing (edit: figured it out). And to answer about the cart thing, I am (probably overly) protective of stuff I make. That's all. Thanks again for the feedback! :)

Edited by RHillFake
Link to comment
Share on other sites

Great start, and congrats on your first game. Using any kind of gravity in a first game is very impressive. I have lots of suggestions for how to make this better, but don't get discouraged as what you've made already is great for a first timer! Some of these suggestions you can find example code for in my code snippets pinned topic. These are just ideas & suggestions, it's your game. :)

 

  • Add some animation to the rocket sprite. You could have some flame type action going on at the bottom.
  • Add some obstacles (although the game is pretty hard now) with the missles/sprite. You could have them move back and forth, or shoot from the sides of the screen.
  • It's really hard, I wasn't able to complete it in a few minutes of playing (Edit: couldn't complete the first screen - still can't). I'm not sure if you have multiple levels or not, but upon completion make multiple different playfields as you make progress.
  • When you crash, make an explosion animation for the sprite.
  • Add some sound to the game. A rocket blasting sound is fairly easy to make, check out the music editor in Visual batari Basic.
  • When you crash, pause the game before immediately restarting it and show the crash. Restart after pressing the fire button.
  • You could animate the playfield and have a few playfield blocks move as an additional obstacle.
  • You could have the landing pad move slowly back and forth, especially in later levels.

Great job!

  • Like 1
Link to comment
Share on other sites

Great start, and congrats on your first game. Using any kind of gravity in a first game is very impressive. I have lots of suggestions for how to make this better, but don't get discouraged as what you've made already is great for a first timer! Some of these suggestions you can find example code for in my code snippets pinned topic. These are just ideas & suggestions, it's your game. :)

 

  • Add some animation to the rocket sprite. You could have some flame type action going on at the bottom.
  • Add some obstacles (although the game is pretty hard now) with the missles/sprite. You could have them move back and forth, or shoot from the sides of the screen.
  • It's really hard, I wasn't able to complete it in a few minutes of playing (Edit: couldn't complete the first screen - still can't). I'm not sure if you have multiple levels or not, but upon completion make multiple different playfields as you make progress.
  • When you crash, make an explosion animation for the sprite.
  • Add some sound to the game. A rocket blasting sound is fairly easy to make, check out the music editor in Visual batari Basic.
  • When you crash, pause the game before immediately restarting it and show the crash. Restart after pressing the fire button.
  • You could animate the playfield and have a few playfield blocks move as an additional obstacle.
  • You could have the landing pad move slowly back and forth, especially in later levels.

Great job!

Hey. I actually used some of your code snippets to learn collision and stuff :D

You have some good ideas. I am trying to add flame but I need to find some more code not needed to add to the data (aka I don't know how to bankswitch :P). There are 5 levels that will repeat but go faster once you win so the game gets more difficult until impossible. My second post added explosions. Also with the sounds I need more data. I also don't know how to make an animated playfield. I have animated character in level 4 and 5, though so it probably is the same procedure. I really like the idea of the moving landing pad. Also, when you say show the crash, what do you mean? Just show the empty playfield or an image of a wrecked ship?

Thanks for the feedback! I appreciate it!

Great work.....

Thank you :D

Link to comment
Share on other sites

Sound is fairly straightforward.

 

1. There are 2 sound channels

 

2. There are 3 controls for each channel

 

3. There 3 "controls" are volume, control, and frequency for each channel

 

4. Volume is simply the playback volume, control is one of 16 different sound types, they are different, but 5 of them are repeats of other values, so there's actually only 11 different sound types. Some produce tones, others produce noise and distortion, and frequency is frequency or rate per second the sound is generated. Raising frequency will produce a higher tone, lower will produce a lower tone. Most games set a volume and tone type, then loop values through the frequency controller

 

5. The Batari Basic names for these functions are:

 

AUDV0 --- Volume control register for channel 0

AUDC0 --- Control register for channel 0

AUDF0 --- Frequency register for channel 0

 

Just replace the 0 with a 1 for channel 1

 

To generate a sound in BB, you can do something like this

AUDV0 = 3
AUDC0 = 1
top
AUDF0 = f
f=f+1
if f>31 then f=0
drawscreen
goto top
Valid values for volume and control are 0 to 15, 0 to 31 for frequency. Although the registers seem to only look at the first 4 or 5 bits of your variable, so higher values just loop, not crash your game. You could technically leave out that if line and it would sound the same.
Play around with different values for control to get an idea of different sounds.that can be generated. Experiment a bit with a separate project, then when you feel comfortable you can integrate it into your game.
Hope that helps a bit.
Here's a list of the control values...
0
No sound (silent).
1
Buzzy tones.
2
Carries distortion 1 downward into a rumble.
3
Flangy wavering tones, like a UFO.
4
Pure tone.
5
Same as 4.
6
Between pure tone and buzzy tone (Adventure death uses this).
7
Reedy tones, much brighter, down to Enduro car rumble.
8
White noise/explosions/lightning, jet/spacecraft engine.
9
Same as 7.
10
Same as 6.
11
Same as 0.
12
Pure tone, goes much lower in pitch than 4 & 5.
13
Same as 12.
14
Electronic tones, mostly lows, extends to rumble.
15
Electronic tones, mostly lows, extends to rumble.
Edited by John_L
Link to comment
Share on other sites

Hey. I actually used some of your code snippets to learn collision and stuff :D

You have some good ideas. I am trying to add flame but I need to find some more code not needed to add to the data (aka I don't know how to bankswitch :P). There are 5 levels that will repeat but go faster once you win so the game gets more difficult until impossible. My second post added explosions. Also with the sounds I need more data. I also don't know how to make an animated playfield. I have animated character in level 4 and 5, though so it probably is the same procedure. I really like the idea of the moving landing pad. Also, when you say show the crash, what do you mean? Just show the empty playfield or an image of a wrecked ship?

Thanks for the feedback! I appreciate it!

Thank you :D

 

When I said "show the crash" I just meant show an animated crash (which you've done) and then pause the screen and show a destroyed ship before you restart. You posted your last update at the same time I was posting, I like the explosion animation. Very nice!

Link to comment
Share on other sites

 

Sound is fairly straightforward.

 

1. There are 2 sound channels

 

2. There are 3 controls for each channel

 

3. There 3 "controls" are volume, control, and frequency for each channel

 

4. Volume is simply the playback volume, control is one of 16 different sound types, they are different, but 5 of them are repeats of other values, so there's actually only 11 different sound types. Some produce tones, others produce noise and distortion, and frequency is frequency or rate per second the sound is generated. Raising frequency will produce a higher tone, lower will produce a lower tone. Most games set a volume and tone type, then loop values through the frequency controller

 

5. The Batari Basic names for these functions are:

 

AUDV0 --- Volume control register for channel 0

AUDC0 --- Control register for channel 0

AUDF0 --- Frequency register for channel 0

 

Just replace the 0 with a 1 for channel 1

 

To generate a sound in BB, you can do something like this

AUDV0 = 3
AUDC0 = 1
top
AUDF0 = f
f=f+1
if f>31 then f=0
drawscreen
goto top
Valid values for volume and control are 0 to 15, 0 to 31 for frequency. Although the registers seem to only look at the first 4 or 5 bits of your variable, so higher values just loop, not crash your game. You could technically leave out that if line and it would sound the same.
Play around with different values for control to get an idea of different sounds.that can be generated. Experiment a bit with a separate project, then when you feel comfortable you can integrate it into your game.
Hope that helps a bit.
Here's a list of the control values...
0
No sound (silent).
1
Buzzy tones.
2
Carries distortion 1 downward into a rumble.
3
Flangy wavering tones, like a UFO.
4
Pure tone.
5
Same as 4.
6
Between pure tone and buzzy tone (Adventure death uses this).
7
Reedy tones, much brighter, down to Enduro car rumble.
8
White noise/explosions/lightning, jet/spacecraft engine.
9
Same as 7.
10
Same as 6.
11
Same as 0.
12
Pure tone, goes much lower in pitch than 4 & 5.
13
Same as 12.
14
Electronic tones, mostly lows, extends to rumble.
15
Electronic tones, mostly lows, extends to rumble.

 

 

 

You can do a search for Random Terrain's Tone Toy app, it's a great way to get a sample of what a simple audio effect will sound like before you use it.

Thanks for the help!

Link to comment
Share on other sites

If you've run out of space, there are tricks to make smaller binaries.

Since batari Basic compiles to machine language binary, the way you code can effect the final size.

For instance, put all variable declarations that are the same on one line.

Example:

player1x=10: y=10: z=10: AUDV0=10: monkey=10: life=10

 

That makes smaller code than putting one after another on separate lines like:

player1x=10

y=10

z=10

AUDV0=10

monkey=10

life=10

 

Why?

 

The first line compiles like this: "Load register with 10, set player1x y z AUDV0 monkey and life to 10."

 

The second way actually compiles to like: "Load register with 10, set player1x to 10, load register with 10, set y to 10, load register with 10, set z to 10, load register with 10, set AUDV0 to 10, load register with 10, set monkey to 10, load register with 10, set life to 10."

 

That is the first trick I learned.

If you have a lot of variables set to the same value and you put them all one one line, savings can add up.

(There is a limit on how many you can put on one line separated by ":" but it is a lot.)

 

Would you like to know more? :D

Link to comment
Share on other sites

If you've run out of space, there are tricks to make smaller binaries.

Since batari Basic compiles to machine language binary, the way you code can effect the final size.

For instance, put all variable declarations that are the same on one line.

Example:

player1x=10: y=10: z=10: AUDV0=10: monkey=10: life=10

 

That makes smaller code than putting one after another on separate lines like:

player1x=10

y=10

z=10

AUDV0=10

monkey=10

life=10

 

Why?

 

The first line compiles like this: "Load register with 10, set player1x y z AUDV0 monkey and life to 10."

 

The second way actually compiles to like: "Load register with 10, set player1x to 10, load register with 10, set y to 10, load register with 10, set z to 10, load register with 10, set AUDV0 to 10, load register with 10, set monkey to 10, load register with 10, set life to 10."

 

That is the first trick I learned.

If you have a lot of variables set to the same value and you put them all one one line, savings can add up.

(There is a limit on how many you can put on one line separated by ":" but it is a lot.)

 

Would you like to know more? :D

I figured out how to bankswitch but this is interesting. Please continue :)

Link to comment
Share on other sites

As far as space goes..

 

Remember: the playfield is just a bunch of variables (var0-var47)

http://www.randomterrain.com/atari-2600-memories-batari-basic-commands.html#playfield

 

You can make "new" levels just by changing a few vars in an existing playfield. Say, level 2 is just the playfield data from level 1 but with var21 being a solid wall of blocks var21 = %11111111

Link to comment
Share on other sites

Latest update (v0.8 ) (uses bank switching) changes.

Colored player sprites, another level (6), explosion sounds, level 1 and 6 player has flames coming out, and in level 4 and 5 the player stays the direction he last faced.

Thanks for all the feedback, guys! :)

RocketPodAtariV0.8.bin

Edited by RHillFake
Link to comment
Share on other sites

Great job on v 0.8..!!! Perhaps a different type of distorted noise, just less square wavy, more softer white noise sound for when the thrust button is being pushed. Looking really great overall. You'll find programming like this is typical. Get the basic game play down then go back and flesh out all the "bells and whistles" after. Bravo man!

Link to comment
Share on other sites

Great job on v 0.8..!!! Perhaps a different type of distorted noise, just less square wavy, more softer white noise sound for when the thrust button is being pushed. Looking really great overall. You'll find programming like this is typical. Get the basic game play down then go back and flesh out all the "bells and whistles" after. Bravo man!

Thank you!

The soft thrust noise will be added in on v0.9 thanks to you :)

Also, there was no noise when you pressed it before like you seemed to imply in your comment.

What do you mean exactly about the programming being typical? My type of game, or soft white noise and going back for bells and whistles?

Anyway, thanks again John for the suggestions! :)

Link to comment
Share on other sites

Thank you!

The soft thrust noise will be added in on v0.9 thanks to you :)

Also, there was no noise when you pressed it before like you seemed to imply in your comment.

What do you mean exactly about the programming being typical? My type of game, or soft white noise and going back for bells and whistles?

Anyway, thanks again John for the suggestions! :)

I meant generally when you code, you write the "meat" of the program first (in your case, the logic that controls the ship, detect collision, detect landing pad), and add bells and whistles like splash screens, sounds, scores, cut scenes, etc afterwards. You're main code is done, tight, working fine, and so now you're into the "puttin' lipstick on it" phase.

Link to comment
Share on other sites

I think you need to turn off collision detection on the fuel pixels so you don't crash when flames touch the ground.

I am not going to do that because 1) I don't know how :P 2) I don't know how 3) Makes it much easier. Thanks for the feedback, though!

 

I meant generally when you code, you write the "meat" of the program first (in your case, the logic that controls the ship, detect collision, detect landing pad), and add bells and whistles like splash screens, sounds, scores, cut scenes, etc afterwards. You're main code is done, tight, working fine, and so now you're into the "puttin' lipstick on it" phase.

That makes sense

Link to comment
Share on other sites

Star castler, on 30 Jun 2014 - 9:43 PM, said:snapback.png

I think you need to turn off collision detection on the fuel pixels so you don't crash when flames touch the ground.

I am not going to do that because 1) I don't know how :P 2) I don't know how 3) Makes it much easier. Thanks for the feedback, though!

 

 

Use a different resource for the flames. Say, don't draw the flames with the player sprite. Draw the flames with one of the missiles or ball. That way any collision check like collision(player0, playfield) wont have anything to do with the flames that are drawn with something else.

Link to comment
Share on other sites

 

Use a different resource for the flames. Say, don't draw the flames with the player sprite. Draw the flames with one of the missiles or ball. That way any collision check like collision(player0, playfield) wont have anything to do with the flames that are drawn with something else.

Thanks for the information! I won't use this in Rocket Pod though because it would make it to easy.

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

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