Jump to content

Starglider

Members
  • Posts

    89
  • Joined

  • Last visited

Posts posted by Starglider

  1. I would have thought, that characters actually finding the path would have unquestionably been more important.

     

    Sure but that's trivial on modern CPUs. The old IE games only had single-path problems due to lack of adequate CPU power.

     

    I would also deem algorithms not taking a few seconds to determine the path to be more important than characters stepping out of the line.

     

    The problem that doesn't go away even with infinite CPU power is trying to fit multiple characters through a small gap. Naive single-entity pathing algorithms just do not handle this well even with hacks to try and fudge it. Most modern pathing problems are caused by characters blocking each other and screwing up the pathing, not due to inability to path through the static environment.

     

    Also, do not think, that old problems will go away by themselves just from brute forcing with younger CPUs. If you do, try to play some of the old games on a contemporary machine. Yes, they can increase the number of search nodes, but what's the point, if it takes a few seconds for the path to be calculated even now?

     

    I don't have this problem but then I play on watercooled overclocked bleeding edge machines. Note that the old engines were single threaded, whereas a new engine should use easily use four or more cores for game logic calculations.

  2. If you are going to have classes, then there should be multiclassing, because the idea that once you chose a career you can learn nothing outside of that career is utterly stupid and unrealistic. Real humans can pick up a huge variety of skills in often surprising combinations. Dividing your attention makes you less well trained in any particular skill, but that is a choice for the individual to make. A mage being physically unable to practice fencing due to game designer fiat is a massive suspension of disbelief breaker.

  3. Level disparity is not the issue so much as numbers/weaponry disparity. Random street thugs aren't going to be able to judge the difference between a 3rd level fighter and a 15th level fighter (in D&D terms). However two toughs with daggers aren't going to jump six adventurers with longswords, plate mail and obvious magical abilities. I am perfectly happy to have a gang of 20 thugs attack my late-game party and die within five seconds, because that's a credible mistake for them to make. However I wouldn't expect it to happen more than once per area.

  4. They should try to keep formation even while moving (no jumpstarts from 1-2 characters).

     

    This is the most important point in this thread. Simple pathfinding failures are easily solved by brute force : modern CPUs can do path refreshes much more frequently and effectively have no path length limit. Making the party move realisically requires algorithmic changes; using actual motion control / formation logic and treating character motion as a joint optimisation problem, instead of just individual A* on each character.

    • Like 2
  5. Enemies that you can't normally beat are fine, but I don't see the harm in making it just possible for the hard-core mini-maxers to defeat the impossible encounter with hours and hours of research, failed attempts and grinding. It gives them lots of fun so why not? Encounters that must be unwinnable for story reasons probably shouldn't even have the option to start combat, or if you do it's instant cutscene death as in Lothar / PST.

  6. The primary advantage of agile is coping with constantly changing requirements. This is less important on a video game where you basically have a spec up front, which you design, implement, integrate and test. The later part is usually more chaotic with features being added and dropped as the deadline looms, but still I would say it is much more waterfall than a typical business software consulting project where the client doesn't really know what they want. I have used many flavours of agile in enterprise software development but my Xbox 360 game (linked in my signature) was written with a purely waterfall process.

  7. If you got into this situation it would be because the designers over-focused on the protagonist and failed to let the other party members behave realistically. If you need a specific skill, class, race or gender for a particular task you should be able to recruit a companion who can do the task for the group. Although wherever possible there should be multiple ways of solving each problem.

  8. In a RT game, the AI has to process it's decisions in fractions of a second, which means it must have small contrived choices.

     

    I have done extensive game AI programming and I can state confidently that this is not a significant limitation in 2D games. Back in the 1990s yes it was a struggle to get 100s of units in an RTS to act intelligently, but computing power is a complete non-issue for a few tens of actors on a modern multi-core multi-gigahertz machine. The problem is overwhelmingly algorithms, design and implementation; or test/dev man hours if you chose to try and solve the problem with a ton of unit and location specific scripting.

     

    TB games, OTOH, have significantly more time to process their decisions.

     

    The vast majority of real-time games including the classic infinity engine stuff do not use an 'all AI starts from scratch and completes on every single cycle' model. The basic engine executes simple actions set by both the player and the AI; the AI runs asynchronously and merely updates the current actions & targets from time to time the same way the human player does. A turn-based AI is still required to complete moves of individual units in a fraction of a second to avoid annoying players, that is not significantly more time than a real-time version (and with multi-core machines and all graphics done on the GPU, doing game and AI at the same time is not an issue).

     

    Since decisions are permutations and evaluation, the AI in a TB game will *always* be stronger than a RT one, simply because the AI has more resources (CPU time).

     

    Again CPU time is not an issue for any algorithm you'd implement in this kind of game. Pathing (for example) is trivial in the first place for these relatively small and simple maps and not any harder for real-time since the path is only regenerated when the destination is changed or the path is blocked, not on every frame. No one uses chess-style deep lookahead to billions of gamestates in RPGs.

     

    There's a reason why no RTS has ever had AI that tries to use advanced tactics on you, it's because it doesn't have time to do the calculations, and some of the calculations involved are NP-problems (Shortest path is a common example).

     

    No, it's because no one knows what calculations to do. Even full-time AI researchers with access to near-unlimited grid compute can't recreate human play ability in games as complex as Go, and the game state in Go is vastly simpler than the average RPG.

     

    The reason no one has done it is because you're talking very small amounts of resources, very large permutations, and NP-level calculations. You're asking the AI to determine a strategy for the best plan of attack, by processing all of the variables in a couple hundred milliseconds at best.

     

    A couple of hundred milliseconds is a relative eternity. Modern game engines draw hundreds of millions of polygons and shade several billion pixels in that time, as well as processing a couple dozen time steps on several thousand complex physics objects and a few thousand animated bones. Again, no one making these kind of games (turn based or not) uses algorithms that would lock up a modern PC for seconds. Maybe for Civilisation style games you might do that, but even there usually no, just heuristic analysis of a set of possible moves, no attempt to model player response.

     

    The limiting factor for AI in Infinity Engine games was primarily the amount of developer time available, secondly the very slow scripting engine, thirdly the limited engine support and least importantly the fact it had to run on late 90s CPUs. The last three should all be a non-factor now so it is almost entirely down to how good the programmers are (at writing game AI) and how much time they have to spend on it.

    • Like 2
×
×
  • Create New...