"If you really want something in life you have to work for it. Now quiet, they're about to announce the lottery numbers."

homer simpson

Artificial Life Designers

The Memeitc AI Toolkit is a comprehensive system for designing realistic NPC AI for persistant worlds. It uses a meme metaphor to rationalize the "hows and whys" of NPC life. The Memetic AI Toolkit provides an artificial life designer with a host of tools, documentation, example code, and a community to help with their projects.

This implementation is written in NWScript and is designed to run on a stand alone server using Bioware's NeverwinterNights game platform. It is distributed as a set of scripts that can be imported into Bioware's toolkit. It does not require a database, or hacks to the original game.

Developer's Release 6 Beta 6 Now Public
November 6, 2003

After several months of internal testing and integrated features, beta 6 has been made available.

The source code has been restructured. There are now more resolute libraries and header files. The public next release will lock down the core toolkit. From then on, maintenance and version management for libraries will become an issue for users of the memetic toolkit. Libries, such as lib_combat and lib_landmark will be versioned and distributed as separate ERFs.

Point-of-Interest Emitters (PoIs) now send messages instead of the depricated signal API. The examples provided in the module show a child with a torch, chasing rats, which flee from the light. PoI's now support 5.0m and 10.0m radius notifications, without polling. Any radius below 10.0m will poll with a 2 second loop checking all the creatures in the vicinity.

This beta introduces a new messaging event handler model, replacing the old trigger-event model. Events subscribe to a string based message name, rather than an int-based signal id. Additionally, a message struct is now used instead of a large number of parameters found in the older API. Finally, "trigger timers" are gone - it is now the responsibility of the event writer to call DelayCommand(delay, MeActivateEvent(MEME_SELF)); to create a polling event loop. The following APIs are relevant to event writers:

This beta introduces an untested moment-based scheduler. This scheduler allows you to chain functions, scripts, message and moments off of a relative "moment in time". This represents an abstract time like "Chapter 1 Starts", or "Dawn". When the moment occurs, all of the scheduled things are activated. If they are marked as repeatable then they are scheduled to occur the next time "Dawn" or "Chapter 1 Starts" occurs. (Note, this is *untested* and independent review and testing would be appreciated.)

Download the Memetic AI Toolkit: DR6 b6.
Report a bug in the forums.

Developer's Release 6 Beta 3 Now Available
June 27, 2003

This is an experimental release of the Memetic AI Toolkit. If you are using NeverwinterNights v1.30 or the recently released SoU Expansion, you must use this beta. It works around recent bugs, but also contains a large number of experimental features.

Download the Memetic AI Toolkit: DR6 b3.
Report a bug in the forums.

Developer's Release 5 Now Available
March, 2003

This release fixes many bugs, and adds a significant number of features. In particular, this release includes enhancements to the script libraries, trail and landmark system, list handling functions, function scripts that return results, dynamic triggers (Points of Interest), increased inline documentation, and more.

Download the Memetic AI Toolkit: DR5.