Jump to content

Photo

Charge!


201 replies to this topic

#1 jrok OFFLINE  

jrok

    Stargunner

  • 1,149 posts

Posted Tue Jul 19, 2011 4:20 PM

Hey gang,

Haven't signed on in a long while, but I thought I'd share an early demo of what I've been working on. This is a DPC+ kernel adaptation of a project I started a few years ago, although I think this version is different enough to constitute an entirely different game. I'll include the instructions in this first post, and update them with each build.




CHARGE!

by J.D. Kitchen




THE STORY:

The kingdom of Nirata is under attack! Armed with your lance, your bow and your trusty steed, you must defend the realm from the relentless hordes of soldiers, horsemen and fire-breathing dragons.

Patrol the road that encircles your kingdom, using your arrows to slay the dragons in the sky and footmen advancing through the fields. But beware the dragons' fiery breath, the lances of enemy knights, and other deadly hazards and foes which may befall you.



PLAYING THE GAME

Your objective is to destroy marauding Dragons, Wizards and other foes while defending your Castles from harm. You begin the game with three Castles and three Paladins to defend them with. Each Paladin comes equipped with Armor that is gradually depleted by enemy attacks, a Lance for jousting Knights and a magic bow that can fire an unlimited number of arrows into the sky. The number of remaining Armor Points and Paladins is displayed at the bottom of the screen, along with the player's current score.

Use the left joystick to maneuver your Paladin's horse around the dark gray road area. The road is a loop around the kingdom, so moving in one direction long enough will bring you back to where you started. Pressing the joystick's fire button will draw your bow, and releasing it shoots an arrow into the air on a slight forward arc. If you hold the joystick left or right while holding down the fire button, your horse will charge at a fast gallop. Your galloping Paladin will automatically engage his Lance, making it possible for you to kill advancing enemy knights.

Charge! includes multiple attack waves. In each wave, you must first clear the sky of enemies and then destroy any enemies that remain on the road. After the road is cleared of enemies, there will be a brief interlude, during which your castles and armor are repaired slightly, and any bonus men you earned during the wave are applied. After the interlude, the next wave begins, gradually increasing the challenge to the player.

You score points whenever you kill a Dragon, with various breeds earning different point values. As waves progress, you will meet sturdier, faster, and deadlier breeds. You can also score points by killing any other enemy as long, as all of your Castles are still intact. Some waves feature special foes who must be defeated to advance, with unique rewards for doing so.

When a Paladin's Armor Points are fully depleted, the current hero dies. A new one will appear until all your remaining Paladins are lost.

At the beginning of each new wave, the kingdom will fortify itself for the next attack in the following ways:
  • Your Paladin will recover an Armor Point for each surviving Castle.
  • At 500 points, you will recieve a bonus Paladin
  • Each of your surviving Castles will undergo repairs, recovering eight hit points per round.
  • If a Castle was destroyed in the previous wave, the flaming ruins will be extinguished. The Castle's smoking rubble will be able to be rebuilt after the conclusion of the current wave.
The game ends either of the following conditions:
  • You have lost all your remaining Paladins.
  • All of your Castles are destroyed and the current Paladin dies.
Press [Reset] or the left joystick fire button to begin a new game.




CONTROLS:

Joystick - Move horse in 8 directions along the road.
Press Fire Button - Draw bow.
Release Fire Button - Shoot arrow.
Hold Fire Button and Joystick Left/Right - Charge!




SCREEN LAYOUT:


Posted Image
A. Paladin
B. Dragon
C. Dragon's Breath
D. Bats
E. Castle
F. Foot Soldier
G. Knight
H: Armor Remaining
I: Remaining Paladins
J: Score




GAME OBJECTS


THE KINGDOM

The Paladin
Posted Image
The player's Paladin can attack enemies in the fields and the skies by shooting arrows at them, and attack enemies on the road by charging them with his Lance. Arrows can be shot at any time by pressing and releasing the fire button, but the Lance can only be used when the Paladin's horse is moving at full speed. A charging maneuver increases the top speed for the duration that the player holds down the fire button while pressing the joystick in left or right direction. If a player switches the joystick direction mid-charge, the Lance will become inactive again until the horse achieves maximum speed in the new direction. Each Paladin can receive seven wounds before death, indicated by the red bars on either side of the score. A Paladin will heal one Armor Point per Castle that survives a wave.

The Castles
Posted Image Posted Image Posted Image
The primary goal of the game is to defend your kingdom's three Castles: Purple, Yellow and Red. As each Castle takes damage from Dragons and Footmen, it becomes shorter. When its last hit point is lost, it becomes a Flaming Ruin. At the conclusion of each wave, surviving Castles are repaired slightly, while Flaming Ruins turn into Smoking Rubble. Smoking Rubble can be rebuilt into a Castle at the end of the next wave.

Castle Damage States:
Posted Image Posted Image Posted Image

Princesses
If you can defend a Castle well enough, a Princess will appear at the top of it during the Repair Phase. If a Dragon swoops down and captures a Princess, it will attempt to bring her to the top of the screen for a quick snack. Shoot the beast before suppertime, and then rescue the falling damsel for bonus points.
Posted Image Posted Image Posted Image



ENEMIES

Dragon
Posted Image Posted Image
Dragons are the player's primary foe. Sweeping down from the sky, they attempt to bathe the player's Paladins and Castles in flames. There are several breeds of Dragon, distinguished by different colored hides and varying abilities. Dragons travel in packs of between 1 and 5 per wave, attacking the kingdom one at a time. When all the Dragons in the current pack have been slain, the game progresses to the next wave.

Footman
Posted Image Posted Image
Foot Soldiers of various armies and tribes will charge upon the fields to lay siege to your castles. They vary in uniform, speed, number (not implemented yet) and attack strength, but they all share the same purpose: to burn your Castles to the ground! Dispatch them with your arrows, yea, verily.

Bats
(Not implemented)
Posted Image
These flying pests patrol the skies in swarms, attacking any Castles they find along the way.

Knight
Posted Image
Renegade Knights prowl the road, looking to make a name for themselves... by writing it in your Paladin's blood. These horsemen will challenge you continually as you protect your Castles from other foes. To defeat them, look for signs of their approach on the battlefield, align your Lance with theirs, and charge!

Grendel
Posted Image
These large, bloodthirsty monsters occasionally are lured from their lairs by the smell of the Paladin's blood. Grendels have thick hides that are impervious from attack, unless you can locate their weak point. If that wasn't bad enough, they will sometimes lurk just out of your reach alongside the road, and they require two direct lance hits to defeat.

Wizard
Posted Image
The Evil Wizard sails through the skies, wreaking destruction with big blasts of mystical energy. He is a tricky target to hit, and sometimes will use a barrier of green mist to protect himself from your arrows.


TERRAIN
Posted Image Posted Image




TIPS:
  • .
  • Listen to the sound of the Dragon's fire and the Soldier's sword to track your enemies' positions (louder equals closer; quieter equals farther away).
  • If one of your Castles is successfully attacked, you will hear an explosion sound.
  • Your bow fires Arrows on a slight forward angle, so try to anticipate a Dragon's movements when firing at one. A good tactic is to try to keep your horse in motion and either match the Dragon's speed or charge beneath it while firing.
  • Enemy Soldiers roam the fields beyond the road, laying siege to any Castle they find. Kill them on sight whenever possible.
  • When a Lance appears on the road at either side of the screen, it means that an enemy Knight is close. The longer the Lance is, the closer the Knight is to your current position.
  • When charging, try to align your Lance to the enemy Knight's Lance to defeat him in a joust. The closer you are to aligning with Enemy Knight's path when you clash, the more likely you are to kill him, and avoid injury yourself.
  • As the waves proceed, Dragons will become faster, more damaging and more durable, sustaining multiple bow hits before death. Enemy Soldiers and Knights will also become faster, stronger and more aggressive as waves progress.
  • Dragons are primarily concerned with destroying your Castles, but with a little coaxing you can lure them away with your Paladin, and get them to come after him instead.
  • You begin the game with three lives (represented by the series of vertical bars next to the the score area). The red bars on either side of in the score represents the current Paladin's Armor Points. Each of your Paladins can sustain seven wounds (either from dragon fire or jousts) before death, at which point a new Paladin is re-spawned at the nearest Castle. If all three Castles are destroyed (either flaming of smoking) and the current Paladin is killed, the game immediately ends, even if more lives are left in reserve.
  • At the conclusion of each wave, each surviving Castle will be rebuilt slightly. If a Castle is destroyed before the end of the wave, you will have to complete an additional wave to wait for the flames to die out and turn into smoke before it can begin being repaired again.
  • Beware of Giant Dragons, Evil Wizards and other powerful foes.
  • The final wave in this demo will repeat until the player loses the game.




Playing in an Emulator:

Since this is DPC+, you'll have to play using the latest Stella build (3.4.1). I'd suggest setting Options> Game Properties>> Display>>> Use Phosphor to "On" (77%) to compensate for flicker.




Playing on Harmony:
I'd be curious to know how the flicker is looking on TVs when both the Paladin and the Knight are on screen.


----
I've deleted all other archived versions, and will start labeling releases with dates from now on. Thanks for any feedback, bug reports or ideas you have to offer. High Scores would also be appreciated, so I can gauge the level of challenge.

Cheers,
Jarod

Newest Version:
Attached File  ChargeDPC_090211.bas.bin   32KB   154 downloads

Edited by jrok, Sat Sep 3, 2011 1:09 PM.


#2 ScumSoft OFFLINE  

ScumSoft

    Moonsweeper

  • 348 posts
  • Location:Polysorbate 60

Posted Tue Jul 19, 2011 4:58 PM

Very nice improvements!

#3 GroovyBee OFFLINE  

GroovyBee

    Games Developer

  • 7,810 posts
  • Busy bee!
  • Location:North, England

Posted Tue Jul 19, 2011 4:58 PM

Glad to see you still plugging away at this.

#4 Byte Knight OFFLINE  

Byte Knight

    Dragonstomper

  • 566 posts
  • Robinett Rules!
  • Location:Waconia, MN

Posted Tue Jul 19, 2011 7:02 PM

Very nice graphics and animation. Great job with the sounds as well!

#5 RevEng ONLINE  

RevEng

    River Patroller

  • 3,349 posts
  • bit player
  • Location:Canada

Posted Tue Jul 19, 2011 9:44 PM

Beautiful animations as usual, and a great update all around jrok!

#6 Philsan OFFLINE  

Philsan

    River Patroller

  • 2,762 posts
  • New Orleans Saints Super Bowl XLIV Champions
  • Location:Switzerland

Posted Wed Jul 20, 2011 5:23 AM

Excellent Jarod!

I tested it (PAL console + Harmony cart).

All perfect but when the evil knight appears the flicker is too much (IMHO).

After a while vertical strips appears from the top.

#7 jrok OFFLINE  

jrok

    Stargunner

  • Topic Starter
  • 1,149 posts

Posted Wed Jul 20, 2011 10:23 AM

Excellent Jarod!

I tested it (PAL console + Harmony cart).

All perfect but when the evil knight appears the flicker is too much (IMHO).

After a while vertical strips appears from the top.


Thanks, Philsan. Curious about the strips. Could you describe these more?

Not sure what to do about the flicker, except maybe fool with the color a little. It's 30hz now, so I don't see how it could get much better than that. I guess the only thing I could do is revise the knights' graphics to 8-wide single sprites to eliminate the flicker... which I'd hate to do because I was fairly pleased with the look of the big, multicolored horsies. :(

Edited by jrok, Wed Jul 20, 2011 10:26 AM.


#8 jrok OFFLINE  

jrok

    Stargunner

  • Topic Starter
  • 1,149 posts

Posted Wed Jul 20, 2011 12:47 PM

Very nice improvements!


Thanks!

#9 jrok OFFLINE  

jrok

    Stargunner

  • Topic Starter
  • 1,149 posts

Posted Wed Jul 20, 2011 12:49 PM

Glad to see you still plugging away at this.


Cheers, GroovyBee. I kept tinkering with other projects, but Charge is really the game I've really been itching to finish.

#10 jrok OFFLINE  

jrok

    Stargunner

  • Topic Starter
  • 1,149 posts

Posted Wed Jul 20, 2011 12:51 PM

Beautiful animations as usual, and a great update all around jrok!


Thanks RevEng! If the flicker for the jousting portions is too distracting, I may have to downgrade the graphics a bit unfortunately.

#11 Philsan OFFLINE  

Philsan

    River Patroller

  • 2,762 posts
  • New Orleans Saints Super Bowl XLIV Champions
  • Location:Switzerland

Posted Wed Jul 20, 2011 12:54 PM

Three (or four I don't remember exactly) big strips grow from the top to the bottom of the screen, one after the other, from left to right, building a "cage".
After a while the screen becomes green.

#12 jrok OFFLINE  

jrok

    Stargunner

  • Topic Starter
  • 1,149 posts

Posted Wed Jul 20, 2011 1:01 PM

Three (or four I don't remember exactly) big strips grow from the top to the bottom of the screen, one after the other, from left to right, building a "cage".
After a while the screen becomes green.


Hmmm, that doesn't sound very good. I initially thought it might be a PAL thing, but now it sounds like a memory leak of some sort. Do the strips appear over the sprites? Are they green or red? And when the screen turns green, is that because the strips have filled it?

Thanks,
J

#13 Philsan OFFLINE  

Philsan

    River Patroller

  • 2,762 posts
  • New Orleans Saints Super Bowl XLIV Champions
  • Location:Switzerland

Posted Wed Jul 20, 2011 1:27 PM


Three (or four I don't remember exactly) big strips grow from the top to the bottom of the screen, one after the other, from left to right, building a "cage".
After a while the screen becomes green.


Hmmm, that doesn't sound very good. I initially thought it might be a PAL thing, but now it sounds like a memory leak of some sort. Do the strips appear over the sprites? Are they green or red? And when the screen turns green, is that because the strips have filled it?

Thanks,
J

Later I will try again to be more precise.
If possible I will upload a video on Youtube.

#14 Philsan OFFLINE  

Philsan

    River Patroller

  • 2,762 posts
  • New Orleans Saints Super Bowl XLIV Champions
  • Location:Switzerland

Posted Wed Jul 20, 2011 3:10 PM

Here's what happens 25 seconds after game's start:



#15 RevEng ONLINE  

RevEng

    River Patroller

  • 3,349 posts
  • bit player
  • Location:Canada

Posted Wed Jul 20, 2011 3:24 PM

Confirming the same thing happens on an NTSC system with Harmony.

I think you've hit a bug that ScumSoft ran across. EggVenture loses it's colors on occasion too, and it looks like DPC+ ram is being overwritten in places.

Is there an event that happens 20 or 30 seconds into the game?

#16 jrok OFFLINE  

jrok

    Stargunner

  • Topic Starter
  • 1,149 posts

Posted Wed Jul 20, 2011 3:44 PM

Here's what happens 25 seconds after game's start:

http://www.youtube.com/watch?v=L8e5cSwWL08


Wow, that's... uh, interesting :).

I'm guessing there's a write to the playfield data that Stella is somehow correcting for. I'm not getting any sound in the video, but do those bleeding stripes correspond to a certain sound effect?

Thanks for your help, Philsan.

#17 jrok OFFLINE  

jrok

    Stargunner

  • Topic Starter
  • 1,149 posts

Posted Wed Jul 20, 2011 3:48 PM

Confirming the same thing happens on an NTSC system with Harmony.

I think you've hit a bug that ScumSoft ran across. EggVenture loses it's colors on occasion too, and it looks like DPC+ ram is being overwritten in places.

Is there an event that happens 20 or 30 seconds into the game?


Yeah, that's what I'm thinking too. I'm going to take a look in debugger, but whatever it is Stella appears to be correcting for it. Did it happen with the second version of the binary I posted as well?

Thanks,
J

#18 Philsan OFFLINE  

Philsan

    River Patroller

  • 2,762 posts
  • New Orleans Saints Super Bowl XLIV Champions
  • Location:Switzerland

Posted Wed Jul 20, 2011 3:58 PM

Jarod, if you turn up the volume to the maximum (both YT and your PC) you'll hear the normal in game sounds.
Now I test second version.

#19 RevEng ONLINE  

RevEng

    River Patroller

  • 3,349 posts
  • bit player
  • Location:Canada

Posted Wed Jul 20, 2011 4:00 PM

It happens with both posted versions.

Everything that uses a color list eventually gets overwritten, like the score, the background, etc.

I think the only surviving elements, like the castle, are those that have their graphics set in the main loop, like the rider and the enemies. The graphic strips can be cleared away by clearing a level (guessing you set the playfield at the beginning of a level) but the background colors never come back.

Stella doesn't execute the same firmware code that's running in a Harmony - instead there's a common spec that it adheres to.

#20 Philsan OFFLINE  

Philsan

    River Patroller

  • 2,762 posts
  • New Orleans Saints Super Bowl XLIV Champions
  • Location:Switzerland

Posted Wed Jul 20, 2011 4:09 PM

Yes, exactly the same happens with second version.

I forgot to mention that after green background the game continues.

#21 jrok OFFLINE  

jrok

    Stargunner

  • Topic Starter
  • 1,149 posts

Posted Wed Jul 20, 2011 4:10 PM

Jarod, if you turn up the volume to the maximum (both YT and your PC) you'll hear the normal in game sounds.
Now I test second version.


Thanks Philsan, but I don't think it's necessary. I'm sure that version will show the same bug.

I think the only surviving elements, like the castle, are those that have their graphics set in the main loop, like the rider and the enemies. The graphic strips can be cleared away by clearing a level (guessing you set the playfield at the beginning of a level) but the background colors never come back.


Yeah, RevEng. That's immediately what I thought too. I set the "WAVE" playfield bitmap and then reset the playfield at the end of a wave. I just now tried taking all that gunk out and just defining the playfield and DF#FRACINC once in bank 2. Hoping if you or Philsan have some time you can try the bin attached to this post (Charge_test.bin) in Harmony and let me know the result.

Thanks again, guys.

Attached File  Charge_test.bin   32KB   121 downloads

#22 Philsan OFFLINE  

Philsan

    River Patroller

  • 2,762 posts
  • New Orleans Saints Super Bowl XLIV Champions
  • Location:Switzerland

Posted Wed Jul 20, 2011 4:14 PM

Unfortunately, yes.

But there is a difference: the stripes after brown turn green, then the background scrolls to the right left, then the background turns green.

I have to go to bed now. See you tomorrow for other tests.

Edited by Philsan, Wed Jul 20, 2011 4:23 PM.


#23 RevEng ONLINE  

RevEng

    River Patroller

  • 3,349 posts
  • bit player
  • Location:Canada

Posted Wed Jul 20, 2011 4:44 PM

This time the strips don't clear between levels.

If you're inclined to PM me the source I can give a try at disabling different stuff to zero in on the cause. Otherwise, I'm happy to keep testing stuff.

#24 ScumSoft OFFLINE  

ScumSoft

    Moonsweeper

  • 348 posts
  • Location:Polysorbate 60

Posted Wed Jul 20, 2011 4:53 PM

I've been trying to track down this bug myself. If you find what is really causing it let me know! Like I mentioned in the EggVenture thread, you shouldn't have to rewrite everything every frame, all this does is hide the corruption that's still occurring. I do believe there is a pointer running amuck unseen until it starts writing erroneous data into the Graphics bank. Those that are rewritten every frame stay alive so to speak, but the rest gets a screen wipe.

Those streaks are the playfield, in my game you can fly into them and it causes the collision to register a hit with the PF.

Edited by ScumSoft, Wed Jul 20, 2011 4:53 PM.


#25 batari OFFLINE  

batari

    )66]U('=I;B$*

  • 6,487 posts
  • begin 644 contest

Posted Wed Jul 20, 2011 5:10 PM

Does this happen with all DPC+.arm files or only the latest one?

Anyway, it's clearly a pointer that is counting down from somewhere and writing a value once per frame in hardware but not in Stella. At 25 seconds, that's 25*60=1500 bytes, so that gives me an idea what's causing it.




0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users