graywest Posted August 20, 2017 Share Posted August 20, 2017 (edited) Hello all! It's been awhile, but I've been itching to get back into some batari Basic programming. This is a *very* early WIP version of a game that's been kicking around in my head for awhile now. It's tentatively called "The Horde" and that's because there are 255 UNIQUE ENEMIES in the game. The gameplay challenge, I hope, will come from the player adapting to the different ways they are put together. Think of it as a version of "Strawberry Shortcake's Musical Matchups", only with more ass-kicking. Each enemy is dynamically generated. Each enemy looks different (built from a collection of heads, torsos, and legs), moves differently, defends differently, and attacks differently. The player will have a selection of weapons and powerups at his/her disposal. Right now only one weapon - a bouncing bullet - is implemented. The enemies model random damage when hit - a benefit of using variables to contain sprite data. Each enemy has between 2-5 hit points. When one enemy is destroyed, the next will take its place. There's a lot to be done, but I wanted to share. I'm interested in feedback, good or bad. Gameplay suggestions are welcome. I like games that play to the 2600's strengths - no complicated graphical backgrounds, just an arena and some fast arcade-action. (Edit 12/3: Updated .bin file to the latest version.) TheHorde.bin Edited December 4, 2017 by graywest 4 Quote Link to comment Share on other sites More sharing options...
StanJr Posted August 21, 2017 Share Posted August 21, 2017 I really like the concept and based on what you've started with, this has a lot of promise. It's like an ancient gladiatorial combat arena where every opponent is a new and deadly threat. Very excited to see where you take this. 1 Quote Link to comment Share on other sites More sharing options...
+Random Terrain Posted August 21, 2017 Share Posted August 21, 2017 When glancing at the title, I thought you were making this: youtube.com/watch?v=6Zpz8w9weXY https://www.youtube.com/watch?v=6Zpz8w9weXY en.wikipedia.org/wiki/The_Horde_(video_game) 3 Quote Link to comment Share on other sites More sharing options...
graywest Posted August 22, 2017 Author Share Posted August 22, 2017 (edited) When glancing at the title, I thought you were making this: youtube.com/watch?v=6Zpz8w9weXY en.wikipedia.org/wiki/The_Horde_(video_game) Wow, I've never heard of this one but I may need to change the name of my game now. Is that Kirk Cameron?? Edited August 22, 2017 by graywest Quote Link to comment Share on other sites More sharing options...
+Random Terrain Posted August 22, 2017 Share Posted August 22, 2017 Is that Kirk Cameron?? Yep. Quote Link to comment Share on other sites More sharing options...
Arenafoot Posted August 22, 2017 Share Posted August 22, 2017 COOL Concept!!! 1 Quote Link to comment Share on other sites More sharing options...
Sprybug Posted August 22, 2017 Share Posted August 22, 2017 Wow, I've never heard of this one but I may need to change the name of my game now. Is that Kirk Cameron?? I know exactly what game you are talking about. I had this game in stock for the Saturn when I had my own vintage gaming shop. 1 Quote Link to comment Share on other sites More sharing options...
graywest Posted September 6, 2017 Author Share Posted September 6, 2017 Hey everyone, I updated the .bin in the first post to the latest version. This has a lot of changes: Player can fire Enemy can fire There are two different player weapons: a throwing disc that bounces off the walls and must be caught to throw again (a la Tron) and a rapid-fire bullet that disappears when it hits the playfield boundaries Player has three hit points: Green player color = 3, yellow = 2, red = 1 The game stops when the player has 0 hit points Robots have hit points as well, somewhere between 5 and 2, depending on the robot type There is a powerup for the player that appears randomly - a blue box that switches weapon types Robots melt into a puddle when destroyed The action stops then the player hits 0 health - press the joystick button to continue At this point, I'm aiming for something like Robotron 2084 on the 2600. From the bits of history that that I know, Robotron was attempted on the poor old VCS, but it was too flickery to be playable. I want to make something with a similar feel, but with fewer sprites. I'm trying to make up for the lack of sprites with a lot more enemy types to defeat. Right now the AI is weak, but that's something I am planning to focus on. I also have plans for a few more player weapon types, as well as a score to keep track of how many robots the player has destroyed. I want to make a game that can be quickly replayed several times as the player improves. Comments and suggestions are always welcome! Keep in mind that this is just an alpha version. 1 Quote Link to comment Share on other sites More sharing options...
StanJr Posted September 7, 2017 Share Posted September 7, 2017 (edited) Holy crap. This game just went from Sunday walk in the park to red ass beat down in 5 seconds. Enemy speed is blinding and I'm dead before I can get off a shot sometimes. Need to tweak difficulty ramping because this baby is at 11 right out of the gate. With that said, I love all of the other improvements and think you still have a solid concept here. Just take the difficulty down at the start and work me up to the instant kill level. Edited September 8, 2017 by StanJr Quote Link to comment Share on other sites More sharing options...
graywest Posted September 7, 2017 Author Share Posted September 7, 2017 Holy crap. This game just went from Sunday walk in the park to red ass beat down in 5 seconds. Enemy speed in blinding and I'm dead before I can get off a shot sometimes. Need to tweak difficulty ramping because this baby is at 11 right out of the gate. With that said, I love all of the other improvements and think you still have a solid concept here. Just take the difficulty down at the start and work me up to the instant kill level. Haha - yes, agreed. One or two of the enemy AI types are WAY too fast. I need to work on that. One of them constantly tries to hide from the player as well, so if you end up facing that robot, it's way too easy. I think maybe a "grace period" needs to be implemented when the new enemy robot enters the playfield, to give the player a chance to react. Also, I want to work on more complex behavior. I do appreciate the feedback!! Quote Link to comment Share on other sites More sharing options...
graywest Posted September 17, 2017 Author Share Posted September 17, 2017 I posted a new version tonight - see the first post in this thread for the .bin. A whole load of changes again, and I'm not sure I can remember everything I've done since the last version, but here are the highlights: There is a score that displays the number of robots you've destroyed. There is an "inventory" icon that shows which weapon you are using, gun or throwing disc. The powerup causes a few different effects. It can change the player's weapon (disc or gun), it can increase the player's health, or it can instantly destroy the enemy. There is a large blue "electrified" square in the arena that randomly lights up from time to time. Don't step on it or you will lose health. Bugfixes, including one where the player could drop his/her weapon and it would remain stationary. The game won't restart instantly if you are holding the button down upon player death - after a few seconds, you must press the fire button to reset. Gives the player a chance to see the final score. A flashing "door" will indicate where new robots enter the arena - gives the player a chance to react. Changes to the different types of enemy AI. I'm still not totally happy with this, so I'm planning to work more on it. Added enemy firing AI. Depending on the type, the robot will fire randomly or toward the player, fast or slow. Let me know if you run into any bugs or have suggestions - thanks!! 1 Quote Link to comment Share on other sites More sharing options...
StanJr Posted September 18, 2017 Share Posted September 18, 2017 I got 11 robots! These new additions are adding great depth to the game play. Could the power-up be a different color than the trap panel? I realize they are different sizes, but different colors would also help. Am I meant to collect the little thing that appears when the enemy is vanquished? Really enjoying this more and more! 1 Quote Link to comment Share on other sites More sharing options...
Mountain King Posted November 29, 2017 Share Posted November 29, 2017 Graywest, would you mind sharing how you varied the enemy sprites? I'd like to try to apply a way to make my trees look more random. Your technique might work for me. Thanks. Quote Link to comment Share on other sites More sharing options...
graywest Posted December 4, 2017 Author Share Posted December 4, 2017 Graywest, would you mind sharing how you varied the enemy sprites? I'd like to try to apply a way to make my trees look more random. Your technique might work for me. Thanks. Sure thing. The main thing to keep in mind is that you'll need to use quite a few of your variables for this, so if you can't spare any, this probably isn't the best technique to use. You're basically trading ROM space for RAM space. Bogax helped me get started a long time ago with this post: http://atariage.com/forums/topic/235398-alternate-ways-to-create-player-sprites/?do=findComment&comment=3184747 The key is setting the "player0pointerhi" and "player0pointerlo" to the memory locations that correspond to the variables that you want to use. If you want to use more or less lines per sprite, you'll need to adjust the memory locations accordingly. I think Random Terrain's site has a memory map that details these locations. Since generating dynamic sprites eats up a lot of my variables (I'm trying not to use Superchip RAM) I have to use individual bits of a lot of variables to make up for it. But the enemy type itself is just a single byte that I set randomly when a new enemy is needed. In the enemy generation subroutine I pull the bits from that and branch off depending on whether they are 1s or 0s to build the sprite parts. I think I use 3 bits for the head type, 2 bits for the torso, and 3 bits for the legs. That gives me 8 different heads, 4 different torsos, and 8 different legs for 256 enemies total. Actually, I think there are 255 enemies because I use %00000000 as a flag that no enemy is onscreen. This probably sounds like a lot of work to set up, and it was, but once it's ready to go, you can create some fun effects, like changing the the variables for dynamic enemy damage and cool explosions. I also reuse the enemy sprite variables to determine what sort of AI should be used for the enemy - firing rates, movement types, etc. I'm attaching the source code here, in case you want to browse through it. Let me know if you have any questions! TheHorde.bas 1 Quote Link to comment Share on other sites More sharing options...
graywest Posted December 4, 2017 Author Share Posted December 4, 2017 I got 11 robots! These new additions are adding great depth to the game play. Could the power-up be a different color than the trap panel? I realize they are different sizes, but different colors would also help. Am I meant to collect the little thing that appears when the enemy is vanquished? Really enjoying this more and more! Great! Glad to hear you're enjoying it. Yes, the red "plus" symbol that is dropped when you defeat an enemy is a health pickup - it will restore one hit point. If you're already at 3 hit points (player is green) there is no reason to go after it though. I'll look into the color of the power up. Quote Link to comment Share on other sites More sharing options...
graywest Posted December 4, 2017 Author Share Posted December 4, 2017 One more thing - here's the latest version, compiled from the source code in the post above. This version has some SOUND which adds a lot, I think. This game still isn't finished - I haven't had as much time to work on it lately as I'd like, but I'll get back around to it. I still really want to improve and tweak the enemy AI, which isn't where I want it yet. (.bin file updated here, and in the first post of the thread.) TheHorde.bin 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.