Jump to content

Photo

The Horde


15 replies to this topic

#1 graywest OFFLINE  

graywest

    Moonsweeper

  • 263 posts
  • Location:Indianapolis, IN

Posted Sat Aug 19, 2017 11:29 PM

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

Attached Files


Edited by graywest, Sun Dec 3, 2017 7:50 PM.


#2 StanJr OFFLINE  

StanJr

    Web-slinger

  • 15,078 posts
  • fun or bust
  • Location:Louisville KY

Posted Mon Aug 21, 2017 11:38 AM

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.



#3 Random Terrain OFFLINE  

Random Terrain

    Visual batari Basic User

  • 28,462 posts
  • Controlled Randomness
    Replay Value
    Nonlinear
  • Location:North Carolina (USA)

Posted Mon Aug 21, 2017 1:00 PM

When glancing at the title, I thought you were making this:

 

youtube.com/watch?v=6Zpz8w9weXY

 

en.wikipedia.org/wiki/The_Horde_(video_game)

250px-Horde_cover.jpg



#4 graywest OFFLINE  

graywest

    Moonsweeper

  • Topic Starter
  • 263 posts
  • Location:Indianapolis, IN

Posted Mon Aug 21, 2017 7:38 PM

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??   :-D


Edited by graywest, Mon Aug 21, 2017 7:38 PM.


#5 Random Terrain OFFLINE  

Random Terrain

    Visual batari Basic User

  • 28,462 posts
  • Controlled Randomness
    Replay Value
    Nonlinear
  • Location:North Carolina (USA)

Posted Mon Aug 21, 2017 8:03 PM

Is that Kirk Cameron??   :-D


Yep.



#6 Arenafoot ONLINE  

Arenafoot

    Dragonstomper

  • 903 posts
  • videogamestores.net/
  • Location:Watson, LA

Posted Mon Aug 21, 2017 9:48 PM

COOL Concept!!!  :thumbsup:



#7 Sprybug OFFLINE  

Sprybug

    Dragonstomper

  • 556 posts

Posted Mon Aug 21, 2017 11:12 PM

 

Wow, I've never heard of this one but I may need to change the name of my game now.  Is that Kirk Cameron??   :-D

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.



#8 graywest OFFLINE  

graywest

    Moonsweeper

  • Topic Starter
  • 263 posts
  • Location:Indianapolis, IN

Posted Wed Sep 6, 2017 5:23 PM

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.



#9 StanJr OFFLINE  

StanJr

    Web-slinger

  • 15,078 posts
  • fun or bust
  • Location:Louisville KY

Posted Wed Sep 6, 2017 7:28 PM

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 by StanJr, Fri Sep 8, 2017 8:47 AM.


#10 graywest OFFLINE  

graywest

    Moonsweeper

  • Topic Starter
  • 263 posts
  • Location:Indianapolis, IN

Posted Wed Sep 6, 2017 8:03 PM

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



#11 graywest OFFLINE  

graywest

    Moonsweeper

  • Topic Starter
  • 263 posts
  • Location:Indianapolis, IN

Posted Sat Sep 16, 2017 10:45 PM

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



#12 StanJr OFFLINE  

StanJr

    Web-slinger

  • 15,078 posts
  • fun or bust
  • Location:Louisville KY

Posted Mon Sep 18, 2017 4:14 PM

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!  



#13 Mountain King OFFLINE  

Mountain King

    Dragonstomper

  • 666 posts
  • Location:Philadelphia, PA

Posted Wed Nov 29, 2017 6:27 AM

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.



#14 graywest OFFLINE  

graywest

    Moonsweeper

  • Topic Starter
  • 263 posts
  • Location:Indianapolis, IN

Posted Sun Dec 3, 2017 7:35 PM

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/...s/#entry3184747

 

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!

Attached Files



#15 graywest OFFLINE  

graywest

    Moonsweeper

  • Topic Starter
  • 263 posts
  • Location:Indianapolis, IN

Posted Sun Dec 3, 2017 7:42 PM

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. 



#16 graywest OFFLINE  

graywest

    Moonsweeper

  • Topic Starter
  • 263 posts
  • Location:Indianapolis, IN

Posted Sun Dec 3, 2017 7:47 PM

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

Attached Files






0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users