![]() |
#1 |
Prophet
Join Date: Dec 2009
Posts: 9,024
![]() |
Tool-assisted Angband
For those of you not familiar with tool-assisted speedruns, they are essentially videos of what "optimal play" of videogames look like. Thanks to emulators, savestates, and RAM watching, the "player" never makes a mistake and can ensure that random events work out in his favor. They aren't about showing skillful play, but more about taking optimality to its often-absurd conclusion.
I gave some thought to what an Angband TAS would look like. Probably not very interesting, as it turns out. Here's the strategy I came up with: * Roll up a ranger (closest thing to easy mode available). Race should probably be something with good Dexterity to make hit rolls easier. Hobbit or Gnome, say. Low XP penalty to make grinding to level 40 go faster. * Kill a townsperson. They drop a dagger with a high-level ego attribute (e.g. Holy Avenger). ID and sell the dagger. Buy a stack of 50 Scrolls of Deep Descent from the black market (each reading sends you down 2 dungeon levels). This requires significant luck manipulation, assuming it's possible at all (otherwise, buy as many as possible, and manipulate dungeon levels to spawn more). * Read scrolls down to dlvl 99. * Pick up a Heavy Crossbow of the Haradrim (x5 multiplier, +1 extra shot), some Bolts of Acid, two stacks of Bolts of Slay Evil, and a big Ring of Speed (theoretically unlimited modifier; in practice, +20 or so seems the best bet) off the ground. * Shoot down something big like a greater demon for levels (ranger gets +1 shots at levels 20 and 40). * Shoot Sauron to death. Naturally he never casts anything. Bolts of Acid should deal 8 * (4d5 + ~40) = up to 480 damage/shot; Sauron has 10500HP so 22 bolts are needed to kill him. During this time he will take 6 steps towards us (speed parity but we get 4 shots/round). * Read scroll of Deep Descent * Shoot Morgoth to death. Naturally he never casts anything. Morgy has 20k hitpoints and we can only do up to 420 damage/round since he's immune to acid (have to use Slay Evil instead, which has a worse multiplier), so we need to shoot him 48 times. During this time he will take 18 steps towards us; we may need to learn Phase Door from our starting spellbook and cast it once. Any ideas on how this could be made faster (short of using a version with more favorable missile branding or the like)? Any ideas on how to restrict it to be more <i>interesting</i>? Obviously ditching scrolls of Deep Descent would be the first suggestion, but then you're stuck manipulating each dungeon level to have a down staircase right next to the arrival staircase, for basically the same effect. Not using rangers would be the next suggestion so you don't get access to their super-broken missile capabilities...but missiles remain a good way to kill so you just end up phase dooring a few more times. Restrict yourself to melee and you just end up with a different kit "randomly" found at the bottom of the dungeon (as well as a bunch of potions of STR/DEX), as well as the need to manipulate Morgoth to miss with all of his attacks. Restrict yourself to spells and you find the attack spellbooks and some potions of Restore Mana... I guess that fundamentally, if you have control over the RNG then Angband stops being very interesting. |
![]() |
![]() |
![]() |
#2 |
Angband Devteam member
Join Date: Aug 2008
Location: Philadelphia, PA, USA
Age: 40
Posts: 1,516
![]() |
Just remember that unlike "normal" tool-assisted speed runs Angband prevents you from reloading over and over until you get the result you want, so your game will probably involve a lot of randomly walking 13 steps before casting Enchant Weapon or whatever.
Also, I think that will make the fight with Morgoth harder, or at least stranger (in some cases purposely not healing to change RNG state so Morgoth doesn't cast Mana Storm, or something). |
![]() |
![]() |
![]() |
#3 | |
Prophet
Join Date: Dec 2009
Posts: 9,024
![]() |
Quote:
I've been watching some people planning a NetHack TAS (using a DOS emulator) and one of their first tasks was to find a good date to set the emulated machine to to get a good starting RNG state. You'd have to do something similar in Angband. And yes, you would occasionally have to waste actions to advance the RNG. |
|
![]() |
![]() |
![]() |
#4 |
Angband Devteam member
|
Last time I played one, rangers didn't get extra shots with xbows ...
|
![]() |
![]() |
![]() |
#5 |
Prophet
Join Date: Dec 2009
Posts: 9,024
![]() |
D'oh! You're right. So I guess you'd go with a Lothlorien longbow, and maybe find the Haradrim shield to make up the shots deficit. This does hurt the damage/shot a bit though.
|
![]() |
![]() |
![]() |
#6 |
Prophet
Join Date: Aug 2009
Location: Madison, Wisconsin, US
Posts: 3,023
![]() |
I've always thought TAS's where luck manipulation was critical were kind of dumb. I think Angband would take that statement to the extreme.
|
![]() |
![]() |
![]() |
#7 |
Apprentice
Join Date: Nov 2009
Posts: 68
![]() |
Derakon, I'd love to make this TAS. Not up to date with the state of PC TASing though; could one simply use an emulator to do this or would re-recording functionality need to be hacked into the game itself?
This definitely wouldn't be one of those knock your socks off entertainment TAS's, but would be quite an intellectual challenge. If one were mucking around with the source, I'd speculate that a key function would be test item generation for a given monster at a given RNG state, then run the RNG ahead to find all possible drops, select the best one and play such that it is used. Is it correct that monster drops are now set when monsters are generated, rather than when they're killed? If so, that'd complicate things though the principle would remain the same. Last edited by Lord Tom; November 19, 2010 at 20:57. |
![]() |
![]() |
![]() |
#8 |
Knight
Join Date: Apr 2007
Posts: 590
![]() |
Well...for a true console game, as opposed to a graphical front-end (SDL/Windows/GTK2/...), the simplest way would be to run the screen-recorder application within a virtual machine, then extract the game replay file from the virtual machine.
__________________
Zaiband: end the "I shouldn't have survived that" experience. V3.0.6 fork on Hg. Zaiband 3.0.10 ETA Mar. 7 2011 (Yes, schedule slipped. Latest testing indicates not enough assert() calls to allow release.) Z.C++: pre-alpha C/C++ compiler system (usable preprocessor). Also on Hg. Z.C++ 0.0.10 ETA December 31 2011 |
![]() |
![]() |
![]() |
#9 |
Prophet
Join Date: Dec 2009
Posts: 9,024
![]() |
I suspect the easiest way to make a TAS of Angband would be to modify its source. To my knowledge there are no current TAS toolkits for general PC games newer than DOS.
Actually, maybe you could use a DS emulator for the DS version. |
![]() |
![]() |
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Display Modes | |
|
|