Jump to content
Sign in to follow this  
The_Rock

PST-in-EET feasibility

Recommended Posts

Posted (edited)

Greetings, fellow BG aficionados! Seeing that this mod will, at some point down the road, include nearly every Infinity Engine game out there, I've been wondering how feasible it would be to enmesh Planescape:Torment into the Bhaalspawn saga? What would be the biggest hurdles? How much of the story would have to be rewritten in order for the protagonists of both games to coexist in the same timeline? Are there any technical limitations that are as of yet insurmountable? If this fusion were to be achieved, the community would be able to play all the Infinity Engine games with the same party from start to finish without any continuity issues. Do you think it's a vision worth pursuing? Looking forward to feedback. Would it be possible to turn the Nameless One into an NPC for the duration of the campaign while you do quests for him? I bought PST:EE recently but have yet to play it. I've heard great things about it though.

Edited by The_Rock

Share this post


Link to post

I *knew* this question would come up eventually. Even thought about asking it myself.

I wonder... Were EET to include PST:EE,  would it necessitate a change of name on part of the former? From EE Trilogy to EE Tetralogy... or possibly even beyond. EE Cycle? :laugh:

Share this post


Link to post
Posted (edited)
4 minutes ago, Istfemer said:

I *knew* this question would come up eventually. Even thought about asking it myself.

I wonder... Were EET to include PST:EE,  would it necessitate a change of name on part of the former? From EE Trilogy to EE Tetralogy... or possibly even beyond. EE Cycle? :laugh:

Oh yes, great minds think alike, don't they? Rofl, just kidding. I don't think that highly of myself. I thought this might be the final frontier for this mod, that's all. Popular opinion has it that PST has some of the best writing in video game history but I have yet to play it. It's bound to be a treat for a newcomer such as myself, right?

Edited by The_Rock

Share this post


Link to post

Are there any technical limitations that are as of yet insurmountable?

As far as I know, PST's IE variant is very different from all other IE variants. The arrival of EEs probably made PST not as starkly different from BG2 as its non-EE predecessor used to be, but I bet PST:EE still differs from BG2:EE significantly. Also I'm not sure EEex in its present state can handle PST:EE content in BG2:EE properly.

 

How much of the story would have to be rewritten in order for the protagonists of both games to coexist in the same timeline?

Vanilla BG2(:EE) does offer a plausible hook that could allow CHARNAME to visit Sigil. Thus, assuming that Sigil can wait until BG2, BG2's story probably wouldn't require many major alterations. PST's story? A great deal of it would have to be changed and some of it would have to be discarded altogether, I'm afraid.

 

Do you think it's a vision worth pursuing?

I'm going to say: Yes! How anyone can resist a quest of such awesomeness? Seriously though, PST content would probably make a fine addition to ToB. ToB needs more extraplanar adventures! CHARNAME's first visit to Sigil needs to occur in SoA though, otherwise we'd be hard pressed to justify introducing the city itself so late in the Bhaalspawn Saga.

Share this post


Link to post

I'm not so sure about the same protagonist to experience all the sagas, but for sure having access to all existing areas in a single installation would allow for other mods to take advantage of that and maybe make use of the areas in the future.

Nameless One is too iconic for me to be able accept that my charname in Bhaal saga can overlap with him 😕

 

Share this post


Link to post

PST is far, far more story focused than any of the other IE games, and trying to incorporate its story elements into BG is a nightmare waiting to happen.

That said, I agree as to including its creatures and areas, at the very least for new things to explore and fight. Having a Djiin or something be able to transport the party to Sigil would be kind of neat, even if it's a mostly storyless, contextless romp where you can pick a few fights and buy from whatever shops there are.

Share this post


Link to post
9 hours ago, Istfemer said:

Are there any technical limitations that are as of yet insurmountable?

As far as I know, PST's IE variant is very different from all other IE variants. The arrival of EEs probably made PST not as starkly different from BG2 as its non-EE predecessor used to be, but I bet PST:EE still differs from BG2:EE significantly. Also I'm not sure EEex in its present state can handle PST:EE content in BG2:EE properly.

 

How much of the story would have to be rewritten in order for the protagonists of both games to coexist in the same timeline?

Vanilla BG2🙂EE) does offer a plausible hook that could allow CHARNAME to visit Sigil. Thus, assuming that Sigil can wait until BG2, BG2's story probably wouldn't require many major alterations. PST's story? A great deal of it would have to be changed and some of it would have to be discarded altogether, I'm afraid.

 

Do you think it's a vision worth pursuing?

I'm going to say: Yes! How anyone can resist a quest of such awesomeness? Seriously though, PST content would probably make a fine addition to ToB. ToB needs more extraplanar adventures! CHARNAME's first visit to Sigil needs to occur in SoA though, otherwise we'd be hard pressed to justify introducing the city itself so late in the Bhaalspawn Saga.

Ah, you must mean the Planar Sphere! The original developers had extraordinary foresight or perhaps it's just a lucky coincidence (a team mate's nod to a video game being developed concurrently in the same studio I presume). I am in favor of a minimum interference approach as regards PST's story. Do you reckon the Bhaalspawn could be modded into the setting as someone who does the fighting and dungeon-crawling for the Nameless One? Maybe that would entail the least amount of additional writing and/or rewriting. No idea if the engine would support such a thing.

Share this post


Link to post

There are so many engine differences it would make you cry.

Share this post


Link to post
8 hours ago, lynx said:

There are so many engine differences it would make you cry.

Between PSTEE and BG2EE ?

Share this post


Link to post
30 minutes ago, Jarno Mikkola said:

Between PSTEE and BG2EE ?

Yes.

19 hours ago, Istfemer said:

Are there any technical limitations that are as of yet insurmountable?

As far as I know, PST's IE variant is very different from all other IE variants. The arrival of EEs probably made PST not as starkly different from BG2 as its non-EE predecessor used to be,

Nope - the two engines are still very starkly different.

Short story: once upon a time someone decided to set about making a PST-in-BG2EE mod, porting the PST content to the fancy new BG2EE engine.  Said someone was waved off by Beamdog, who thereafter unveiled PSTEE to the world.  While it is nice and all, it is not based on the BG2EE engine; the EE "3.0" engine is simply an updated version of the old PST engine.  It is in many ways, IMHO, quite inferior  to the BG2-based EE "2.x" engine.  I would far, far rather play PST in the BG2EE engine than play PSTEE as it is.

But, because the engines are so different, it would be a LOT of work.  More than anyone around here could probably manage...

Share this post


Link to post
Posted (edited)

To answer this question I've analysed PST:EE resources. Let's see what's different.

- missing actions:

19    JoinPartyEx(I:JoinGroup*Boolean)
29    RunAwayFromEx(O:Creature*,I:Time*AITime,I:NoAttacks*Boolean)
181    ReallyForceSpellLevel(O:Target*,I:Spell*Spell,I:CastLevel*)
181    ReallyForceSpellLevelAnywhere(O:Target*,I:Spell*Spell,I:CastLevel*,I:State*Boolean)
391    ChangeFaction(O:Object*,I:Value*Faction)
391    SetFaction(O:Object*,I:Value*Faction)
392    ChangeTeam(O:Object*,I:Value*Team)
392    SetTeam(O:Object*,I:Value*Team)
393    SetPortalCursor(O:Object*,I:Value*PORTAL,I:SetReset*BOOLEAN)
395    RunToPoint(P:Point*)
396    RunToObject(O:Target*)
397    RunToObjectFollow(O:Object*)
398    RunToPointNoRecticle(P:Point*)
399    RandomRun()
400    RunningAttack(O:Target*)
401    RunningAttackNoSound(O:Target*)
402    RandomRunContinuous()
403    RunToSavedLocation(S:GLOBAL*,S:Area*)
407    TeleportParty(S:Area*,P:Point*,I:Face*)
413    ForceAttack(O:Object*,O:Target*)
414    GenerateModronMaze()
415    RandomFace()
416    GeneratePartyMember(P:Location,I:Value*Specific)
417    SetNamelessDisguise(I:DisguiseNum*Disguise)
418    StickySinisterPoof(S:BamResRef*,O:Object*,I:Iterations*)
419    SetNamelessClass(I:Value*Class)
420    DisableFogDither()
421    EnableFogDither()
422    DisableSpriteDither()
423    EnableSpriteDither()
424    Damage(O:Target*,I:Delta*Delta,I:Modifier*Bones)
425    FloatMessage(O:Object*,I:StrRef*)
426    FloatMessageFixed(P:Location*,I:StrRef*)
427    FloatMessageRnd(O:Object*,S:Pool*)
428    FloatMessageFixedRnd(P:Location*,S:Pool*)
429    KillFloatMessage(O:Object*)
430    PermanentStatChange(O:Object*,I:StadID*Stats,I:Delta*Delta,I:Modifier*Bones)
431    DestroyPartyItem(S:Object*,I:All*Boolean)
432    TransformPartyItem(S:OldObject*,S:NewObject*,I:Charge1*,I:Charge2*,I:Charge3*)
433    ForceAIScript(S:ScriptFile*,O:Target*,I:Level*Scrlev)
434    QuitGame(I:Value*MovVal,I:Value*MovVal,I:Value*MovVal)
435    ExploreMapChunk(P:Center*,I:Radius*,I:Mode*)
436    PlaySequenceTimed(I:Anim*Seq,I:Seconds*)
437    FloatRebus(O:Target*)
438    ChangeDialog(O:Object*,S:ResRef*)
439    SetDoorLocked(O:Object*,I:Locked*Boolean)
440    ChangeColor(I:Range*ClownRge,I:Color*ClownClr)
441    IncrementProficiency(O:Target*,I:SlotNum*WProf,I:Modifier*)
442    IncrementExtraProficiency(O:Target*,I:Modifier*)
443    ForceFacing(O:Object*,I:Dir*)
444    SinisterPoof(S:BamResRef*,P:Location*,I:Itterations*)
445    CreateCreatureAtFeet(S:ResRef*)
447    TimedMoveToPoint(P:Point*,I:Time*)
448    SavePlace()
449    ReturnToSavedPlace()
450    FullHeal(O:Object*)
451    FullHealEx(O:Object*)
452    SetNoOneOnTrigger(O:Trigger*)
453    SetAnimState(O:Object*,I:Anim*Seq)
454    PlaySequence(I:Anim*Seq)
455    DestroyItemObject(S:Object*,O:Target*,I:All*Boolean)
456    FixEngineRoom()
458    DestroyPartyGold(I:Amount*)
459    StartCutScenePST(S:CutScene*,I:Value*)
460    RunToSavedPlace()
461    SetCorpseEnabled(S:Name*,I:State*)
462    GiveExperience(O:Object*,I:Amount*)
466    ForceSpellRESNoFeedback(S:RES*,O:Target)
467    SetRenderable(O:Target*,I:Renderable*Boolean)
468    ShowFirstTimeHelp()

- missing triggers:

0x0101    WasInDialog()
0x0106    NamelessBitTheDust()
0x0108    FailedToOpen(O:Object*)
0x010D    NullDialog(O:Object*)
0x0112    Vacant()
0x0113    HarmlessOpened(O:Object*)
0x0114    HarmlessClosed(O:Object*)
0x0115    HarmlessEntered(O:Object*)
0x40EE    Faction(O:Object*,I:Faction*Faction)
0x40EF    Team(O:Object*,I:Team*Team)
0x40F0    IsLocked(O:Object*)
0x40FC    PartyScriptsActive()
0x4105    TimerActive(I:ID*)
0x4107    NearbyDialog(S:DialogFile*)
0x4109    StuffGlobalRandom(S:Name*,S:Scope*,I:Range*)
0x410D    ExtraProficiency(O:Object*,I:Value*)
0x410E    ExtraProficiencyGT(O:Object*,I:Value*)
0x410F    ExtraProficiencyLT(O:Object*,I:Value*)
0x4110    LastPersonTalkedTo(O:Object*)
0x4111    NearSavedLocationPST(I:Range*)

- missing opcodes:

Play BAM file (single/dual) (369)
Play BAM file (370)
Play BAM file 2 (371)
Play BAM file 3 (372)
Play BAM file 4 (373)
Special spell hit (374)
Play BAM with effects (375)
Detect evil (376)
Prayer (378)
Curse (379)
Embalm (380)
Induce hiccups (381)
Fist of iron (382)
Hit point transfer (383)

- CRE format differences:

Unspent proficiencies
# item slots
Murder increment by
Thief XP
Mage XP
Good increment by
Law increment by
Lady increment by
Murder increment by
Faction
Team
Species
Dialogue activation radius
Collision radius
Shield flags
Field of vision
Attributes

-  STO file format differences: Sale trigger in Item for sale structure (point to strref number with script trigger that must return true to make item show up in shop)
- Hardcoded Levelling differences and unique inventory screens  (just play the game and see how they differ). The PST:EE engine also have the neat effect during dialogues where characters are not paused, as well as better TAB highlighting system.

On top of handling these differences such mod would have to rescale all TIS files to match BG games area art size (75%) and adjust WED and ARE files accordingly (with the exception of impeded blocks in ARE door structures the rest of this stuff can be automated thanks to Argent77's code developed for his Test Your Mettle mod). Also some creature BAM files would have to be scaled down also to 75% of their current size (can be done with BAM Resizer tool).

----------------------

Unless I missed something important, such mod is indeed feasibile in EE 2.x engine from technical point of view. The missing opcodes are easy to work around, most script actions and triggers could be replaced without much issue with existing ones, CRE file format differences are either meaningless for such mod or could be implemented differently (cast spell on condition => character dies), STO difference can be handled by updating the store via script, there are already tools and code to help with art conversion and other stuff is not really important in BG context. Existing EET weidu code could be used to port over the PST:EE into BG games the same way I'm porting BG:EE and IWD:EE currently, with some changes to adopt to the engine differences mentioned above.

BUT
That doesn't mean I'm currently interested in such project. I'm not going to spend time working on it unless someone with creative writing background and clear vision for such mod show up, ready to design its implementation, write story for it, adopt the existing dialogues to fit in BG context etc. I can't do any of these things to satisfactory level, since I'm not a writer and English is not even my first language.

16 hours ago, subtledoctor said:

While it is nice and all, it is not based on the BG2EE engine; the EE "3.0" engine is simply an updated version of the old PST engine.  It is in many ways, IMHO, quite inferior  to the BG2-based EE "2.x" engine.  I would far, far rather play PST in the BG2EE engine than play PSTEE as it is.

To me PST:EE looks like it's based on EE 2.x version, not the old PST one. All EE features are there, they seem to just branched the engine to add some additional PST stuff on top of it. Not sure why you would rather play PST in the BG2EE engine when both engines feel almost exactly the same.

On 7/31/2019 at 9:36 PM, The_Rock said:

I bought PST:EE recently but have yet to play it. I've heard great things about it though.

giphy.gif

Edited by K4thos

Share this post


Link to post
Posted (edited)
On 8/1/2019 at 4:50 PM, K4thos said:

To me PST:EE looks like it's based on EE 2.x version, not the old PST one. All EE features are there, they seem to just branched the engine to add some additional PST stuff on top of it. Not sure why you would rather play PST in the BG2EE engine when both engines feel almost exactly the same.

Looks like? Not sure if you're basing that on looking at the engine, or just playing the games. I speak from 2nd-hand information, but that information amounts to something like:

- Tried to mod some stuff in PSTEE, but it is nigh-impossible because of being hard-coded;

- Modding the same stuff in the EE 2.x engine is easy, that stuff is not hard-coded;

- Ergo, there are some major differences between the engines.

Furthermore, "both engines feel almost exactly the same" is crazy. BG2EE has the best tactical combat of any game I've played. PSTEE has just about the worst combat, tobthe point that even though it's a great game, actually playing it was so unpleasant that I couldn't finish. 

tl;dr: Whether in regards to playing or modding, there is a wide gulf between PSTEE and a hypothetical "PST-in-BG2EE." I would much prefer the latter. Unfortunately it's a pipe dream...

EDIT - here's a relevant quote:

"Having messed around a lot with modding Planescape, it is definitely harder to mod in any significant way than the other Enhanced Edition games. A lot of the game's internal logic is hard-coded or otherwise made inaccessible, and even small things like items and spells behave differently (from a modding side) than they do in BGEE or IWDEE, which makes adding new content difficult. 

Kits are, as far as i can tell, a no-go in PST, and adding new spells to the mage or priest spell list has proven remarkably difficult. The only classes that are supported for PC ability menus are the ones available on the companions (e.g. Fighter, Mage, Thief, Priest, Fighter/Thief, Fighter/Mage). No bards, paladins, or what have you. Sorcerers might work, but PSTEE lacks the requisite UI to handle sorcerer spell selection, so that'd have to be developed and even then I'm not sure it would work properly."

Edited by subtledoctor

Share this post


Link to post
Posted (edited)
3 hours ago, subtledoctor said:

Looks like? Not sure if you're basing that on looking at the engine, or just playing the games. I speak from 2nd-hand information, but that information amounts to something like:

 - Tried to mod some stuff in PSTEE, but it is nigh-impossible because of being hard-coded;

 - Modding the same stuff in the EE 2.x engine is easy, that stuff is not hard-coded;

- Ergo, there are some major differences between the engines.

I only finished classic PST and played PST:EE just a little to test some stuff, so I wasn't aware that many things are hardcoded compared to BG2:EE engine. Thanks for information.

What I said in my previous post still stands - the mod like this is feasible in EE 2.x engine from technical point of view (without EEex). I'm just not motivated to work on it, if the only purpose of said work is to make the PST more moddable. As mentioned, if a talented writer with a vision for the mod implementation in BG saga context will be interested in collaboration I can handle the technical stuff.

Edited by K4thos

Share this post


Link to post
Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...