Jump to content
IGNORED

Atomic Meltdown <-- my new homebrew game


disjaukifa

Recommended Posts

Hey guys,

 

I know I just start a thread on Earth Invaders which I am going to continue to work on, however yesterday I played accousticguitar's game "Miss It" after he made a comment in another of my threads about never having made a game that used missiles:

 

I'm made two games in batari Basic and I have yet to fire a missile. I guess I'm just non-violent. :D

 

Well being frustrated with the stupidity of how I programmed Earth Invaders (NO subroutines . . . a complete nightmare) I just wanted to play some fun Atari games, so I went checked out accousticguitar's Miss It. If you haven't played it yet, you need to its completely addicting!!! Here is a link Miss It!

 

Anyways what got me about accousticguitar's game was how simple the game and yet just how addicting it was. Well I went to bed last night and no kidding at about 3:30 am I woke up with an idea for a game called Atomic Meltdown. I wrote down my idea at 3:30 and went back to sleep because I didn't want to forget. Well all day today I had this game messing around in my head, when I got home today I started programming it and in a matter of hours (less than 6) I have the basis what I feel has the possibility of being a very fun and addicting game.

 

I pulled two elements from accousticguitar's Miss It game, mainly you don't want to hit anything and your score is determined by how long you last. Original my goal was for it to be a 2K game, however I have add some animation which I feel makes Atomic Meltdown better so now its going to be a 4K game and possible 8K game because of ideas I have.

 

Well to give you an idea how much this was in my head today, I have already come up with the Atari Label and the premise behind the game is this:

 

"A nuclear reactor core stabilizer and containment field has failed unexpectedly and you, the technician, have to manually stabilize the atomic matter until containment field can be initialized. The containment walls will start enclosing around the atomic matter as the containment field is brought back online. However because the containment field is down, other random atomic matter is being project around the reactor core. The manual stabilizers have not been calibrated on schedule so they do not stabilize the atomic matter correctly which has resulted in the atomic matter to jitter around. If two pieces of atomic matter collide or if the atomic matter collides with the walls before the containment field has been initialized, then the whole nuclear reactor wild explode."

 

2088627132-main.jpg

 

2088627132-top.jpg

 

I know the label is simple but I like it :D .

 

I am going to be changing and modifying stuff but I feel that the core of the game is pretty solid. If you switch your Atari 2600 or Stella (not sure how to do it in Stella) to Difficult A (Pro) then the game gets harder, however I have not really tested it out yet so no promises on it working correctly.

 

Anyways this game is not down yet, but I like to think it is well on its way. I have attached the binary. Download it and play it and let me know what you think!!!!

 

Thanks

Disjaukifa

atomic_meltdown.bin

Link to comment
Share on other sites

I guess I should proofread better before I hit that "post" button. :ponder:

 

You sure have hit the ground running with batari Basic. :thumbsup: :thumbsup:

 

I like this game. I'm going to have to try it out with a real joystick.

 

Out of curiosity what did you mean by: "I guess I should proofread better before I hit that "post" button. :ponder: "?

 

Thanks for posting a reply!!! Always helps motivate me to keep on programming!!! I'm thinking about changing the game play here and there. I would love for the other atomic matter to bounce around but I have gotten to figuring out how to do that yet. I left the straight line missile more to see if the game would be fun to play or not.

 

I'm glad you enjoyed what I have so far, I need to make a finishing screen for if you finish, just haven't gotten around to it yet. I'm trying to decide if I want to use the mutlisprite kernel or not. I know it gives you a much cleaner playfield, even though it has to be symmetrical, which I think this game would highly benefit from. What do you think?

 

I also to want to play the game with a joystick, keyboard is just not the same and my reaction time is slower (don't I sound like a geek).

 

Thanks for posting accousticguitar!!!!

 

-Disjaukifa

Link to comment
Share on other sites

Out of curiosity what did you mean by: "I guess I should proofread better before I hit that "post" button. :ponder: "?

The first two words in the post you quoted don't make much sense. "I'm made"???

I'm glad you enjoyed what I have so far, I need to make a finishing screen for if you finish, just haven't gotten around to it yet. I'm trying to decide if I want to use the mutlisprite kernel or not. I know it gives you a much cleaner playfield, even though it has to be symmetrical, which I think this game would highly benefit from. What do you think?

You also have the option of using the no_blank_lines command which uses one of the player missiles to fill in the blank lines. Either kernel would work fine since the playfield is a box. Whichever kernel fits the rest of the game better would be the one to use I guess.

Link to comment
Share on other sites

A few comments:

 

Even in early development, adding a line to have the player press fire before the game starts is a good idea.

 

I'm not sure what you meant by "a cleaner playfield." Your playfield appears to just be a box, so what needs to be cleaner?

 

Adding "if switchreset then reboot" to your main loop will allow playtesters to reset your games.

 

Your project has 310 scanlines, so something is very off.

 

I think you've definitely succeeded in your original intent; this is a very simple idea with a lot of potential. Here are a few ideas/suggestions;

 

You could play off of miss-it and have some of the particles bounce around a few times before exiting.

If you use the "pfcolors" kernel option, you could black out the area above and below your box, and then you could extend the left and right borders using PF0.

 

Sometimes in "don't touch anything" games it's fun to use the playfield pixels for virtual sprites. You can assign them an x and y just like anything else, then use the playfield commands to move them around.

Link to comment
Share on other sites

Hey thanks for the response MausGames!

 

I have broken up your post to help me make sure I answer all of you questions and I have some questions of my own.

 

I'm not sure what you meant by "a cleaner playfield." Your playfield appears to just be a box, so what needs to be cleaner?

 

I guess what I mean by a cleaner play field is something that is more refined, and doesn't have the lines breaking it up, which will be fixed soon.

 

Even in early development, adding a line to have the player press fire before the game starts is a good idea.

 

...

 

Adding "if switchreset then reboot" to your main loop will allow playtesters to reset your games.

 

I will add the fire button to start and the if switchreset then reboot this afternoon. I actually have it set for when the game ends ;) .

 

Your project has 310 scanlines, so something is very off.

 

Ok as I am really new to this (less than a week doing Batari Basic), I have two questions:

 

1st. How do I check how many scan lines my project has?

2nd. What is considered normal for game?

 

 

You could play off of miss-it and have some of the particles bounce around a few times before exiting.

If you use the "pfcolors" kernel option, you could black out the area above and below your box, and then you could extend the left and right borders using PF0.

 

Yeah I was thinking about making it so that other particles bounce around. I have never used pfcolors and PF0 so I will need to do some reading to see exactly how that works!!

 

Sometimes in "don't touch anything" games it's fun to use the playfield pixels for virtual sprites. You can assign them an x and y just like anything else, then use the playfield commands to move them around.

 

Really? I didn't realize you could do that, I need to go back in the other thread and see if anyone has an example of how to do that, that sounds very interesting.

 

I still thinking about just using the multisprite kernel as it produces a cleaner play field and a bigger play field. I am going to mess around with it this afternoon when I get home.

 

Thanks for the feedback guys!!!

Disjaukifa

Link to comment
Share on other sites

Hey Guys,

 

I just had an idea that just hit me :!: I'm pretty sure this will push the cartridge into 8K game range but it would be well worth it. For those of you that have downloaded and tried what I have now, do you think it was be fun to also have a two player mode to see who can last the longest?

 

It won't be that difficult to program and I think it would be fun to play against someone else as well!!! Let me know what you think. Tonight I am going to be working on programming the console switches (can't test that till I get my Harmony in next week), making title screens (simple), and adding a two player mode.

 

I'm even thinking about making it a 16K game just because I have some neat ideas for animation but animation takes up space.

 

 

Let me know what you think, I will post another binary tonight with what I have been able to accomplish!

 

UPDATE:

 

I had a thought that I could do 3 game modes, 1 Player, 2 Player VS, 2 Player COOP. Here is some sketches in paint I did. Its pretty straight forward:

 

2P%20COOP.JPG

 

2P%20VS.JPG

 

Thanks

Disjaukifa

Edited by disjaukifa
Link to comment
Share on other sites

Hey,

 

I am just going to be really quick, I have a lot of other stuff want to get done with this tonight. Here is the latest build. I will post again in a few hours. Changes:

 

-Title Screen

-change game from 4k to 16kSC (Thank goodness the Melody can take up to 32kSC)

-pfres is 28 now I think

 

I will post again later tonight. Enjoy!!! I love bank switching, its actually making everything easier in a weird way.

 

Thanks

Disjaukifa

atomic_meltdown.bin

Link to comment
Share on other sites

Ok here is the second post I promised. Here is a list of what I did:

 

-Animated Title Screen

-Programmed Game Select Menu (No matter which is select it automatically goes to Single Player)

-Add Animated game ending however its not programmed to come up yet (bank2 has a whopping 266 bytes of space left)

 

All I really did tonight was comestics, I didn't feel like tackling anything else tonight, I wanted to just work on something easy. I tried to implement shared sprites like the tutorial here Post #21 but I could never get it to work, I spent 2 hours on it so I then decided I would just work on other simpler stuff, I'm tired so I tackled the easy stuff.

 

If you are at the title screen, you hit the "fire" button to get to the game selection screen. At the game selection screen you hit the Game Select button the console to scroll through the different game modes and "fire" and soon to be "reset" to select a mode you want to play. Again noting that only Single Player Mode is hit at the moment. That will change tomorrow.

 

Here are some screen shots and the .bin file.

 

Screen%20shot%202009-09-23%20at%2012.36.15%20AM.pngScreen%20shot%202009-09-23%20at%2012.36.18%20AM.png

 

Screen%20shot%202009-09-23%20at%2012.36.33%20AM.pngScreen%20shot%202009-09-23%20at%2012.36.37%20AM.png

 

Screen%20shot%202009-09-23%20at%2012.36.52%20AM.png

 

Download it, mess with it and let me know what you think!!!

 

Tomorrow night I am going to at least try to tackle the Two Player Coop (as it is easy to program).

 

Thanks guys!

 

-Disjaukifa

atomic_meltdown.bin

Edited by disjaukifa
Link to comment
Share on other sites

I like how the color changes on the title screen.

 

Hey accousticguitar! Yeah before I has it just set on yellow . . . or something and it bothered me. When I think of a nuclear meltdown I think of red/orangish lights going off and that is what I tried to mimic. Also I want something that was going to be easy on the eyes, the last thing I want to do is make someone sick from looking at the screen :sad: !!!!

 

I really going to try to get one of the two player modes done tomorrow, I just got frustrated today with trying to get the shared sprites to work and after I reverted my code back, I decided to just work on the easy stuff tonight and do some fine tuning here and there. Also I went back and add better comments to everything.

 

I want to modify the other random atomic matter to do something other than a straight line, and I have an idea that I am going to implement tomorrow. I might have to switch from missile to ball, I'm not sure yet.

 

Oddly enough, I won't be able to test two player really well till I get my Harmony cartridge in so that will be next week sometime I hope. Depends on when Albert can get them in the mail.

 

Hopefully tomorrow nights update will be more progressive and exciting than tonights.

 

Thanks

Disjaukifa

Link to comment
Share on other sites

Hey

 

Quick Bonus update. I was reading about the TIA registers and modified the game a little. Also I edited the playfield that I used for the words, I tried to refine them to make them look better. Ok enough talking here before/after screen shots and the .bin file:

 

Screen%20shot%202009-09-23%20at%2012.36.15%20AM.pngScreen%20shot%202009-09-23%20at%202.05.21%20AM.png

 

Screen%20shot%202009-09-23%20at%2012.36.18%20AM.pngScreen%20shot%202009-09-23%20at%202.05.27%20AM.png

 

Screen%20shot%202009-09-23%20at%2012.36.33%20AM.pngScreen%20shot%202009-09-23%20at%202.05.31%20AM.png

 

Screen%20shot%202009-09-23%20at%2012.36.37%20AM.pngScreen%20shot%202009-09-23%20at%202.05.36%20AM.png

 

Screen%20shot%202009-09-23%20at%2012.36.52%20AM.pngScreen%20shot%202009-09-23%20at%202.05.45%20AM.png

 

This is the cleaner look I wanted, however I lost missile0 but I just replaced it with ball and I was back in business. Let me know what you think!

 

Thanks

Disjaukifa

atomic_meltdown.bin

Edited by disjaukifa
Link to comment
Share on other sites

pretty nifty. I got to 97 after a couple of tries. Now you need some music/sounds to ramp up the pressure as you progress. An oscillating siren would sound pretty scary in the latter stages.

 

Yeah I need to add sound in general ... its on the list of things to do, and to be honest its going to be one of the last. I know I have gone against what I like to do programming wise, but I consider the sound part of what Random Terrain calls "The Clean-Up Phase" which comes after the game dynamics are finished, all the levels are designed and the game is full functional (everything has been implemented).

 

The Clean-Up Phase is where you spend your time refining the colors, sounds, graphics, timings, etc. It is what truly can make a game go from good to great.

 

-Disjaukifa

Link to comment
Share on other sites

AAAAAAAAARRRRRRRRGGGGGGGGGGGG

 

Ok I feel better. As promised 2 Player Coop has been implemented. Doing so was surprisingly more difficult than I thought. I have spent the last 4 HOURS getting this to work, however part of the reason for the difficultly is I programmed the code so when I implement 2 Player Versus mode it will be a whole lot easier.

 

ALSO I can only test the 2 Player by myself which . . . . I suck at doing, but I THINK it should all work correctly. I will be able to test it more accurately next week.

 

I need to re-arrange code because right now bank 1 is getting close to full (827 bytes free), bank 2 is basically full (only 254 bytes free), bank 3 is empty (3796 bytes free) and bank for is about half full (2206 bytes free). Right now all my all my subroutines are in bank 1, and I am going to shift them to bank 3 so that I can have room for 2 Player Versus mode. At this time I really don't think I need to go to 32K, I think 16K will be more than enough.

 

Ok for the good stuff here are the picture and bin.

 

Screen%20shot%202009-09-23%20at%2010.15.17%20PM.png

 

Try it out and let me know what you think.

 

Thanks

Disjaukifa

atomic_meltdown.bin

Link to comment
Share on other sites

WOW

 

Ok Hello,

 

Decided to see if I could implement 2 Player VS and I was able t0o !!! Even better because of the way I programmed 2 Player Coop (read previous post about how frustrating it was) I was able to implement 2 Player VS extremely easily and quickly!!! Also I have shuffled the code around so it fits better in the banks except for bank 2 which I am just going to leave alone. Here is what the compiler readout is (If no one cares about this let me know and I will stop posting it, I just seem to find it interesting)

 

1250 bytes of ROM space left in bank 1

0254 bytes of ROM space left in bank 2

2142 bytes of ROM space left in bank 3

2206 bytes of ROM space left in bank 4

 

Means I've got about 5852 bytes of my original 16384 bytes to work with. And I really need about that much for well endings (I have the hard one already programmed just not called), sounds (I have no idea how much space that is going to take up) and for clean-up and refinement.

 

 

Ok for the 2 Player VS I am too tired to even try to control two players at once, so I saw that it came up and I could move each players atomic matter. I have not checked yet to see if the level gets smaller as time goes on. If someone can check that out, it would be fantastic. Also the VS Levels might need to be tweaked. I literally made them in like 5 minutes!!!

 

Now for the good stuff. Here is a screen shot and the .bin.

 

Screen%20shot%202009-09-24%20at%2012.33.39%20AM.png

 

Download it and try it out, let me know what you think!!!

 

Thanks

Disjaukifa

 

*UPDATE* I have updated the atomic_meltdown.bin. I just realized how I wanted to change my "other" atomic matter aka ball that flies through that you need to avoid. *UDPATE*

atomic_meltdown.bin

Edited by disjaukifa
Link to comment
Share on other sites

Hey Guys,

 

No screen shots or update tonight. I spent the last 4 hours re-arranging variables and re doing a good portion of the code. I always thought having 26 variables would be more than enough and I discovered that . . . well its really not. You waste alot of variables if you assign player0x, player0y, player1x, player1y, ballx, and bally.

 

I ran out of variables and I didn't know what variables were left because they were scattered all over 1500+ lines of code. I hope to have a real update for ya'll tomorrow.

 

Thanks

Disjaukifa

Link to comment
Share on other sites

All of the things you just listed have their own variables, you don't have to assign them to anything if you don't want. For example:

 

player0x = player0x + 1

 

is the same as:

a = a + 1

player0x = a

 

Yeah I guess I should have said the following:

 

 

You waste alot of variables if you assign player0x, player0y, player1x, player1y, ballx, and bally even though they already have their own variables assigned to them.

 

 

Talk about a really bad newbie programming mistake :sad: .Yeah I figured that out last night when I was re-arranging my code. I had assigned a,b,c,d,e,o just for player0, player1, and ball. Also I am in the process of reducing my "boolean" variables, I just read up on the using Bit Operation which is perfect for booleans (IE true or false) since each byte can only be a 1 or 0. I will be using that tonight to add ending to all the different play modes.

 

Thanks

-Disjaukifa

Edited by disjaukifa
Link to comment
Share on other sites

You might end up wanting to double-up object variables anyway, if you use something like SeaGtGruff's rebound code. It isn't necessary if you stick with solid square/rectangle playfields, but if you tried to add obstacles or moving chunks/pixels of playfield, you'd want to use his method. Since you are using the superchip option, you should have more than enough ram available. You should have something like 128 extra variables to work with.

Edited by MausGames
Link to comment
Share on other sites

You might end up wanting to double-up object variables anyway, if you use something like SeaGtGruff's rebound code. It isn't necessary if you stick with solid square/rectangle playfields, but if you tried to add obstacles or moving chunks/pixels of playfield, you'd want to use his method. Since you are using the superchip option, you should have more than enough ram available. You should have something like 128 extra variables to work with.

 

I will need to read up on this double-up abject variables, as it sounds like it will be useful in other games. In this one, the playfield is fixed . . . well shrinks, I am not going to be using parts of the play field to make moving chucks. I had thought about it, but I am not going to do it for Atomic Meltdown.

 

I am using the SC option to have a larger playfield height of 28, instead of 12, which really helped out with the title and game selection screens.

 

I still have one major game play feature to implement which I have yet to get around to doing (that will be tonight and this weekend), once it has been implemented I will post an update. Once that is done, and the ending screens have been completed I will be in the clean-up phase, I hope, and just need to spend time refining graphics, sounds, and miscellaneous other stuff.

 

-Disjaukifa

Link to comment
Share on other sites

Here is some code to show you what I meant about using PF0 to have the largest starting area, along with an example of manipulating individual playfield pixels.

 

atomicbox.bas.bin

atomicbox.bas

 

Hey MausGames,

 

Thank you for that example, I'm one of those people that have to "see" it to understand I can't wait to get home to take a longer look at that code. Thanks for the wonderful example.

 

I think you should post this in the Batari Basic Tutorials thread as it would be useful to alot of people I think!!!

 

Thanks

Disjaukifa

Link to comment
Share on other sites

I am using the SC option to have a larger playfield height of 28, instead of 12, which really helped out with the title and game selection screens.

That is way cool; I didn't know you could do that! Is that with the standard kernel? I had a game idea that I scrapped because the playfield blocks were too big. Maybe it would be possible after all. Thanks for posting that info!

Link to comment
Share on other sites

Hey Guys,

 

Here is a new .bin. Lets see who can figure out what is new :D. I have been trying to get this to work for 3 days . . . and it was because of the smallest misplaced line of code that as now been moved so now it works!!!!

 

Thanks

Disjaukifa

atomic_meltdown.bin

Edited by disjaukifa
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...