I think it would be an interesting proposition to develop an AI designed to play Dwarf Fortress in Fortress mode.
Now it must be done. It is the logical conclusion. We must create a sucessor. We must create something that can surpas man in ruthless ness. IT must be done.I think it would be an interesting proposition to develop an AI designed to play Dwarf Fortress in Fortress mode.
Why do you hate mankind? Why do you want to see everyone die at the wireless hands of an AI capable of functioning within DF? Is there something we're missing here? Did we forget our tribute to the gods? Anything you want, please, take it and leave us alone!
Now it must be done. It is the logical conclusion. We must create a sucessor. We must create something that can surpas man in ruthless ness. IT must be done.I think it would be an interesting proposition to develop an AI designed to play Dwarf Fortress in Fortress mode.
Why do you hate mankind? Why do you want to see everyone die at the wireless hands of an AI capable of functioning within DF? Is there something we're missing here? Did we forget our tribute to the gods? Anything you want, please, take it and leave us alone!
Only with this way can we suceed in creating what must be done. We must create the Malevolent AI. WE MUST CREATE
ARITIFICIAL DWARVEN INTELLIGENCE.
Difficulty notwithstanding. A team of researchers did it for civilization III, it can be done.
Dwarf Fortress does not have an objective, that's the main problem.If we gave our AI a goal, such as "Kill Elves", and a set of 'tools' it could use to achieve that, such as "Train Military", along with all of the military subsystems: mining (exploratory and mining veins), smelting, forging, quality control, etc, etc, etc., it may be possible, if highly impractical.
Why would you even want to make an NN? They are glorified equation fitters for automating tasks and forecasting data. What's to automate about DF? What's to forecast? It's fairly clear how to play DF well after a point, people play it to pit their luck against their understanding of these winning strategies. Not to find new ones. As for automation, well, if playing DF is such a chore, you could, you know, not play it.
Also, I figure whomever's building an automation or full out AI for any games is doing it for challenge or to prove they can do it. Or just too bored for their own good :D
2. NNs, by their nature, function by trying many solutions over and over. How long does a non-trivial game of DF take? Yeah, that, times hundreds, maybe thousands (because the problem is so bad, maybe millions!).Why not just make it choose a few hundred random possibilities and see which of them is the best (and not have to think ahead through the entire game, just have it look a bit ahead to see if it's good)? Humans don't think of every possible thing, they just think of a few random ones. This would also make it more human-like. (And if you wanted to make it learn, have it always think of something that has worked in the past, and a few other possibilities)
QuoteAlso, I figure whomever's building an automation or full out AI for any games is doing it for challenge or to prove they can do it. Or just too bored for their own good :D
You got it! We also intend to apply this ai to other RTS games, to see how it does.
QuoteAlso, I figure whomever's building an automation or full out AI for any games is doing it for challenge or to prove they can do it. Or just too bored for their own good :D
You got it! We also intend to apply this ai to other RTS games, to see how it does.
How much could still apply? Could it even understand Starcraft or something?
Well, If you're think in terms of resource managment, it is most certainly a RTS. But, I don't know.QuoteAlso, I figure whomever's building an automation or full out AI for any games is doing it for challenge or to prove they can do it. Or just too bored for their own good :D
You got it! We also intend to apply this ai to other RTS games, to see how it does.
How much could still apply? Could it even understand Starcraft or something?
I'm curious also, since nobody's developed a 'general purpose' AI for games in general, particularly with how huge variation there are between games, even if just in graphic display. Since from sound of it, someone's using screen-reading software for it. There're also that some RTS uses mouse clicks, while DF uses keyboard mostly.
Also, I think calling DF a RTS is a bit strange, though I suppose technically accurate?
Well, unless you're just developing an AI framework to be hooked into some kind of image tracker? That still leave having to work out mouse control and teaching it. Also didn't Blizzard mentioned that Starcraft AI is partially NN-based, or at least SC2 one is?
I'm curious also, since nobody's developed a 'general purpose' AI for games in general, particularly with how huge variation there are between games,
Sorry to be that guy, but what a terribly ill-posed question. You really have to not "get" NNs to ask something like this. Here are the problems with it:
Thank you, ArPharazon, for saying exactly what I've been thinking every time I see this thread title, but have been too lazy to put into words.
Using neural networks alone to create an AI to play Dwarf Fortress is a terrible, terrible choice.
If you wanted a self-teaching AI, you'd be far better off with a heuristics learning algorithm like Eurisko (http://en.wikipedia.org/wiki/Eurisko) than attempting to use neural networks.
If I was going to do it, I wouldn't bother with a full learning AI, I'd just create a set of stages that I'd want the fortress to go through using modular designs, and then implement rules that would help the AI reach the next stage while attempting to avoid various problems. Ultimately it would reach some predefined "stable" stage, and then it would simply work to maintain that stage.
What is a neural network, anyways?
As far as combat goes, it seems a combination of a neural network to determine the best overall make up of combat dwarves, scored against combined strength, skills, and levels. We will have a combat ANN event that is triggered when there is either an 'announcement' or 'mega-announcement' that decides the amount of force required to protect against the current threat again from the historical encounters.
oH SHIT.
Someone get a bunker ready! Flee my fellow forumites! flee from this man who would create the IRAI (Insane rouge AI) that will kill us all!
you should call it DAVE STRIDERoH SHIT.
Someone get a bunker ready! Flee my fellow forumites! flee from this man who would create the IRAI (Insane rouge AI) that will kill us all!
Acutally, we're calling it DAVE (Dwarven Assassination Through Virtual Emulation).
Creating things for the sake of being creative in DF's sandbox environment, not something I see an AI doing.Agreed. Strongly agreed.
Creating things for the sake of being creative in DF's sandbox environment, not something I see an AI doing.Agreed. Strongly agreed.
As to a goal for it to work to, I don't think it really needs a "goal". "Bigger and better" ought to be good enough - simply to increase its defenses as much as possible. Bigger army, bigger fortress. I don't think it could ever be creative enough to flood an entrance hallway with magma of its own accord, for instance, though you ought to be able to hardcode magma pump stacks pretty easily.
what kind of anti-homestuck gasesyou should call it DAVE STRIDERoH SHIT.
Someone get a bunker ready! Flee my fellow forumites! flee from this man who would create the IRAI (Insane rouge AI) that will kill us all!
Acutally, we're calling it DAVE (Dwarven Assassination Through Virtual Emulation).
*get gassed to death by anti-homestuck gases*
Note: I'm not saying neural nets are universally terrible, but I'm hard pressed to think of a situation in DF where some other technique wouldn't be better.
But I'm getting the sense that this project isn't about being practical as much as it is about using neural nets as much as possible.
Why use neural nets at all, when there are far better ways to do it?
Sorry to be that guy, but what a terribly ill-posed question. You really have to not "get" NNs to ask something like this. Here are the problems with it:
1. DF does not have any "score". To train an NN, you need to show it inputs and matched correct outputs, then it (supposedly) generalizes the output. What's your training set?
2. NNs, by their nature, function by trying many solutions over and over. How long does a non-trivial game of DF take? Yeah, that, times hundreds, maybe thousands (because the problem is so bad, maybe millions!).
3. Good luck when the NN inevitable gets stuck in the thousands of local minima that must certainly exist.
In an economic sense, it will track the value of
Basically, the NN combines multiple inputs and melts them together in such a way that, if you train it right, it'll make "smart" decisions. You COULD do it with an IF/THEN chain (or a switch, or whatever) but the more factors to consider, the fuzzier the lines between good and bad decisions in somewhat different scenarios, the more an NN starts looking a lot simpler to implement than an IF/THEN chain.
In an economic sense, it will track the value of
Um... What happened?
If you guys could make an AI to play DF, I really wanna see an AI to play Minecraft.Herobrine.
He was removed in 1.6.6, 1.7, 1.7_01, 1.8, 1.0, 1.2, (maybe 1.2.5) and 1.3.1.If you guys could make an AI to play DF, I really wanna see an AI to play Minecraft.Herobrine.
But, sadly, he was removed in... wait, how many releases "removed Herobrine"?
Difficulty notwithstanding. A team of researchers did it for civilization III, it can be done.
As they point out on TvTropess, its a different game. They make up for artificial stupidity (http://tvtropes.org/pmwiki/pmwiki.php/Main/ArtificialStupidity) with the computer is a cheating bastard (http://tvtropes.org/pmwiki/pmwiki.php/Main/TheComputerIsACheatingBastard).Difficulty notwithstanding. A team of researchers did it for civilization III, it can be done.
Really? Why? Doesn't Civilization III already play Civilization III? Admittedly the AI cheats like a cheating cheater trying to win a medal for cheating, but it does play pretty much the same game you do. Doesn't it?
Basically, the NN combines multiple inputs and melts them together in such a way that, if you train it right, it'll make "smart" decisions. You COULD do it with an IF/THEN chain (or a switch, or whatever) but the more factors to consider, the fuzzier the lines between good and bad decisions in somewhat different scenarios, the more an NN starts looking a lot simpler to implement than an IF/THEN chain.
That's going to be the real problem. There's a funny story I've heard a few times about a neural network that was successfully trained to distinguish between stock and in-the-field photos of military aircraft. Unfortunately, it was supposed to be an IFF.
Morale of the story: if you use artificial training sets instead of simulation, you risk training your NN to recognize unintended patterns.
Difficulty notwithstanding. A team of researchers did it for civilization III, it can be done.
Difficulty notwithstanding. A team of researchers did it for civilization III, it can be done.
Google is failing me, and I am very interested in seeing this. Any links?
Difficulty notwithstanding. A team of researchers did it for civilization III, it can be done.
Google is failing me, and I am very interested in seeing this. Any links?
i had thought about suggesting this, but you beat me to it. I was thinking more like a gamemode for it though. feel like this would probobly be a time lapse, but it would be cool if you could actually watch the dorfs.
The most cpu stressing screen saver ever to be imagined, +1.
Civilization already comes with AI to play a game much like Civilization, which DF does not.As they point out on TvTropess, its a different game. They make up for artificial stupidity (http://tvtropes.org/pmwiki/pmwiki.php/Main/ArtificialStupidity) with the computer is a cheating bastard (http://tvtropes.org/pmwiki/pmwiki.php/Main/TheComputerIsACheatingBastard).Difficulty notwithstanding. A team of researchers did it for civilization III, it can be done.Really? Why? Doesn't Civilization III already play Civilization III? Admittedly the AI cheats like a cheating cheater trying to win a medal for cheating, but it does play pretty much the same game you do. Doesn't it?
EDIT: Just looked down, appearantly Civilization has a entire section devoted to them. Well then.
Oh Great And Wise Toady-one,Toady's not omniscient, and probably doesn't have enough time to read all of these threads. Perhaps you should PM him about the thread.
Any chance you yourself will partake in this thread?
Love to get some feedback from the horses mouth!
A veyr interesting proposal, especially considerign just five minutes previous to clicking this link I was pondering on how I might be able to set my fortress up to run for nonspecific, nontrivial amounts of time with little or no oversight.I agree, being able to put a fortress on autopilot for a while would be nice when nothing exciting has happened lately.
This would be an obvious solution, were success in this endeavor achieved.
If you are going forward with the learning AI, do you need extra help teaching it? Because I'm volunteering.
Could we see a copy of the AI as it currently exists, or is it a bit worse than a toddler plopped down at the keyboard?It's probably worse than a keyboard plopped on a toddler-shaped keyboard
If you are going forward with the learning AI, do you need extra help teaching it? Because I'm volunteering
You mentioned in the OP that you were looking for people who play on Linux to help teach your AI. As I play on Linux, my interest was piqued. What exactly would this involve? As I understand it, you are looking for recorded video of me playing DF? And I expect it would have to be DF without mods.
This would be great! And while a good AI would be hard, I'd be happy to just get something capable of making short-lived forts with some artifacts for adventurers to find. Learning AI must be difficult, but the ability to dig, build and equip would go far regardless of inefficient designs.
A veyr interesting proposal, especially considerign just five minutes previous to clicking this link I was pondering on how I might be able to set my fortress up to run for nonspecific, nontrivial amounts of time with little or no oversight.
This would be an obvious solution, were success in this endeavor achieved.
Could we see a copy of the AI as it currently exists, or is it a bit worse than a toddler plopped down at the keyboard?
I agree, being able to put a fortress on autopilot for a while would be nice when nothing exciting has happened lately.
For the discussion of training, I would like to cite the approached used by PS2 "Virtual Fighter 4" AI system. In this game you could give feedback during the fight if your AI fighter was doing 'good' or 'bad' after every action. It could be done during the fight, or afterwards during a replay.
If the VF4 appoach is applied to this DF project, we would be able to give feedback (using 'y' and 'n' ?) during gameplay to let the AI know if we are happy with the choices it is making. These lessons could be stored and transmitted back to the developers for review and possible integration for the next release. Or it could be kept local, so one player's decision to never build traps would not skew the overall desicion process on trap setup for everyone.
Let me try to name all the things that the AI would need to be able to do to survive:
(Things that would be the most difficult have a *)Spoiler (click to show/hide)
Are you going to be doing this for adventurer mode too?
If you guys could make an AI to play DF, I really wanna see an AI to play Minecraft.
Looks good, and if it works, we should get it to do collab games with experienced players, might teach it important stuff about minecarts/pumps/magma/military/Fun.Trying to teach a AI what !!FUN!! is is like teaching a 5 year old gun safety with a Fat Man launcher.
:DLooks good, and if it works, we should get it to do collab games with experienced players, might teach it important stuff about minecarts/pumps/magma/military/Fun.Trying to teach a AI what !!FUN!! is is like teaching a 5 year old gun safety with a Fat Man launcher.
How is the data from the Curses interpreter going to be... uh... interpreted by the AI? It seems hideously complicated.
<<Edited to remove some ambiguity>>
Assuming the AI 'understands' the Interpreter, will it be capable of registering multi-tile features, such as a cistern, or furnace room, or parts of the surface as 'unsafe due to goblins'? If so, how will this be done?
How is the data from the Curses interpreter going to be... uh... interpreted by the AI? It seems hideously complicated.
<<Edited to remove some ambiguity>>
Assuming the AI 'understands' the Interpreter, will it be capable of registering multi-tile features, such as a cistern, or furnace room, or parts of the surface as 'unsafe due to goblins'? If so, how will this be done?
The data from the curses interpreter is going to dumped into a database. The database is going to be broken down for each tile in each z-layer, and only the 'table' for the current z-layer is going to be kept live while the others are crunched in the background.Spoiler (click to show/hide)
As far as your multi-tile feature question, I feel it is still a bit ambiguous and I'm not quite sure as to what you're asking.
With the surface being unsafe due to gobbos, the AI will know (through registering a 'Event, or Mega-event) that it is under attack, and will learn how to handle such an event from there.
We've still got to interpret what we're actually seeing, but compared to writing the protocol to de-render curse, that shouldn't be too hard as we're going to feed it into a database, and then if I have my way just compare what character it's seeing to a table that's floating around on the wiki...somewhere.
We've still got to interpret what we're actually seeing, but compared to writing the protocol to de-render curse, that shouldn't be too hard as we're going to feed it into a database, and then if I have my way just compare what character it's seeing to a table that's floating around on the wiki...somewhere.
It's at the wiki here: Tilesets (http://dwarffortresswiki.org/index.php/Tilesets)
However, I should note that many, if not most, characters mean multiple things.
You're still going about things the hard way, IMO. It would make more sense to use DFHack to interpret the screen, get various info, send commands, etc., instead of reading the screen and having the program to try to interpret that and sending key commands.
We've still got to interpret what we're actually seeing, but compared to writing the protocol to de-render curse, that shouldn't be too hard as we're going to feed it into a database, and then if I have my way just compare what character it's seeing to a table that's floating around on the wiki...somewhere.
It's at the wiki here: Tilesets (http://dwarffortresswiki.org/index.php/Tilesets)
However, I should note that many, if not most, characters mean multiple things.
You're still going about things the hard way, IMO. It would make more sense to use DFHack to interpret the screen, get various info, send commands, etc., instead of reading the screen and having the program to try to interpret that and sending key commands.
Again, we're trying to write an AI that can be moved from Roguelike to Roguelike, so we're dealing with RAW ASCII art, It just so happens that we picked the MOST DIFFICULT ROGUELIKE EVER to get started with.
Again, we're trying to write an AI that can be moved from Roguelike to Roguelike, so we're dealing with RAW ASCII art, It just so happens that we picked the MOST DIFFICULT ROGUELIKE EVER to get started with.