• Content count

  • Joined

  • Last visited

Community Reputation

162 Neutral

About leopardpm

  • Rank

Personal Information

  • Interests
  1. GOAP vs. MCTS

    Comy chair, I would like to hear more of your game, a thorough description - it sounds pretty interesting and seems to be something similiar to what I am also interested in.  If you are not comfortable in public, feel free to email/message me.   Michael
  2. Grid pathfinding with a lot of entities

    actually, don't loop thru the 'map' - but rather generate an array of all unobstructed map spaces, looping thru that and updating it and the map with each iteration.
  3. Grid pathfinding with a lot of entities

    interesting problem! I was thinking about this and how to fill in the 'walk map' and the algo I would try first is just loop thru the map, placing an incremented number next to any space which borders a non-zero space, loop until no more zero spaces The entities which are surrounded by other entities (and thus can't move) are then not even checked, and if a space is reachable by two or more other spaces is only dealt with once! Seems like perhaps the speediest way to make the move maps. No need to use any pathfind algo at all!
  4. Excellent! Definitely could see this as a popular mobile app... keep going!
  5. Figuring out economic problems

    DaveMARK, In regards to generating market pricing, supply, demand curves, etc... I came across this interesting thesis and I would like your opinion: [url="http://larc.unt.edu/techreports/LARC-2010-03.pdf"]http://larc.unt.edu/techreports/LARC-2010-03.pdf[/url] Also, any updates or tidbits regarding your own AI Sim Project that you have alluded to before? Any scraps of info would be great to read! Thanks!
  6. Finding RtNEAT tutorial/example code

    [quote name='IADaveMark' timestamp='1335886067' post='4936445'] What you have in the end is simply a single algorithm no different that some sort of rule-based system like a behavior tree, expert system, utility-based system, planner, etc. The only difference was how you arrived at that single solution. (And the major weakness being that you might not be able to meaningfully tweak it later since you might not really know what any of the results "mean".) Really, all you are doing is "hoping for the best". [/quote] I understand your thoughts here, but isn't your book suggestive in its attempt to generate a variety of 'correct' (human-like) responses, with the variability (on the fringes) of some unpredictability mixed in (some controlled 'noise')? Also... is there any way I can read/hear the interview with Dwarf Fortress guy without paying $57/quarter at AIgameDev.com- is there a 'per article' fee possibly?
  7. Turn Based Strategy AI

    Just wanted to say that I am following your progress with great interest and encourage you to continue to develop your project as well as keep updating this thread - its quite enjoyable to follow you with your trials and tribulations! Thank You!
  8. Efficient Line of Sight Algorithm

    [quote name='lawnjelly' timestamp='1334439060' post='4931269'] Don't know if anyone has mentioned it yet .. the fastest way to determine line of sight is to precalculate it. Three most important rules in game programming - precalculate, precalculate and precalculate. [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img] If you are using a smallish grid like that you can easily generate a PVS (potentially visible set) of what other cells are potentially visible from each cell. This greatly cuts down on the checks you need to do. e.g. if enemy 1 is in cell 20, 24 and your pvs tells you that the cell your player is in 90.34 is not visible from there due to a wall in the way, that's it, you know it's not in sight. You only end up needing to do realtime checks for dynamic objects that might get in the way. [/quote] sorry, but my simplistic mind is a bit confused here... to 'pre-calc' LOS for a 10 x 10 grid would necessitate storing a 10x10 table for EACH location (100 locations)... or am I missing something here? Perhaps I am overly paranoid about memory usage. Of course, there are a variety of ways to start pruning this memory usage down, for instance eliminating redundant pairs: if loc (1,1) can see loc (5,3) then no need to also store the fact that (5,3) can also see loc (1,1) - that alone will reduce memory usage by half. Did I misunderstand the whole pre-calc thing or what?
  9. Getting your AI opinions on what makes a good AI

    [quote name='IADaveMark' timestamp='1333832043' post='4929145'] This could have been easily solved in a number of ways -- including a cooldown function (which I often use) to prevent too much repetitive activity. This is roughly analogous to the very human feeling of "I need to take a break from doing this for a while." [/quote] generally agree with your whole post and totally agree with this part. Incorporating MORE possible goals and drives (gets bored, tired/sleepy, restless, needs 'entertainment', etc) translates into an agent which IS more humanlike in its plans/actions. Obviously if an agents' environment only allows it to move or chop wood, and it does only these things, then the resulting behavior is as 'real' as is possible within the context of that environment. I really appreciate your responses, Dave, and look forward to the day we can get a look at your AI project!
  10. Getting your AI opinions on what makes a good AI

    DaveMark, Something was bothering me about your example of the Sims and the repetitive cooking in order to increase cooking skill. Though this action seems unrealistic, in the context of the virtual environment and game design parameters, it was perfectly realistic. This same exact behavior is exhibited by human players in the same situation: both Ultima Online and RuneQuest have skill based character development systems and it is 'part of the game' to see a player repeating the same action hundreds or thousands of times to increase skills. So, I would classify that 'problem' as a game design flaw that results in unrealistic AI behavior, not an AI issue per se. just my thoughts...
  11. Getting your AI opinions on what makes a good AI

    [quote name='IADaveMark' timestamp='1333732664' post='4928831'] Regarding triggers vs. threads... the two are not mutually exclusive. That said, constant polling of the environment is computationally expensive if done incorrectly but also yields some more subtle behavior than having things entirely trigger-based. There are pros and cons. You can also have "immediate action" triggers show up as high-priority decisions in the landscape (so to speak) so that they can't be ignored. [/quote] Actually, this is akin to my current thought, and kind of coincides with my lame attempts at 'memory' or 'historical environment knowledge'. As an agent blunders through the environment, all manipulatable objects and their locations are stored along with a timestamp. The timestamp is used to degrade the knowledge 'value' over time so that a berry bush at X one hour ago has more 'value' then an equal (size, type, distance, etc) berry bush recorded at an earlier time. When accessing this array, I divide the values into 2 groups: Immediate Vicinity (Line of Sight) and Long Distance. Now, as Goals are formulated, any objects required to achieve a particular Goal are stored AND then the 'memory' is evaluated and the objects in memory have their values additionally adjusted upwards in importance, becoming 'triggers'. Then, as movement occurs, any trigger that comes into view causes the AI to re-evaluate the goal in which that object is a part of and possibly altering the current goal to incorporate manipulation of this trigger object into the plan. I refer to these 'triggers' as Dynamic Triggers. I like the idea of Dynamic Triggers and the Timestamps allow me to put an upper limit on the amount of memory required, flushing out 'old' info. BUT, implementation of this has been more memory/computationally intensive then I would like, and seems to me kind of 'clunky' - still debugging and re-balancing values which I fear has been the majority of time involved coding.
  12. Getting your AI opinions on what makes a good AI

    [quote name='IADaveMark' timestamp='1333681283' post='4928661'] Sims 3 originally tried to use a planner for the Sims dealing with their career paths, jobs, etc. Until one time they couldn't figure out why a Sim was cooking fish all day. They finally figured out that it was because he had determined that it was the best way at the time to work towards his "life goal". Now they certainly could have balanced it out a lot better than that example, but they decided to go simply with a more utility-based method of forward chaining rather than the inherent back-chaining of a planner. [/quote] Obviously such a situation (cooking fish all day towards a 'life goal') indicates a Goal balancing issue where Life Goals have less of an immediate need. It seems to me (and I would in NO way compare my inept skills to any in the professional realm) that back-chaining is superior to forward chaining in 'realism' and also in accomplishing multiple goals simultaneously.... by using a utility/desire weighting system that would encourage the following example: An NPC has a strong need/desire to satisfy hunger. In addition, it has a less strong desire to make a shelter. Since the food goal is higher than the shelter, the NPC plans accordingly and sets off on a path to the nearest berry bush. Near to the path lies some tree branches which would satisfy a portion of the 'build shelter' goal so the AI incorporates a short detour on his way to the berries and picks up the tree branches. Being able to do such multi-tasking is important in my own AI design goals, but probably not so much to the AI developers of the Sims - their agents seem to do a single goal at a time which can be interrupted by higher priority events, etc.
  13. Getting your AI opinions on what makes a good AI

    [quote name='IADaveMark' timestamp='1333672750' post='4928636'] Gawd... if only I could show you what I'm working on for my current client. Personality, mood, emotion, event memory... *sigh* [img]http://public.gamedev.net//public/style_emoticons/default/huh.png[/img] [/quote] frickin' tease!
  14. Getting your AI opinions on what makes a good AI

    I have totally avoided the entire 'speech' issue because it seemed way too overwhelming at this point. I was viewing player interaction as being restricted to: combat, trading, and jobs. But the "jobs" part would be built dynamically from the NPC's current goals... if it (the NPC) had a goal of "harvest the field" or "build a cottage" or "protect/defend an area", then a "job" could be offered to the player based on the value the NPC had determined through its GOAP search. I don't see 'conversation' as really game enhancing, but it could be I guess.
  15. Getting your AI opinions on what makes a good AI

    bennetbugs, Sounds like we (you & I) are trying to achieve basically the same objective: 'realistic' NPC actions determined by individual personality traits and dynamic environment variables. In exploring this thought, I have determined, so far, that a hierachial task network based on a version of Maslov's hierarchy of needs (modified by personality traits) to determine a small list of 'goals' that are then GOAPed through an action/skill tree to come up with a plan (series of specific actions to undertake to achieve a particular goal) which an agent/npc then uses to figure out 'what do I do now'. Though this is all based on known AI routines and techniques, I have come up against several obstacles which really hinder 'realism'. First and foremost is that of 'agent memory' - having each agent retain and have access to their own perception of world objects/dangers/etc. This, by itself, greatly increases the amount of physical memory each agent consumes, as well as processing time to access/interpret the data. Without memory, agents will continually repeat mistakes (choosing to go through 'dangerous' areas, etc) in an unrealistic fashion. I have yet to solve these types of memory issues. I also recommend Dave Mark's book, "Behavioral Mathematics in Game AI" which has helped me in a variety of ways, mostly to figure out alternate ways to use the personality traits through use of different math functions so that responses are more 'human' and less linear.