Has there been work on a limited API? I didn’t read through the entire link on UnrealScript, but it sounds like it tried to much to be a programming language, and the only interface between inside/outside code. Even if it was added in, a standard extra-object importing library and handling system could go a long way.
I imagine most developers would like there to be an ultra-optimized core, but still have a middle more flexible layer where content could be dynamic. Red Alert 2 and Yuri’s Revenge for example had some of the most beautiful modding available, where there was a strong hierarchy, like for a weapon, bottom-up, you’d have warhead+projectile->weapon->unit, and was all accessible through text in the beginning, with huge reference sections. Later an “IDE” called TibEd simplified while still permitting manual editing. The game did bug out when you tried to select thousands of units, but the engine performance and net performance were beyond incredible, comparing the flexibility and ease at which one could modify the game. Even without hardware acceleration it ran incredibly (I think I was on a 1.6ghz P4 with 2GB of ram for the longest time). The packaging system was also additional and standardized, and since even the start-up sequences and campaigns were exposable, it is what I would call the best closed-source moddable game. It did not permit changing the AI routines directly, but there was weighting factors on a per-difficulty basis, and pathfinding was top-notch.
On a side-note, it feels like there’s weird performance gap, where something like Team Fortress 2 looks to have the same quantity of variables exposed as some previous games like Red Alert 2 but there was a severe regression comparing like 100 buildable units. 100 buildables all with modifiable statistics and patterns, while a more modern game has maybe 30 at a non-default value. Can a developer shed any light on what may contribute to ? I’m not disrespecting modern engines, I’m looking for personal experiences on “better” or “worse” decisions when programming and exposing flexibility.
Some considerations?
-modifications are set before the game commences (the rules were set, although unit statistics like speed and damage had multipliers, and weapons could change per-unit)
-there were strict limits on what could be imported, there was a weird voxel format for 3d, icons were low-resolution bitmaps as opposed to vectors
-the AI was mildly effective, but not intelligent or strategy-changing
-some games have full 3d floating point, while older ones tended to used 2d ground + limited height variables
-nearly everything did not scale, so rendering was pretty fixed-pipeline
Edit: Here is the example file for Yuri’s Revenge. I include it because it is, whether a modder or developer, the organization, accessibility, and documentation for modifying the game are extensive. is only the core file, it does not include the art or sound mod files, which are available freely, nor did I include any references to tools used to modify asset containers.