I`ve had an exchange of ideas with JoeJ over the last week, several pages of discussion. Our exchange and some of the ideas i came up with make the basic principles to be followed in building terminator level robot. I`m not going to put all the chicken eggs into one basket so I`m letting you guys know that the information is on your server (GameDev.net server, my and JoeJ private message exchanges). I could make everything I talked about with JoeJ public, I`m not going to do it. Extra cautiousness is always better. Bye.
I have been told to post only once a week. I have stuff to say but one week has not passed since my last posting so instead of making a new blog entry I will add my ideas as an edit.
The title of my new post is ‘inverse pyramids’
I was describing previously that a path in interfaces/menus is established by finding matching menus, menus that have matching properties that is
Finding a path resembles two opposing pyramids. both pyramids have a common base. The common base is the middle of the path. The pyramids tips are the start and the end of the path.
1 In case of an realistic AI all existing menus are saved in a the same list/pool. A path is built by iterating through the menu list and selecting a menu that matches the required criteria. For example to find a path for saving some notepad text written in notepad: The first thing we think of is the save file dialog because that is how a file is saved. Save file dialog makes the tip of second pyramid. The next challenge is getting to that menu. We address the tip of the first pyramid. Save File Dialog is just one of the File Menus (a menu related to file operations) so we need to get File Menu number 1. File Menu number 1 is the first (root) menu that deals with working with files, in Notepad`s case that menu is the file submenu. The file submenu is saved in the common pool of menus of the realistic AI mind, we select it by finding a match between it notepad main window the match is the 'File' option on the Notepad`s ‘toolbar’. So this way we found the tip of the first pyramid. In our case saving a file is only a two step process (only two menus involved). If there were lets say two additional menus between the file submenu and save file dialog we would have had to search next the second menu from the tip in the second pyramid. and then the second menu from the first pyramid. When we search in the second pyramid each step provides us with additional information/refines the search which that helps us find an new step on the first pyramid.
In realistic AI for Starcraft things would work the same way. You start with tip of the second piramid which is some of your combat units next to the command center of the enemy, lets say some marines. So you build a tree/pyramid of actions to get you marines next to the enemy command center in say 10 minutes. Next thing you think is what could go wrong. A bad thing that could happen is some tanks that would kill your marines while they
re on their way to the command center. So you adapt your first pyramid version number 2 to cope with that (or pyramid version number 1 refined if you want to have only one inverse pyramid). When you build your pyramid 1 version number 2 you get additional information, like additional things that could go wrong. If you want to counter the tanks I was talking about previously you might want to build some of your own tanks, which means that you now have a tank factory in your plans/in your pyramid 1. thats additional information that you can use to build a new pyramid number 2 version. A tank factory added in your pyramid 1 means an extra vulnerability, this new vulnerability doesn
t reflect as a new group of enemy units in the pyramid 2 but rather just as an additional target for the existing imagined/virtual enemy combat groups.
In my example when Im referring to tank defense as a thing that could go wrong, the idea of enemy having tanks is not something that occures randomly in AI`s mind it`s based on the conditions on the map you`re playing:
the enemy race is human, the map type favors defense with tanks on high ground etc. Since in this case we`re talking about building the tip of the second pyramid (the end point of the game) the evaluation of the map conditions takes place right at the beginning of the game and is focused on the enemy spawn area (player map start position), later evaluations will take into account areas bordering the spawn location as well.
[edit number 2]
It`s not a full week since my last blog entry and I have stuff to say so I`m posting my ideas as an edit yet again.
I want to talk about the situation when you have not two players on the map (human vs AI driven or 2 AI players) but several AI players. Lets say you have a map with 4 AI players playing a 2 vs 2 game.
the question is how do you build the AI that needs to be aware about not one but three other players. How do you build your predictive tree of actions? In theory each AI player should be imagining another 3 action ladders/trees, one for each AI player and 3 reaction ladders of his own(or at least 2 ladders because one of the players is not enemy), one for every ladder of the enemy. The problem is that you have to 'merge' the three response ladders somehow because each of your units can do only one thing and not two or three in every moment. Like for instance lest say you have 12 marines and you have two access points in your base to defend, with each access point facing/being close to one of the enemy bases. You can`t place your 12 marines at the same time at both entrances. You don`t split your marines in two groups of 6 in order to assign one group per entrance either. If you do that your marines will be easily defeated by the enemy on the corresponding side of the map (each enemy presumably having 12 marines of their own). The way to solve the 4 players AI challenge is to consider that you only have two parties, two AI players playing against each other with the other 2 AI players playing a support role. Basically you are thinking that the units of the support players belong to the leading players. That`s my entry addition for today.
[edit number 3]
Quick word about morals. In an environment characterized by the presence of people morals make half of the decision making process. the other half is logic. The way the decision process works when humans are involved is that we first build the logical steps needed to achieve a goal. We then execute those steps but only imaginary (that is possible because you have a copy of the real word in your mind so you have fertile ground from which you can derive credible repercussions) Executing those steps creates consequences. These consequences need to undergo a moral compliance test. If the consequences of the actions (that make the solution to the problem the robot has to solve) the robot has projecting into the future pass the moral test the robot can procced to execute them.
Another idea, unrelated to the things described above is that when you execute an action ipoteticaly only if the conditions are right that creates a force feedback effect on you. Executing ipotetical actions on an empty map (a map with just one player) will create no feedback. Executing ipotetical actions on a map with another player( which is hostile) will produce feedback because the hostile player is action (retaliation) ready, under normal circumstances he will retaliate to each of your decisions.
In Soviet Moldova we have what`s called broiler chicken, two to three times bigger than a normal chicken (female chickens are huge, but the roosters are even bigger), they cary eggs with two cores. I know all about farms.