Jump to content

CPFace

Members
  • Content Count

    66
  • Joined

  • Last visited

Everything posted by CPFace

  1. Is this for the 2600? o.o I'd love a good video Risk game.
  2. mt6.bin Story So you've decided to seek your fortune as an adventurer, scouring the mazes of melbourne tatty for elusive and valuable treasures. Just be careful, as this is no average maze -- the walls shift and move with a life of their own to confuse and disorient you. And beware of the hungry wolf that prowls the maze, looking for a tasty morsel like you... Game Select The opening screen will display your most recent score until you press Select. Keep pressing select to choose the level you wish to start from. (The default is Level 1.) Press Fire on the left joystick or Reset to begin. Navigating the Maze Use the left joystick to move around the screen. Walls will block you, but they won't block the wolf! Try to gather the golden treasures as they appear on the screen. You get ten points for every treasure you collect. If you can recover ten treasures, you'll move on to the next level. Press the fire button to put down a golden decoy. The wolf will leave you alone and pursue the decoy until he grabs it. Use this time to put some distance between you! You get three decoys at the start of every level. Every time you place a decoy, your decoy meter on the left side of the screen will drop. You get fifty bonus points for every unused decoy at the end of the level. Hazards The wolf pursues you relentlessly across the screen. He'll move one room at a time through the maze, pausing briefly in every room he reaches. You'll hear a warning tone shortly before he moves. If he catches you, you'll lose one life. You get three lives before the game is over. Watch out for moving walls! If you get caught in the wall, you'll be stuck until it moves out of the way again. You'll be a sitting duck for the wolf to catch! Strategy Conserve your decoys. You can get up to 150 bonus points at the end of each level for them. But learn the best place to put them so you can get through an emergency alive. Learn to manipulate the wolf. Don't just go rushing into the maze -- plan your route carefully and trick the wolf into pursuing you away from the next treasure. Every level is different. Learn how the walls move in each level and get a feel for where your best opportunities for retreat lie. Get your timing down so that you can skip from room to room without getting stuck in the walls. If all else fails, you can sometimes find a safe spot in the same room as the wolf by tucking into one of the lower corners. This won't work in the cells at the bottom of the screen though! Aaaaaaand that's my first Atari 2600 homebrew game. Made with batari's 2600 Basic, of course. Enjoy.
  3. Here's a minor touch-up job for melbourne tatty: mt6.binmt6.bas Redrew all of the treasure graphics. As you can see, the gold ingot is much prettier: It's gotten to the point where I'm ready to see what the Homebrew board thinks of the game, and I just wanted to give it one last facelift. Updates are still possible, of course.
  4. My eternal gratitude for the same reasons! When I succumbed to the temptation to look into the Atari 2600 homebrew scene, I was all set for a long, painful trek into the bowels of assembly language. When I found bBasic, I was in heaven. Instead of wrestling with the minor details of building a functional kernel and and converting familiar programming structures into assembly, I was able to jump right into the fun stuff -- experimenting with how sprites and joysticks worked and thinking of how I could put them together into a game. I haven't even looked into the .99 versions, and I'm still plumbing the depths of usefulness that the system has. I think melbourne tatty is a reasonably fleshed-out action/arcade game, and I'm already beginning to muse over my next project. This is an unbelievable boon to the hobby. I think everyone should get to try bBasic as their introduction to Atari 2600 homebrew.
  5. Here's how it's done. First, you'll need to define a fixed-point decimal variable somewhere near the top of your code. Each fixed-point decimal value will take up two of your 8-bit variables, but it'll give you the accuracy you'll need to move across the entire screen. player0x, player0y, player1x, etc are all simple 8-bit integer values. Because of that, you'll have to store and maintain any decimal coordinates separate from the system sprite coordinates. When you copy your decimal coordinate to the sprite coordinate, it'll ignore the decimal part and just give you the integer. Here's what the code will look like: rem Place this line near the beginning of your code. dim px=a.b rem This is what moving the player 1.5 pixels in the negative x direction looks like. px = px - 1.5 player0x = px Notice that the new variable px uses up both your a and b variables. Any changes you make to a or b will affect px, and probably not in a way you expect unless you understand how binary decimals work. The help file for bBasic .35 has a discussion of how these variables work under "Fixed Point Variables", and the "sample.bas" file has an example of a sprite moving at a fixed-decimal velocity.
  6. Thanks. ^_^ Yeah, I've never been very fond of games that subtract from your score, I'm glad there was a way to avoid that.
  7. Hey, got some more tatty! mt5.binmt5.bas As per jbanes's suggestion, there is now a meter on the left side of the screen to represent how many decoys the player is allowed to lay. You get three of them on every level, and there's a fifty point bonus for every unused decoy at the end of the level. I think this may just be the last element that melbourne tatty really needed -- it's a lot more interesting to play now that I'm getting a feel for how the decoys can be used to my advantage. I made it all the way to level 6 and got a high score of 1150 tonight. Found a lot of interesting bugs in the wolf's behavior, but I believe I've squashed the majority of them. I'd still like to give it some more playtesting before I call it a final version. Think I could stand to redraw my treasures too -- I like the goblet and the ring, but the crown and the ingot are ugly. I'm running out of ROM space now, but comments and suggestions are still appreciated. Hope you guys like it.
  8. Avoiding a situation where you get trapped in the walls is meant to be part of the challenge of the game. Pay attention to the rhythm of the moving walls and try not to get stuck to begin with.
  9. I would say background music isn't too important. But if you'd like to put some in and you aren't using the difficulty switches for anything, perhaps you could give the player the option to turn the music on or off with one of the switches? What's this game going to be like? Is it based on the original game, or is it something different? And did you get the OK from Spielberg to sell cartridges?
  10. I actually had about the same idea when I first looked at the suggestion, but I thought it would be more interesting from a gameplay perspective if the player had to "buy" decoys. For one thing, the scoring in the original version is a little too straightforward -- it's basically just a measure of how many levels you've completed. For another thing, a good game should always tempt you to take some risks and reward you if you succeed -- a player who learns to play without the decoys should get a higher score than a player who uses them very often. BUT! Now that you mention it, it occurs to me that I could have it both ways if I gave the player a point bonus for every unused decoy when a level's complete. Off the top of my head, I'm thinking of a 50 point bonus for each. That would make for quite a temptation, I think -- a player who completes two levels without decoys would have the same score as a player who uses them all up and completes five levels. From a technical standpoint, it should be feasible. I like the idea of using the ball as a "decoy meter". I'm going to have to optimize my RAM usage a bit more, but I think I can squeeze a couple more bytes out of it. Yeah, I think that version'll be coming up. And thanks to both of you guys for the suggestions! I'd hit sort of a brick wall with the project recently, this really helped me get interested in it again.
  11. More tatty! mt4.binmt4.bas Slightly better AI! Four poorly-drawn treasures to find! All 20 levels actually work now! Difficulty adjusted again! Also, I took Piggles up on his idea. You can now press the fire button to drop a treasure sack. It costs thirty points to drop a treasure sack, and only one can be on the board at a time. The wolf will try to recover the treasure before nabbing the player. Feedback is appreciated, as always.
  12. Glad you like it. That's actually an interesting idea, I've been thinking about ways to slack off the difficulty a bit, I might play around with that and see what kind of an effect it has on the game. Perhaps you could spend a certain number of points to drop a decoy that the wolf will pursue instead of the player until he encounters it. Hmmmmmm. Yeah, I really like that idea. I think I could even do it without introducing any new variables. I'll have a new version sometime this week, I think. I've changed the way the maze moves -- instead of steadily increasing the pace of the moving walls, I've just decreased the wolf's "wait time" as the levels increase. I've also fixed a bug that would send you back to the beginning after playing any level beyond, I believe, level 10. Probably did some other stuff with it too.
  13. Huh, true. I wonder where his "starting off the screen" problem was coming from then. O_o
  14. Hey, a new version. mt3.binmt3.bas The biggest change for this version is that you can select your level from the title screen. You can press Select to cycle through the twenty different levels; the level you'll start at is displayed on the score line. I also tweaked the core of the program so that the walls of the maze don't have to shift in sync all the time. Level 8 and beyond now has asynchronous wall movement. I got rid of a couple of the levels I had in before because they seemed too redundant and I wanted to make it easier for the player to reach some of the more interesting levels. There's also a total of 20 levels now. At this point, the game could stand to have a lot of playtesting. I'd like it to be challenging, but I don't want to accidentally make it impossible to finish. So I'm still working on the difficulty. And... I'm curious how well it works on real 2600 hardware. If anyone has the means to try it, I'd like to hear about it. I seem to get a solid 260 lines when I run it on my z26 emulator. I know the ideal is 262, but it seems like a lot of the Atari Basic games I play are just a little off on the scanline count. Is 260 good enough? I'm really not sure if I can make the game logic any faster.
  15. There's just one small problem with the rebound.bas code -- it doesn't set the sprite's coordinates to a "sane" value before it enters the loop. You can probably solve the problem by changing one line: 302 pfhline 9 5 21 on : x=25 : y=80 : player0x=0 : player0y=0 That way, when it gets down to line 340, the sprite coordinates will be: player0x = player0x + x = 0 + 25 = 25 player0y = player0y + y = 0 + 80 = 80 What did you want to have happen when the player touches the wall then? The way I read it, I thought you wanted the playfield to act like a brick wall so that the player0 sprite can't go through it. The whole "bump back" idea is just something to readjust the player's coordinates so that he can't go further than one pixel into the wall. What effect are you looking for if not that?
  16. Well, it depends on what you're trying to accomplish. If it's just that you're using the playfield to draw a wall that you never want the player0 sprite to go through, then here's how I got it to work in melbourne tatty using collision detection. 301 for b=0 to 10 : pfhline 0 b 31 off : next rem I directly initialize the coordinates of the player0 sprite and use x and y to store the sprite's rem previous position. 302 pfhline 9 5 21 on : player0x=25 : player0y=80 303 w=150 : z=10 : COLUP1=6 : COLUP0=42 308 player1: %01100110 %00100100 %00100100 %10111101 %10111101 %11111111 %01100110 %00111100 end 322 player0: %1100011 %0100010 %0010100 %0001000 %0001000 %0111110 %0001000 %0001000 %0011100 %0100010 %0100010 %0100010 %0011100 end rem First, we save the player sprite's current position in case we have to go back to it. 335 x = player0x: y = player0y rem Next, we poll the joystick and move the player0 sprite. 350 if joy0left then player0x=player0x-1 355 if joy0right then player0x=player0x+1 360 if joy0up then player0y=player0y-1 365 if joy0down then player0y=player0y+1 rem You may need to add some code here to make sure that the player is staying within the rem screen bounds. rem Then we refresh the screen. 370 player1x=w : player1y=z 375 drawscreen rem Now we check to see if there's a collision between the player0 sprite and the playfield. rem If there is, we return the sprite to the position it was in before the player moved the joystick. 380 if collision(player0, playfield) then player0x=x: player0y=y rem And after conducting any other game logic that you need to do between frames, we'd loop rem back to line 335. Visually, it'll look like the player0 sprite can press one pixel into the wall as long as the player holds the joystick against it, but when the joystick is released, the sprite will return to where it's supposed to be. This scheme also prevents the player from "hugging" the wall and sliding across it by holding the joystick diagonally. Hope that's a little help.
  17. Why not from the Atari Age store?
  18. CPFace

    Atari Myths

    The way I've always heard it was that Atari was opposed to the idea of a programmer's credit in particular rather than the idea of an Easter Egg in general. I guess there's always the argument that it detracts time and resources away from the main game, but considering some of the terrible games they released, I wonder why they'd pick that particular issue to harp on.
  19. Wow. Sorry, this is the first I've heard of this project. That's pretty damned impressive. As a Pac-Man purist, I find it annoying that Namco authorizes all of these "Namco Museum" sets that claim to be arcade accurate but end up being recreations. Good work!
  20. Gameplay is arcade perfect Arcade perfect? As in, I could pull my 1981 copy of "Mastering Pac-Man" by Ken Uston off the bookshelf and all of the patterns would work? I don't have a ColecoVision, but if I did, that'd be a hell of a reason to get it out.
  21. Kinda neat. I know you're trying to keep the size small so you can put it in your Spaced Out multicart, but there's two things I'd suggest. One, it seems like your shot follows the horizontal movement of your ship. Is there any way to make them move independantly? Two, is there any way to get the human ship to fire back at you? I have another suggestion, but I'm not sure how suited it is to a 2K ROM. I'd like to see a reverse Space Invaders where you don't have control of the alien ship -- it automatically goes across the screen, descends, goes back the other way, descends, etc -- and you have to get a certain number of hits on the human ship (it may or may not be firing back) before you reach the bottom.
  22. Refined melbourne tatty a bit! mt2.binmt2.bas New to this version: Extended and rewrote the background music. I'm much happier with it now, much less repetitive. Also discovered that I've been using the wrong frequency chart when I've been writing my music. D'oh. So now it's a bit more in tune. Tested a lot of the later levels and decided to reorder them to better reflect the difficulty curve. Also fixed a bug from the first version -- looks like I never actually got around to putting the tenth level in. Oops. It's in now, and I'll consider putting some more in. My goal right now is to have twenty levels, but I've got enough room on the ROM for a lot more. Guess it all depends on what kind of actual potential this setup has. Awesome sound effects and animation! Now there's two glorious frames of jaw movement when the wolf chomps you, a celebratory noise when you get a goblet, and an audio cue thirty frames before the wolf starts to move. Game Over looks a bit more like the game is over rather than hung up at the beginning of your next life. And some screenshots. The later levels get progressively less symmetrical and synchronized in their behavior: And here's our wolf enjoying a tasty player. > I'm tempted to say that the "look and feel" polishing is over. Unless I come up with some extra-nifty ideas, this is the game's basic presentation. Next item on the list is experimenting with level configurations and the variables that affect the difficulty. It occurs to me that the difficulty is determined more by the speed that the walls move relative to how long the wolf pauses between moves than it is by the configuration of the walls themselves. Furthermore, it seems like the longer you take to finish a level, the easier it becomes because the increased speed of the walls makes the gaps come your way much more rapidly. I need to address these issues somehow. Ideally, I'd like a level to become more difficult as you take longer to finish it, then pull the difficulty back again as you start the next level (but the starting difficulty should be slightly greater than the starting difficulty of the previous level). And as this project starts to look and feel more like a real video game... Well, I'm tempted to start thinking about making cartridges. I suspect that most folks around here are used to homebrew games with fancier graphics. (The square hero thing was cute when Warren Robinett did it, but...) Might be worth holding out on that until I master using one of these newer Basic kernels, eh? But besides better graphics, what would this need to be a viable commercial product? There's a couple ideas I'm toying with right now. Level select at the title screen is one. Some sort of two-player mode (where the second player controls the wolf or possibly the maze) is another. And since I'm not using the fire button for anything, I was thinking of making it a pause button. A quick intermission animation might be fun. Maybe make the wolf a little more animate during gameplay. Maybe stick some different treasures in there so you're not just collecting cups all the time. Yeah, I've got plenty of ideas, maybe I'm not as done with the presentation as I thought. So that's the state of things right now. Hope you like the new version.
  23. Heh, thanks for posting the screenshots! I should probably start doing that when I post these messages. Give people a little more of a taste of what they're getting into. Yeah, I'm pretty happy with how the strategic aspects worked out. A lot of it was a happy accident. Right now, it's possible to trick the wolf into thinking you're in a different part of the screen by leaning against one of the walls. I'm wondering if this is something that should be fixed, or if I should leave it in -- it could be a valuable lifesaving technique in the later levels. It's also possible in some cells on the board to occupy the same cell as the wolf by pressing against one of the lower corners. I think I'll try and put in an ominous sound effect when the wolf starts to move. And yeah, the song could stand to have a little more variety to it. I'll see what I can do with it. As far as the title goes... Well, when I told the guy who inspired my first 2600 game, Jym, that I was starting a new game, he asked me, "Is it going to be melbourne tatty?" So I was like, pff, sure. I asked him where he got it from, he said it was just a random thing that came to him one day. He also suggested a cup as the item to be collected and a wolf as the creature to be avoided. This isn't the first time he's inspired me, and it's not likely to be the last.
×
×
  • Create New...