Jump to content
IGNORED

First Time Programming an Atari 2600 Game! (And I need your help)


8bitPoet

Recommended Posts

2 hours ago, Rafa78 said:

I really liked!

Thanks for letting me know!

 

2 hours ago, Rafa78 said:

Is there a possibility (in future) for 2 simultaneous players?

I'm a big fan of 2-player game modes. It's definitely possible if I remove the inchworm in that mode. (There's a 2 sprite limit when using the standard kernel) Maybe I could use a time limit to end the game without an inchworm to knock them off. 

 

This is my first bB game, so I'm learning a lot in this process. My initial goals for this project was to just make a game that works. I'm almost there! So I'll seriously consider adding a 2-player mode if there's a demand for it ... or I feel like taking it on as another challenge.

 

Here's the latest .bin.

spidergame_2023y_12m_04d_0308t.bas.bin

It's got a title screen and sound effects now! Controls are the same; press button to go down, release button to go up. Joystick left or right when on the platform.

Scoring has been changed to reset if you miss a fly, so the goal is to catch as many flies in a row as possible.

I'm currently working a way to track your highest streak and a Game Over screen that will show the current High Score.

 

If anyone reading this knows if @Karl G's bBsplash splash screen kernel can also display the score, I'd love to use that for my Game Over screen.

  • Like 1
Link to comment
Share on other sites

58 minutes ago, Karl G said:

I'm afraid not. It's a simple module that can only display a single bitmap; nothing fancy.

Hey @Karl G! That's okay. It's still a great module that I plan on using in the future.

My fall back is to just redefine the p0 and p1 sprites for a game over message and switch the score to show the highest streak. Then the fire button will take them back to the title screen.

 

Link to comment
Share on other sites

It's starting to feel like a real game!

 

 Title Screen (I might add music since I've had to move up to 8k)

  Playable Game where the player can collect points and lose

  Sound effects!

 Game Over screen - Almost there, but needs debugging

 

Not sure what's happening yet, but when the game over screen is drawn, it's almost like all the colors have been inverted. Which is totally weird since I don't reassign COLUBK or COLUPF, only COLUP0 and COLUP1. It also seems to be ignoring my NUSIZ calls to stretch the player sprites. And finally, It's supposed to display the highest streak (high score) on the game over screen, but it just shows 000000.

 

Here's my latest .bin and .bas if anyone wants to take a look and point out the obvious thing I've probably missed or done completely wrong. :) 

spidergame_2023y_12m_04d_2153t.bas.binspidergame_2023y_12m_04d_2153t.bas

  • Like 3
Link to comment
Share on other sites

Yay! I figured out the color and sprite issues! (Still need to figure out why the High Score script isn't working. It might have something to do with having the Check High Score routine outside of the main loop and being called with a gosub)

 

I'm noticing that the Title Screen kernel display and the standard bB kernel display don't align.

FlyHunter-TitleScreen.thumb.png.f96402c909624ccbc410be6b56e5b812.pngFlyHunter-GamePlay.thumb.png.d9604499ffbbb2db9386a96b17959e2a.png

Notice how the Title Screen kernel has black bars on top and bottom, while the standard bB kernel only has black on the bottom? Also notice that the score shifts to the right by about 5 pixels.

 

Is there anything that can be done about that? I think I like the black bars on top and bottom. It makes the screen feel more centered vertically.

 

Edited by 8bitPoet
Link to comment
Share on other sites

UPDATE

 

Got the High Score working, but what I need now is to display the Best Streak on the Game Over screen. The issue is that I'm running out of variables.

 

If I'm using the standard kernel with no kernel options, so does that mean I have access to playfield variables like var44, var45, var46, and var47?

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

  • Like 1
Link to comment
Share on other sites

Row 11 is important for vertical scrolling from my prior reading.  I didn't see that in prior versions of your game but I haven't played the one you posted yesterday so I don't know if you added that in the meantime.  If you're not doing that, you should be able to use them according to this.

 

https://www.randomterrain.com/atari-2600-memories-batari-basic-commands.html#variables

 

Quote

If you're using the standard kernel and run out of variables, you can use four bytes from the playfield if you're not scrolling it (var44 through var47). You can also use temporary variables temp1 through temp6 as temporary storage, but these are obliteratedDestroyed, erased. when drawscreen is called, and some are used for playfield operations as well, so use these at your own risk. If you're not using the Life Counter or Status Bar minikernels, you can use the variable statusbarlength and if you're also not using pfscore bars, you can use the variables lives and lifecolor. As with the regular 26 variables, aliases can be assigned to the playfield variables, statusbarlength, lives, and lifecolor.

 

  • Like 1
Link to comment
Share on other sites

Thank goodness for those extra variables! High Score and Best Streak is working!

 

Has anybody used the animation feature on the Title Screen Kernel? I've followed the example in the documentation, but my sprite isn't animating on the title screen.

Here's my graphic that I ran through the image to code generator(A), a GIF of the animation(B), and my static title screen(C).

A. title-HUNTER-animation-56px.png.016147e9623f27e2efdc55eabf0dc2d6.png  B. FlyHunter-spider-anim.gif.f1306a442639f8468ee1ed6310a9fb4f.gif  C. FlyHunter-titlescreen-2.thumb.png.c4f68851b8e244458e2345b208490564.png

 

In the titlescreen folder that I copied into my game folder, the 48x1_2_image.asm file defines the display height and the graphic height,

bmp_48x1_2_window = 56
bmp_48x1_2_height = 224

 

And my program uses the code from the example, only slightly modified for the variables I'm using and the display height (56 pixels)

/* TITLE SCREEN SETUP */
__Title_Screen_Setup
   _bmp_48x1_2_index = 0
   _Counter_I = 0
   _sc1 = _High_Score1 : _sc2 = _High_Score2 : _sc3 = _High_Score3 ; set score to display high streak

/* TITLE SCREEN */
__Titlepage
   gosub titledrawscreen bank2
   _Counter_I=_Counter_I+1
   temp1=_Counter_I&%00000111
   if temp1=0 then _bmp_48x1_2_index=_bmp_48x1_2_index+56:if _bmp_48x1_2_index=168 then _bmp_48x1_2_index=0
   if joy0fire || switchreset then goto __Game_Setup
   goto __Titlepage

 

The example provided with the titlescreen kernel 1.8 download works perfectly. Not sure what I'm missing.

 

 

 

Link to comment
Share on other sites

1 hour ago, LatchKeyKid said:

I can't give advice on the code specifically but figured I'd chime in and say that I like the title screen and the animation.

Thanks @LatchKeyKid! I appreciate your feedback.

 

First impressions matter, so I want the title screen to look good.

 

I'd like it to sound good too, but I haven't gotten into writing the music yet.

 

A quick note about the code... I found that I had inverted the bitmask, but even after correcting it I couldn't get my animation to play on the title screen. I'm sure there's a simple solution and I just haven't found it yet.

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