Synopsis:
I too was skeptical when I first visited RPGAttitude's site and read the functional description of NPC Designer. As another reviewer previously noted, there were already NPC generators on the market and the quality of their output was suspect at best. I wasn't sure what to expect from NPC Designer and I really didn't want to throw more money at a piece of software that couldn't live up to its own hype. However, NPC Designer does indeed live up to its hype, and then some. Not only does NPC Designer create stat blocks that adhere to the RAW, but its ability to assign applicable skills and feats via class packages is far better than any other npc generator I have ever used. Gone are the days of tweaking the generated fighter that has maxed ranks in Craft while starving other class skills, or worse, a randomly assigned feat that makes no practical sense. The class packages put together for NPC Designer make sense. Much of the data is contained in vbscript files that can be modified (with a bit of scripting knowledge) to match your homebrew. NPC Designer is currently expanding to incorporate two new 'features': the Arcana Evolved ruleset and an Encounter Designer which will generate complete NPC encounters based on a few simple user-defined settings. NPC Designer is already head and shoulders (pun intended) above other npc generators out on the market. I would be hard-pressed to find a DM that would not find this utility a welcomed addition to his/her electronic toolset (if NPC Designer were a book, my copy would be well-worn and dog-eared from frequent use). A very solid 5 stars.
Detailed Description of NPC Core Tab Window Control
This review is based on a purchased copy of NPC Designer (NPCD), v1.0.112 - Gold Mode from RPGAttitude. This review focuses on the NPC Core tab window control. NPC Designer (NPCD) is the brainchild of David J Jones, one helluva software engineer and all-around nice guy.
NPCD is an application that utilizes structured programming in an OOP paradigm for Microsoft Windows operating systems. Many of the data structures are contained in VBScript files that allow the user to manipulate private member variables via accessor methods. VBScript is a scripting environment which was created by Microsoft to use either as a client-side scripting language for the Microsoft Internet Explorer (versions 3.0 and later) or as a server-side scripting language with the Microsoft Internet Information Server (versions 3.0 and later). The use of VBScript in NPCD allows the user more control over the data and offers near-limitless NPC refactoring capabilities for users familiar with the vbscript syntax.
The principle design of the NPCD GUI makes significant use of Tab Windows to compartmentalize the different functions of the underlying structures into logical groupings. This design allows for a cleaner and easier Graphical User Interface (GUI) for the user to interact with during operation. From the main form, we have the following Tab Windows (as read from left to right): “Encounter Designer”, “NPC Core”, and NPC Designer”. Since the design and implementation of “Encounter Designer” is still being defined, we will begin our tour of NPCD with “NPC Core”.
The layout of the “NPC Core” tab window allows users to define, via drop-down menus, buttons and edit-enabled text boxes, the core data needed to generate a NPC. Many of these fields are common across all NPC generators, but for clarity, I will list them and then offer a definition of each:
Race, Region, Sex, Alignment, Deity, Bloodline, Paragon, Core Class, Prestige Class, Base, Min, Bonus, Template, Profession and finally Statblock Format.
Race: This menu allows the user to define the desired race of the NPC to be generated. Many, if not all, of the SRD races are in the list. The user may choose to edit the appropriate vbs file and add custom races, but, the associated structure for the new race needs to be properly defined and scripted before the user can take advantage of NPCD’s build engine.
Region: This menu allows the user to select a geographical region that the NPC is associated with. The value of the region menu allows NPCD to better fit the NPC with a class package suited for the chosen region. Class packages will be discussed later in this review. The user may use the default setting of ‘Random’ to allow the build engine to pseudo-randomly assign a region.
Sex: The desired gender of the NPC to be generated. The user may use the default setting of ‘Random’ to allow the build engine to pseudo-randomly assign the gender.
Alignment: This menu offers the user the choice of selecting an alignment from the standard tree of nine, as defined in the SRD. Additional menu items allow the user to randomize the alignment of the NPC. The user may use the default setting of ‘Random’ to allow the build engine to pseudo-randomly assign an alignment.
Deity: This menu is customizable and allows a user to assign a Deity to the NPC. The default option is set to ‘None’.
Bloodline: This menu is customizable and allows a user to assign a bloodline to the NPC. The default option is set to ‘None’.
Paragon: This menu option is customizable and allows a user to assign a paragon level to the NPC. The default option is set to ‘N/A’.
Core Class: This tab window control allows the user to assign several values to the NPC object. First, the user can select up to 4 distinct classes (both Player Character classes, and NPC Classes, as defined in the SRD) for the NPC. Additional drop down menus allow the user to assign a class level for each assigned class.
Prestige Class: This tab window control allows the user to assign up to 4 prestige classes, and class levels, to the NPC using drop-down menus.
Base: This tab window control allows the user to assign values to editable text boxes that correspond to labels for Strength, Dexterity, Constitution, Intelligence, Wisdom, and finally Charisma. Button controls can be used to pseudo-randomly roll ability scores or clear the aforementioned scores. To further customize the NPC, the user may choose to select a menu option from the ‘Array Type’ drop down menu to provide the build engine with a desired ability score range.
Min: This tab window control allows the user to define the minimum acceptable ability scores when the build engine is pseudo-randomly assigning ability scores.
Bonus: This tab window control allows the user to assign an ability bonus to the pseudo-randomly generated ability scores.
Template: This drop down menu allows the user to assign a template to the NPC being generated. I do not begin to know the number of templates available in the SRD, but NPCD offers nearly two dozen options.
Profession: This drop down menu allows the user to assign a profession to the generated NPC. There are over two dozen professions preloaded into NPCD.
Statblock Format: This feature allows the user to define which statblock format should be used when displaying the generated NPC in the Stat Block (Formatted) tab window control. NPCD supports the official statblock format as well as several other ‘unofficial’ formats and 3rd party software import formats.
The next tab window control I will describe, after Encounter Designer (which is not covered in this review as it is still being tested) and NPC Core, is titled NPC Designer. Within this tab window control are several other controls that allow the user to pre-assign a value to specific chakras and equipment locations on the NPC. These locations are:
One Handed x2, Two Handed, Ranged, Armor, Shield, Right Ring, Left Ring, Belt, Boots, Gloves, Amulet, Bracers, Mantle, Vest, Cloak, Robe, Head Gear, and finally Eyes.
A second tab window control under the NPC Designer tab window control is titled Feat, Skill and Stat Designers. This control allows the user to pre-assign feats and/or skills to the NPC before the build engine is called to generate the NPC. Once the user has assigned the desired values, the Generate NPC button control is pressed and the build engine reads in all variables and generates a NPC. The reviewed version of NPCD supports one NPC build per generation. The formatted statblock for this NPC is then displayed in the Stat Block[Formatted] tab window control.
As described above, NPCD affords the typical user with numerous variables that can be applied to a build either with automated pseudo-random assignments, or with user-defined values. This level of flexibility is not unique to NPCD, but unlike other npc generators that have incomplete implementations which lead to output that may adhere to the rules as written (RAW) but leave the user dissatisfied with the end result, NPCD accomplishes both tasks with nearly flawless execution. NPCD uses intelligent design and the aforementioned user-defined values to create a NPC that is both clean in statblock and practical in use. The only flaw I can find in NPCD at this time may be a result of my own making and not an issue with the application itself. Regardless, it should be mentioned. Thus far, I can find no control from within NPCD that enforces PrC prereqs, as defined in the SRD for the various PrC that are supported in NPCD. This issue can allow a user to create a NPC (if a PrC and associated levels are selected from the Prestige Class window tab control) with PrC levels for which it could not have if the RAW were followed. The response I received from RPGAttitude follows:
What should be happening (If the PrC script is coded correctly) is there should be a warning red text for anything not achieved during the creation process. If anyone finds something not doing this just need to bring it to my attention and I will add it.
The reason I do not just halt the generation process is because it breaks one of the rules I set for coding NPC Designer. I would not tell you how to run your game or how to create your NPCs. By stopping the generation I have done that. After all, you may want it not to quality for some odd reason like maybe you plan on tweaking it afterwards, who knows but thats why I established not to allow the software to tell people how to game..
In conclusion, I find NPCD to be a soundly designed and written npc generator, second to none I have ever used. The level of detail given not only to the GUI, but to the underlying data structures allows ease of use for both types of users: The General User who will never open a VBScript, and the Advanced User who will modify numerous VBScripts to allow NPCD to be used in a homebrew campaign. If, after reading this review, you still question the validity of my opinion, please visit RPGAttitude (
http://www.rpgattitude.com) and download the free demo before making your own decision.