![]() ![]() ![]() ![]() Just as with DML files, these Squirrel scripts are written in text files and compiled at runtime. As of System Shock 2 v2.46 (or Thief v1.25), NewDark comes equipped with a Squirrel scripting extension which exposes a wide set of the game’s core functionality for use in custom scripts. However, it goes deeper than just the gamesys and mission DML injection. As of System Shock v2.48 (or Thief v1.27), these DMLs even extend to the creation of brand new archetypes in the object hierarchy at runtime. Once the user is familiar with DML syntax, they can extensively alter weapon statistics, skill requirements, resource distribution, difficulty parameters, and more via simple text files. This means that it is possible to make deep changes to the object hierarchy and levels using the same data-driven toolset as the original Thief/SS2 designers without making any permanent changes in the editor, so many mods can be loaded atop one another. Key among them is the ability to inject patches to the gamesys (defining the object hierarchy and more) and the mission (level) files via simple text files called DMLs that are loaded at runtime. In addition to a huge number of technical improvements for the games and expanded limits for Dark’s level editor, NewDark features powerful new tools for modifications. Using the aforementioned features of the Dark Engine and some notable extensions to it such as the powerful NVScript package by Nameless Voice, fans of Thief and System Shock 2 had been creating mods to alter gameplay and offer new content in the form of fan missions for over a decade by the time Le Corbeau announced his ambitious NewDark patch on the French Thief fan forum Ariane4ever. I could go on about the Links system used to encapsulate relations between entities and build map triggers, or the Metaproperties which attach groups of properties and stim responses to objects, but I’m stretching the limits of my own knowledge, and I’d recommend reading one of many community guides on the subject for more info. Notably, the concept of stim and response has been extended to other Immersive Sims, such as Arkane’s Prey which uses an analogous “signal” system (and while something broadly similar is accomplished by the notion of damage types such as in Deus Ex on Unreal Engine 1, its extent is limited to the damage system to which it particularly applies). Hence, a fire spell and an incendiary grenade can both generate the same type of fire stim and thus induce the same response in a target which is vulnerable to it without separately coding the “fire” interaction on both sources. A key component of this is the Act/React system (also known as stim and response or source and receptron), in which interactions between entities are modeled via abstract stimuli (like “Fire” or “Stun”) that can induce a particular response in each entity they reach, allowing for an emergent web of interactions to be built between objects without specifying it explicitly in code. Scripts can then be attached to objects in the hierarchy to respond to messages sent by other game entities using their specified properties, opening their behaviors to tweaking by designers simply by altering the data in the object hierarchy. He discusses how the Dark Object System was developed to allow designers and artists to implement game objects and establish relations and inheritance of properties between them without any explicit hierarchy of classes stipulated by the game’s codebase. I highly recommend reading the Gamasutra’s Postmortem on Thief: The Dark Project by Tom Leonard, Lead Programmer on the project. The Dark Engine was designed to be data-driven and modular from the getgo, which is the source of much of the strength of NewDark today. Buckle up, it’s going to be a technical read. I’ve only been working with it for two weeks, but I was able to start producing and testing changes rapidly using NewDark’s toolset, particularly its powerful DML injection system and Squirrel scripting extension. In this blog post I want to highlight some of the advanced modding features of the NewDark Engine, which is updated by an anonymous individual and maintained by the System Shock/Thief community. I’ve taken a break from my work on GMDX to produce a balance modification for System Shock 2, which you can find here: System Shock 2 – Rebalanced Skills and Disciplines. ![]()
0 Comments
Leave a Reply. |