Jump to content
  • Advertisement


  • Content count

  • Joined

  • Last visited

Community Reputation

3781 Excellent


About IADaveMark

  • Rank
    Moderator - Artificial Intelligence

Personal Information


  • Twitter
  • Twitch
  • Steam

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. IADaveMark

    Evolving neural networks

    Put another way, there's more than one type of "AI for games". It isn't monolithic. Therefore, there could also be different "best tools" for the job for each of those. That said, when people talk about "game AI", they are usually talking about things like behavior selection and what surrounds that (e.g. knowledge representation models). For that, NNs and GAs are very rarely the best choice.
  2. IADaveMark

    Evolving neural networks

    There are all sorts of fancy tools at the hardware store.... but before I buy them I ask myself "what am I trying to do?" If you are trying to make game agents that can be authorially controlled by designers to do very specific things, then a hand-wavey learning system isn't going to cut it. "Let's just run this NN trainer and see if the NPC behavior just happens to match what I was thinking of when I was laying in bed last night." No... screw that. Make the character act the way you specifically want it to. Also, remember that we aren't trying to make The Best NPCs in our games... we are trying to make The Most Fun NPCs. What's your fitness function for "fun" in your learning model?
  3. Please not tht this is a "a,game AI" forum 99% of the people here wouldn't have any clue about the problem here and of those and of tha t do perhaps 25% might have an inking. Regardless, a game AI forum is not great place to ask games about non-game AI.
  4. I use them all the time and encourage them. There are some things that simply make sense that way. For example, if you have a stealthy action that you only want to do when you are invisible, you can do a boolean check to see if you have the "invisible" tag. If you don't, the behavior is automatically 0 (since the consideration is 0) and you move on.
  5. Have you watched our GDC AI Summit lecture on that architecture? http://www.gdcvault.com/play/1021848/Building-a-Better-Centaur-AI The short answer is that any behavior that is targeted is scored on the behavior+target basis. Anything that is standalone is scored on only the behavior basis.
  6. This has very little to do with utility AI... of any AI for that matter... and more about knowledge representation. For the most part, it can be solved by Programming 101 sorts of answers. Create a representation of what a day is. Create a function for determining that. Create another boolean function for "is it a weekday" that checks to see if the day returns M-F. Create a representation for what time of day it is. Create a boolean function for whether or not it is a work hour or not. if (IsItWeekday && IsItWorkHours) { GoToWork(); )
  7. I'm trying to get to the point where I can sell and/or licensce my IAUS and Imap system (e.g. on Unity Asset Store). I've had plenty of people and companies ask me about it. The GDC accident has set me back quite a bit though. ūüėē
  8. I've got both my IAUS and Imap system in C++ and C# because of my work with different clients, but it isn't in shape to put up as "middleware". BTW, Apoch's Curvature is based on my IAUS and the work we did when I was at ArenaNet.
  9. As for "wiring it into the Unreal Engine", your decision AI system should be a black box that has nothing to do with what engine you are on. The only thing that needs to touch the game engine is inputs and outputs. But you have to do that regardless of what environment you are in.
  10. The other thing you mentioned is how to handle LOD for stuff off-screen. Easiest way is to pipe in a check to see if they are on screen or within a certain radius of the player to a boolean consideration of a behavior you don't want to run in that case (e.g. an emote animation). If they are not, then that behavior gets multiplied by a 0 consideration score and switches off the behavior entirely. That way, you can limit what is being processed to relevant stuff (like movement to a different location). As for speed of use with hundreds or thousands of agents... let's just say it's not an issue if you do the priority "early out" scoring the way we illustrate there.
  11. Oh geez... this is going to take me a while. Before I start, have you seen my GDC lecture with Mike Lewis about what we did at ArenaNet with my IAUS? http://www.gdcvault.com/play/1021848/Building-a-Better-Centaur-AI
  12. IADaveMark

    Card game AI help

    Yeah, there's going to be a minmax component but to really make it work well, you could include some Bayesian inference in it. e.g. "Well, I don't have any 7s which means that it is N% more likely that other players have a 7." At that point, you can iterate through the cards you have to possibly play and come up with a score for playing that card. More importantly, you can iterate through the possible remaining turns and score out the rest of the game so that you can determine why it might be a good idea to hold onto some cards and wait for better times to play them. For example, if you have seen 3 7s so far, there's no reason for you to hold onto the last one since it will never be paired. If you have a situation where you would rather hold onto other cards and you can't pair anything right now, burn the 7. This will somewhat roll out as you are keeping track of the likelihood of each person having each card. Bridge AI does some of this sort of thing, btw.
  13. IADaveMark

    Card game AI help

    Explain it to us as if we were sitting around the table and you were telling us how to play it. Include a step-by-step series of examples if necessary. (e.g. "so after I play that card, then you might realize you had one in your hand and ASDF... or you could do QWER") In the mean time, google things like Tic-Tac-Toe AI, chess tree search, minmax algorithm, etc.
  14. Kylotan has nailed most of it. Another way of stating part of the problem, however, is identifying the vast amount of shit you would have to have as your knowledge base that the ML algo would have to look at. In your example, certainly one aspect is "inventory room"... i.e. "how many apples can I carry now?" However, one that is relevant but less obvious is "hut space"... i.e. "how many apples do I have back at home?" If you are already well-stocked in apples at home, you wouldn't bother filling your carrying inventory -- especially if that inventory is going to be more than you have room to unload when you get back home. That said, if you are hungry and standing next to the tree, you might pick one and eat it rather than returning home with to get one. At that point, the utility of time kicks in... e.g. "I'm hungry, and there is an apple right here." But then as things get more complicated, you need more and more info. e.g. "I'm hungry and have few/no apples back in the hut. So I should pick one to eat and more to carry home... but that slows me down and I really need to get home soon to [take a pee][start dinner][watch Wheel of Fortune] so I am not going to bother picking/carrying more now. Or what if the house is surrounded by orcs? Going home to eat an apple or drop off a load doesn't seem like a good idea. So yeah, an ML solution is great at pattern recognition and you could use the player's behavior to train it, but only if your knowledge representation layer is robust enough to keep track of what the player is using to make their own decisions. One classic example that I've heard over and over is how the military was trying to train a system to identify NATO tanks or ships vs. Soviet ones. When deployed, any objects that were in sunny days and had clear photos were identified as NATO and anything in the rain or on hazy days or poor photo quality were identified as Soviet. Why? Because they used really purdy pictures of the NATO shit and bad spy-taken stuff of the Soviet tanks. The system simply learned how to judge the photo quality rather than the shape of the tank. So the lesson is that your ML problem has the potential to be a rabbit hole big enough for a school bus sized rabbit. A standard ML algo like a NN will have no way for you to peer under the hood to determine what is going right or wrong. At least a utility system where you are tweaking weights in formulas, etc. would allow you to inspect and ask "so why did you think to do ASDF?". Those formulas are human readable. My IAUS architecture is good for this (although I haven't tried to deploy it in a ML situation like this because ML is a PITA for an authorial control environment like game designer). For more on my IAUS, see this GDC lecture: http://www.gdcvault.com/play/1021848/Building-a-Better-Centaur-AI
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!