Post by fathertime on Jan 23, 2007 16:53:59 GMT -5
Decided to just copy and past this post I made from the NWNX forums. It's talking about a little side project I'm working on. eventually, once it's in a more polished form, I thought it might be interesting to some of you folks here.
Lemme know if there's any interest in something like this.
I'm using the MNXJ plugin to hook into a java application, which allows you to script out behaviors using a visual task decomposition language called TMK (Task-Method-Knowledge).
Currently, it's in the very early prototype stages, but it's coming along nicely. Linked below...
i148.photobucket.com/albums/s35/FatherTimex/PerceptionReaction.jpg
... is a picture of an early model I've hooked up to the OnPerception script for a creature in a module. At this stage, it's fairly simple.. it responds to various perceptions, and does things like walk to the source, say various things, etc. It should give you an idea of what this stuff looks like when it's made. It's worth noting that this isn't just a picture or diagram, but is the actual program that is called by the NWN script.
You can see, it's a bit easier to deal with than the text based scripting language. It's easy to see the branch points, and follow what will happen as the thing runs.
Right now, I'm working on the java bridge code to extend the API availible to the graphical interface. Since this stuff is being done outside NWN, it can't directly call on the script functions, so some bridge code needs to be made to allow strings to trigger actual functions in the script. Currently it can do basic things like move to objects and positions, talk and listen to chat, and a few other things.
One of the nice things is that the models are somewhat separate from the actual module being run.. meaning that you can change the behavior model while the module is running, and the next time the creature it's attached to spawns, it will use the new behavior, without needing to rebuild the module or edit any of the scripts.
The language itself is actually reflective, similar to interpreted languages like LISP. This means that when the models run, they can reflect upon their own structure, and change it. For instance, they could add a new way of interacting with a situation on the fly.
Anyway, I just wanted to thank you guys again for producing the NWNX stuff, and I thought someone here might be interested in this work I'm doing. I'm hoping that the MNXJ plugin will be ported to NWNX4, but I may end up having to do it myself. I do intend to do that eventually though, as most of the stuff I'm working on now should be easilly ported to the new framework (assuming the basic MNXJ commands stay the same).
Hopefully, I'll be able to release this stuff to the community at some point in the future once it's in a more complete state, and it will prove useful to someone.
Lemme know if there's any interest in something like this.
I'm using the MNXJ plugin to hook into a java application, which allows you to script out behaviors using a visual task decomposition language called TMK (Task-Method-Knowledge).
Currently, it's in the very early prototype stages, but it's coming along nicely. Linked below...
i148.photobucket.com/albums/s35/FatherTimex/PerceptionReaction.jpg
... is a picture of an early model I've hooked up to the OnPerception script for a creature in a module. At this stage, it's fairly simple.. it responds to various perceptions, and does things like walk to the source, say various things, etc. It should give you an idea of what this stuff looks like when it's made. It's worth noting that this isn't just a picture or diagram, but is the actual program that is called by the NWN script.
You can see, it's a bit easier to deal with than the text based scripting language. It's easy to see the branch points, and follow what will happen as the thing runs.
Right now, I'm working on the java bridge code to extend the API availible to the graphical interface. Since this stuff is being done outside NWN, it can't directly call on the script functions, so some bridge code needs to be made to allow strings to trigger actual functions in the script. Currently it can do basic things like move to objects and positions, talk and listen to chat, and a few other things.
One of the nice things is that the models are somewhat separate from the actual module being run.. meaning that you can change the behavior model while the module is running, and the next time the creature it's attached to spawns, it will use the new behavior, without needing to rebuild the module or edit any of the scripts.
The language itself is actually reflective, similar to interpreted languages like LISP. This means that when the models run, they can reflect upon their own structure, and change it. For instance, they could add a new way of interacting with a situation on the fly.
Anyway, I just wanted to thank you guys again for producing the NWNX stuff, and I thought someone here might be interested in this work I'm doing. I'm hoping that the MNXJ plugin will be ported to NWNX4, but I may end up having to do it myself. I do intend to do that eventually though, as most of the stuff I'm working on now should be easilly ported to the new framework (assuming the basic MNXJ commands stay the same).
Hopefully, I'll be able to release this stuff to the community at some point in the future once it's in a more complete state, and it will prove useful to someone.