Jump to content
IGNORED

In Development: Asteroids clone


Recommended Posts

YARV (Yet Another Rasteroids Video)

 

This one shows the first cut of the shields. The graphics for it will likely change and I'm sure the behavior will be tweaked. It's a start anyway. The ship can really get bounced around if there are alot of fast moving Asteroids bouncing off it. Right now you can toggle the shield on and off and can leave it on indefinitely. I will likely only allow it to be on for a few seconds. Perhaps there will be a bar that indicates how much shield time is left. Should shield time regenerate over time?

 

-tjb

 

 

shield_demo.zip

Link to comment
Share on other sites

btw. good work so far. just for my understanding as i have to deal with such an enemy que as well... can you explain how you handle the asteroids? it must be kind of dynamic list? i mean all its parameters and when hit you have to split up hence insert 2 more asteroids in your que?

 

when my item generator is done in my diablo-clone i want to expand the engine to more monsters attacking the player. but diablo uses a lot of vars/stats per monster/frame so i am not sure how to handle that fast enough... maybe some approach like frame 1 monster1+2, frame 2 monster 3+4, etc... but i am not sure if thats good enough...

Link to comment
Share on other sites

btw. good work so far. just for my understanding as i have to deal with such an enemy que as well... can you explain how you handle the asteroids? it must be kind of dynamic list? i mean all its parameters and when hit you have to split up hence insert 2 more asteroids in your que?

 

when my item generator is done in my diablo-clone i want to expand the engine to more monsters attacking the player. but diablo uses a lot of vars/stats per monster/frame so i am not sure how to handle that fast enough... maybe some approach like frame 1 monster1+2, frame 2 monster 3+4, etc... but i am not sure if thats good enough...

 

I don't know that the method I use is necessarily the best way to go but here goes:

 

I determined what the maximum number of asteroids the game would ever have active at any given time and created arrays for such things as x and y positions large enough to accomdate the maximum.

 

I have one array that simply holds a flag that indicates whether or not that index or "slot" is in use. I have another array that I call the "active list" that holds indexes to each actve Asteroid. I also mantain a counter that reflects the number of active asteroids so that I know how far to walk the active list. Whenever I need to spawn a new asteroid I walk the array that holds the flags that indicate if a slot is active looking for a slot that is not in use. When I find one I change the flag to active, note the index, and add that index to the end of the active list. Finally, I increment the asteroid count.

 

You could probably keep the flag array sorted so as to make seaching for an empty slot easier but you'd also have to update the active list as well. To me its a trival matter to spin through an array looking for a particular value. I'm sure there are probably ways that use less memory at the expense of execution speed. For instance, I could simply walk the array of flags directly looking only at slots marked as active. Of course I'd have to look at each flag every time. The additional overhead of updating the flag array and active list only happens when a new asteroid is spawned or destroyed.

 

-tjb

Link to comment
Share on other sites

A few comments:

 

The shields might look better if they spun with the ship when it rotates.

 

The asteroids just seem to disappear once they are near one edge then reappear inside the opposite edge. It would look much better if they moved off/onscreen smoothly - but it would probably involve extra processing time.

 

I do believe that in the arcade game, it is possible to be crushed whilst shielded by 2 asteroids approaching from opposite sides - coding that might be a little tricky.

 

I still hate the "artifacting" look - IMO the point of using GR.8 is to get hires - forget about colour and trying to simulate it - lots of us either use proper monitors or capture cards which don't do artifacting anyway.

Link to comment
Share on other sites

The shields might look better if they spun with the ship when it rotates.

 

I agree. My focus this pass was more on getting the mechanics of the shield working rather than the look.

 

The asteroids just seem to disappear once they are near one edge then reappear inside the opposite edge. It would look much better if they moved off/onscreen smoothly - but it would probably involve extra processing time.

 

Most implementations (on this particular platform) do this. This includes Atari's orginal implementation and Asteroids II. Meteorites seems to be smooth horizontally but does the same thing when an Asteroid moves off the bottom or top edge. It appears that the arcade game also moves smootly horizontally but not vertically. It's probably a bit more obvious in Rasteroids because I need to adjust the numbers a bit. Right now the min/max numbers are the same for all Asteroids. This causes medium and smaller Asteroids to wrap before they really needed to. This is on my list of tweaks that remain. I'll also look into making them wrap smoothly. For pure horizontal it can pretty much happend for free. Vertical would take a little extra effort (and cycles as you pointed out).

 

I do believe that in the arcade game, it is possible to be crushed whilst shielded by 2 asteroids approaching from opposite sides - coding that might be a little tricky.

 

Perhaps I need to shield functionality more closely. Was it crushed or did it simply run out of shield time?

 

I still hate the "artifacting" look - IMO the point of using GR.8 is to get hires - forget about colour and trying to simulate it - lots of us either use proper monitors or capture cards which don't do artifacting anyway.

 

I'm not trying to simulate color. I want the hires look. Are you simply wanting me to turn off artifacting in the emulator?

 

Does the ship getting bounced around when the shield is on seem reasonable or is it cheesy? I could always take the easy way out (as Atari did) and simply turn collision detection off and let them pass over the ship. Thoughts?

 

BTW, thanks for the feedback.

Link to comment
Share on other sites

Most implementations (on this particular platform) do this. This includes Atari's orginal implementation and Asteroids II. Meteorites seems to be smooth horizontally but does the same thing when an Asteroid moves off the bottom or top edge. It appears that the arcade game also moves smootly horizontally but not vertically. It's probably a bit more obvious in Rasteroids because I need to adjust the numbers a bit. Right now the min/max numbers are the same for all Asteroids. This causes medium and smaller Asteroids to wrap before they really needed to. This is on my list of tweaks that remain. I'll also look into making them wrap smoothly. For pure horizontal it can pretty much happend for free. Vertical would take a little extra effort (and cycles as you pointed out).

Well, if you do not use sprites for anything, you might use them for masking parts of the screen so that the asteroids would be clipped by overlapping, invisible black sprites. Maybe this can't be done in your case, but I just wanted to suggest one potential solution.

Edited by pseudografx
Link to comment
Share on other sites

  • 2 weeks later...

Latest Progress:

 

The shield position is now adjusted properly as the ship rotates. Also, rather than causing the ship to bounce off Asteroids, the shield now damages large and medium Asteroids and destroys small ones. You are only allowed to deploy the shield for a few seconds. There is now a bar under the available ships area that shows how much shield time is left. Shield time is recharged for each reserve ship. The ship's thrust is now working properly. The rest of the changes are mostly minor tweaks. Asteroid size is now taken into account when an Asteroid nears a screen edge.

 

The next major task is sound. As usual I've attached a video. I even remembered to turn off artifacting this time... :D I can't wait to finish this so I can go on to other Atari 8-bit projects.

 

-tjb

 

rast09012006.zip

Link to comment
Share on other sites

Looks good. I think the ship's velocity should be affected by collisions, for a bit more added realism (and difficulty).

 

Maybe one or two alternate shapes for each size of asteroid? If memory permits, it would add some variety.

 

It's been a while since I've properly played the arcade version, but something like a partial shield recharge at level end would be nice.

 

Maybe have an option where there is just one life - no shields. Let the ship have an energy level which is depleted when shot or hit by a rock - with small recharge at level end, and bigger recharge at points intervals.

Link to comment
Share on other sites

Latest Progress:

 

The shield position is now adjusted properly as the ship rotates. Also, rather than causing the ship to bounce off Asteroids, the shield now damages large and medium Asteroids and destroys small ones. You are only allowed to deploy the shield for a few seconds. There is now a bar under the available ships area that shows how much shield time is left. Shield time is recharged for each reserve ship. The ship's thrust is now working properly. The rest of the changes are mostly minor tweaks. Asteroid size is now taken into account when an Asteroid nears a screen edge.

 

The next major task is sound. As usual I've attached a video. I even remembered to turn off artifacting this time... :D I can't wait to finish this so I can go on to other Atari 8-bit projects.

 

-tjb

 

rast09012006.zip

And what are you planning to do past Asteroids? :-)

Link to comment
Share on other sites

Latest Progress:

 

The shield position is now adjusted properly as the ship rotates. Also, rather than causing the ship to bounce off Asteroids, the shield now damages large and medium Asteroids and destroys small ones. You are only allowed to deploy the shield for a few seconds. There is now a bar under the available ships area that shows how much shield time is left. Shield time is recharged for each reserve ship. The ship's thrust is now working properly. The rest of the changes are mostly minor tweaks. Asteroid size is now taken into account when an Asteroid nears a screen edge.

 

The next major task is sound. As usual I've attached a video. I even remembered to turn off artifacting this time... :D I can't wait to finish this so I can go on to other Atari 8-bit projects.

 

-tjb

 

rast09012006.zip

And what are you planning to do past Asteroids? :-)

 

I'd like to try my hand at producing at least one or two more clones of Vector-based games. Someone mentioned Space Duel earlier. That would be cool. I'd also like to do a clone of Armor Attack (Vectrex). Aside from that I've always wanted a version of Rampart for the 8-bits. The list goes on...

 

-tjb

Link to comment
Share on other sites

I suggest "Challenguer" , is a arcade game hibrid between vectorial and raster asteroids with great color improvement. Ive played in 1983 and its the best "asteroid game" that i have played. Basically the main concept is the same as asteroids, you must destroy all asteroids in the screeen. But, there is a lot of things for each level you reach. The ship move left and right in the bottom screen, with a command you can send the ship top the top bottom, is very funny and you should to play in MAME, its simply, but adictive.

 

post-6191-1157299901_thumb.jpg

Edited by Allas
Link to comment
Share on other sites

  • 1 month later...

Progress has slowed considerably since real life has intervened. I’ve had to do more programming for a living than usual so I haven’t much time to devote to the project. That said, I have just about finalized the shield behavior. The plan is to have everything the ship encounters – asteroids, alien bullets, even the alien – bounce off the shield. There will be a power up that will enable a “destructive shield” which will cause asteroids to take damage or be destroyed (in the case of the smallest ones) upon contact. The alien will also be destroyed (with points awarded) and alien bullets will simply explode harmlessly. The destructive shield will remain in effect until the current ship is destroyed. Other power ups will include a bonus ship, more shield time, bonus points, and maybe double point values (until the current ship is destroyed). I also want to put more challenges as well. I’m thinking of having a comet which cannot be destroyed but whose course may be changed with several bullet hits. I’m also considering adding the “death star” hexagon that breaks apart ala Asteroids Deluxe if I have enough memory for the sprites necessary.

 

Besides the shield I’ve been working on organizing the code to make it ROMable. Anyway, here’s a video that shows the current state of the shield. Note how the alien bullets bounce off the shield. Also, the shield time is temporarily infinite to facilitate testing.

 

-tjb

 

rast10192006.zip

Link to comment
Share on other sites

Having the ship's velocity not affected by impacting objects kinda makes things easy.

 

I think a destructive shield would probably be more hazardous to the player - a large asteroid could theoretically break into 3 or 4 pieces which would be a surefire cause of mayhem.

Link to comment
Share on other sites

Having the ship's velocity not affected by impacting objects kinda makes things easy.

 

I think a destructive shield would probably be more hazardous to the player - a large asteroid could theoretically break into 3 or 4 pieces which would be a surefire cause of mayhem.

 

Right now the ship's velocity is impacted if the ship happens to be moving at the time. It's possible to bounce back and forth between Asteroids. I'm wondering if the ship should be knocked back (so to speak) when an object strikes it and it's not moving.

 

-tjb

Link to comment
Share on other sites

  • 9 months later...

Sorry to take so long to respond. For some reason when I click on "My Posts" this thread was not marked as having new responses. I just happened to notice the last posted date was within the last couple of days. Anyway, I've made some progress since the last post here. Here's a list (off the top of my head) of changes:

 

* Ported to 5200

* Some sounds are present

* Powerups: Additional shield time, pulse bomb, destructive shield, bonus ship, deflector shield

* pulse bombs (kind of like a smart bomb, emits a high energy "pulse" around the ship and nukes everything that comes in contact with it. Right now

you start out with 3. Not sure if you will be given any to start with in the final game.)

* Minor Asteroids/Alien ship explosion enhancements (more random, the last 2 frames are of a single pixel to give a "fade out" kind of effect. Very subtle.)

* Alien missile attack wave (very experimental and quirkly at the moment. A single Alien fires guided missiles at the player. The player must avoid or

shoot down the missiles and of course destroy the alien. The Alien will need some AI and a different image. Like a "boss" Alien)

* Alien shots are now a line rather than a bullet. (I may end of going back to bullets for all but the Alien attack wave)

* Alien is now deadly accurate. (Right now I start off at a high "wave" to test the accuracy. Normally the accuracy will get better as you get farther in the

game. As you would expect.)

* By default the ship now gets bounced around when the shield is engaged. (There are now shield related powerups to make the shield destructive and deflecting. )

 

Please forgive my ramblings. I was just doing a brain dump of the changes. Attached is a video showing sounds, the new alien bullet type, the pulse bomb, the new shield behavior, and the additional shield time powerup. I appreciate your interest in the project. Rest assurred I will finish it.

 

tjb

 

rast08172007.zip

Link to comment
Share on other sites

One more video. In this one I jacked up the number of pulse bombs to 15 and use them to advance to the Alien missile attack wave. No matter how many pulse bombs you have it will display a maximum of 5. I managed to shoot down a couple of missles and the Alien before getting destroyed.

 

tjb

 

P.S. The attached file is not a .zip but a .7z (7-zip) file. A zip file was too large and the AtariAge forum software would not allow me to upload a .7z file. You'll need to rename it to .7z.

 

rast_shoot_missile.zip

Link to comment
Share on other sites

Anyway, I've made some progress since the last post here. Here's a list (off the top of my head) of changes:rast08172007.zip

 

Impressive! Game looks amazing. Will you release it on cartridge only? What's you further plan - selling carts or publish dump? Or xex file?

 

Thanks for the kind words.

 

I'd like to offer a 5200 cartridge and possibly an 8-bit as well. I'll most likely also provide an .xex file. I'm still thinking about a 5200 "Deluxe" version with rotating Asteroids and other enhancements. Steve "Classics" Tucker has a bank-switched 5200 cart that would allow such enhancements. At one point he offered to help with production. What format(s) would you like to see the game on?

 

tjb

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