If you want to discuss or share information related to speedrunning this game (tricks, strategies, ...), use this thread:
If you have questions or comments about the run, use the existing verification thread:
[see the verification section of the sda forum]
It was a late evening. I had spent some time solving the great mysteries and challenges of mankind. How do we free ourselves from merely being able to see "Plato's shadows on the cave wall" to actually understanding the truth of the world we live in? Does a branch that falls to the forest floor make a sound if no one is there to hear it? How can we support today's life styles without letting the next generations pay for our extravagancies? Yes, it was one of those nights. After having successfully answered these questions to myself, I was suddenly struck by a moment of clarity. The thought that occurred to me was not like anything I had faced before. It made me shiver of exaltation, just to have me break out into cold sweat in the next moment.
Q: Does every NES-game deserve to be speedrun?
The implications of this question transcended both space and time. Yes, I realized that the foundations of cosmos were at stake here. Never had I been closer to perceive the universal truth. After having calmed down from the initial emotions, a light suddenly appeared in front of me and I could hear a voice speak inside my head.
I fainted. We are now many eons later and lightyears away, but I have never been able to really let go of that moment. While I knew the answer, I also had to admit that something was missing. For such an important question, there had to be a water-tight proof that would put even the most blasphemous doubter to rest. That's when the idea of speedrunning Heroes of the Lance came to be. If this ignoble piece of trash, from the muddy grease at the rock bottom of the NES library, deserved to be speedrun, then the initial conjecture would be completed. I'll now leave it up to you, the viewer, to determine the answer. Just be aware that the future of our existence depends on you...
Some comments about the game and its mechanics
Just for the record, I'm well aware of that I'm about to spend far too much time explaining how this game works and commenting on my speedrun.
- All characters, except Raistlin (the cowled guy), move at the same speed (at least at a very similar speed). Raistlin moves very slowly and can never be in front of the party in a speedrun.
- There is a short animation connected to jumping, which costs ~3 frames compared to simply running. Jumping often helps to faster get through certain enemies though.
- Damage taken when hit is random.
- Some enemies will always hit you. Some enemies will never hit you. Some enemies will sometimes hit you, but can sometimes be ran/jumped through. The rng is usually an important factor in the latter case. Some enemy types are more of an obstacle than others, but even individual enemies can act in specific ways that are not characteristic of that type. For such a short game, it's no big problem though. One just has to learn the behavior of all the enemies along the path.
- Many enemies that normally hit you can be clipped through by bringing up the menu just before impact (I will refer to this as "menu clipping"). This is only useful when the menu has to be brought up anyways (bringing up the menu is always at least 1.5 s).
- When a character dies, the screen will flash black before putting the next character in front of the party. This costs ~0.7 seconds. By bringing up the menu "close" to when the character dies, you jump directly into the menu, saving those 0.7s compared to dying and then opening the menu normally. This trick is not consistent as the time window for it to work is anywhere from 0 frames (so not possible at all) to 10-15 frames. I'm not sure what determines the available time window and why it's many times not possible at all.
- In order to defeat the final dragon, you must have a hero with the blue crystal staff in front of the party (top left). Goldmoon starts with the staff, but three other characters can also wield it in case Goldmoon dies (but only after some slow dabbling in the menu, so likely not useful for a speedrun).
- In order to cast clerical spells, you need a hero with the blue crystal staff in the front row (one of the top four characters). Most of the spells are only available if it's Goldmoon holding the staff though (in particular the very useful "protection against evil" spell).
Room 1 (-) - Obviously nothing to comment on...
Room 2 (man) - I immediately switch Goldmoon away from the front position and even puts her in the back row. One reason is that she doesn't take any damage in the back row (and keeping her health high is vital for this speedrun). The second reason is because that swap is the the fastest one. Running into the man and then jumping is usually pretty consistent for getting through the room quickly.
Room 3 (bozak draconian) - About half of the time, the draconian will walk backwards and not allow running through, which is an instant reset.
Room 4 (bozak draconian) - Occasionally, this draconian will walk backwards and not allow running through, but much more seldom than the one in the previous room.
Room 5 (dwarf, bozak draconian) - Usually no problem here.
Room 6 (-) -
Room 1 (troll) - It's normally possible to run straight through this troll, but I got stuck a bit this time (rng). It's actually not a problem though as I wanted to kill off Tanis soon anyways (time would be lost later on if he didn't lose enough health).
Room 2 (baaz draconian, baaz draconian) - The timing of the crap flying out of the pit runs on a timer that I think starts at the beginning of the area. Getting stuck on the troll in the previous room usually means getting caught by the crap and falling into the pit. I'm actually very surprised I managed to get through this time. The tas briefly turns around before passing through the first baaz. In real-time, I can't get that to save time, so I take a hit and jumps through.
Room 3 (wraith) - Normally, Tanis lives through this room, but not this time. Not a big deal, but it prevented the (small) possibility of saving time through bringing up the menu and skipping the death animation in the next room.
Room 4 (spectral) - Lost half a second from not being able to menu clip through the spectral. As far as I can tell, it's rng dependent whether you can clip through or not.
Room 5 (baaz draconian, dragon) - The protection against evil (PAE) spell is the best way to get through dragons. There are a couple of other spells that work as well, but they require shooting an energy ball that has to hit it. Most of the time, those energy balls pass by over the dragon. For the sake of consistency, I therefore always use PAE against dragons. If Tanis had still been alive at this point, I would have had to wait for the dragon to kill him so Goldmoon would be in the front row (otherwise not possible to cast PAE).
Room 6 (bozak draconian) -
Room 7 (man, spectral) - I take hits against the foes here and then jump through them. That's the best way I found in terms of speed, damage taken and consistency.
Room 8 (fires) - This is where the first part of what made this run special happens... As a viewer, you'll not notice anything special, so I'll point it out here. I managed to skip the death animations of both Sturm and Raistlin, ending up saving almost one and a half second. It's worth mentioning that this is a combination of several aspects aligning. Both characters dying at the same time (happens from time to time, but I wouldn't call it often) and then bringing up the menu at the right time. The hit boxes in this room are wonky and it's difficult to know exactly when a character dies and therefore to know when to bring up the menu. Often, it's impossible to skip the death animations and other times the available time window is only a few frames.
Room 9 (baaz draconian, dragon) - The tas manages to trigger the door a bit earlier. There might be something I'm missing, but standing where the tas does is not a guarantee for the exit to be available. I usually play it safe and overshoot the potential opening a bit. Maybe 0.5 s lost compared to how the tas does it.
Room 10 (-) -
Room 1 (spider) - This spider is never a problem.
Room 2 (dragon, dragon) - PAE and then just jump through the dragon.
Room 3 (spider) - This spider is never a problem either.
Room 4 (troll) - Overshot the exit a bit more than necessary
Room 5 (wraith) - Ouch... Missed the exit by a pixel. Cost ~0.5 s.
Room 6 (spider, man) - Jumping twice like I did here usually works to pass through the man.
Room 7 (troll) - Shortly after passing the troll, I briefly came to a halt (0.2 s). This was a result of the game's annoying controller layout. In order to run, you need to press diagonally up on the d-pad. It's very easy for me to slip up when having to hold diagonally up like that, even in a short run like this. It basically happens for me in every run at least once and this time was no exception. For the record, I use a new controller, so it's nothing about getting better equipment. It's just about finger fatigue.
Room 8 (-) -
Room 9 (dragon) - PAE.
Room 10 (wraith, troll) - The wraiths are just such complete jokes in this game. The manual talks about them as some of the strongest enemies, but they do very little damage and can just be run through.
Room 11 (man, spider) - The best way to pass the man in this room is just to run straight through without jumping. The spider will always attack and block your passage if you try to run or jump through. The short pause just out of its attack reach and then run through works quite often, but not always (sometimes it continues attacking and you get stuck). The dodging has also the advantage of conserving health (always a concern at this point).
Room 12 (spider) - Back to the normal harmless spider...
Room 13 (wraith, troll) - I'll write a novel for the next room, so I won't say anything here...
Room 14 (troll, troll) - And here is where the second magic part happens in this run... This was a real troublesome room when I planned the route. The idea is to kill Caramon against one of the trolls, so Goldmoon is in front when facing the final dragon. If Caramon survives, you'll have to switch characters, which takes too long (3.5 s). What I had hoped for was one of the following:
a) If Caramon died on the first or the second troll, then try to get through the second troll as Goldmoon with a menu clip. The minimum time for bringing up the menu is 1.5 s.
b) If Caramon got through both trolls, then wait in front of the passage to the final room until the second troll wacks him. With Goldmoon in front, quickly enter the door. However, once Caramon passes through the second troll, there is no guarantee that the troll will quickly kill him, so the time loss with this method is uncertain (but it should at least be faster than switching characters manually).
The problem with this room (and the above scenarios) was that Goldmoon, which is a very weak character, usually is just as low on health as Caramon. Quite a few attempts ended from one of the trolls administering a deadly blow to both Caramon and Goldmoon simultaneously. This is because Goldmoon is much weaker than Caramon and therefore usually has very low health at this point. In this run, I got an exceptional setup wherein Caramon had low health, but Goldmoon was almost at full health. With that plentyful of health, she was allowed to pass through the second troll. I haven't been even remotely close to a similar situation before.
Room 15 (khisanth) - This might look like a really stupid last boss fight and it's hard to argue with that. However, considering how utterly crap the character controls in this game, I can't see how it would have been possible to make a fight that's both interesting and balanced. It looks like the menu work when picking up the disks of mishakal could have been a few tenths of a seconds faster.
Speedrun history (as of writing - mid-2013)
I'm not familiar with anyone having speedrun this game before. There is a tas of this game, which is ~2 seconds faster than my run. The tas has no deaths in it, which is a restriction that requires it to do some extra menu work in order to heal once and also to switch back to Goldmoon in the last room. On the other hand, you skip the downtime each time a character dies (unless you manage to cancel them with the menu of course). It's clearly faster with death abuse though, but not by much. I chose to include deaths because it's faster and because it provided me with some alternatives for the routing, which made it slightly more interesting to plan.
For such a short and uneventful run, it's a shame to have to settle with a run containing several mistakes. I was first uncertain if I wanted to submit this for publication. However, after some more testing of determining the luck I got in this run and the time lost to execution mistakes, I mean that it would require more than a few attempts to have the stars aligning as favorably (or better) again and combine it with better execution. If someone put the time to grind this game until the right luck presented itself again, I think a 5:16-17 could happen with the same general plan as in my run. The question is how much effort anyone is ready to put into a game like this though?