Larian Banner: Baldur's Gate Patch 9
Previous Thread
Next Thread
Print Thread
Page 1 of 3 1 2 3
Joined: Jun 2014
veteran
OP Offline
veteran
Joined: Jun 2014
So, after having spoken with a Larian programmer, I absolutely have to rant because I feel cheated.

The following things are, at present, hardcoded and not mod friendly.

- talents (which means undead will always be stuck with that moronic racial talent)
- if I wanted to add a new attribute (say, Charisma) below wits, I wouldn't be able to do so
- if I wanted to add a new combat or civic skill to level up, that wouldn't be possible either
- GUI (flash without missing support)
- elemental types and resistances (because God forbid I feel limited enough with the 4 elements and poison, and only two types of physical damage)

There are probably a lot more, but these ones I got confirmation of.

I feel cheated. This is the same mistake done for Skyrim by Bethesda. I wish Larian had been more open about this rather than vaguely promising "a toolset". I regret backing the game on the promise of good mod support.

Last edited by Dark_Ansem; 21/09/17 11:37 AM.
Joined: Sep 2017
X
journeyman
Offline
journeyman
X
Joined: Sep 2017
Which undead talent is moronic?

Joined: Jun 2014
veteran
OP Offline
veteran
Joined: Jun 2014
The only one currently existing.

Joined: Sep 2017
X
journeyman
Offline
journeyman
X
Joined: Sep 2017
Well it is easy enough to remove it from them. I agree it would be nice if the talents themselves were more moddable though.

Joined: Jun 2014
veteran
OP Offline
veteran
Joined: Jun 2014
Stabbey had good ideas.

Joined: Sep 2017
Location: Finland
journeyman
Offline
journeyman
Joined: Sep 2017
Location: Finland
This is all what I've been feeling since day one. Level designers have it lot easier it seems. All the world building tools are right there.

It's when you start wanting to do things to the data(skills, characters, attributes, etc), like you mentioned, that you start to hit massive walls and you have to Sherlock Holmes the files.


Joined: Jun 2014
veteran
OP Offline
veteran
Joined: Jun 2014
Which makes me really upset. What's the point? This is the stupidity of Skyrim actor values all over again.

I mean, Beamdog managed to open up the damn INFINITY engine. Larian raised 2 million bucks, I can't possibly believe they didn't have the resources to do so.

Joined: Aug 2017
B
stranger
Offline
stranger
B
Joined: Aug 2017
Larian has a level of dedication to their products that I've not seen for a long time. If the demand is great enough, you might have some luck.

I am however quite surprised at how few people are discussing the serious limitations of the toolset, I was expecting a much bigger fanbase to jump out of the woodwork.

Joined: Jun 2014
veteran
OP Offline
veteran
Joined: Jun 2014
They aren't immediately obvious. I actually had to ask after trying and failing.

Joined: Aug 2016
apprentice
Offline
apprentice
Joined: Aug 2016
Originally Posted by Dark_Ansem
They aren't immediately obvious. I actually had to ask after trying and failing.


Maybe users who hit a roadblock could make a thread in which everything that is not possible is listed? I think that could be really valuable to users who want to know what can be accomplished and what not, as well as show larian again that there is interest for these features.

Regarding the GUI: we can unpack the files with JPEXS [0] (I tried it). Maybe there is a way for us to change and compile them so the game accepts them like the people did with Skyrim. Although that would probably only allow slight modifications but not completly new GUI elements as they would probably need to call into the engine.

[0] https://www.free-decompiler.com/flash/features/

Joined: Jun 2014
veteran
OP Offline
veteran
Joined: Jun 2014
Originally Posted by JimPanzee
Originally Posted by Dark_Ansem
They aren't immediately obvious. I actually had to ask after trying and failing.


Maybe users who hit a roadblock could make a thread in which everything that is not possible is listed? I think that could be really valuable to users who want to know what can be accomplished and what not, as well as show larian again that there is interest for these features.

Regarding the GUI: we can unpack the files with JPEXS [0] (I tried it). Maybe there is a way for us to change and compile them so the game accepts them like the people did with Skyrim. Although that would probably only allow slight modifications but not completly new GUI elements as they would probably need to call into the engine.

[0] https://www.free-decompiler.com/flash/features/


I did think about the Skyrim workaround, but I am not proficient enough.

Joined: Sep 2017
C
stranger
Offline
stranger
C
Joined: Sep 2017
I have to agree here, some of the limitations seem just so very random. I mean resistance types are basically a single line entry with: Damage Type X decreased by Resistance type Y. And even some kind of damage type/armor type system is just a 2D table.

And the civic/magic/combat skill schools could be handled like one of the many other tree views (story editor for example). Were one entry is one school with a field for modifiers like increase duration of all entities with tag Summon by 10%.

Joined: Jun 2014
veteran
OP Offline
veteran
Joined: Jun 2014
Originally Posted by cedi
I have to agree here, some of the limitations seem just so very random. I mean resistance types are basically a single line entry with: Damage Type X decreased by Resistance type Y. And even some kind of damage type/armor type system is just a 2D table.

And the civic/magic/combat skill schools could be handled like one of the many other tree views (story editor for example). Were one entry is one school with a field for modifiers like increase duration of all entities with tag Summon by 10%.


And yet they are hardcoded. It's maddening.

Joined: Sep 2017
K
stranger
Offline
stranger
K
Joined: Sep 2017
Yeah, I honestly have trouble figuring out what isn't possible because of lack of documentation on some of the story functions and core elements of the game.

For example, I was looking at _crime, but I could not find how the story knew something was stolen. It just had a function call named CharacterCrimeSensibleActionNotifier or something and I see no mention of how it knows to send an event update.

I even searched if anyone looked at this in the first game, but nope. I could not find one discussion about how crime really works at the core.

Yes, I know it can be disabled.

Joined: Jun 2013
old hand
Offline
old hand
Joined: Jun 2013
I really don't know where people got the idea you'd be able to modify non-script based mechanics to the extent people complain they can't.

Originally Posted by Kyrone

I even searched if anyone looked at this in the first game, but nope. I could not find one discussion about how crime really works at the core.


That's because we were too busy trying to figure out how the stuff we could actually figure out worked horsey

I took one look at all the scripts involved in thievery in D:OS 1 and said, nah, not worth it. D:OS 2 thievery system is even more complicated.

Joined: Jun 2013
addict
Offline
addict
Joined: Jun 2013
You guys should try the ORK plugin for Unity.


Un chemin de 1000 lieues commence par un premier pas.

Project:
Steam workshop Frontiere
Joined: Mar 2016
Location: Belgium
T
addict
Offline
addict
T
Joined: Mar 2016
Location: Belgium
Crimes are handled in the story goal _CRIME_CrimeTriggers in combination with the character scripts CRIME_HumanReactions.charScript and CRIME_AnimalReactions.charScript.

Crimes are created by calling either CrimeRegisterCrime() or CrimeRegisterCrimeWithPosition(). For stealing specifically, this is done by calling CrimeRegisterCrime() with "Steal" or "EmptyPocketNoticed" as crime type.

The reactions to crimes are data-driven, but unfortunately there is no integrated editor for the data yet. It is done via Public/Shared/Stats/Generated/Data/Crimes.txt. We have quite a bit of documentation about the crime system on the internal wiki, but it still needs to be converted/transferred to docs.larian.com

Here's a summary I wrote about it a while ago on the internal chat, which explains the basic way it works:

Quote

1) you perform a "hostile" action (attack, kill, steal, pickpocked, use owned item, move owned item). This is the crime type: Assault, Murder, Theft, ... (names custom-defined by script/data; nothing is hard-coded regarding this)
2) the action is against someone that is (generally) not hostile to you (i.e., not in combat with you). This is the victim.
3) It is Osiris scripting that decides which actions under which circumstances are crimes, and then it just calls RegisterCrime() reporting the crime type (as a string), the perpetrator, the victim, evidence if any, optionally a specific position. E.g. (simplified) CharacterKilledByCharacter() -> register Murder crime
4) Others may see you perform this action (CanSee). Those are witnesses that may react to the crime. They are collected by code.
5) Others may hear you perform this action (distance check). They may start investigations. They are collected by code.
6) Some actions create leave behind evidence, such as murder (the body) or stealing (the missing item). If an NPC later on sees the crime scene, they may start an investigation at that point

Who can react to a crime?
* This is tag-based with priorities (defined in data, looked up using the crime type string that was specified when script registered the crime). MAGISTER and GUARD characters will generally get priority over anyone else. If no-one with a listed tag is found, no one will react (except for the victim itself).
* Different reactions can be specified depending on whether someone is a victim or a witness. E.g. attacking a BADASSCIVILIAN will immediately lead to combat, but attacking someone else with a BADASSCIVILIAN nearby, will make him try to arrest the perpetrator.
* Code will select who reacts to a crime (usually a witness or the victim), although script can transfer the investigation/reaction to another character (e.g. if the reaction of the victim is to call for help)How will they react?
* again tag-based. Some will flee (e.g. animals), while others may attack or arrest you.
* if they discovered a crime scene after the fact, or only heard the crime, they will start "investigating" to find the culprit. This boils down to interrogating all players they encounter in the neighbourhood. They will magically (and correctly) know whether you're guilty or not. Depending on tags and victim/non-victim status, they will then possibly allow you to bribe them, attack you, send you to prison, warn you, ...
* if they saw you performing the crime, they will directly go to one of the above behaviours without interrogating anyone (but it can be a different one compared to the one after an investigation)

Joined: Jun 2014
veteran
OP Offline
veteran
Joined: Jun 2014
Originally Posted by Kyrone
Yeah, I honestly have trouble figuring out what isn't possible because of lack of documentation on some of the story functions and core elements of the game.

For example, I was looking at _crime, but I could not find how the story knew something was stolen. It just had a function call named CharacterCrimeSensibleActionNotifier or something and I see no mention of how it knows to send an event update.

I even searched if anyone looked at this in the first game, but nope. I could not find one discussion about how crime really works at the core.

Yes, I know it can be disabled.


Quite simply, I asked. I literally begged the developers to ensure as little as possible was hardcoded way before the start of EA, but nope, voice in the desert.

Joined: Sep 2017
C
stranger
Offline
stranger
C
Joined: Sep 2017
For me the problem with the scripting is that it is so heavily distributed and the links between the different files/places are tenuous. Like there is one Osiris rule that creates a single database tag and the tag then triggers like 10 other rules. Some of these rules are iterators and others check a query which in reality is six OR statements distributed over three places and two of them have actions themselves. And that doesn't even consider scriptfiles which are hidden in the pak nor that some of the rules and queries might be inactive at a certain time.

Getting a comprehensive overview of that just seems so difficult without documentation for the native functions, the overloaded queries and the progs.

@Cromcrom The reason why I like to mod games is because they already have the art assets. They have been the bottleneck for all my projects with unity. ORK doesn't help with that.

Joined: Jun 2014
veteran
OP Offline
veteran
Joined: Jun 2014
Correct. I am not a full time developer. Which means unity is useless to me.

Page 1 of 3 1 2 3

Moderated by  Larian_KVN 

Link Copied to Clipboard
Powered by UBB.threads™ PHP Forum Software 7.7.5