Jump to content
IGNORED

Space Race [DONE]


saxmeister

Recommended Posts

Greetings all, I'm trying to get back to programming between things that keep taking up my spare time.

 

I decided to go back to the original Atari classics and work on my game logic basics and optimizations before moving on to other projects I need to complete and want to start. Space Race was the second Atari arcade game after Pong and used the same hardware. Nolan Bushnell worked on this before having to move on and run the company. I thought I would try my hand at coding it on the 7800 using the original black and white graphics style. I decided to run this one in 320A mode and I stuck with single player.

 

I know this game has been hacked on the 2600 using Freeway (which was inspired by Space Race) but I went back to the original game and tried to recreate it as closely as possible from scratch.

 

The object of the game is to get all the way to the top through all the space debris without being hit. There are no lives, so the only limiting factor is time. Players are given 60 seconds to complete the trek as many times as possible. When the game is over players can then go back to the main menu and try again.

 

It's a WIP so it's still rough, but the main functionality is in place. I want to optimize it a bit more, introduce difficulty levels, add a second player, POKEY music, better sfx, etc.

 

I uploaded version 0.91 that has most fixes but for some reason slows down after finishing a game and going back to the main menu. Another item to fix.

 

https://en.wikipedia.org/wiki/Space_Race_(video_game)

 

455657773_Screenshotfrom2022-09-1807-03-40.thumb.png.6a71332c8dcf681e054b468b3c0c1bed.png

143912845_Screenshotfrom2022-09-1807-03-45.thumb.png.2089b42a1a25397596b7393e91b25932.png

spacerace_07.78b.a78 spacerace_07.78b.bin

 

Original Release (0.7)

JS7800: https://raz0red.github.io/js7800/?cart=https://forums.atariage.com/applications/core/interface/file/attachment.php?id=968804&key=8f2c0361b9ae13772b217b5551b6d898

 

The latest version (0.96):

JS7800: https://raz0red.github.io/js7800/?cart=https://forums.atariage.com/applications/core/interface/file/attachment.php?id=970385&key=d1e62e0e104582f418cb20dd1b2cb0f5

 

*NOTE: I had a laptop crash on me and I may have lost the 7800basic source code for the last 2 versions before getting them committed to the git repository. I do have everything else, but if I can't recover the source code I may have to recode some things.

Edited by saxmeister
Updated bin/a78 files with newer version; added notes
  • Like 16
Link to comment
Share on other sites

Good stuff @saxmeister! I was just about to comment that I was able to use the same path each time to get to the top of the screen but I checked the arcade version of the game and it seems that it works the same way, all the stars move at a constant rate and they don't change pattern.

 

I don't know if you wanted to add it in as a alternate play style where some stars move slightly faster/slower than others but that would change the gameplay quite a bit and give it a new feel beyond the arcade version.

 

UPDATE: I just played it again and noticed that the star pattern doesn't change from game to game and I don't think it's possible to get more than 7 points unless I'm missing an alternate path as I'm not pausing very much in the pattern I use. So I'm not sure if you have randomization of the stars on your to-do list but it would definitely help for replayability.

 

ADDITIONAL UPDATE: After checking out a few videos of the arcade version of Space Race it appears that the arcade DOES have the same pattern from game to game. In the interest of replicating the arcade experience I can understand why you'd want to keep that in the game.

 

- James

 

image.thumb.png.9b9f0dfa14b86ce99a4bf3415c79ce68.png

  • Like 1
Link to comment
Share on other sites

I don't have an emulator with the original game so I watched videos online and this seemed to be exactly the way it worked. And you are right, 7 is the max no matter what you do. The original does seem to have one set pattern. Even the attract mode seems to have kept the same pattern before and after the game play. The idea was to recreate it as closely as possible and then enhance it, so randomness will be added!

 

Believe it or not I do have random numbers added/subtracted to the coordinates for the "debris" but the numbers never change on each device. The debris field will stay the same on your home system, but it will be a different pattern on an emulator - though it always stays the same. PAL and NTSC are different and different emulators are different. I'm assuming that comes down to the randomizer that is built into 7800BASIC.

 

I am definitely planning on randomizing their positions so that the pattern does change. I also want to add difficulty levels to this. I'm thinking of doing a "2000" version like many systems did back in the 1990s where developers would take a classic game and offer classic mode and "2000" mode with enhanced graphics and sound. Maybe the "2000" version would use the Konami code to access the classic version! Ha ha ha.

 

I'm probably going to add a two player version before I enhance the game with upgraded graphics and sound. But, it was a challenge to see if I could code it from scratch and get it working within a few days.

 

Thanks for playing and for the feedback.

Edited by saxmeister
  • Like 5
Link to comment
Share on other sites

1 hour ago, ZeroPage Homebrew said:

I just played it again and noticed that the star pattern doesn't change from game to game and I don't think it's possible to get more than 7 points unless I'm missing an alternate path as I'm not pausing very much in the pattern I use.

I just scored 9 points:

 

IMG_0741.thumb.jpg.93af4ac05e3862fdeb828d444c1bafb7.jpg

 

This was on version 0.91 running on hardware via a Concerto.  I don't think I did anything special to get that score, but it looks as though the wide-open space that's generated is something of a red herring.  Waiting for it eats more time than doing some controlled banzaiing through the debris field at the right time, so scores stay lower.

 

If I've done the maths correctly, a score of about 12 (give or take) on a standard 60-second game should be the best-case scenario.  I based that on my fastest time to reach the top, which was between 4 and 5 seconds.  It was measured using scientifically-accurate 'n-one thousand' SI units :-D

 

@saxmeister: thank you for putting this together.  It's great to see a port of a TTL game that is this faithful to the original; many of Atari's early games were just flat-out overlooked in terms of home ports.  Have you considered maybe making this a multigame title containing a few of the bronze-age games?

  • Like 4
Link to comment
Share on other sites

9 points! Wow, you've done better than I ever have.

 

@x=usr(1536) I was born the year that Atari was created, so I feel a deep connection with its history. Those old TTL games were some of my first memories from arcades, along with the mechanical games. I definitely agree that these get overlooked.

 

11 hours ago, x=usr(1536) said:

It was measured using scientifically-accurate 'n-one thousand' SI units :-D

Is there any more accurate unit?!?!?

  • Like 2
Link to comment
Share on other sites

I've made some updates to make this much close to the arcade version now.

  • I did a screen grab of the original arcade game's debris field and replicated that as closely as I could on the 7800's screen
  • Added a wraparound so the pattern repeats just like the arcade so there are no longer any large holes to fly through
  • Added sounds fx that are closer to the arcade - the pitches aren't the same, but as close as I could get on the TIA
  • The game now detects the first difficulty switch and adjusts the game speed accordingly - but only on initial startup or hard reset
  • Fixed the bug that slowed the game down on any gameplay after the first

 

The latest tweaks really make the game much more difficult. The HARD difficulty setting is almost impossible. I may make some tweaks based on this.

 

spacerace_093.78b.a78 spacerace_093.78b.bin

Edited by saxmeister
  • Like 5
Link to comment
Share on other sites

4 hours ago, saxmeister said:

The latest tweaks really make the game much more difficult. The HARD difficulty setting is almost impossible. I may make some tweaks based on this.

Oh wow, now it's VERY HARD. I was able to find a consistent path across after a bunch of trial and error but it doesn't register my point when I get there, as least using JS7800. 😞 Video below.

 

- James

 

 

  • Like 2
Link to comment
Share on other sites

Oops! Yup. I got a number wrong in the detection code. That has been fixed now.

  • I also fixed the speed of the debris animation and fixed it for the hard setting as well. Both should be winnable. I was able to complete the trek on both settings.
  • I also removed the background flashes. They weren't in the original.
  • Then I updated the sounds that are used for "you got hit" and "you made it."
  • And I also added the same SFX for the end of the game.
  • The pixel art for the ship was one pixel narrower than the arcade, so that has been fixed.

Thanks for play testing and feedback, @ZeroPage Homebrew! After I get the balance and bugs fixed I'll aim for a two player experience. Then we'll see what happens after that.

 

 

 

 

 

spacerace_095.78b.a78 spacerace_095.78b.bin

Edited by saxmeister
  • Like 2
Link to comment
Share on other sites

The difficulty is definitely ramped-up in this version - my best score is now 5 :-D

 

I can confirm that reaching the top now increases the score as intended on hardware.  That aside, the difficulty settings seem to be very close together, and difficult mode is nearly impossible to get through.

 

To be fair, I only had about 15 minutes to spend on this, so didn't test it extensively.  The balance may have been better after finding the path of least resistance, but in both cases it felt as though the ship just couldn't get out of the way in time regardless of which difficulty level was set.

  • Like 1
Link to comment
Share on other sites

Okay, second player has been added. This version allows one or two players with difficulty settings.

 

New updates:

  • Two-player competitive
  • Display of scores for both players
  • Tweaked sound effects
  • Added sound effects for the second player
  • Added menu to select between one and two player
  • Either difficulty switch set to B selects default mode; either switch set to A selects difficult mode
  • On difficult mode completions are double the points
  • Unraveled/unrolled the two loops I was using for animation and detection and combined into one
  • Tweaked code to move detection and moving routines outside of the drawing routine for speed

I'm calling this one complete unless any bugs are reported. This is the "classic" Space Race from 1973 with only slight modifications, so I'm calling this an historic recreation.

 

The next step would be making "SPACE RACE 2000" with vertical scrolling, animated multicolor sprites, etc. If I feel up to it, I might pursue that and have both versions in the same ROM. I always liked having an updated version of an arcade classic and being able to select the original version if desired.

 

JS7800: https://raz0red.github.io/js7800/?cart=https://forums.atariage.com/applications/core/interface/file/attachment.php?id=970385&key=d1e62e0e104582f418cb20dd1b2cb0f5

 

spacerace_TWOPLAYER_096.78b.a78 spacerace_TWOPLAYER_096.78b.bin

Edited by saxmeister
  • Like 6
Link to comment
Share on other sites

I felt that way about it, too @Traxx. It grew on me, but I definitely understand why it wasn't a huge hit. Morphing it into Frogger and Freeway definitely made a big difference with better graphics, catchy tunes, and variations in the "debris field"/traffic.

 

I think the two player element makes it better because it feels more competitive, although I have played the one player version quite a bit.

  • Like 1
Link to comment
Share on other sites

On 9/18/2022 at 7:07 AM, saxmeister said:

Greetings all, I'm trying to get back to programming between things that keep taking up my spare time.

 

I decided to go back to the original Atari classics and work on my game logic basics and optimizations before moving on to other projects I need to complete and want to start. Space Race was the second Atari arcade game after Pong and used the same hardware. Nolan Bushnell worked on this before having to move on and run the company. I thought I would try my hand at coding it on the 7800 using the original black and white graphics style. I decided to run this one in 320A mode and I stuck with single player.

 

I know this game has been hacked on the 2600 using Freeway (which was inspired by Space Race) but I went back to the original game and tried to recreate it as closely as possible from scratch.

 

The object of the game is to get all the way to the top through all the space debris without being hit. There are no lives, so the only limiting factor is time. Players are given 60 seconds to complete the trek as many times as possible. When the game is over players can then go back to the main menu and try again.

 

It's a WIP so it's still rough, but the main functionality is in place. I want to optimize it a bit more, introduce difficulty levels, add a second player, POKEY music, better sfx, etc.

 

I uploaded version 0.91 that has most fixes but for some reason slows down after finishing a game and going back to the main menu. Another item to fix.

 

https://en.wikipedia.org/wiki/Space_Race_(video_game)

 

455657773_Screenshotfrom2022-09-1807-03-40.thumb.png.6a71332c8dcf681e054b468b3c0c1bed.png

143912845_Screenshotfrom2022-09-1807-03-45.thumb.png.2089b42a1a25397596b7393e91b25932.png

spacerace_07.78b.a78 48.13 kB · 20 downloads spacerace_07.78b.bin 48 kB · 3 downloads

 

Original Release (0.7)

JS7800: https://raz0red.github.io/js7800/?cart=https://forums.atariage.com/applications/core/interface/file/attachment.php?id=968804&key=8f2c0361b9ae13772b217b5551b6d898

 

The latest version (0.95):

JS7800: https://raz0red.github.io/js7800/?cart=https://forums.atariage.com/applications/core/interface/file/attachment.php?id=969694&key=ff1c660f4c769d6b2efc96b9f5451eda

Wow, this looks as good as a space-invaders hardware arcade game! Nice if you are going for that asthetic.

Link to comment
Share on other sites

  • 3 weeks later...

  

ZeroPage Homebrew is playing Space Race on TODAY's stream LIVE on Twitch, hope you can join us!

 
Games:

1768800432_20221021-LetsPlay.thumb.jpg.ce9815e82f8f83250865b6367cd24c2e.jpg

  • Like 1
Link to comment
Share on other sites

@ZeroPage Homebrew thanks for playing my game on your channel. It's so awesome to see other people playing it. I don't exactly have a room full of play testers, so this is great for me.

 

I heard some items for feedback:

  • Check the hitboxes on the front of the ship
  • 4 player option (8 player seems a bit too much!)
  • Add the difficulty options to the menu instead of relying on the difficulty switches - that would prevent the "oh no, is this easy or hard?!?!?" shock that you guys experienced

I tried to stay true to the original, but I'm really tempted to enhance it with a "Space War 2000" (doesn't that sound dated now?!?!?) version with randomized playfields, enhanced graphics, other enemy objects, etc. The randomized playfield is especially important if I develop an enhanced version. Once you figure out the patterns the game becomes super easy. I'd definitely like to make the game more challenging and more replayable.

 

To answer some of the questions that were in chat:

  • This is a large number of small objects. Each "asteroid" is its own sprite and the 7800 has no issues whatsoever running this many sprites as long as they are balanced in each zone. I love the 7800's sprite engine!
  • David Crane was inspired by "Space Race" to create "Freeway." So, using that knowledge I jumped into Freeway development and will continue work on that one until it makes me happy enough.
  • The original hardware didn't have a processor. Like Pong it was TTL based and the controls were analog, so there is a smoothness I can't quite recreate here with a digital joystick.

And, yes, it did have an awesome original cabinet, although they dropped it in favor of a more modest and cheaper to produce design.

 

Thanks everyone!!!

 

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

On 10/22/2022 at 12:24 PM, saxmeister said:

@ZeroPage Homebrew thanks for playing my game on your channel. It's so awesome to see other people playing it. I don't exactly have a room full of play testers, so this is great for me.

 

You're welcome @saxmeister, it was a nice challenge to play your port of this early arcade game! It's incredible that the early arcade games were able to be made without processors!

 

- James

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