Good info,
ket.
silverpower wrote:My problem lies with the fact that certain features I'll want to put in are nearly impossible in X-Ray short of mutilating xrGame.dll and friends.
There is a lot of stuff that is strangely hard-coded in the X-Ray engine,
silverpower. That's not a good thing from my perspective. Why they would black-box
parts of stuff and not make it truly extensible is bewildering, considering how much good object-oriented (class-based) design went into the original game.
"Bad dev! Bad!"A
very small subset of examples of weird partitioning in SoC: the weapon ranking (something you know well), the kill statistics tracking, some PDA stuff (the Marked One's bio pic, rank and reputation are in one black DLL box), arbitrary mutant management (psydog is derived from different class than other mutants -- try changing it to eliminate the stuck threat indicator when you kill the dog; controller's mental roaring sound control is embedded in
xrGame.dll -- and it's
broken), weapon attachments support, control of Marked One's attributes.
silverpower wrote:At least Lua has JIT available - absymal script performance is pretty much a thing of the past, unlike 1.0.
I don't have CS, so I'm not sure what you mean by JIT being enabled, since I thought it was already. (See SoC's
_g.script, top code block; if JIT isn't running, the script profiler hook is installed.) But it would be very easy to optimize some code. For example, the
printf() function does nothing in the retail version of SoC, so the myriad debug statements that use it can be safely removed.
Yes,
fatrap,
russao (
russo) and the AMK guys have made the engine dance, but a lot of that is via smoke and mirrors, taking objects offline and using netpackets to change attributes that should be directly addressable. Even then, the extensibility is not fully there. Look at the trouble
Decane is going through for the special weapon effects. "The Wizard of Awes"
EggChen can tell you about what particle effects work -- or don't work -- where.
The model work by
gosuke and the level work by
dezodor and others is indeed amazing -- but at what cost? X-Ray and its owners have not made this easy.
Maybe some of this is fixed in CS. Maybe better documentation would help. But
in my opinion, X-Ray has a lot of rushed
ad hack fixes hard-coded into the implementation, severely crippling the amazing design.* It's as if Elvis wasn't the only one who left the building.
This doesn't mean you can't do what you want,
silverpower. But it will be a lot of work with X-Ray. Alife is simply code that recognizes and responds to other NPCs and entities as well as the player -- and even that is quirky in STALKER. Cf. campfire NPCs going for the same spot, pushing each other out of the way, over and over, despite other open spots around the fire. (That's not realistic
enough; at some point one or the other should be pulling out a knife. :P)
It might be easier to implement Alife-like qualities in the F.E.A.R. engine than to go shopping for alligator repellent for use in X-Ray's swamp.
X-Ray 1.5 supports better modifiers (e.g., suit and weapon upgrades), but the haphazard implementation can result in losing weapon upgrades simply by putting the weapon down. It sounds like some work is still needed.
____________
*One of the entries on my
"Don't Confuse" list:
Don't confuse implementation with design. They are not the same.