Hi Lee and all,
Yes sounds like that would be good and helpful I am sure. Could be a big seller I would have thought and all additions and improvements should help and hopefully be self generating as a payback for investment in effort and time. Hopefully at least. Can't be too good can it.
With regard to manipulation of AI characters and their behaviours and possibly other AI entities - though particularly with reference to Characters including enemies, allies and teams or mixed interactions. This might include not only enemies but civilians and or interaction in other types of games where interaction might take place with enemies and or other Characters heavily too. e.g. role playing games, interactions with non combatants to receive instructions and so on to carry out tasks, where they may provide clues to a game direction, provide advice and so on.
Understanding that such advanced game interaction mechanics requires a great deal of work and is advanced and complex to achieve of course.
As with many users I have followed and used many engines over the years - over 20 years plus and looked at their use of AI and the difficulties that presents to the developers introducing/including such systems, from pathfinding and object avoidance systems of various kinds to general Character and enemy AI behaviours. There have been many attempts to provide support for Characters of any kind, largely not from the developers who by and large avoid getting involved in Complexities of advanced AI or any AI at all in many instances. Some modding engines have had a level of inbuilt Characters of course but by and large stand alone engines at the level we are looking at here have provided for little but very basic AI at best. Clearly due to the well know difficulties of developing a fully fledged system integrated to any engine. Large undertaking to say the least to do it well. Often with the added difficulties of lack of supporting and spare performance having been also a major factor due to the amount of data needing to be managed in low power engines.
I had worked on AI pathfinding and Behaviours including use of path points and or nodes in engines like Reality Factory, Game Studio, GCE and some others. Torque somewhat differently. Often user based systems as opposed to engine developer systems received little support from the developers and AI systems largely given little attention and or dismissed in engines which by and large are designed primarily to be used by the majority or users as FP Shooters where AI is the/a main priority feature requirement. FP shooters without any even reasonable support for AI enemies if any at all in many instances provided by the engine developers by default and out of the box? Those users that wished to make efforts to better this by developing plugin or add on systems given little or no encouragement at all from the developers in the main and no attempt to integrate any works into engines by default. A question of FP shotter engine but we cant go there. Too hard to do and a nightmare of effort when basically the engines in fact were incapable of supporting such truth be known being often largely struggling at best to maintain performance.
Today both hardware and software technology has moved on and should be able to provide a platform for engine developers to do better in the arena of much improved AI systems within their productions than has been embraced and or possible in the past given an engine is an FP shooter where decent levels of AI behaviour is the bottom line despite such engines of course being potentially able to output much more than just FP shooters if required and used for the purposes.
I had recently suggested more use of paths and or zones to control AI movement by restricting the areas they can move freely about within. (e.g. cant move beyond a zone boundary, cant go where you don't want them to go - cant get to or fall off the edge of the world, fall off or into any location not desired or any other extremity or location - can be controlled as to your scenario or level design and layout either indoors or out).
Character option to allow AI Characters to be restricted to follow path and not leave it when attacking or other behaviours so as to ensure they can move around as defined by path but not free roam too far (user defined) from where you don't want them to be (or not). i.e. a Guard cant go too far and be outflanked and will always be able to defend their area. This would not affect any standard path behaviours at all.
Either path point or zone border points could be possibly used, of course a zone would be better as AI could roam freely but not exceed the boundaries and could potentially use node/zone/path points to carry out user defined actions at any point. In fact any object/entity could potentially be used as a node. e.g. a crate or a box or a tree if it could be set as a definable node/action spot that any character reaching it could then carry out a chosen behavior attached to the entity/node so such entities need not even be actual points on a path or zone. These could be placed/exist anywhere but act as points of control/AI carry out action points and would not need be nodes/points as such but the same thing effectively though independant of any path or zone. i.e. a box that has an AI carry out action when the AI gets to it e.g. toss grenade, shoot, run away - reverse path and so on. Each being independently set with an action - one potentially has an endless variation of behaviours that could be applied to Characters to perform. There are probably quite an endless number of things could be done to control Characters and add behaviors to give them a great deal of apparent intelligence irrespective of any main script attached to them.
The above by and large refers to AI movement and users game scenario set up and manipulation of the Characters position and actions control at specific locations. This means the decision making at those points need not be in the main script but are only carried out when and if a Character reaches an action point. Such Action points I guess would need in a Characters dialogue properties box to have an if used field so that only the Character and type would use it as specified and a filed for a user to choose from a list of actions for a specific Character to carry out e.g. play sound, hide and shoot. Such action points could be used to apply actions to enemies, allies or civilians and so on independently and specific to type depending on the users specification in the properties for the character so that a friendly character could not shoot at you.
The above offers a number of options either one or more that could be considered or mixed and matched. These do not really managed completely free roaming AI if they are needed where they would have a need to have their own in built main script behaviours and or any decision making processes included in that. Of course if one had any entity such as a crate or box being able to hold an action command for an AI to carry out then free roaming AI could also make use of those.
Just as a matter of reference and example to consider- In FPSC Classic I have levels where I have outdoor scenes with a one piece terrain I made which covers the entire world size and scene. Here I can have and set up a similar scenario as I had outlined above for AI movement control - ensuring they only go where I want them to. They are restricted to certain areas of the map though free roaming enemy AI. Now e know that in Classic enemies fall through terrain models and or don't behave very well at all. My level is designed with the terrain and movement control restriction management in mind. I have a compound with buildings surrounded by terrain. The player can go anywhere the enemies cannot. In classic itself this is easy to do and its obvious how it would work. AI enemies are restricted to parts of the level that have segment floors placed obviously in the compound and building areas bit also anywhere the Terrain is more or less been made flat where segments can be placed just below the surface of the terrain. To the player of the level these segment location restrictions are not obvious, various height veg coverage blends into terrain hills where the AI cannot access and as they cannot fall of the edge of floor segments placed underneath the terrain or proceed further than the edge of the hidden floor segments they stop at the edges of the segments and don't follow the player. The floor segments can be laid out in any pattern and irregular to give a varied access movement around the areas of restriction and the AI enemies move well around the level anywhere within their forced boundaries provided this way.
Effectively this provides a managed zone to control where they can and where they cannot go and works extremely well as opposed to Reloaded currently whereby a fee roaming enemy can go anywhere other than into water (a similar use of restrictive control) and follow the player to the ends of a level and never go home or stay near their place of defensive need unless the player exceeds their attack/activation range at which time they do nothing but stop wherever they are and idle.
Now navigation/pathfinding/obstacle avoidance and any kind of management of control of movement/location and any type of node/point action behaviors that could be added to control AI behaviors at specific such locations would be a way of the user managing directly their game AI behaviors to suit their particular level scenarios in a managed way clearly.
To do this then one would need in the first instance to obviously have a range of behaviors scripts to choose from to apply to specific AI characters and individual action points.
In addition to this of course an AI not using the above type of control much as we have now, which is free roaming (AI on paths are free roaming too as they can leave their path), as a Character that has a level of indicated freedom with little user control requires to have some level of control applied via its own main or other script. To be viably realistic they of course need to have some same level of behaviors as any controlled characters except that they in this instance need a self determined (or fixed scripted) set of behaviours they may carry out depending upon circumstance and the best of these would have a variety of behaviors which they could choose from either as best scripted or ideally with a more than single choice and for best effect to provide a random choice in each circumstance. e.g. when attacking - run forward attack far - run forward far attack close - run forward attack straffe - run forward attack kneel and so on - same when running away/run backwards, take a hit and so on. i.e. each action having more than one random choice so that all the 100 enemies you have in your game do not all move forward or backwards and attack as 100 clones all looking exactly like one another and doing the very same thing in an orchestrated dance sway of movement. Same goes for their animations where not every single enemy should attack with the same animation behaviour, same movement, exact same attack sequences, Ideally some should move one way, some another, some shoot while kneeling or prone, others hide and shoot.
User control and action points can help with this too.
Given that best is often though not always, some flexibility and options and apparent intelligence and randomness then it would be good if users could build their own AI scripts from a choice list of pre-defined behaviours and save them.
GCE as an example had a plugin programme, AI Next where a user could edit AI script files, choose from basic AI types and via sliders enemy, friend, civilian, apply strength, low, medium, hard, add additional behaviours from a drop down list to build their own AI as needed for a particular character and scenario, save the files and further edit them later and re-save as new ones. This also allowed users to open the files for editing and write their own scripts or edit existing ones writing their own code internally and save the new scripts.
Just a few thoughts. I am sure everyone is already aware of these things anyway but just reiterating some things that may be useful ideas or concepts.
AI is a nightmare consideration as said I am sure. Though in an ideal world we would like top range things throughout no doubt, I am not expecting too much myself personally though any additions and or improvements would be most welcome. Anything that makes making a game easier and better must be a good thing as we will end up with just that, more and better games and that can only be good for the product. That goes for all areas of Reloaded needless to say.
Thanks again to all TGC and all supporters of Reloaded.