New Old Things

Profile
Right behind you
Musings of a hobbyist
103 comments
7 followers
104 entries
Advertisement
Endurion
February 25, 2012
A C64 Game - Step 43

And another two new enemies, Frankenstein's monster and a slime.



Frankenstein's monster behaves very much like zombies, but is a bit stronger.
 

;------------------------------------------------------------
;simply walk left/right, do not fall off
;state 128 = invisible
; 1 = rising
; 0 = moving…
3,247 views
Endurion
February 18, 2012
A C64 Game - Step 42

So after a break last week we carry on. There were even more enemy sprites created, so here we go. New are the floating ghost and the fly.



The floating ghost is homing in on the player, but currently blocked by platforms downwards. To amend this we add a new routine. It's a clone of ObjectMoveDownB…

3,090 views
Endurion
February 04, 2012
A C64 Game - Step 41

Finally: A very talented chap volunteered to create imagery for the game. Lots of decent sprites and chars were created.
To celebrate there's also a slew of new enemies:

Wolfman
Eye
Jumping toad
Ghost skeleton



Code wise this is mainly add the sprites to the binary include and the new behaviours. As…

3,268 views
Endurion
January 28, 2012
A C64 Game - Step 40

And onwards we go. This time we add spawn spots. These are a different kind of object which spawn a number of one specific enemy type. The level is clear once all enemies are killed and any existing spawn spots are empty.



In case you wonder about the .C64 file inside there: It's a project file for …

3,091 views
Endurion
January 21, 2012
A C64 Game - Step 39

And now technically a rather small step, but with huge impact: Music.

For now we're using a demo song from GoatTracker. GoatTracker is a PC tracker tool that lets you compose songs and provides the player source. It's most common for music players to be stored at $1000. Since musicians on the C64 u…

3,311 views
Endurion
January 14, 2012
A C64 Game - Step 38

Now this is one huge step that took me a week to implement: A second player. Can't have Supernatural with only Dean, now there's Sam as well.

In the title screen, press up to toggle game modes (single Dean, single Sam, coop). Note that Sam does not use a shot gun, he uses his dark powers.



We start …

3,032 views
Endurion
December 31, 2011
A C64 Game - Step 37

Currently the player is simply vanishing when getting killed. Kinda looks odd, doesn't it? We add a nice new animation and then send the player back in.



First we remove the previous player kill code (which removed the sprite and displayed a GET READY message) and replace it with this.
Note that we …

3,385 views
Endurion
December 17, 2011
A C64 Game - Step 36

I called this one "Satisfaction Refinement". Enemies when shot are hit back for a few steps, it's a shotgun after all, dammit!
On their final blow enemies now burst in smoke.



For the smoke/explosion we'll add a new object type:

SPRITE_EXPLOSION_1 = SPRITE_BASE + 47
SPRITE_EXPLOSION_2 = SPRITE_BASE +…
3,062 views
Endurion
December 10, 2011
A C64 Game - Step 35

And onwards we go. Enemies now get an annoyed state once they got hit. For some enemies annoyance is even increasing. And to top it off, a new jumping spider enemy was added.



Adding the new enemy follows the common pattern we've seen in earlier steps.

Add new constants:

SPRITE_SPIDER_STAND = SPRITE_…
3,667 views
Endurion
December 03, 2011
A C64 Game - Step 34

And another refinement step:
Two new items are added, one for faster reload, another for temporary invincibility. Also, not every kill is getting you an item to collect.



The most interesting new part is the state of a sprite. For now only used for the player, but will be put to good use for enemies…

2,957 views
Endurion
November 26, 2011
A C64 Game - Step 33

More refinement in this step. This step marks a design change in gameplay. Before the game was planned to be more survival based, with enemies that hunt you about. Beginning with this step the game play gets more Bubble Bobble like.


For one the zombies are changed. Their animation is enhanced and t…

2,918 views
Endurion
November 19, 2011
A C64 Game - Step 32

A completely unspectacular step, but necessary every now and then anyhow: Bug fixing.


During the last few steps several bugs cropped up that are being addressed now:

o Items could appear outside the play area (in the border)
o On respawn/restart the shells are filled to the max
o On respawn the pla…

3,027 views
Endurion
November 12, 2011
A C64 Game - Step 31

And another rather unspectacular step: Just a bunch of new stages. Things do get prettier once the editor is used. Currently stages are assembled manually



The code changes are rather unspectacular. Since the framework is already in place adding new levels is nothing more than adding the level data…

2,853 views
Endurion
November 05, 2011
A C64 Game - Step 30

And a new cosmetic refinement, high score name entry. Now the entry is done on a title screen like layout, with a blinking cursor as well.

This requires setting the screen up similar to the title screen (with the raster split between bitmap logo and text mode).



Now it pays off that we had the IRQ i…

2,910 views
Endurion
October 29, 2011
A C64 Game - Step 29

And yet another cosmetic step. The highscores receive a nice color warp. Pretty easy to implement, on every frame simply exchange the color bits where the score is displayed, and voila!




First setup up the fade counter in front of the TitleLoop:

          ;init color fade counter
          lda #0
   …
3,056 views
Endurion
October 22, 2011
A C64 Game - Step 28

The levels are currently rather ermm. sparse. Remember that a screen is built by several primitve types. To get things rolling a few new building types are added:

Namely a character/color area, an alternating line horizontally and vertically (alternating means toggling the characters +1/-1) and a q…

3,141 views
Endurion
October 15, 2011
A C64 Game - Step 27

Actually a rather simple step, but with a few new changes.

We're adding a new enemy, a bat, that once shot, hides. And randomly reappears to attack you, only to vanish again.



The first problem:

The bat vanishes. However not the object. To tackle that an empty sprite was added to the sheet. This mak…

3,045 views
Endurion
October 08, 2011
A C64 Game - Step 26

More gameplay action, whee!

We add a new enemy, the beloved zombie. The zombie can appear from underground, walks about slowly, and if shot, dives in the ground again.

And while underground the zombie will move about. With the effect, that the zombie will probably appear some where else, not where …

3,166 views
Endurion
October 01, 2011
A C64 Game - Step 25

Time to spruce up the title screen again.


This time we split the title screen display, upper part will be a bitmap logo, lower path text mode.



Some clarification: The graphic chip of the C64, the VIC II, has some neat features. It displays line per line whatever mode currently is set. This means, w…

3,989 views
Endurion
September 24, 2011
A C64 game - Step 24

What use are highscores if they aren't saved?

With this step highscores are saved and loaded from your previously used medium (tape or disk). On startup the currently used medium is stored, save and load is done via bog standard kernal routines.

The additions for this are rather miniscule. Both save …

3,698 views
Endurion
September 17, 2011
A C64 game - Step 23

Highscore display is all nice and dandy, but we want to see our score and name in there! So this step adds name entry. For this we rely on the Kernal (it's with 'a' on the C64) functions to read the pressed keys from the keyboard.

Adding to the score moving we find the spot for the name, shift all …

3,688 views
Endurion
September 10, 2011
A C64 game - Step 22

The title screen looks somewhat empty, doesn't it? Well, let's fill it with highscores! Lazy as I am I'm storing the highscore scores and names in two separate texts which are simply displayed with the common display routine.

After Game Over we check for a new spot. If we manage to enter the list a…

3,899 views
Endurion
September 03, 2011
A C64 game - Step 21

Now some more tidbits. A game is not complete without a neat title screen:


For now this is nothing more than a almost empty screen and a separate control loop. The loop simply waits for a button press and then jumps to the game main loop. Once the player lost all lives he is returned to the title l…

3,855 views
Endurion
August 27, 2011
A C64 game - Step 20

More refinement, this time with more impact on the gameplay. For one, the shotgun needs to be reloaded (stand still) and the collected items now also have an effect. Namely a new bullet slot and invincibility.



Adding the reload part is done with the following code piece. If the joystick is not move…

3,648 views
Endurion
August 20, 2011
A C64 game - Step 19

Nothing really new this time, just constant use of existing parts. A new enemy, some sort of mummy, which slowly walks back and forth. And takes a few more hits than the bats.

It's a new behaviour added to the table and some extra code that checks for gaps before walking.


Adding the enemy itself is …

3,620 views
Endurion
August 13, 2011
A C64 game - Step 18

This time we add some enemy animation and a path based movement enemy type. The movement path is stored in a table of delta X and delta Y values. Values with the highest bit set are treated as negative.

The animation of the bat is also stored in a table (it's a simple ping pong loop).

Every objects…

4,191 views
Endurion
August 06, 2011
A C64 game - Step 17

Another rather small step, but visually pleasing. We're enhancing the player sprite with animation and better jump abilities.

All the hard work is added to PlayerControl. On every movement we update the sprite while checking the player states like jumping, recoil, falling, etc. Suddenly things look…

4,763 views
Endurion
July 30, 2011
A C64 game - Step 16

Now for some rather small addition, which however feels like a bigger step: Score/Live/Level display.

We already have a text display function, so we add a new default text for the display with initial 00000 values. Note that the score doesn't fit into a byte easily. We only update the numbers on th…

4,278 views
Endurion
July 23, 2011
A C64 game - Step 15

Now we start with a few game essentials: Progressing to the next level.


Not too complicated. We keep a counter of enemies alive (NUMBER_ENEMIES_ALIVE) which is initially set to 0. Since we already have a lookup table IS_TYPE_ENEMY we simply add a check inside AddObject. If the new object is an enem…

4,300 views
Endurion
July 16, 2011
A C64 game - Step 14

And onwards we go. Picking up items showed a new problem. When an item is picked up we want the background behind restored (plus the item characters should not cut holes into the play field, allowing the player to fall through floors).

In the end I decided to have a second back buffer screen that c…

4,498 views
Advertisement

Popular Blogs

shawnhar
Generalist
101 Entries
9 Followers
15 Entries
10 Followers
johnhattan
Programmer
1,277 Entries
47 Followers
ApochPiQ
Generalist
628 Entries
44 Followers
dgreen02
Generalist
338 Entries
56 Followers
Advertisement