Donkey Kong Forum

General Donkey Kong Discussion => General Donkey Kong Discussion => Topic started by: Sock Master on October 07, 2015, 09:07:28 pm

Title: Faster, Harder, More Challenging Donkey Kong.
Post by: Sock Master on October 07, 2015, 09:07:28 pm
I sometimes hear about a "hard rom" for Donkey Kong, and the general consensus was that it isn't actually all that hard?

Since I've been digging through Donkey Kong's program code inside and out, I figured it might be fun to make a DK ROMset that actually does ramp up the difficulty in significant ways.

Where's what I added:

-Internal difficulty now goes up to 7 instead of 5.
 (one consequence of that is that barrels become 100% steerable.)
-Internal timers will keep speeding up all the way through to L=22.
-Fireballs/Firefoxes will reach faster top speeds.  (and also start at a higher speed at L=01)
-Spawn rates are faster.
-Wild barrels are twice as frequent.
-There are a couple of new types of wild barrels.
-*Any* barrel hitting the oil can will spawn a fireball.
 (this is not quite as bad as it sounds as normal barrels will usually roll off the screen before getting to the oil can.)
-Cement tray/Pie spawn rates will keep increasing through to L=22
-Elevators will reach higher speeds.
-Springs have more random variance.
-Spring release rate will reach higher speeds as Level goes up.
-The number of Fireballs/Firefoxes will eventually go up to EIGHT (!!)
-At the Kill Screen, the game flips into murderous mode.
-The selectable number of lives will be 3,5,7 or 9.

It's still classic Donkey Kong.  It starts out a little harder, but not overly so but by L=07 it gets really tough.

I thought it might be interesting.

You can download the files here:
http://users.axess.com/twilight/sock/dkremix/dkongde.zip (http://users.axess.com/twilight/sock/dkremix/dkongde.zip)

This only includes the changed files.  Simply replace your original ROMs with these.

Thanks.
Title: Re: Faster, Harder, More Challenging Donkey Kong.
Post by: tudose on October 07, 2015, 11:44:38 pm
well done, sir. i fired it up for a few levels and noticed some fun stuff. very cool :)
Title: Re: Faster, Harder, More Challenging Donkey Kong.
Post by: timhett on October 08, 2015, 05:06:27 am
Wow... I hope someone streams this, would love to check it out!  very cool!
 <Tim>
Title: Re: Faster, Harder, More Challenging Donkey Kong.
Post by: Adam_Mon on October 08, 2015, 07:26:17 am
-Wild barrels are twice as frequent.
-There are a couple of new types of wild barrels.

<3

 Chris should stream some of this  ;)
Title: Re: Faster, Harder, More Challenging Donkey Kong.
Post by: Sock Master on October 08, 2015, 08:03:24 am
Chris ain't gonna like it, I'd bet money on that.

Maybe some new strategies will make it more manageable, but the wild barrels are killers here.
And when you get to the point where there are 8 fireballs running around at faster than normal speed.. it's just overwhelming.   Even with the extra lives I don't think anyone's getting to the kill screen.

It would be amazing to watch gameplay of players surviving L=08, it gets really hectic.
Title: Re: Faster, Harder, More Challenging Donkey Kong.
Post by: f_symbols on October 08, 2015, 09:56:43 am
well done, sir. i fired it up for a few levels and noticed some fun stuff. very cool :)
omg wow the tudose played DK again  BibleThump; very addiction wow.

Mr sock, your work still amazes me, thanks for breathing all this new air into the tired old (non-marinated  <Tim> ) DK rims.
Title: Re: Faster, Harder, More Challenging Donkey Kong.
Post by: tudose on October 08, 2015, 12:00:14 pm
omg wow the tudose played DK again  BibleThump; very addiction wow.

 <YSG>
Title: Re: Faster, Harder, More Challenging Donkey Kong.
Post by: Sock Master on October 08, 2015, 12:23:28 pm
I tried giving myself a ton of lives and seeing how things go marathon-style and it was pretty fun, up until L=10 and then I lost 25 lives trying to pass the elevators.  Oof.  I know the L=10 springs are still passable, but the window to make it is really slim unless you get two good springs in a row.  Maybe at some point it becomes impassable unless there is some alternate strategy.  The springs vary 50% more (between long and short) and their release timer speeds up as level goes up; maybe that timer ought to be slowed down.

Conveyors with 8 super fast fireballs too, if you don't get a free pass you're unlikely to make it.

It starts getting pretty brutal past L=07.

Title: Re: Faster, Harder, More Challenging Donkey Kong.
Post by: Sock Master on October 08, 2015, 02:30:09 pm
I doublechecked and the boards do remain completable all through to L=22.   No problem with an accidental Kill Screen.
Title: Re: Faster, Harder, More Challenging Donkey Kong.
Post by: up2ng on October 08, 2015, 06:05:55 pm
Although 100% steerable barrels would probably be more fun, I suspect that that actually makes the game easier.  If you want to make it harder, ramp it back down towards 50% or so imo.  Or, tweak the steerability entirely such as removing the code related to steering barrels but allow them to turn down ladders "on their own" with a higher frequency.  And/or, do something even nastier such as this -- barrels are not steerable, but if the ladder is "uphill" from jumpman, barrels will turn down on their own with 75% frequency, but if the ladder is "downhill" from jumpman, barrels will turn down on their own with only 25% frequency . . . or something.

Looking forward to checking this out.
Title: Re: Faster, Harder, More Challenging Donkey Kong.
Post by: Sock Master on October 09, 2015, 11:59:29 am
I made a few revisions to DKDE, the file on my web page now has V1.1

Changes:
-I fixed the barrel release timers so they smoothly keep ramping up till L=21.
-Barrel steering now ranges between 12% and 87%, but never hits 100%.
-Additional physics based variations to wild barrels.
 (I love that physics engine, it is way underutilized in the original game code.)
-Faster timers on the retractable ladders on Pie/Cement boards.
-Reduced spawn rate for Fireballs on Pie/Cement boards.
-4 of the 8 fireballs/firefoxes can now be freezers.
-The maximum speed of Firefoxes on Rivets boards has been reduced.
 (but still faster than original DK.)


Hopefully this balances the difficulty between different board types.
It still ramps up way beyond classic DK.  I don't think anyone's going to get to the Kill Screen for some time.
Title: Re: Faster, Harder, More Challenging Donkey Kong.
Post by: danman123456 on October 09, 2015, 02:08:55 pm
Cool i gotta check this out.

Dan
Title: Re: Faster, Harder, More Challenging Donkey Kong.
Post by: Sock Master on October 09, 2015, 10:03:44 pm
Hi Dan,

I missed your stream but I'm watching the replay now.   When you get to the kill screen, I wanna see how that goes!

I guess it's pretty fair to say that the 4 boards get about equally difficult?   I know, maybe those evil bouncing barrels are a bit unfair?

It really does look like the game holds up pretty well.. Starts out at similar difficulty to regular DK but then keeps ramping up instead of stalling at 5.

Oh and yeah, Level 7 is not exactly the limit.  Internal difficulty stops at 7, that's an internal register that controls certain aspects of the game, but other things have different limits.   I tried to keep them all within 'possible' limits.   Like the springs stop increasing at L9 or 10 but barrels keep right on increasing till L22.   Springs might be able to go one more step faster, but I think that might be pushing things too far.   It's tough for me to determine since I'm not a super awesome player, I stopped it where I could still pass it.
Title: Re: Faster, Harder, More Challenging Donkey Kong.
Post by: Sock Master on October 10, 2015, 02:17:58 pm
Okay, something is bothering me about this version of DK and that's those nasty bouncing wild barrels that I added in the update...

I actually do like them, but they can be unavoidable death if one happens while Jumpman is near the top/left of the screen.   So I'm going to try to figure out a way to ... relax the bounce when Jumpman is too close to DK.

I figure that'll be it after that, but I can add a couple of small tweaks here and there..  Mostly I'm interested in ideas to reduce pattern playing, but in simple ways.   Prevent *all* the fireballs from spawning on the left side of the can in the conveyors stage to avoid giving free passes?   Something like that.

   
Title: Re: Faster, Harder, More Challenging Donkey Kong.
Post by: Sock Master on October 14, 2015, 10:41:09 pm
Here's a not so quick video of DKDE gameplay.  This is the V1.3 ROM from Oct 11.

I'm pretty confident that this is the final ROM.  There is only one thing I'm not 100% certain about and that's the rate of the springs in the elevators stage - whether I made them too hard.   In V1.3 the springs keep increasing in speed up until L=15, but the increases are very gradual between L10 and L15.

If anyone plays through L15 springs, feedback would be appreciated.  I want to make it a hard rom, but not impossibly hard.

Thanks!


Title: Re: Faster, Harder, More Challenging Donkey Kong.
Post by: up2ng on October 15, 2015, 05:30:00 pm
Great job so far on this variation.  Sorry I am so late about making suggestions after playing the first version.  Hopefully you are still open to a few ideas.

Keep in mind that the springs are already very hard for most people who play the original DK.  I'm not sure if the particular changes in this variation (just making the timing to climb up Pauline's ladder even tighter) are all that interesting (or even fair).  One idea that I had that might make things a lot more interesting is if the springs bounced in both directions!  The ones bouncing from right to left could begin appearing at L5 and could slowly increase in frequency throughout the game while leaving the left to right springs as they normally are in L4 of original DK.  On L5 they would be extremely sparse, almost a non-obstacle.  Then they would keep getting slightly more frequent each Level.  And perhaps they would be a different color.  They would begin by bouncing like 1 - 2 jumpman widths to the left of the right side ladder which Jumpman climbs just before climbing Pauline's ladder.  These could either begin by falling straight down out of the sky onto this spot, or from somewhere farther to the right off of the top of the screen and then following an appropriate (but larger) parabolic arc to land at this location.

Another (much more optional) idea that I had was to put a spring somewhere in the middle of the screen (perhaps just to the right of the down elevator), which falls from a stationary position just under the ceiling and free falls down to the bottom of the screen where it bounces off of the floor and back up to it's original position before losing all momentum and beginning to fall back down again, over and over.  Perhaps this one is yet another color which would distinguish it from the other type of spring which falls "through" the floor (and perhaps occasionally mix this one in at the top section which would bounce off of the side and fall down as normal, but would then bounce off of the floor and shoot up and off of the screen), etc.

The idea that I had for the rivet screen (and which will be similar to my idea for the pie screen in some ways) is to begin the screen in the middle -- start at a location on the second girder in the middle section between the two ladders.  Next, add a central "column" of pixels to the game code in which if Jumpman is located within these central boundaries then the firefox will be randomly spawned on either the left or the right side of the screen.  I wouldn't make this space particularly wide so as to totally destroy hammer strategy and maneuverability, but make it so that on high levels when firefoxes spawn extremely quickly that you cannot escape this central column before all of them are spawned.  This may yield a lot of alternate "patterns" of board completion.

Similarly, on the pie screens, I would change the fireball spawning routine so that it may spawn either to the right or to the left side of the oil can randomly IF Jumpman is located below a certain vertical threshold.  If Jumpman is above this threshold, leave it as is where the fireball is spawned on Jumpman's side.

I can't think of any decent suggestions for the barrel stages without altering the board itself slightly.  I have mixed feelings about the "new" wild barrels, although I suppose they are probably ok for a hard romset.  However, besides having to deal with these new wild barrels, this screen is probably still too easy from a running the boards perspective in my opinion.  My solution is that beginning at Level 6 or so, add a second oil can onto the screen.  This would be located directly above the current oil can, sitting on the 3rd girder near its end.  A short while later (Level 7?  11?  Other?) you could even add a 3rd oil can -- this one would be sitting on the equivalent location on the 4th girder near its end.

Anyways, I think these tweaks would make each of these screens a lot more interesting while still staying true to the original game and without changing the actual structures of each screen for the most part.  Interested in seeing what you think.
Title: Re: Faster, Harder, More Challenging Donkey Kong.
Post by: Sock Master on October 15, 2015, 11:41:36 pm
One thing to keep in mind is DK's ROM size of 16K of code & data.  The original game had about 300 bytes or so of unused space, and that got used up real quick since it wasn't much.  Any changes after that required poring through the code looking for ways to squeeze a byte out of it here and there to make up for additions.

I haven't exhausted all the ways to shrink the code yet, but the further we go this way the harder it gets to find new bytes to free up.

Rule alterations to existing logic are not expensive to implement so I like those.

Springs: Yeah, that was the one thing I worried that I cranked up too high.   I'll have to dig into the code a bit to see how difficult your ideas would be to implement.  The spring jump arcs are all hard-coded data tables.  Space limitations would make it difficult to add new tables for different arcs.  There might be a way to re-use the existing data and just run it through some math to make a taller arc and that might work.  Hopefully existing routines could be altered to allow differently acting springs.  This one will need some investigation.

Something easy might be... Springs currently always come into existence at fixed time intervals, but they pop into existence x to x-15 pixels beyond the left edge of the screen.  (Actually x to x-23 in this version.)   I could simply add an increasing wiggle to the time intervals, which would make them vary even more (but in this case not alter their landing points that we use to see their timing).  The effect would add more possibility of gaps to make it up the ladder, but it would disrupt existing strategies.

Your other spring idea, I quite like.  Maybe if I could tap the game's barrel physics routine to handle a bouncing spring, then I'd avoid having to create memory-eating data tables.   I should look into that.
(Yes, the game is that illogical.  Barrels, which don't make much use of it, have a gravity/physics engine.  Springs, which bounce around, do not use it.)

Rivets & Pies: Altered rules for deciding which side AI spawns into.   I totally agree with you.  I think I could even make it so the 'undecided' zone simply starts out 0 pixels, then very slowly grows by more pixels until reaching some decided maximum width by L21.    I didn't play with Jumpman's starting location here like I did in Remix, but those are exactly the kinds of reasons why I did change them in Remix.

Barrels: I don't know if you played the later revision, but the earlier version had a bug in the barrel release timers that made them slow down before starting to speed up again at later levels...arg.   The current version has consistent decreasing release timers as the level increases.  It also ramps up the longer you stay on the board.
The new wild barrels went a little too far, so I added some balances to the revision.  The evilness adjusts depending where you are, so you shouldn't get the really nasty barrels where they're hardest to avoid.
The oil can idea is interesting, but it'd be a lot of code, data and a headache to implement because of the way the existing programming is done.   If I overcome the technical issues, what rules would the extra oil cans have?  Would they stop every barrel that ran into them? Only some? only blue ones? I like the idea of oil cans spawning fireballs higher up, but they'd kind of break the rules if they didn't also stop barrels from reaching the bottom.

Thanks for the input, it's much appreciated.