![:)](http://public.gamedev.net/public/style_emoticons/<#EMO_DIR#>/smile.gif)
I've been working on the design of an open (moddable) role-playing environment for a while, now.
As far as moddability is concerned, I'm still reluctant to use scripts, and I'm holding the hope of being able to provide an enclosed design for modders, based on hard-coded classes exposing a few parameters only (I know, this may be counter-intuitive).
For example, to add a new ability, we could choose among a few set of generic types of events (e.g. this is a character-action, more specifically a spell...) and tweak some pre-defined moddable parameters based on the event type.
Let's say we want to add a shiny new healing spell, these could be :
- Interface (Ability Icon ; Default shortcut ; Target-based or ground-based cast-type...)
- Effect (type = healing [instant/over time]; healing efficiency ; range ; area of effect )
- Requirments (casting time ; required tool or alchemic component ; manna or other source consumption )
- Name of Graphical & sound effects data on preparation, casting and landing.
- Other Stuff (restriction or alterations based on nature of target... ; spell interruptability...)
Additionnaly, in the best-case scenario in which I have plenty of free time, I could imagine a lightweight home-made parser, which would make the following (silly) statements possible :
[font="Courier New"]Creature.MyCustomVar = Creature.Size * 20
...
ShinyNewHealingSpell.Range = Caster.MyCustomVar + 10
[/font]
Now, why is this reflexion in the AI section ? Well, I'm wondering if this could match well with an AI system based on utility theory, as Dave presented it.
i.e. casting our ShinyNewSpell could be categorized, AI-wise, in the "healing spell" action choice, using suitable considerations based on casting requirments, healing efficiency, urgency to heal...
Similarily, the world agents would be described in such a way that they could feed each other's decision process : appearance parameters and such to compute good feelings or threat considerations, courage and playfulness parameters to compute fleeing, or fighting, or playing around appraisals, etc.
A few binary-parameters, at the modder's discretion, could also describe a creature's mind in the form "I'm a wild animal", which adds the hard-coded consideration that "I don't care about world politics...", to take a silly example again.
Could a world filled with lots of NPC-creatures work well with this kind of hard-coded tweakable parameters (provided a "lil" bit of work), or do you think this would be either too cumbersome to code, or not moddable enough ? If you had to do this, would you rather use LUA scripts extensively for modded events/agents/actions definitions as well as associated AI behaviors ? Or would you do this in a way I didnt imagine ?
Thanks in advance
![:)](http://public.gamedev.net/public/style_emoticons/<#EMO_DIR#>/smile.gif)