dldrzz000 Posted November 5, 2019 Posted November 5, 2019 Among community discussions, creationkit website and personal modding experience of LE, properties declared in esp will be read when game starts and thus are less papyrus drawing than those declared by Game.GetXXX in repearted functions are, at the cost of more memory, and popssibly, more script strings. But I've found some mods in SE ((e.g. Dripping Aroused SE, Blushed When Aroused SE), scripting declaring propterties using Game.GetXXX many times, even for their own main quest. I do not think those modders are naive in scripting. Since limitation of strings number has been expanded in special edition, is that declaration using Game.GetXXX is better in special edtion? Thanks in advance..
Seijin8 Posted November 5, 2019 Posted November 5, 2019 34 minutes ago, dldrzz000 said: Among community discussions, creationkit website and personal modding experience of LE, properties declared in esp will be read when game starts and thus are less papyrus drawing than those declared by Game.GetXXX in repearted functions are, at the cost of more memory, and popssibly, more script strings. But I've found some mods in SE ((e.g. Dripping Aroused SE, Blushed When Aroused SE), scripting declaring propterties using Game.GetXXX many times, even for their own main quest. I do not think those modders are naive in scripting. Since limitation of strings number has been expanded in special edition, is that declaration using Game.GetXXX is better in special edtion? Thanks in advance.. Without knowing what mods you are talking about, it is likely a shortcut taken during development that was never undone/redone properly. As a modder, if you're testing a script out and you find a new property is needed, it is often faster just to throw the game.getxxx instead of needing to reopen the CK and recompile through that hunk of shit. Likewise while working between version updates where the mod is already running and a new property declaration may not stick into the savegame. That last one may be intentional for update/upgrade purposes where the previous code version would not have had the needed property in the save game, and this puts it there for sure. Not optimal, but possibly intentional.
Carabosse Posted November 5, 2019 Posted November 5, 2019 Sometimes it's just less hassle to use the GetForm method. Other times it's handy to have a property that is dynamic as you pass it around and inevitably want to change what is represents. I do this a lot when using complicated nests of messages. I also like to have formlists of particular types of properties. Mostly things like Globals, Keywords. Any form type where you're going to be using a lot of them and you don't want to have individual properties declared for each. So you only reference those forms by their index within a formlist. I find that there's no one best way of doing it. What works best in which situations differs and over time you settle into different methods depending on what you're trying to achieve. I think the extra papyrus overhead you're concerned about is pretty minute. Especially in an environment where you're existing alongside mods like Sim Settlements. Bethesda themselves use the GetForm method not infrequently in their scripts.
dldrzz000 Posted November 5, 2019 Author Posted November 5, 2019 I thank you both. It seems that the mechanism do not change between LE and SE. GetForm in disposable events (compatibility checks) is acceptable but it is still much slower (Game.getplayer is theoretically about 1000 times slower than a PlayerRef). This engine needs a total revamp.
Seijin8 Posted November 5, 2019 Posted November 5, 2019 56 minutes ago, dldrzz000 said: This engine needs a total revamp. Not sure I agree, but even if it is getting one, it won't be until at least after TES6. Starfield is already well into development and is using this same engine. If Todd Howard is to be believed (questionable), there are major advancements coming to the engine (likely in seasonal/time-determined environments and AI behaviors), but it is an update, not a rewrite.
Recommended Posts
Archived
This topic is now archived and is closed to further replies.