Author Topic: Faster, Harder, More Challenging Donkey Kong.  (Read 11432 times)

0 Members and 1 Guest are viewing this topic.

Offline up2ng

  • Senior Member
  • *
  • Posts: 242
    • Awards
Re: Faster, Harder, More Challenging Donkey Kong.
« Reply #15 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.
Donkey Kong:  1,206,800  Kill Screen
Donkey Kong:  898,600     16-5
D2K:                 380,200     L=9
Donkey Kong Junior:  In Progress
Member for 11 Years DK 1.2M Point Scorer Wildcard Rematch Champion Winner of a community event Blogger Former DK Level 1-1 World Record Holder Former DK No-Hammer World Record Holder DK 1.1M Point Scorer Individual Board Record Holder DK Killscreener DK 1M Point Scorer Former DK World Record Holder - MAME Twitch Streamer

Offline Sock Master

  • Elite Member
  • *
  • Posts: 383
    • Awards
Re: Faster, Harder, More Challenging Donkey Kong.
« Reply #16 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.
"Badges? We ain't got no badges. We don't need no badges. I don't have to show you any stinkin' badges!"
Member for 9 Years snek IGBY 2016 DKF Team Member Twitch Streamer