Jump to content
Atarius Maximus

My 2k Game Experiment - Gate Racer

Recommended Posts

I started over on modifying the include files and was able to make a bug-free build that includes the powerup option. I did have to remove the ability to turn off the x/y velocity, although it would be easy to make an alternate version with a different control scheme. This should be the final 2K version. I'll update the first post later with all the new files for compiling it.

GateRacer11.bin

GateRacer11.txt

Share this post


Link to post
Share on other sites

IMO, with how much you turned down the velocity handling plus the way you did the powerups, removing the option to play in free mode is fine. There needs to be some challenge, after all.

Share this post


Link to post
Share on other sites

IMO, with how much you turned down the velocity handling plus the way you did the powerups, removing the option to play in free mode is fine. There needs to be some challenge, after all.

Thanks, Cybearg. I agree, I think the velocity handling is what makes the game fun. I just updated the first post in this thread with all the current modified include files, all the old development bins and source code, and of course the current version and source.

Share this post


Link to post
Share on other sites

I'm still loving it! I can't beat your score, Maximus. I like the hum of the engine. Forgive me if this sounds a little corny, but it's soothing. I just chill, then after a couple passes at the gates I get excited until I crash. Back to the soothing calm start again.

Thanks Piggles! I'm glad you like the game. It's going to be a slow work day, we've got a bad winter storm here in St. Louis, Missouri. I'm trying to work from home, but our VPN connection is telling me that there are too many users logged in since so many others are trying to work from home today. Time to try and beat my high score. :)

Share this post


Link to post
Share on other sites

I think there may be some duplication in having both a title screen sprite and an in-game sprite. Couldn't you just have the title screen sprite then adjust the player0pointerhi and player0pointerlo for in-game (cutting out the "GR" part)? Or, maybe separate out the "GR" part as player1 and re-use the in-game player0 sprite?

 

The slide is bearable now. Thank you :)

 

I'm still interested in seeing if "player0pointerhi = rand" is a good way to make a crash sprite for free. My only concern is does the trick work on real hardware?

Share this post


Link to post
Share on other sites

I think there may be some duplication in having both a title screen sprite and an in-game sprite. Couldn't you just have the title screen sprite then adjust the player0pointerhi and player0pointerlo for in-game (cutting out the "GR" part)? Or, maybe separate out the "GR" part as player1 and re-use the in-game player0 sprite?

 

The slide is bearable now. Thank you :)

 

I'm still interested in seeing if "player0pointerhi = rand" is a good way to make a crash sprite for free. My only concern is does the trick work on real hardware?

I saw your earlier post about it, and honestly I'm not sure exactly how to implement your idea. Can you take a stab at modifying the code, or maybe give me a source code sample on how that would work? I could test on my Harmony cart to see if it's compatible with real hardware. Thanks.

Share this post


Link to post
Share on other sites

I saw your earlier post about it, and honestly I'm not sure exactly how to implement your idea. Can you take a stab at modifying the code, or maybe give me a source code sample on how that would work? I could test on my Harmony cart to see if it's compatible with real hardware. Thanks.

player0:
%11011011
%11111111
%11011011
%00011000
%00011000
%01011010
%01111110
%01011010
end

player0x = 30
player0y = 30

main
if joy0left then player0x = player0x - 1
if joy0right then player0x = player0x + 1
if joy0up then player0y = player0y - 1
if joy0down then player0y = player0y + 1
COLUP0 = $2E
REFP0 = rand
player0pointerhi = rand
drawscreen
goto main

Share this post


Link to post
Share on other sites

player0:
%11011011
%11111111
%11011011
%00011000
%00011000
%01011010
%01111110
%01011010
end

player0x = 30
player0y = 30

main
if joy0left then player0x = player0x - 1
if joy0right then player0x = player0x + 1
if joy0up then player0y = player0y - 1
if joy0down then player0y = player0y + 1
COLUP0 = $2E
REFP0 = rand
player0pointerhi = rand
drawscreen
goto main

Thanks for the sample. I take a look a bit later and see what I can do.
  • Like 1

Share this post


Link to post
Share on other sites

Nice game! It's quite challenging and keeps me coming back for "just one more round". :thumbsup:

I played version 11 for a while and IMO the difficulty is just right in this version.

My best score so far is 1:17.5 - need to practice a bit more later. :-D

 

post-12950-0-50210300-1361539148_thumb.png

Share this post


Link to post
Share on other sites

I think there may be some duplication in having both a title screen sprite and an in-game sprite. Couldn't you just have the title screen sprite then adjust the player0pointerhi and player0pointerlo for in-game (cutting out the "GR" part)? Or, maybe separate out the "GR" part as player1 and re-use the in-game player0 sprite?

 

The slide is bearable now. Thank you :)

 

I'm still interested in seeing if "player0pointerhi = rand" is a good way to make a crash sprite for free. My only concern is does the trick work on real hardware?

I see now that the sample code you pasted in is the same as before. :) Sorry, I didn't explain myself very well. I see what you're doing with the crash sprite, that makes sense. I'd like to try the sample program on the harmony cart before I'd put it in the game. I don't really understand what values you'd use for player0pointerhi/lo to cut out part of the sprite. I'm sure it's easy and probably obvious, but just playing around with it the past few minutes I couldn't figure it out.

Share this post


Link to post
Share on other sites

I don't really understand what values you'd use for player0pointerhi/lo to cut out part of the sprite. I'm sure it's easy and probably obvious, but just playing around with it the past few minutes I couldn't figure it out.

 

No. Actually, I'm in over my head when it comes to using player0pointerhi/lo. SeaGtGruff tried to explain how to do it sorta in this topic:

http://www.atariage.com/forums/topic/107835-sharing-the-data-of-sprites/

Share this post


Link to post
Share on other sites

No. Actually, I'm in over my head when it comes to using player0pointerhi/lo. SeaGtGruff tried to explain how to do it sorta in this topic:

http://www.atariage....ata-of-sprites/

Thanks for the link. I'll look it over tomorrow and see what I can figure out. The latest build of Gate Racer has 0 bytes free, so making any changes now won't be easy no matter how small the changes are. I started playing around today with an expanded version but I haven't decided if I really want to make one or not. I really want to start diving in to the DPC kernel. I'd love to make a roguelike, and I saw you started something similar with your 'Destiny' post. :)

Share this post


Link to post
Share on other sites

I may make a few more revisions based on the player0pointerhi/lo suggestions from theloon, but this game feels pretty much done. That was fast. I'm more used to spending months trying to perfect every little detail, but in 2k there just isn't much left I can do with this game. Despite the limitations that were self imposed on this project the result seems pretty fun to play. I hope a few people have some fun with this little project. :)

  • Like 1

Share this post


Link to post
Share on other sites

The game doesn't work very well on real hardware. The screen jumps when the scrolling gate gets to the bottom of the screen, I assume the scanline jumps over 262 when I call the pfclear. I'm going to have to figure out a different way to clear the barrier on each pass to make this work on a real 2600.

Share this post


Link to post
Share on other sites

Version 11 doesn't roll on my LCD screen, but then that's no surprise since it doesn't work the same.

 

I tested it on a real 2600 and I have to say, the controls feel fantastic on a real 2600 joystick. It's a joy to weave back and forth, leaning in and out of the moves. I didn't get nearly so far as others, but it wasn't at all bothersome. The controls are perfect.

Share this post


Link to post
Share on other sites

Version 11 doesn't roll on my LCD screen, but then that's no surprise since it doesn't work the same.

 

I tested it on a real 2600 and I have to say, the controls feel fantastic on a real 2600 joystick. It's a joy to weave back and forth, leaning in and out of the moves. I didn't get nearly so far as others, but it wasn't at all bothersome. The controls are perfect.

Thanks for the feedback on the controls. I didn't play for very long on my real atari because of the problem I just mentioned. I'm using an old-school Commodore 1702 monitor from the early 1980's and the screen jitter is pretty dramatic. I'm going to have to wait until monday to try and make any code changes, it's way too busy and noisy in my house on the weekend. I can't concentrate on it with all these kids around. ;)

Share this post


Link to post
Share on other sites

I did some testing this morning and I'm losing hope that this game will ever be 100% compatible with real hardware without a rewrite. I wrote the tiny little sample program below that simply scrolls the moving gates from the game down the screen, nothing else. The scanline count jumps over 262 when the gate hits the bottom of the screen and causes a screen jitter on real hardware.

 

  set romsize 2k
main
 PF0=200
 pfscroll down
 COLUPF=2
 c=c+1
 drawscreen
 if c>87 then c=0:gosub change_barrier
 COLUPF = $94
 goto main
change_barrier
 pfclear
 q = (rand&31)
 if q>15 then q=q-8

 rem Calculate X position of the Right side of the opening
 r = q+8
 rem Draw the solid horizontal line
 pfhline 0 0 30 on
 rem Remove the pixels for the gate opening
 pfhline q 0 r off
 return

test.bin

Share this post


Link to post
Share on other sites

Wow! Great job Horeus. The timer rolls back to 0 after 10 minutes, maybe I do need to make the game a bit harder. :)

At first I thought it was easier, but the stress is also important with this game because it must be run.

Edited by Horeus

Share this post


Link to post
Share on other sites

Despite the annoying screen jitter, I played for a while on real hardware this morning and got a 4:04.7. Still not quite as good as Horeus, but close. :) It almost felt easier and more natural with a real joystick, I felt like I could have lasted a whole lot longer. I just got unlucky with the placement of an oil slick that slid me into the barrier.

post-2143-0-42461000-1361727957_thumb.jpg

Share this post


Link to post
Share on other sites

I did some testing this morning and I'm losing hope that this game will ever be 100% compatible with real hardware without a rewrite. I wrote the tiny little sample program below that simply scrolls the moving gates from the game down the screen, nothing else. The scanline count jumps over 262 when the gate hits the bottom of the screen and causes a screen jitter on real hardware...

 

Since you only have one gate on the screen at the time, "pfclear" is overkill. If you replace pfclear with "var44=0:var45=0:var46=0:var47=0" in your test program it will run at 262 consistently. Hopefully it will do the same for the real game.

 

Also, nice little game! :)

  • Like 1

Share this post


Link to post
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.

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