PDA

View Full Version : ADOM playing engine



Dougy
03-10-2008, 03:41 AM
I'm curious - has anyone tried to write a program to play ADOM? Do you think it could be possible?

I think it would make an interesting challange, to see who's program could achieve the most in ADOM without any user input.

GnomeWeaponsmith
03-10-2008, 05:01 AM
As i see it, should be somewhat easy, timeconsuming and pointless.

Since 'player emulator'(bot is somewhat a different thing) doesn't care about time it takes, they have some simple strategys to start.
a) Go to ID and go up/down the stairs gathering items and killing smal monsters for a small eternity. Achieve level 50 and slowly move towards the end of the game. Pathfinding shouldn't be too difficult to implement, and huge hpmax gained from levels saves from simple mistakes.
some problems:
Uberjackal problem could present with goblins rats and other small critters beore the sufficient level is achieved
Background corruption after the training period might become a serious problem

b) Make a wish engine realy fast.
As newsgroup has shown, it's possible to set a wishengine without going too far into the game(int the SMC). see the eternium man challenge
This is alot more coding, but once somewhat working pattern recognition(read as AI) is there, it can restart the game for a short eternity utill the start conditions in SMC are 'just right' to make the wishengine. After that, it's just pathfinding without fear of anything, because Infinite_wishes + No_human_mistakes = RNG_powerless_to_stop_you

This is how i would go with making a player emulator for ADOM.
Both methds above abuse the 'patience' of an emulated player. It will play very differently from any real player, but it can achieve anything in the game, even he raider lord and puppy quests because quest goals are wishable.
edit: ok, pyramid is likely to be inaccessible to this kind of emulator. everythig else should be ok

Well, i got to go now. I'll ramble more and clean typos a bit later

Alucard
03-10-2008, 05:15 AM
I've seen one of these, and I tried it for kicks once. I'm nearly sure it's long gone, though.

Dougy
03-10-2008, 06:06 AM
Thanks for your responses.

Pointless? Well, lets try to avoid talking about what is, and what isn't, pointless - we're just thinking for the moment. My first thought was to scum the ID, but it doesn't seem this method would maximise the score. A wish engine? Like a PC with absurd amount of mana and the Wish spell?

Long gone? Hmm that's a shame, I'd like to take a look at it.

I'm mostly interested in which style performs best. Best score, largest number of monsters killed, fastest win, etc.

Macros
03-10-2008, 09:01 AM
A wish engine? Like a PC with absurd amount of mana and the Wish spell?

Also, but GnomeWeaponsmith probably has on mind wish engine with rings and potions of exchange.

As for programs playing Adom, as far as I remember Adombot had function "Filk finder" so I think it could fit in category of programs to play Adom.

ZeroTheBird
03-10-2008, 01:00 PM
Technically its a good challenge but game wise it just suck.

Alucard
03-10-2008, 02:10 PM
Adombot, that was its name. It also allowed cheating though, and last time I tried to find it (years ago) it had been taken down.

Dougy
03-10-2008, 09:00 PM
Thanks, I found adombot.

Works on mine. The engine the came with it doesn't seem very strong. Eg. I need to help it along the way. When it's in the ID it dives in and attacks everything and gets the char killed. Sometimes it just constantly runs against the wall. At one point in ran up-and-down a hall until the char starved to death.

Although it seems that it's possible for the user to edit the playing script, so this might be very interesting.

Sradac
03-11-2008, 12:01 AM
that bot is possibly the dumbest thing i've seen, rolled a dark elf healer and he just went into the woods south of terinyo and kept walking back and forth between two forest spaces

Dougy
03-11-2008, 06:13 AM
Indeed, I think it would be a difficult problem programming an intelligent character.

Epythic
03-11-2008, 02:30 PM
We don't want a bot, do we?

Macros
03-11-2008, 06:23 PM
No, we don't want Adombot. It was taken down few years ago, because TB clearly said that he don't like programs like Adombot. So it would be better not to post links to download it on his forums. If someone really badly wants it, he will probably find it somewhere on internet. Just posting such programs on official Adom forum really isn't good idea(my personal opinion - removal of link would be appreciated).

Grey
03-11-2008, 06:44 PM
I agree personally. Vladimir stoped hosting his quite astounding tools out of respect for TB after it was requested that code-diving be stopped. I'm not totally against what people do in private with programs like this, but I don't think they have any place being linked to here.

Dougy
03-11-2008, 08:33 PM
Well I removed the links, assumng that TB really doesn't like this program. Adombot is different to what I had in mind anyway.

I think of an ADOM playing engine as a program that plays ADOM from start to finish (whenever that may be), without any user input. That is it creates a character, plays the game and finishes the game without a single key entry from the user. So, if you plan on scumming the ID, there would have to be some quit criteria built into the program (or suicide if you want a high-score).

I did not intend it to be a cheating tool (which Adombot is), rather a player simulator. Analoguous to a chess engine. I believe it would be an interesting challange to see who can program an automated player, and of them who could get the highest score.

Furthermore, creating such a program could help discover means to cheat in the future.

Epythic
03-12-2008, 06:53 AM
In general, I think they should not be kept private. I love reading source code. Top of my todo list is the JADE source (with a little bit of luck...) :)

On the other hand, there are always trolls that post cheated savegames and so on, so in this case I welcome your decision.

Dougy
03-12-2008, 07:53 AM
Well, I can't do much about the "trolls," but I can remove the link - it's not my program and I have no interst in advertising it, nor is it that relevant to what I'm interested in.

Vladimir
03-23-2008, 08:13 PM
I stumbled upon this thread accidentally, and couldn't help not to reply.

I was planning to eventually make AdomBot something that would allow people to write scripts which could beat ADOM from start to finish. Since this is an enormously complex task, and one which could be done in an infinite amount of ways, I decided to write a scripting interface to allow players to automate the behavior of the PC. Unfortunately, despite the many examples and extensive documentation, no one wrote any scripts for it at all, as far as I know...

In regards to the cheating functions - I built them in because I loved to experiment with the game. For example, the map editor was interesting in that it could model many unusual situations. I was actually surprised that people decided not to download my program because it had cheating functions - although the scripting part of it did not do any "cheating" (it looked at the game just like a player would see it, and only sent commands as keystrokes), people were put off by the presence of additional features that played with the game's memory directly.

In the big picture, the thing was a great waste of time. However, looking back I don't regret it one bit. I learned a whole lot while writing AdomBot - it was the first time I designed and implemented a scripting language, ADOM was the first big program I reverse-engineered, etc. Taking down AdomBot wasn't hard for me either - I expected to do this one day or another, and it freed myself to move on to other things.


...I don't exclude trying to write a JadeBot one day ;D

Dougy
03-23-2008, 09:32 PM
I believe it's the code-diving that is unwanted and justifiably so. As a computational exercise, I'm curious to know if someone actually has finished the game without any user input. What is the current high score without user input? I'm quite interested in computer chess and this indirectly relates to that.

Vladimir
03-23-2008, 09:34 PM
I can fairly confidently say that this has never been done (unless you mess with the game's memory into making it think you've just won the game, or something like that).