• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.


  • Content count

  • Joined

  • Last visited

Community Reputation

162 Neutral

About leopardpm

  • Rank
  1. 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. 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. 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. 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. [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. 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. [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. [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. 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. [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. [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. [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. 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. 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.