New with Steam Version

Started by Hammish, November 21, 2014, 05:41:23 AM

Hammish

Splitting off a topic here for new modding info/issues with the Steam codebase, to keep the other thread clear. :)

So, uh, largest question here: I've been working with the new core.cpk and updating BTC to match some of the changes.  I updated the names in the effects folder... and then I realized why they had been updated: the Localization folder, with a conversion to US and RU names for each new $name string in the overall definition file.

Given that, I suppose I have two questions/needs for clarification:
1. I'm guessing that we need to define each string in each separate Localization file if we add or change anything.  So if I say, add a new qualification (as I have in BTC for new weight classes or equipment), I need to add an entry into each localization file.  If I don't, it would appear that the mod will not parse into the server application.

2. Does this mean that going forward, mod developers are 100% forced to localize to every language supported by VE?  If it works as it seems to from my observations, my only option here is going to be updating the definitions, then updating the _US file in Localization to match the changes... and then making an exact copy of that file but renaming it _RU and hoping someone else can convert the wording in it.  (I had/have someone doing it for BTC, others might not be so lucky.)  If it's possible in the long run, might be good to have a 'languages supported' flag in the header.xml file or somesuch.

Lurler

No, you don't have to localize your mod contents, it would work as is without moving strings to a localization files. However if you'd like for your mod to be localized you might want to do it. But it's entirely up to you.
Now, even if you do localize your mod you are only obligated to include an English version for it. Even if someone chooses, say, Russian language and there is no such localization it will just fall back to English.
Again, bottom line: localization is not mandatory, but if you do localize you are only obligated to provide English version.

Now, in the other thread you also mentioned about a bunch of error messages. What are these? I may be able to help if you give me an exact messages. But generally, just take a loot at the new core to see how things are done now. There really isn't much big changes, mostly small things here and there, so I'm sure it will be relatively easy to make your mod compatible with the new version.

Hammish

Ahhh I think I figured it out.  The issue seems to be if you try to change/remove any of the base effects from Core by providing new .XML files, but don't provide a blank list of localization files.  So as an example, all of the new effects in BTC are currently stored in effects_definitions_qualifications.xml.  What I think was happening when I tried to load it into the new version was that it was trying to take all the localizations from Core (effect_definitions_qualifications.en_us.txt and effect_definitions_qualifications.ru_ru.txt) and attempting to apply those to my version of the XML, so it expected to find strings in there ($piloting_light_frigates_title, ect).

Or, put another way, in my original .XML the Pilot Light Frigates effect had a <title>Piloting Light Frigates</title> tag, but because the localization files were loading from the new Core.mpk it was expecting to find the new string of $pilot_light_frigates_title string in there somewhere and couldn't.  As a result it would touch off a huge string of 'Not found variable to localize' errors when attempting to parse.

For anything new that I added, I can see whatcha mean, I don't /have/ to provide a localization; it works just fine as block data in the .XML instead of using a string.  The key was just making sure that one keeps all the original effects in the XML (even if they don't use them) and changes them over to the new string format.  If you don't do that and don't supply new localization files then the localization .TXTs from Core will load, look for the strings, and error out when it cannot find them.  (Not found variable to localize error)

Hammish

Oh, I did want to add one other thing, too, since it didn't exactly come across in the first post: I actually love that once all the kinks are worked out, the new system should make localization a breeze, just trying to work out said kinks. :)

Lurler

About your first message... we need to think about it to figure out how to make it simpler to change without creating problems like the ones you experienced. Good thing we have this opportunity to test everything! :)

And about localization being a breeze, it's actually even "breezier" since we have a special program that automatically does everything for you, and you can just type new text for each language in an Excel style editor. As soon as we are done we will release this tool as well.

Hammish

Yeah, I was trying to think of an easier way to do it, too... but couldn't, really, except maybe that tool you mentioned.  The only other way, really, is to put up a warning on the Wiki telling potential modders to make sure that they either provide a custom localization file to replace the default one in Core, or make sure they leave all the vanilla VE skills alone and update them to the newest version to get the proper strings. :)

Lurler

Okay, we discussed this issue and we decided to change the way it reports errors/warnings. It makes no sense to enforce this thing since it doesn't really matter if there exist a variable in localization or not, so it will not give you errors, just warnings, and will still allow you to run the mod.

Hammish

Will that just apply to the localization then, or other possible syntax things as well?  I actually love that it won't allow me to parse the mod in the server .exe unless it passes all the other syntax, it allows me to know at a glance if there's a game-breaking issue. ;)

Lurler

Yes, it is only for localization.

As for scripts - we have the "strict" policy enabled. The game won't know if a certain script is broken until it is executed, but when it does it will give you an error if there is anything wrong in there.

Hammish

Best of both worlds, then.  Awesome.  Cheers to you guys for the continuing good work. :)

Hammish

Also, with new patch I'm not able to actually launch BTC now, even if I pare it down to the bare basics (just added weapons and icons for them); it actually crashed the server app if I try to run it now, instead of just giving a parse error.

Anything I could try doing to get it working?  I can supply the log file if need be but it's not showing anything out of the ordinary, and I can't actually get anything out of launching the server app because of the crash, though here's the best screenshot I could get of it:

http://i.imgur.com/GbK5u3Q.jpg

ai_enabled

Quote from: Hammish on November 29, 2014, 11:38:14 AM
Also, with new patch I'm not able to actually launch BTC now
Hello! In case of a strange errors/unhandled exceptions always send us a log, screenshot and the mod itself please - because it's 100% our fail.
So please upload the mod somewhere and send me a PM with link.
Regards!

Hammish

Screenshot is above, of course. :)

Link to the mod: https://www.dropbox.com/s/dhhwj2qdztt2c83/btc.mpk?dl=0
Link to the log: https://www.dropbox.com/s/8f0vkvjrj02gojb/Log_VoidExpanse_Server_2014-11-29_11-21.log?dl=0

I did a bit of tinkering on my end, too, in an effort to help debug.  If I just included one of my new weapon .XMLs (modified to use the base VE skills/effects to equip it), along with the asset files for it (turret model, projectile model, new icon in inventory, ect) it worked just fine; things seemed to fall apart when I tried to make use of custom skills/effects. 

ai_enabled

Hammish, ok, I will investigate the issue.

Hammish

Roger that!  Hopefully it's not something small that I'm just plain missing in terms of the mod itself, since as I mentioned I was able to get a simple one to load.  I forgot to mention, I also tried a medium-scale version and that one gave me roughly the same error; when I tried loading it I had stripped out the BTC classes and quests and running just the revamped weapons + effects/skills, so it'd seem that's where the error is.  Thought maybe it had something to do with the localization changes mentioned above, since I know my qualifications effects .XML is a sort of hybrid with some base core attributes in there and some BTC variables.