Week #22 and #23 update

What I've done this week##

This week is another bumper update. Over 25 minor bug fixes and some major improvements to the monks. A dozen more bugs were repoted by my chief tester, Lavi, but these were already fixed since the last build. Overall, my copy of Lode Runner Online: The Mad Monks' Revenge is very stable on Windows and Mac (Linux is a little iffy) with less and less major issues being found.

There is still quite a lot of work on the monk AI to bring it up to some level I am happy with but I'm sure I can do that within the next month. I've decided to redo the whole AI from the start. The monk behaviour is not quite the same at the moment and some puzzles (like 19) are unsolvable. Quite a few of you may be a little disappointed that the AI in this build isn't finished like the original - apart from fixing bugs and quirks, the AI is the sole thing planned for the next few weeks.

I took a few days off to go to visit my brother in Newcastle (New South Wales, not Newcastle upon Tyne) which did take away from dev time since we did bugger all and watched Man on Fire via Netflix. I've been working flat out on this project for well over a year now and my brother on and off (depending on work) for a year so a little R&R is well deserved I think.

Please head over to the downloads page and get yourself a new copy to try out. A new configuration file will be created so all your settings will be wiped. Remember; any bug or quirk or anything that appears a little odd, please contact me no matter how insignificant so I can take a look - this project isn't just for me and my brother, but for all other fans of the original Lode Runner: The Mad Monks' Revenge.

On to the nitty gritty details of the last two weeks worth of updates; a name in parenthesis and in bold is the finder of the bug/quirk. Thanks to all, I really do appreciate the time and help. Cheers!

Editor

  • nothing!

Game

One of the common issues with the current and previous demo is players (heroes and monks) disappearing or being magically teleported to the side of the screen. I think I've finally fixed these for good. Of course, more testing is needed to find out but if it is gone, then that is a huge weight off my mind for sure.

  • added support to 'queue' vertical movements (Caleb, Rick);
  • if you ran and pressed the up key when not near enough to a ladder he would stop moving. This has been fixed now and matches the original (the player will climb/descend automatically).
  • the same treatment for the down key movements
  • fixed full-screen bug with Linux (JobLeonard)
  • fixed flaw that stopped a monk from eating a hero when crossing a ladder
  • you can no longer blast a block under a ladder as it didn't match the original (Caleb, Lavi)
  • fixed bug that prevented players from sometimes blasting a block under a phase block (that has phased out)
  • fixed bug that stopped a hero collecting gold or a small bomb at the top of a ladder when in the cross ladder animation (Lavi)
  • when playing a monk (YOG mode), you can now pickup and drop gold as per the original
  • improved accuracy to the original when standing on a collapsing phase block (Lavi)
  • fixed bug that didn't reset players UI and tools after death in two player (Lavi)
  • you can no longer gas another hero awaiting to be spawned (the weird SkyNet-style lightning storm) (Lavi)
  • fixed heroes not falling after using a tool above a phase block that is no longer there (Lavi)
  • falling pick-axe rubble now draws in the correct order; over the top of water and behind phase blocks
  • added support for pick-axe rubble in the process of building up on top of a phase block to fall off like rock piles already built up (Lavi)
  • fixed bug that sometimes caused the players to try and fall when they shouldn't resulting in him doing a little dance
  • fixed bug that stopped a player from falling through a regenerated block that is destroyed if a monk died in it (Lavi)
  • fixed quirks regarding players getting on and off ladders above a fall-through (puzzle 167 for example) (Lavi)
  • fixed bug that allowed a player to walk through a phase that is in the late stages of phasing in
  • improved keyboard input handling
  • tools being carried by a hero when he dies in a two-player game now respwans back into the puzzle (Lavi);
  • like the original Lode Runner Online: The Mad Monks' Revenge, if the starting location of the tool is occupied by another tool then the closest free starting tool locations will be chosen.
  • fixed bug that allowed a game to continue when resetting the puzzle with insufficient lives
  • fixed bug that affected heroes causing them to occasionally slide down a ladder and into the floor
  • monk eating a hero on top of a collapsing block no longer continues the game as if the snack never happened
  • clicking the spiral icon thing on the two-player game HUD no longer lets you choose another puzzle (Lavi)
  • Jake no longer can exit a puzzle via Wes' door and vice versa (Lavi)
  • fixed bug that caused a crash when dropping a tool over gold right before the gold is collected (Lavi)

I spent quite a lot of time this last week to redo heroes falling onto a monk. My first approach was quite crude and used the grid positions for collision which is not what the original did. This took quite some time analysing videos to work out how the original worked and why. The 'why' isn't important really, I just like to know these sorts of things.

The end result is nearly identical to the original. After hours of footage, I can't quite work out what the original is doing so like most other player related animations, I've gone for what looks the closest and what looks right to the eye. If you look at the GIF animation below, you'll see a main change compared to the original; swapping to a ladder. The original has the hero run, then grab onto the ladder. If you play about in the original, you'll notice that no matter what you do you can never recreate this manoeuvre. Ground level ladders don't work like that and it makes no sense so what I've done is do make the hero swap to a ladder like he would if he wasn't on a monk head.

Hero on monk head difference #1
The top is the original and the bottom is the new

That is isn't the only change. Below is a player stepping off a monk onto a fall-through. If you crank up the original and recreate what you see below, you'll find that the original has a bug; the hero doesn't fall. Make a move left or right and he falls then idles in the block. This rewrite doesn't have this bug as you can see in the GIF. WARNING: 500kb+ GIF - sorry!

Hero on monk head difference #2
The top is the original and the bottom is the new

Did you notice in the original if you replicate the above GIFs that you only need to tap the left or right key once and our hero runs on auto-pilot? My Lode Runner Online: The Mad Monks' Revenge works the same. A nice little touch that many wouldn't notice but I think helps to capture the feel of the original. The other thing you may notice is there is an extra running frame for my hero - it's to make the transition from run to fall look a little smoother.

Monks and AI

A lot of the issues with the monk AI was due to them colliding with each other and not pausing like the original. I spent nearly all my time this week going through recordings of the original game frame-by-frame at 300% magnification and working out what Presage must have done. I think I cracked it! It took several days, many different approaches and so many cups of tea I can't count to work out how I think they did it.

A few tweaks were needed to accommodate this and a lot of testing to make sure it didn't break anything else, but I think I am quite happy with it.

  • monks can no longer eat heroes when they are falling (Lavi)
  • monks no longer try to pursue a falling hero (matches original)
  • monks now draw higher when running to match the original
  • monks fall after eating a hero on a collapsed block when done
  • tweaked monks so they now idle at the top and bottom of a ladder to match the original

In the original when monks fall and land on another monk that is stuck in a hole, it holds off telling the monk to climb out until the falling monk is closer. I assume that is to prevent the climbing monk being half bent over out of a hole. Instead of duplicating the original 100%, I stop the climb out of hole animation at a point where it looks like he is looking upward and not in some half crouch. I'm a little bias of course, but I think mine looks nicer!

Monk fall wait
The top is the original and the bottom is the new

General

  • swapped the toggle up/down buttons on the single/two-player dialog to match original (I had them swapped to match Windows) (Caleb)
  • started support for multiple languages;
  • this was suggested by Lavi who said it would be easier to read in his native language than English
  • so far, English is the only option - support has been added but I want to wait until the tooltip text is complete before getting translations done
  • added truncating to the puzzle title box in the Puzzle Viewer dialog (Lavi)
  • the debug key (tilde) cannot be used to assign a key in the options
  • the debug game grid overlay no longer draws over non-game windows (only editor and game)
  • error dump file is not an XML file with some additional information
  • minor improvement in puzzle loading times

What I'll probably do next week

  • play/test for bugs
  • monk AI