View Full Version : UBI tool for modding SH5/SH5 Editor
Captain von Keldunk
09-06-09, 07:11 AM
UBI tool for modders to Port SH4 mods/make SH5 mods?:timeout:
At least updates for SH4 editor?:hmmm:
karamazovnew
09-06-09, 07:45 AM
What SH4 editor? the S3d Editor is not made by Ubi but by the legendary Skwas. And he has already said that he will not update it for SH5.
But we do need a powerful tool for SH5 and I've been waiting for a thread to say this.
As long as the devs skillfully separate the game's engine (that they want to keep secret) apart from the submarine part of the game (AI, interface, 3d models, a few color shaders, career layers, most scripts, most controllers, etc.) they can provide us a tool with a different compiler than the dreaded Kashmir :up: And the mother of all modding tools is Bethesda's TES editor. The beauty of that tool is the ability to inject mods (not JSGME style). Injecting a mod means for example having different mods that change different parts the same file. Right now we need to make compatible versions of mods for other mods, even though our mods don't actually change anything over those mods, but they don't contain the changes contained in the other mods... :doh: I hate english. Any mod made for a version of the game is at least 90% compatible with any expansion since the expansions themselves are created by the devs with that tool. Imagine having a superb collection of mods for SH5 uboats and then they would make a US expansion and all mods would become fubar... :har:
Why would they fear giving us such a tool? Well suppose that some "fool" decides to create the American Pacific Campaign before Ubi releases an yet unannounced "SH5 Pacific War". Now... would that really happen? Did anyone manage to create an uboat in Sh4 BEFORE the Uboat Missions Expansion? I bet that for 2 whole years we'll be too busy fiddling with the uboats. SUre, we'll also cruise around with Yamatos and Bismarks, maybe even going on bombing runs with the planes :har:. But there's no way any mod would hurt Ubi in future expansions/games. THe only problem is that if they make SH5 as good as we want (or give us the tool to make customise it to our liking), we might not play anything else but SH5... It would hurt their other game sales :har:.
Captain von Keldunk
09-06-09, 08:05 AM
karamazovnew What SH4 editor? = SH4 Mission Editor:DL
Maybe it can be udated to be more like TES editor = S3D editor + Mission editor + Menu editor.:D Lite version of Kashmir:timeout:
keltos01
09-06-09, 10:34 AM
Well since we know that Skwasjer won't reverse engineer SH5, if the devs don't give us a modding tool like a lite Kashmir, I don't think SH5 will have such a long life expectancy... at least not long enough for people to wait for the next game if there ever is one..
I saw that Bohemia interactive did release a modding tool suite for ARMA2:
Bohemia Interactive provides continued support to its fans and community
Bohemia Interactive has released the complete editing tool suite for ArmA 2, allowing you to modify and create your own content from camo, models and weapons, thru to vehicles or even whole new environments and share them with hundreds of thousands of people online. The suite requires the ArmA 2 latest patch (v1.03).
link (http://www.gamershell.com/news_82180.html)Why doesn't Ubisoft do the same ????
keltos
skwasjer
09-06-09, 11:35 AM
Let's just wait first, shall we? Perhaps they deliver a fine tool. If not, it will depend on how different the game will be. I just do not look forward to hundreds of hours of work. I already asked the devs for prerelease insight in the game, but I have little doubt they will be allowed to. Just a little bit of help from them may change my mind.
keltos01
09-06-09, 11:50 AM
Let's just wait first, shall we? Perhaps they deliver a fine tool. If not, it will depend on how different the game will be. I just do not look forward to hundreds of hours of work. I already asked the devs for prerelease insight in the game, but I have little doubt they will be allowed to. Just a little bit of help from them may change my mind.
I sure hope they do ! that would be akin to recognizing the amazing work you did for this community !
or ask you to take part in building such a tool ?
regards,
keltos
TheDarkWraith
09-08-09, 11:52 PM
But we do need a powerful tool for SH5 and I've been waiting for a thread to say this.
The file structure will be similar to SH3 and SH4 so if you know the files/file structure and you can program (C++, C#) then you can make your own file editor tool (or modify your existing one to work with SH5 ;))
Yes I'm alive! Work has been keeping me very busy but I'll definitely have to make some time for SH5 when it comes out. You know software devs never release a perfect game and thus we have to tailor it/customize it to our needs/wants. Flags and exhaust smoke will be first on my list for SH5 if it doesn't have it already.
Hopefully they include the dynamic shadows or at least include the controller in an .act file so that we can try and enable the dynamic shadows ourselves (SH3).
Back to work.
RB :|\\
karamazovnew
09-09-09, 04:59 AM
Judging from the trailer, we have dynamic shadows and light shafts.
Ok I know a bit of C++ myself, not much, but enough to take info from ini fles and change text files. But tell me. As it stands now, can i do that for the act and dll files? (rethorical question).
The most powerful tool would be the game itself and it's code transparency. Normally, we shouldn't need more than a simple Notepad to mod it. But a good app that allows the quick loading of certain parts of the game (such as the interface) would speed up the modding process.
Mikhayl
09-09-09, 05:19 AM
I'm not familiar with modding in other games, but I did some little mods for Steel Fury (tank sim) and it was so much easier than in SH. All that was needed was the model importer (given by the devs) and text files editing. You export the entire model in one .x file, complete with damage boxes, all moving sub-parts (guns, wheels etc).
Most of the work is done straight into your 3D studio: architecture of the model (parent/child relations between parts), pivot points position/orientation (for wheels, turrets etc) and so on, and the model and components use a set naming convention so that the game roughly knows what does what.
Then in the text files you just set the specifications, performances, make the link between model parts and ingame functions and that's it.
Another advantage of the "official" importer is that the original game content is protected: you can import your .x model into the game's own format, but you can't export original game models.
maerean_m
09-09-09, 01:50 PM
https://fedoraproject.org/w/uploads/f/ff/Important.png
I think this is the first time that this is being mentioned (anywhere): big parts of the interface are being scripted, so there will be some quality modding on the interface (the kind of quality that can be seen in World of Warcraft mods).
The syntax being used is the one from Python.
The script will access the game through a SDK. Also, the scripted code can access the whole of .Net Framework classes (though it's not that necessary).
The editing of the scripts is done inside a special window, that allows the editing of the scripts while the game is running (edit & continue) with text auto-complete and jumping to function definitions, the inspection of the game variables in real time (through a property grid) and the complete description of all the exported classes (inheritance, properties, methods, events, inner types (enums, other classes)). Please note that not ALL game classes have been exported to the scripts.
Also, please note that not ALL the interface has been scripted, due to game (and time) limitations.
But the road has been opened for you to unleash your imagination and talent.
And, as always, there is the Mission Editor for single missions and dynamic campaigns.
At last, but not least, the way the AI thinks has been scripted and is being stored in text files (in a custom format). So that has also been opened for modding.
skwasjer
09-09-09, 01:55 PM
I LOVE YOU :up:
Good job maerean_m and co.
ReallyDedPoet
09-09-09, 01:56 PM
Wow, very nice news :yep::up:
TheDarkWraith
09-09-09, 01:59 PM
https://fedoraproject.org/w/uploads/f/ff/Important.png
I think this is the first time that this is being mentioned (anywhere): big parts of the interface are being scripted, so there will be some quality modding on the interface (the kind of quality that can be seen in World of Warcraft mods).
The syntax being used is the one from Python.
The script will access the game through a SDK. Also, the scripted code can access the whole of .Net Framework classes (though it's not that necessary).
does this mean that custom controls, dialog boxes, etc. can be added to the game (through Python scripts accessing the .NET framework classes)? What version of the .NET framework are you targeting? :hmmm:
Sailor Steve
09-09-09, 02:01 PM
Well dog my cats!
This is good news indeed.
No, this is wonderful news.
Something tells me this is going to be the best subsim evah!
But that's what you guys are aiming for, isn't it?:rock::salute::yeah::shucks::sunny:
maerean_m
09-09-09, 02:11 PM
does this mean that custom controls, dialog boxes, etc. can be added to the game (through Python scripts accessing the .NET framework classes)? What version of the .NET framework are you targeting? :hmmm:
Ok, forget about the .net classes (really). Players don't want Windows dialog boxes over the game while playing (in fullscreen).
But otherwise, you can create any interface you may think of using elements like buttons, texts, bitmaps, groups etc (that use the game's engine and are being rendered with DirectX). The buttons have events like Clicked to which you attach a delegate (using the familiar += and -= syntax). And all these buttons, texts, bitmaps, groups etc will be created in the MenuEditor.
AVGWarhawk
09-09-09, 02:16 PM
Yes sir! The creative juices can now flow into the pixel world of SH5! :yeah:
TheDarkWraith
09-09-09, 02:27 PM
The editing of the scripts is done inside a special window, that allows the editing of the scripts while the game is running (edit & continue) with text auto-complete and jumping to function definitions, the inspection of the game variables in real time (through a property grid) and the complete description of all the exported classes (inheritance, properties, methods, events, inner types (enums, other classes)). Please note that not ALL game classes have been exported to the scripts.
Also, please note that not ALL the interface has been scripted, due to game (and time) limitations.
Time to learn Python :yep: Heading over to Borders now to see what books they have on it.
Any chance we can get some screenshots of this special window and menu editor you speak of? Just curious to see what some of these variable names and classes are.
You mention time constraints as the limiting factor for everything not being scripted. Is it possibe that we (modders) can do the scripting of the remaining items that didn't make it during development? :hmmm:
maerean_m
09-09-09, 02:33 PM
1. Wikipedia (http://en.wikipedia.org/wiki/Python_syntax_and_semantics) is, as always, a good place to start.
2. I'll post some screenshots (but not right now, since I'm at home).
3. Sadly, no.
skwasjer
09-09-09, 02:53 PM
I will not forget about .NET classes. I won't need/use forms functionality, but I surely can think of many other things I rather do in .NET than in python. Not only that, I can use a ton of existing own libraries, yeeehaaa! I got some cool idea's already just by the info you provided... all I need to know now is what the exported classes are :)
Thanks again for this awesome news :up:
[edit] I'd love a beta! :wink:
TheDarkWraith
09-09-09, 03:12 PM
I will not forget about .NET classes. I won't need/use forms functionality, but I surely can think of many other things I rather do in .NET than in python.
If they are exporting functions, variables, etc. then they are reachable by other means other than python. Python is lightweight and easy (from what I'm seeing so far) but doesn't have the power that a full-fledged app (C++, C#) can do. This is going to get really interesting real quick. But it all depends on what variables, functions, etc. are exported. If the python script can call a library function of a program or DLL (other than the game's) then it should be possible to do all kinds of neat and interesting things. I got a ton of ideas in my head and need a BETA of the game to try them out :yep:
I wonder what version of the .NET classes we'll be able to access? Would it merely depend on the version installed on the client machine?
This is some really great news, especially with the talent in this forum.
Ok, forget about the .net classes (really). Players don't want Windows dialog boxes over the game while playing (in fullscreen).
Even now that I have a 22" monitor, I need to move my system and get back to the dual screen world.....hmm radar on the side....
skwasjer
09-09-09, 06:01 PM
You can load any assembly or dll from python, be it custom or clr. It's built-in functionality. Python is very powerful, more than you can imagine. I just don't prefer it for many reasons, but no biggie... I'll still use it.
Best is if we can use 3.x, since we can't reliably mix FM versions.
If they are exporting functions, variables, etc. then they are reachable by other means other than python. Python is lightweight and easy (from what I'm seeing so far) but doesn't have the power that a full-fledged app (C++, C#) can do. This is going to get really interesting real quick. But it all depends on what variables, functions, etc. are exported. If the python script can call a library function of a program or DLL (other than the game's) then it should be possible to do all kinds of neat and interesting things. I got a ton of ideas in my head and need a BETA of the game to try them out :yep:
I wonder what version of the .NET classes we'll be able to access? Would it merely depend on the version installed on the client machine?
TheDarkWraith
09-09-09, 07:57 PM
You can load any assembly or dll from python, be it custom or clr. It's built-in functionality. Python is very powerful, more than you can imagine. I just don't prefer it for many reasons, but no biggie... I'll still use it.
Best is if we can use 3.x, since we can't reliably mix FM versions.
That's good to know about Python. I just started reading the massive book and it will be some time before I can speak intelligently about Python.
Some things I do find interesting is that python doesn't have variable types per se. You just declare a variable and assign a value to it. Different for sure. One thing that I don't like about Python is that it's an interpreted language - like Java in some ways.
What's so much better about 3.x? The book I'm reading references 2.5 with some mentionings of 3.0 (3000 as they call it)
At last, but not least, the way the AI thinks has been scripted and is being stored in text files (in a custom format). So that has also been opened for modding.
Everything said is cool, but the AI innards are critical to making a really variable world. Kudos.
You're trying really hard to make me buy this, and I don't do u-boats. :hmmm:
maerean_m
09-10-09, 12:43 AM
In no way would be feasible to use a interpreted language in a game. The python scripts I've created are compiled and used in a sort of virtual machine. So it's not quite assembler code, but it's not interpreted either. Still is not advisable to call python code per frame. That's why it's used in the interface and the update of the interface is done using a timer (15 times a second). If the games pulls 60 FPS, the interface will only be updated every 4th frame (but the input from the player is handled every frame).
Mikhayl
09-10-09, 06:34 AM
Any insight about AI and player units? Will the "small" modders still depend on a genius to create a tool to import their creations? Or will it be possible "out of the box"?
can you, marean, skwas or racerboy, please tech down the discussion? what will be possible with this window? can you give an example?
will we be able to implement external tools like mobo?:hmmm:
TheDarkWraith
09-10-09, 08:39 AM
In no way would be feasible to use a interpreted language in a game. The python scripts I've created are compiled and used in a sort of virtual machine. So it's not quite assembler code, but it's not interpreted either. Still is not advisable to call python code per frame. That's why it's used in the interface and the update of the interface is done using a timer (15 times a second).
Thanks for the info. I was wondering about this since interpreted languages are rather slow. So the scripts you created are being used in their byte-code (compiled) form in the game or are you JIT compiling?
Is this timer (15 times/second) modifiable by the end user?
TheDarkWraith
09-10-09, 08:52 AM
can you, marean, skwas or racerboy, please tech down the discussion? what will be possible with this window? can you give an example?
will we be able to implement external tools like mobo?:hmmm:
Purely speculative with what can be done with this window but it appears that you will be able to add sliders, buttons, progress bars, NUDs, etc. to the interface so that you can set it up how you want. Say for instance we are given the amount of HPs the sub has remaining (a variable). We can map that variable to a progress bar (think of windows installers where you see that green bar that fills up from left to right as the program is installed) so we can graphically see the life the sub has left. It might even be possible to have some event/decision making in the game via user choice. For instance: if we are given another variable that shows our level of detection (how well the enemy 'sees' us) we could say that once the level goes above (or below) a certain value execute this function (where this function is a function in the game or possibly a user created one) Once we see some screenshots of this special window, interface, and SDK we can draw better (but probably not accurate) conclusions. A script or two from the ones maerean_m created would be nice to see also :03:
what do you mean like external tools like mobo?
skwasjer
09-10-09, 09:31 AM
can you, marean, skwas or racerboy, please tech down the discussion? what will be possible with this window? can you give an example?
will we be able to implement external tools like mobo?:hmmm:
If you have a coffee machine at home with an internet connection, I could make you coffee when the sun rises in SH5... ;)
Really, all speculative. We won't know till we know...
Mikhayl
09-10-09, 09:35 AM
Probably you could implement a variety of targetting tools, and have different tools for different navies without having to deal with hardcoded limitations as was the case in SH3 & 4.
skwasjer
09-10-09, 09:40 AM
Custom logs, music player, screenshot tool, link to google maps or navy charts (long/lat), custom recognition manuals, display online scoreboard, a detailed logging function that tracks speed, depth, how many torps fired (with torp settings).
Really, the silliest idea's could be possible... It just depends on what data is exposed
karamazovnew
09-10-09, 10:21 AM
OMG Python. I can't believe it. I'm a huge Monty Python fan myself :har:.
Anyway this is the best news of SH5 yet :salute: wohoooo :woot:. now I reaaaly can't wait to see the finished game, already knowing that I can change anything that bugs me :rock: Love you guys.
keltos01
09-10-09, 10:34 AM
https://fedoraproject.org/w/uploads/f/ff/Important.png
I think this is the first time that this is being mentioned (anywhere): big parts of the interface are being scripted, so there will be some quality modding on the interface (the kind of quality that can be seen in World of Warcraft mods).
The syntax being used is the one from Python.
The script will access the game through a SDK. Also, the scripted code can access the whole of .Net Framework classes (though it's not that necessary).
The editing of the scripts is done inside a special window, that allows the editing of the scripts while the game is running (edit & continue) with text auto-complete and jumping to function definitions, the inspection of the game variables in real time (through a property grid) and the complete description of all the exported classes (inheritance, properties, methods, events, inner types (enums, other classes)). Please note that not ALL game classes have been exported to the scripts.
Also, please note that not ALL the interface has been scripted, due to game (and time) limitations.
But the road has been opened for you to unleash your imagination and talent.
And, as always, there is the Mission Editor for single missions and dynamic campaigns.
At last, but not least, the way the AI thinks has been scripted and is being stored in text files (in a custom format). So that has also been opened for modding.
very very nice news Marean ! :yeah:
keltos
karamazovnew
09-10-09, 11:04 AM
Is it possibe that we (modders) can do the scripting of the remaining items that didn't make it during development?
Sadly no
Does that mean that we won't be able to create new variables and link them to the game's critical ones? One of the things I liked about SH3 and 4 was that with skwas S3d editor we could rotate any item by linking it to a dial. For example I made the Periscope station rotate with the TDC bearing dial. But there was no way of linking it to the true Periscope Bearing.
E more thorough example:
I create a new 3d dial in the torpedo room, a valve next to it and place a water spray emitter a few feet from it. When the sub is hit, the pipe "breaks" and i need to isolate it by using the valve to help reduce flooding. So I create a small script like this (my new variables are in red)
if(MyValve=OPEN)
{
___if(SubDamaged)
___{
____MyPressureDialValue=0
____MySprayIntensity=1
____MyFLAG=1
____GameTorpedoRoomFloodIntesity+=1
___}
}
else
{
____MyPressureDialValue=1
____MySprayIntensity=0
____if(MyFLAG=1) GameTorpedoRoomFloodIntensity-=1;
____myFLAG=0
}
So, can something like this be done?
Even if not, thinking back to World of Warcraft... Ok, that game was impossible to play at high level without mods and the mods were only for the interface. But the point I'm trying to make is a rewrite of a previous post of mine. When modding is accessible, mods tend to be smaller and, in a way, more transparent. In World of Warcraft there were no 2 people who had exactly the same interface. Yet it was the same game.
We will not see another overhaul of the game, as we did in SH3 and SH4. There won't be another GWX type mod, but many easy to install and very compatible mods. The core of the game and the devs' prestige will be untouched, no matter how much we mess with the game, how many mods and compilations we will have on our install. You see, having recently replayed SH3 without mods I couldn't believe that it was the same game as my GWX+OLC+ACM game. But now, all our mods will be about customisation (difficulty, immersion, control) but they will not obstruct the vanilla version, but make it shine :salute:.
Jimbuna
09-10-09, 11:44 AM
Sounds very promising maerean http://www.psionguild.org/forums/images/smilies/wolfsmilies/thumbsup.gif
Mush Martin
09-10-09, 11:45 AM
Oh this is going to be good.:yep:
martes86
09-10-09, 03:33 PM
All this sounds very nice, but I hope that in the end doesn't limit itself to only GUI scripting, since there are not as many mods to make for GUIs as there are for units, models, functionalities, etc...
THE_MASK
09-10-09, 06:29 PM
Being able to connect to the internet radio via the uboat radio would be good .
Webster
09-10-09, 07:11 PM
Being able to connect to the internet radio via the uboat radio would be good .
i cant even imagine how slow some peoples computers would be if something like that was done.
streaming media "in game" then if you try that for online play i think it would "require" a quad core with broad band connection to work wouldnt it?
Seeadler
09-10-09, 07:17 PM
streaming media "in game" then if you try that for online play i think it would "require" a quad core with broad band connection to work wouldnt it?
Yes with QuadCore and BroadBand it works like a charm, I hear webradio "Radio-Rivendell" while playing LOTRO.:up:
.
.
But the road has been opened for you to unleash your imagination and talent.
.
.
:o
So much to do, and so little time...
Thank you! :yeah:
Elder-Pirate
09-10-09, 09:48 PM
Yes with QuadCore and BroadBand it works like a charm, I hear webradio "Radio-Rivendell" while playing LOTRO.:up:
WELL bring it on for I just happen to have one of those fancy AMD Phenom X 4 64 "Quad Core" thing-a-ma-jigs. :rotfl:
Only problem is its on the shelf in the closet with its ASUS M3N78 PRO Motherboard and four Gigs ram. :hmmm:
Guess I better get busy. :sunny:
@maerean_m & company all I can say is a great big http://i4.photobucket.com/albums/y116/oleman/thanks31-1.gif
But I don't know about your http://i4.photobucket.com/albums/y116/oleman/kookie.gif , seems like he's really stirring things up. :har:
nattydread
09-10-09, 10:44 PM
Does this mean dynamically changing convoy routing to adjust and avoid areas of recent heavy u-boat activity?
How about varying payloads for merchants?...so tankers heading to the UK are full, while tankers to the US are empty and full of ballast.
Can we edit how aircraft fly, behave, how much fire/damage they can take before leaving the engagement or crashing?
JScones
09-11-09, 02:38 AM
https://fedoraproject.org/w/uploads/f/ff/Important.png
I think this is the first time that this is being mentioned (anywhere): big parts of the interface are being scripted, so there will be some quality modding on the interface (the kind of quality that can be seen in World of Warcraft mods).
The syntax being used is the one from Python.
The script will access the game through a SDK. Also, the scripted code can access the whole of .Net Framework classes (though it's not that necessary).
The editing of the scripts is done inside a special window, that allows the editing of the scripts while the game is running (edit & continue) with text auto-complete and jumping to function definitions, the inspection of the game variables in real time (through a property grid) and the complete description of all the exported classes (inheritance, properties, methods, events, inner types (enums, other classes)). Please note that not ALL game classes have been exported to the scripts.
Also, please note that not ALL the interface has been scripted, due to game (and time) limitations.
But the road has been opened for you to unleash your imagination and talent.
And, as always, there is the Mission Editor for single missions and dynamic campaigns.
At last, but not least, the way the AI thinks has been scripted and is being stored in text files (in a custom format). So that has also been opened for modding.
Ok, forget about the .net classes (really). Players don't want Windows dialog boxes over the game while playing (in fullscreen).
But otherwise, you can create any interface you may think of using elements like buttons, texts, bitmaps, groups etc (that use the game's engine and are being rendered with DirectX). The buttons have events like Clicked to which you attach a delegate (using the familiar += and -= syntax). And all these buttons, texts, bitmaps, groups etc will be created in the MenuEditor.
Sounds promising. I can envisage many good (and integrated) ideas...assuming the coders amongst us are willing to work together...
I'm curious though: how open will SH5 be to "in-game" variable/object modification?
skwasjer
09-11-09, 03:04 AM
i cant even imagine how slow some peoples computers would be if something like that was done.
streaming media "in game" then if you try that for online play i think it would "require" a quad core with broad band connection to work wouldnt it?
Nah, if you can play WMP or winamp or similar in the background, then this is absolutely possible.
onelifecrisis
09-26-09, 02:37 AM
I'm sure I can learn python easily enough, but would someone please answer me this (in plain English): what, other than the game's GUI, will I be able to mod (without needing someone like skwasjer to make a tool like S3D)?
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.