Peter Gorniak (MIT)

Peter Gorniak, of the Massachusetts Institute of Technology (MIT), is probably the first person who used NWN as a research platform. He originally conceived it as Situated Speech Understanding (you can read his thesis proposal here) but eventually turned it into Affordance-Based Concept [ABC] (you can read his thesis here). Some of his other writing (involving NWN) can be found here (this one was about speech AI in NWN), and here. More information about “Understanding Situated Speech in Computer Games” can be found here, which has a video on how he converted NWN into a speech parserĀ - where he instructed NPC to perform certain actions by speech.

The Bioware Wednesday newsletter profiled Peter Gorniak back in 2005:

Peter: I realized that the game [Neverwinter Nights] provided a great environment in which to study some aspects of human behaviour and a large base of already active players happy to provide data. By that time, I had already poked around with NeverEdit, so I knew that at least reading all the file formats would be possible. I proposed it, and proceeded to start decoding the client-server protocol byte by byte because I need to record everything that goes on in the game. That took some time and it’s still not always perfect, but I get a pretty good transcript of the whole session.

For the next iteration of Bioware games, I really hope you build in some remote logging functionality. I asked BioWare for cooperation so that I wouldn’t have to spend all this time decoding their protocol, but sadly didn’t get a response back then. Otherwise, I use the game pretty much as is, with some restrictions enforced by in-game scripting (for example, in the study I’m currently running one player is not allowed to speak normally).

One other thing that I’ve done is implemented a way to externally drive NPCs within the game. It’s a real hack, but it works surprisingly well (and again, I’m not using this functionality in the study I’m running.) Essentially, I remotely write a database file to the NWN database directory that can be read via the DB commands in NWScript.

The to-be-controlled character has an immense script attached to its heartbeat – so big that the official toolset fails to compile it, but Torlack’s compiler running within NeverEdit on Mac OS X does just fine. It reads a set of NWScript commands from the database as text, converts their arguments into the correct types, and calls the function as specified. It can even do nested function calls and such. In combination with decoding the client/server protocol, this allows me to have a character that can see everything in the game and can be told to do anything in the game, but has its brain outside of the game.

Comments are closed.