Jump to content

Photo

Armageddon Complex


57 replies to this topic

#1 jrok OFFLINE  

jrok

    Stargunner

  • 1,155 posts

Posted Sun Sep 21, 2008 6:53 PM

EDT: This game has changed completely since I first started working on it, so I've ammended my first post accordingly.

"Armageddon Complex" is a sci-fi action-adventure set on a massive space station that has been taken over by a marauding band of alien terrorists. The aliens are trying to gain access to the station's "Inifinity Collider" - a doomsday device deployed by the Earth's governments as the ultimate peacekeeper. You are humanity's last hope. You must locate and activate the station's auto-destruct system and, if possible escape before the Complex explodes. Along the way, you may also accomplish additional objective that will increase your final ranking.

HUD:
At the bottom of the screen, the score area displays your current inventory and shield strength. You can hold up to three items in your inventory at a time, and can have a maximum of up to three shields.

CONTROLS (Adenturing Mode):
Left Joystick - Move hero in 8 directions
Left Fire Button - Activate a computer terminal or Aim/Use the active item in your inventory, as follows:
  • Laser Sword - While holding the button down, tap the Left Joystick left or right to slash in that direction.
  • Gun - Move the Left Joystick in one of 8 directions to aim the gun that way. Release the Fire Button to shoot.
  • Bomb - If you can find this, you can blow holes in interior walls.
RightJoystick - Tap left or right to change your active Inventory item.

CONTROLS (Puzzling Mode):
Left Joystick - Move move cursor in four directions
Left Fire Button - Press a colored button (or submit the code by selecting the Enter key at the bottom of the monitor.

ENEMIES & OBSTACLES (only two at the moment):
Killer Robot: Garden variety evil robot. They turn up randomly in rooms that you enter, and can be dispatched with a single shot or a swing of your sword.
Mutant X: This is a persistent character that will serve much of the function that the Dragons did in Adventure, relentlessly pursuing you around the complex. You can mangle him with a sword strike or a bullet, but after a few seconds he will re-constitute himself and continue hunting you down.
Computer Terminal: A security computer linked in to the Armageddon Complex security network. Can be used to disable Force Fields or trigger other events.
Force Field: A barrier which must be disabled by entering the proper code in a computer terminal.

Cheers,
Jarod.

Latest Version:
Attached File  Armageddon_Complex_v2.bas.bin   32KB   198 downloads

Edited by jrok, Wed Apr 1, 2009 5:24 PM.


#2 atari2600land OFFLINE  

atari2600land

    Waffles:

  • 10,764 posts
  • Man's best invention. Ever.
  • Location:Salem, Oregon

Posted Sun Sep 21, 2008 11:30 PM

Wow! Nice work so far! :thumbsup:

#3 nonner242 OFFLINE  

nonner242

    River Patroller

  • 3,664 posts
  • ALL your base ALL belong to us!!!!!!!!!!!!!!
  • Location:OHIO

Posted Mon Sep 22, 2008 1:21 AM

Looks GREAT so far!

#4 Random Terrain OFFLINE  

Random Terrain

    Visual batari Basic User

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

Posted Mon Sep 22, 2008 1:31 AM

Looking nice so far. Can you make the guy walk faster? Speaking of needing as many variables as you can get, have you seen the following post about using one variable as two when you don't need to go over 15:

http://www.atariage....s...t&p=1571406

Between that and bit operations, we can squeeze in a lot of variables.

#5 Snider-man OFFLINE  

Snider-man

    Stargunner

  • 1,987 posts
  • Doofenshmirtz Evil Incorporated

Posted Mon Sep 22, 2008 6:37 AM

Haven't had a chance to check it out yet, but the title alone is one of the cooler ones I've seen.

#6 jrok OFFLINE  

jrok

    Stargunner

  • Topic Starter
  • 1,155 posts

Posted Mon Sep 22, 2008 8:13 AM

Looking nice so far. Can you make the guy walk faster?

Yeah that's a good point. I think 1 pixel is to slow, and 2 pixels is a little too fast. I think eventually I'll have to uses fractional speeds for everything here (which would be nice because then I could do friction too).

Speaking of needing as many variables as you can get, have you seen the following post about using one variable as two when you don't need to go over 15:

http://www.atariage....s...t&p=1571406


Aha! No I missed that one somehow. It looks like a bit of reading, so I'll probably tuck into it tonight after work. Thanks very much for the tip... this would make my life much, much simpler!

What I'm also really in the market for is a good bB bankswitching tutorial... right now I'm cramming the entire game (sans title screen and sprite graphics) into a single bank. I'm working on slimming down the current demo code, but it it seems that even at its most optimized it's going to need about 3000 bytes to run, which doesn't leave much room for things like collisions, enemy behaviors, player inventory, etc. But of course, when I try to dump some functions into another bank, the program compiles into some insane Dada-esque nightmare. Do you know of any good bankswitch threads?

#7 jrok OFFLINE  

jrok

    Stargunner

  • Topic Starter
  • 1,155 posts

Posted Mon Sep 22, 2008 8:14 AM

Wow! Nice work so far! :thumbsup:


Thanks!

#8 jrok OFFLINE  

jrok

    Stargunner

  • Topic Starter
  • 1,155 posts

Posted Mon Sep 22, 2008 8:15 AM

Looks GREAT so far!


Thanks, man!

#9 jrok OFFLINE  

jrok

    Stargunner

  • Topic Starter
  • 1,155 posts

Posted Mon Sep 22, 2008 8:18 AM

Haven't had a chance to check it out yet, but the title alone is one of the cooler ones I've seen.


Thanks man! Yeah, I tried to go for a sort of double-meaning thing there. "Armageddon Complex" is the name of the station, but I think it would also work as the mental neurosis of the game's main villain, General Gog, who has a nasty habit of blowing up planets.

#10 Random Terrain OFFLINE  

Random Terrain

    Visual batari Basic User

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

Posted Mon Sep 22, 2008 11:25 AM

Yeah that's a good point. I think 1 pixel is to slow, and 2 pixels is a little too fast. I think eventually I'll have to uses fractional speeds for everything here (which would be nice because then I could do friction too).

I tried fixed point variables (wasted an extra precious variable) in the latest Pac-Man-like program I was messing around with and then discovered that the following would do the same as the fixed point variables I was using:

rem  *  3=fastest, pcount+2=medium speed, and pcount+1=slowest speed
  if joy0fire then pcount=3 : goto skippcount
  pcount=pcount+2
skippcount

  if pcount>2 then goto movep
movepdone

That saved a precious variable. (Since pcount never goes over 15, I could also turn it into two nybble variables and end up with an extra variable instead wasting two full variables doing the fixed point thing.) MausGames mentioned something not that many weeks ago that he simulated fixed point variables and what I did must be the same kind of thing he does.


What I'm also really in the market for is a good bB bankswitching tutorial... right now I'm cramming the entire game (sans title screen and sprite graphics) into a single bank. I'm working on slimming down the current demo code, but it it seems that even at its most optimized it's going to need about 3000 bytes to run, which doesn't leave much room for things like collisions, enemy behaviors, player inventory, etc. But of course, when I try to dump some functions into another bank, the program compiles into some insane Dada-esque nightmare. Do you know of any good bankswitch threads?

I haven't moved up to bank switching yet, so I haven't added any extra info to the bank switching section of my version of the bB page. The following post by SeaGtGruff seems to explain a lot about bankswitching:

http://www.atariage....s...t&p=1456132

If that post helps you, please let me know which parts were helpful and I'll add the info to the bB pages since SeaGtGruff has said that I can use anything he posts.

#11 yuppicide OFFLINE  

yuppicide

    I am the Black Knight. Give me your money!

  • 6,933 posts
  • Location:New Jersey

Posted Sun Sep 28, 2008 12:39 PM

Just got a chance to check this out today. It's freakin great! That thing on the first stage looks like the Purple Tenticle (was it purple?) from the Maniac Mansion type games.

#12 jrok OFFLINE  

jrok

    Stargunner

  • Topic Starter
  • 1,155 posts

Posted Wed Oct 1, 2008 7:29 AM

Just got a chance to check this out today. It's freakin great! That thing on the first stage looks like the Purple Tenticle (was it purple?) from the Maniac Mansion type games.


Thanks man! LOL, I think there was actually a green one AND a purple one.

#13 Random Terrain OFFLINE  

Random Terrain

    Visual batari Basic User

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

Posted Wed Oct 1, 2008 7:34 AM

What are you doing to get three multicolored characters on the screen where one doesn't flicker at all and the other two don't seem to flicker that much? That seems like a useful thing to know how to do.

#14 jrok OFFLINE  

jrok

    Stargunner

  • Topic Starter
  • 1,155 posts

Posted Wed Oct 1, 2008 9:40 AM

What are you doing to get three multicolored characters on the screen where one doesn't flicker at all and the other two don't seem to flicker that much? That seems like a useful thing to know how to do.


Well right now I'm just using the playercolors player1colors option in the standard kernel, and using 30hz flicker for player1 to draw the two enemies.

gameloop

fspeed = fspeed + 1
 if fspeed=6 then gameFrame=gameFrame + 1 : fspeed=0
 if gameFrame = 8 then gameFrame = 0

 temp1 = fspeed & 1
 
updateHero
 player0x=x :  player0y=y
 gosub Hero

updateObs
 gosub AssignObs

 if temp1 then updateSprite2

updateSprite1
 temp1 = gameFrame & 3
 gosub Sprite1
 goto DrawFrame

updateSprite2 
 gosub Sprite2

DrawFrame
 drawscreen

 goto gameloop

So in the above, I set up a framerate (fspeed) that cycles at an interval of 6, and a flicker rate (gameFrame) that cycles at an interval of 8 and then use temp1 to determine whether the current loop is even or odd to update the approriate sprite.

In the "Hero", "Sprite1" and "Sprite2" subroutines, I do all of the marlarkey to update their x, y, collisions, etc, and also include some animation subroutines for each. For example

Hero
if...goto HeroStand
if...goto HeroKneel
if...goto HeroLoop

Sprite1
if...goto MutantLoop
if...goto TentacleLoop
if...goto OffScreen

Then I made all of my sprites right now have 8 frames of animation, whether the shape was actually "animating" or not.

HeroLoop
 temp3 = gameFrame 
 on temp3 goto Hero0 Hero1 Hero2 Hero3 Hero4 Hero5 Hero6 Hero7

MutantLoop
 temp2 = gameFrame 
 on temp2 goto Mutant0 Mutant1 Mutant2 Mutant3 Mutant4 Mutant5 Mutant6 Mutant7

TentacleLoop
 temp2 = gameFrame 
 on temp2 goto Tentacle0 Tentacle1 Tentacle2 Tentacle3 Tentacle4 Tentacle5 Tentacle6 Tentacle7

OffScreen
 temp2 = gameFrame 
 on temp2 goto OffScreen0 OffScreen0 OffScreen0 OffScreen0 OffScreen0 OffScreen0 OffScreen0 OffScreen0

There are probably be better, cleaner ways to do this, but I found this has worked pretty good for me so far. At first I experimented with the bB multisprite kernel for awhile, but it seemed a little limited for what I wanted to do both visually and in terms of gameplay (though I think it would be great for a fast and furious two-player game).

Eventually I'll be flickering player0 as well, and probably do away with player colors and flicker a multicolor player sprite and up to one multicolor enemy or item, then use player1 to flicker two monotone enemies/items. The good news is that right now when I have the phospor turned up at 70 or above in x26 or Stella, there's absolutely no flicker at all, which is pretty neat to look at.

Edited by jrok, Wed Oct 1, 2008 9:41 AM.


#15 Piggles OFFLINE  

Piggles

    Chopper Commander

  • 106 posts

Posted Wed Oct 1, 2008 9:47 AM

Jrok this is fantastic! The demo was more fun than many games. It reminds me of Xenophobe, except that your game is fun.

What else do you plan the hero to do in this game? If you gave up missiles for the multi-color graphics, you still will have a ball. And since you seem to do flickering really well, that gives you two balls.... :D

#16 Snider-man OFFLINE  

Snider-man

    Stargunner

  • 1,987 posts
  • Doofenshmirtz Evil Incorporated

Posted Wed Oct 1, 2008 10:48 AM

And since you seem to do flickering really well, that gives you two balls.... :D

Heh.

#17 jrok OFFLINE  

jrok

    Stargunner

  • Topic Starter
  • 1,155 posts

Posted Wed Oct 1, 2008 11:35 AM

Jrok this is fantastic! The demo was more fun than many games. It reminds me of Xenophobe, except that your game is fun.

What else do you plan the hero to do in this game? If you gave up missiles for the multi-color graphics, you still will have a ball. And since you seem to do flickering really well, that gives you two balls.... :D


Thanks Piggles!

I'm working hard at a new version of this. When I reviewed my code I realized I was doing some things in a pretty boneheaded way. In the next build everything will move much faster, and I've implented gravity and a jump function for the hero.

In total, I am trying to have a maximum of 6 objects per room (platforms, walls, doors or transporters) drawn out of my data array. Also some transporter pads will (hopefully) not just take him up and down, but also sideways and room-to-room. The problem I'm trying to solve right now was that in the original, I was serializing the playfield objects individually, instead of doing them on the fly with one function (that's also what was making everything update soooo sloooooowwww).

As soon as I get that solved, I'll probably add a shoot function for the hero (using the ball). At that point, I'll likely be all out of ROM in my main game bank, and will need to learn bank-switching to proceed with development.

By the end, I hope to have the hero do the following:
- Draw and holster his laser pistol (to switch between jumping and shooting)
- Select items from an inventory screen and use them (keys, shields, gadgets, etc)
- Tuck and roll to dodge things while on the move
- Interact with non-enemy sprites and background objects when he stands on their active x,y position.
- Die!

It's a lot to jam in, but I guess the whole thrust of my experiment is, once I get my map array working the way I want, to write a little level editor in some other language to see if I can make designing this sort of game simpler.

#18 Random Terrain OFFLINE  

Random Terrain

    Visual batari Basic User

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

Posted Wed Oct 1, 2008 1:26 PM

There are probably be better, cleaner ways to do this, but I found this has worked pretty good for me so far. At first I experimented with the bB multisprite kernel for awhile, but it seemed a little limited for what I wanted to do both visually and in terms of gameplay (though I think it would be great for a fast and furious two-player game).

Eventually I'll be flickering player0 as well, and probably do away with player colors and flicker a multicolor player sprite and up to one multicolor enemy or item, then use player1 to flicker two monotone enemies/items. The good news is that right now when I have the phospor turned up at 70 or above in x26 or Stella, there's absolutely no flicker at all, which is pretty neat to look at.

Thanks. Before I saw the game you're working on, I tried to have more enemies on the screen using the standard kernel, but no matter what I tried, it flickered too much. I could stand the type of flicker that you're game has, though. It doesn't make me want to rip my eyeballs out. I'll do a test demo after I'm done with the new VbB page.


Thanks again.

#19 jrok OFFLINE  

jrok

    Stargunner

  • Topic Starter
  • 1,155 posts

Posted Wed Oct 1, 2008 1:57 PM

Thanks. Before I saw the game you're working on, I tried to have more enemies on the screen using the standard kernel, but no matter what I tried, it flickered too much. I could stand the type of flicker that you're game has, though. It doesn't make me want to rip my eyeballs out. I'll do a test demo after I'm done with the new VbB page.

Thanks again.


No problem. I plan on posting my BAS file for this as soon as I can get the next build done. As I was telling someone else it moves really slowly in the currently posted build because of the way I was testing collisions. It's much "peppier" with the way I'm doing things now, and a lot more flexible in terms of how the map data is structured. I also included gravity and a jump for the next build, so if I can get the map functions solid it might be the beginning of a halfway decent platform-game engine.

#20 jrok OFFLINE  

jrok

    Stargunner

  • Topic Starter
  • 1,155 posts

Posted Fri Oct 3, 2008 6:12 PM

Okay, I have a heavily revised build. I go into a bit more depth about the changes on my blog, but here's the basic rundown:

  • Flickering four sprites at 30hz (no visible flicker with phospor in Stella or x26)
  • Generalized room drawing function to build objects from the data set no matter what order they are written in (which is key for building my level editor, as well as saving tons of ROM)
  • Limited the max number of room objects to 5 (whilst fishing for extra variables, of course!
  • Included semi-natural gravity and a "Jump" function for joyfire0, thanks to more awesome help from the amazing Mr. SeaGtGruff.
  • Monsters now recognized floors and walls, turning around if they bump a wall or reach the edge of a platform.
  • I took the teleporters out of this build so I could focus more on streamling my map drawing and flickering 4 sprites.

I optimized my code extensively, and this build moves much, much faster/smoother than my original newbie effort. However, I only have 33 bytes left in my game bank and I maxed out all my supercharger variables on this build, so for the next build I will definitely have to use extensive bit operations and *some* sort of bankswitching.

EDT: Whoops, wrong BIN. New one attached.

Attached Files


Edited by jrok, Fri Oct 3, 2008 6:28 PM.


#21 Random Terrain OFFLINE  

Random Terrain

    Visual batari Basic User

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

Posted Fri Oct 3, 2008 7:20 PM

That's a better speed. I don't feel like I'm stuck in molasses anymore. I noticed how your character flickers on the first screen, even when there is only that red bad guy on the screen, but if you go to the second screen and two bad guys are on the screen with you, your character doesn't flicker at all. I wonder why?

#22 Piggles OFFLINE  

Piggles

    Chopper Commander

  • 106 posts

Posted Fri Oct 10, 2008 11:12 AM

Okay, I have a heavily revised build. I go into a bit more depth about the changes on my blog, but here's the basic rundown:

  • Flickering four sprites at 30hz (no visible flicker with phospor in Stella or x26)
  • Generalized room drawing function to build objects from the data set no matter what order they are written in (which is key for building my level editor, as well as saving tons of ROM)
  • Limited the max number of room objects to 5 (whilst fishing for extra variables, of course!
  • Included semi-natural gravity and a "Jump" function for joyfire0, thanks to more awesome help from the amazing Mr. SeaGtGruff.
  • Monsters now recognized floors and walls, turning around if they bump a wall or reach the edge of a platform.
  • I took the teleporters out of this build so I could focus more on streamling my map drawing and flickering 4 sprites.

I optimized my code extensively, and this build moves much, much faster/smoother than my original newbie effort. However, I only have 33 bytes left in my game bank and I maxed out all my supercharger variables on this build, so for the next build I will definitely have to use extensive bit operations and *some* sort of bankswitching.

EDT: Whoops, wrong BIN. New one attached.


I notice when I press down and left, I turn into the red bouncy thing. Is that a feature or a bug?

I still think this is more fun than Xenophobe.

#23 jrok OFFLINE  

jrok

    Stargunner

  • Topic Starter
  • 1,155 posts

Posted Mon Oct 13, 2008 10:29 AM

I notice when I press down and left, I turn into the red bouncy thing. Is that a feature or a bug?

I still think this is more fun than Xenophobe.


Heheh, yup that was a bug. Thanks, man, I think I squashed it now. I also added a few new things, including a Spaceship (for escaping the game, eventually). Check it out.

Attached Files



#24 gambler172 OFFLINE  

gambler172

    River Patroller

  • 3,082 posts
  • none
  • Location:germany

Posted Mon Oct 13, 2008 1:07 PM

Hi Jrok
This looks really great.Hope you can finish it.
greetings Walter

#25 lucifershalo OFFLINE  

lucifershalo

    River Patroller

  • 2,903 posts
  • Location:Belgium

Posted Mon Oct 13, 2008 3:36 PM

wow, it is simply amazing the animation of your characters (hero and monsters) are awesome
please please please
dont give up this project




0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users