Jump to content
IGNORED

For...Next - Design Journal: "Armageddon Complex", Build 0.5


RSS Bot

Recommended Posts

"Batari is a cold mistress, and colder than a witches teat."

"-Joe Shakespeare"

 

As usual, I've spent the majority of this latest build learning how completely un-brilliant my previous ones were.

 

Like most programmers here, my dream has always bee to put the final game on cartridge. Unlike most programmers here, I completely misunderstood and/or ignored the debug data I was seeing in Z26 and Stella. After a humiliating "crash" course in scanline theory, I finally get it. All of my offscreen collision detection was causing the program going way and wildly out of scan. It was leaping to values like 354, 7, 267, etc. I was crushed, and worried that I'd have junk the entire strategy.

 

I conducted a bunch of doomed experiments with alternate methods or steering offscreen monsters, but almost all of them were unwieldy and/or equally scan-intensive. Finally, I decided I greatly preferred the original method of scanning the map array for walls and floors, and decided to revisit it to see if I could just figure out a way to get the scanline under control. My approach depended on breaking up the main gameloop into 4 routines, and testing for only 3 array objects per Sprite in any given frame.

 

It sort of suceeded. I say sort of, because there a still a few bumps and clicks. For the most part, things stay at a contant 262 scanlines per frame. This only changes when:

  • Both a sprite and the player collides with a wall simultaneously (267 scanlines)
  • The player leaves a room (343 scanlines, 7 scanlines)

 

Obviously, I have some more work to do. But since I don't feel completely out of my depth now in terms of controlling scan, I decided to sally forth and add a few new things to this build:

 

  • A DrawEnemies routine that runs at the beginning of the level, placing enemies in rooms as defined by a new array called "spritemap." So sprites 1 and 2 are no longer statically defined before gameplay, but are classified and placed at runtime.
  • A large Spaceship graphic. Basically, this is what will appear in the first room of any new game. Besides being a visual detail, the ship will serve the functional purpose of being your getaway car if you are able to locate the station's self destuct switch, or if you just chicken out and want to tally your score.
  • An additional object type in the map array for defining and placing sprite3. Right now, this draws the Spaceship in room 1, the blinking pylon lights in room 3 and the little red doodad in room 4. As Sprite 3 will be my non-moving "utility" sprite, I will use this method to draw things like teleporter pads, gun turrets, ladders, computers, etc.

 

Next up, figuring out how to track and update more then two enemy sprites at once....

 

 

 

Attached File(s)

 

bin.gif

AC_a0_8.bas.bin ( 32K )

Number of downloads: 0

 

 

 

 

http://www.atariage.com/forums/index.php?a...;showentry=5367

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...