Jump to content

ESP: The beginning and the modmerging system [S2G/CP1.6/EE2.1/SS,C]


Recommended Posts

I doubt this is pertinent, but in current D2F 13 and upcoming EE 2.3 (whenever it's released) I sorted everything under mgr.defineSpell( alphabetically so I could browse the list easier.

I guess sorting won't really matter.  D2F's blueprint.txt is also custom sorted by type of item.

Link to comment
12 hours ago, Flix said:

The game does NOT accept additional Token Bonuses.

There is no chance that somebody would want to have additional modmerging functionality to add entries ?

 

  • autoexec.txt: What kind of modmerge functionality is wished for here ?
     
  • behaviour.txt: "name         =" is the identifier ? There is also a cute local newBehaviour = {} in the middle
     
  • Somebody explain genMipMapInfo.txt to me, and what kind of modmerge functionality it would need.
     
  • heightmap.txt: "mgr.defineScaling( NUMBER," is the identifier ?
     
  • landscape.txt: Similarily to weather.txt this seems to simply spawn a landscape mask for coordinates. Should we take the "mgr.defineLandscape(SEC POS," as unique identifier ?
     
Quote

I doubt this is pertinent, but in current D2F 13 and upcoming EE 2.3 (whenever it's released) I sorted everything under mgr.defineSpell( alphabetically so I could browse the list easier.

I guess sorting won't really matter.  D2F's blueprint.txt is also custom sorted by type of item.

:thumbsup:

 

@dimitrius154 @Flix

Edited by Charon117
Link to comment
4 hours ago, Charon117 said:

autoexec.txt

As far, as I know, only the Addendum uses a custom autoexec.txt

4 hours ago, Charon117 said:

behaviour.txt

"name" subentries are unique IDs. local newBehaviour = {} looks like a constructor.

4 hours ago, Charon117 said:

Somebody explain genMipMapInfo.txt to me, and what kind of modmerge functionality it would need.

Well, it's supposed to generate texture mipmaps for items and creatures. It also appears to play a role in new game/load game procedure. It can also, supposedly,  be utilized to enable game session logging. No modmerge functionality is foreseen.

4 hours ago, Charon117 said:

heightmap.txt

numbers are unique IDs

4 hours ago, Charon117 said:

landscape.txt

This file looks mighty incomplete. I doubt it's being used.

  • Appreciation 1
Link to comment
23 minutes ago, dimitrius154 said:

As far, as I know, only the Addendum uses a custom autoexec.txt

As far as the .diff states it, this files controls what files are even getting taken for the current gamesession.

It first seems to load up general textures.

Then shared data between server and client, which dont necessarily have to be in the "shared" folder.

Then client only stuff.
Can I deactivate the splash screen there ?

And lastly server only stuff.

This file looks so highly sensitive that I suggest it to be copyable only.

41 minutes ago, dimitrius154 said:

local newBehaviour = {} looks like a constructor.

Is everything working in the file as expected ? There doesnt seem to be an constructor for the behaviour above, which begs the question.

If new behaviour is inserted should it be below or above  the constructor ?

 

57 minutes ago, dimitrius154 said:

Well, it's supposed to generate texture mipmaps for items and creatures. It also appears to play a role in new game/load game procedure. It can also, supposedly,  be utilized to enable game session logging. No modmerge functionality is foreseen.

Due to the assumed sensibility I suggest making it copyable only.

 

Check that out. The first

scaling    =

actualy has a tab before the =, but all others have one white space. Congratulations.

Link to comment

options_readme.txt just instructs the user not to edit optionsDefault.txt and to use a custom file in the AppData folder instead.

Despite this, optionsDefault.txt can be edited to force changes out at the mod-level instead of relying on each individual user to hunt down and make edits to a file in their AppData folder.

Link to comment
1 hour ago, Charon117 said:

Can I deactivate the splash screen there ?

Do you mean the Ascaron logo cutscene? You could. Remove:

	for index,trailer in sys.findFiles("../video/trailer/") do
	  sys.pushMovie( trailer )
	end
	for index,trailer in sys.findFiles("../locale/" .. locale.language .. "/trailer/") do
	  sys.pushMovie( trailer )
	end

 

1 hour ago, Charon117 said:

Is everything working in the file as expected ?

So it seems. Guess the constructor is read anyways, or is redundant.

Link to comment
12 hours ago, Flix said:

Negative. It's not showing any editing timestamp on it.

Ok, so .. I assume a lot of ? in a row equal :). I assume thats autocorrect, and is made to save server space ? Im crying, and a laughing crazily a bit.

 

3 points

@Flix @dimitrius154

 

12 hours ago, dimitrius154 said:

Do you mean the Ascaron logo cutscene? You could. Remove:

Phew. It .. works, and is nice. I suggest to implement this as for everybody else too. Or just wait until I release it as a standalone mod.

 

13 hours ago, Flix said:

Despite this, optionsDefault.txt can be edited to force changes out at the mod-level instead of relying on each individual user to hunt down and make edits to a file in their AppData folder.

Does it force change the options.txt permanently with every start ? Or is it a temporary change for one session ? Im kinda confused because if optionsDefault.txt would be working nobody would be able to change keys anyway ?

 

Since autocorrect altered my original question, I still have no clue about roadmap.txt. Competent insight is welcome.

 

Ill promise I will merge this post with the one above as soon as I get to it.
Have a good start of the week :).

Edited by Charon117
Link to comment
3 minutes ago, Charon117 said:

Phew. It .. works, and is nice.

I've solved it differently(guess, I took Ben's thesis about game developers deserving their credit(despite the time I have to spend to correct issues caused by their severe lack of labour discipline) to heart). I've edited the cutscene, significantly toning down the volume. It's the intro volume, that's annoying, isn't it?

  • Respect! 1
Link to comment
10 minutes ago, Charon117 said:

Does it force change the options.txt permanently with every start ?

He-he, it does.

10 minutes ago, Charon117 said:

if optionsDefault.txt would be working nobody would be able to change keys anyway ?

That's because the keys in optionsDefault are processed in a way, different from other parameters.

Link to comment

Hmm, by the way, I think, I understand, why the devs chose to utilize the .dds image format, despite the fact, that .tga works as well. It's about CPU use optimization. dds files can have in-built mipmaps, .tga's can't. 

Link to comment
2 hours ago, dimitrius154 said:

Hmm, by the way, I think, I understand, why the devs chose to utilize the .dds image format, despite the fact, that .tga works as well. It's about CPU use optimization. dds files can have in-built mipmaps, .tga's can't. 

I'd always thought the same.

Link to comment
14 hours ago, dimitrius154 said:

It's the intro volume, that's annoying, isn't it?

Eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeh .. DUH ?!

 

8 hours ago, dimitrius154 said:

Hmm, by the way, I think, I understand, why the devs chose to utilize the .dds image format, despite the fact, that .tga works as well. It's about CPU use optimization. dds files can have in-built mipmaps, .tga's can't. 

You lost me there.

 

14 hours ago, dimitrius154 said:

That's because the keys in optionsDefault are processed in a way, different from other parameters.

Give me a rundown of the process: If I change teleport to F9 where is it getting saved ?

 

Also are multiposts allowed now ?

Edited by Charon117
Link to comment
38 minutes ago, Charon117 said:

You lost me there.

Say, you have ~500 diffuse texture files used at any given moment. If they are in .tga format, they are mipmapped(matryoshka-style texture resizing techique, vastly improves texture processing times) in real time, or once, then kept in some kind of cache(RAM or harddrive) by a procedure in genMipMapInfo.txt. The procedure takes CPU time(and may cause lags). 

If the textures are in .dds format, they are already mipmapped(if saved properly), thus the mipmapping procedure is skipped.

47 minutes ago, Charon117 said:

Give me a rundown of the process: If I change teleport to F9 where is it getting saved ?

In options.txt. And not getting replaced by a value from optionsDefault.txt, unless you hit 'Reset to Default' ingame.

  • Thanks! 1
Link to comment
10 hours ago, dimitrius154 said:

unless you hit 'Reset to Default' ingame.

I get it, it doesnt apply until somebodies uses the ingame "Reset to Default" button, or has a fresh installation.

 

This is the logfile if you merge a complete EE2.1 build with an unedited EE2.2 content: logfile.txt

Edited by Charon117
Link to comment

Sooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo ...

 

I originally planned to create the software so you can add it to every mod, but now I see that the QT Core library is about 6mb, and the core c++ is around 1,3mb. In total we are looking at a 10mb software. Doesnt make a lot of sense having to append 10mb to a 2kb download everytime.

 

So I would like you to tell me how you would like to use a Merging Software most conveniently, and what you would like to see featured.

@Flix @dimitrius154 @gogoblender @Androdion and everybody else on this forum.

 

 

Ontopic I still need to know how to merge relations.txt and soundlcuster.txt. The problem is that it has dublicates, and since it doesnt crash one entry is obvioulsy taken over the other. In order to know if I take the first or last dublicated entry I would need to know which one is getting taken, which is why I ask somebody with a better to setup to test such than mine.

Link to comment

I can't really request any features beyond the odds and ends I've already mentioned. As a modder I will likely do all merging by hand. 

Users would probably want things to be as simple, streamlined, and foolproof as possible. I think you can trust your own judgment on that front.  I don't quite follow the "having to append 10mb to a 2kb download everytime" part, but 10MB is not so much in this day and age.

Link to comment

The modmerge software is meant to execute data changes in the already given form. For instance you could write

  AdjustCriticalDamageFactor = 1700,

to adjust the criticial hit factor of your current build. A single line like that takes 36 bytes to save, while if you want to execute it, you would need to add a 10 mb software.

 

I think its better to start off with the 2 main purposes of the software.

1. The modmerge software generally enables to save mods as a set of instructions, instead of complete files. The advantage of this is by taking the example above that if you simply want to publish a mod that changes the critical hit factor you can do so, without people getting their 97 other code lines in balance.txt altered.
An existing example would be Flixs EE Challenge mod, which is basically just 6 altered lines in balance.txt. Due to the current nature of how mods are distributed he has to publish the whole file. It works fine for somebody who plays EE anyway, but somebody else who doesnt necessarily play EE will also get all other 90 code changes in balance.txt which are synced with EE, and not necessarily to any other build.

The modmerge system would mean that Flix could publish a Challenge mod which is not only compatible with EE, but all versions and builds out there, as a six-liner.

Any kind of mod could be applied to any kind of currently existing build. If you want to make a sword, give it attributes, and set who drops it you can do that and publish it in a form that any build can take the data, reorganise it, and make it into a playable version. Instead of having a thousand splittered mods for Sacred 2 you will have ideas, which are applicable to all Sacred 2 builds. Instead of 10 authors of having to change the critical hit rate for their own mod, you can have 1 instruction file which says "Change Critical Hit rate to X".

So the first purpose of the modmerge software is to make mods (1) applicable to all builds (2) not alter uneccessary data. The main effect of this will be that (1) only ideas of mods will have to be formulated (2) you will no longer have to manually change data to avoid unecessary changes (3) mod content won´t have to be dublicated for each and every version there is.

 

2. Secondly, an automatic modbuilder is the goal-down-the-road. Going from the idea that the modmerge system supports single mod installs, an automated system that sequentially rebuilds your build is the goal.

Here is my example:

1. If I would want to rebuild my current build I would need to make a fresh installation, or verify game integrity via steam.
2. Then I would need to apply CP
3. Then I would need to install the Trimmed Textures
4. Then I would need to install EE2.2
5. Then E2.2 SuperSpawn
6. Then the Challenge mod
7. Then collect all the parts of Flixs music mod
8. Then install ESP
9. And then I need to manually go into every file, and change the Hireling behaviour, the balance.txt, the strenght of RpH and LL%, etc etc ... .

 

As you can see you can take a whole evening just getting your setup straight. The modlauncher will do ALL of that for you. It will merge the data step by step as specified, and after 5 minutes running in your background you will have a working build.

The best part of this is that if you want to add another mod in the middle, you can just verify a clean installation, and run the modlauncher again.

Unbenannt.thumb.png.26a3da3b4f95a876de04dfcfd27199a6.png

And if you want to apply a mod that you find later, you can either integrate it into your modlauncher and run it again, or apply it ontop of your current build.

 

 

 

The goal of this project was to get the single mod support going first, but since the size of the software would make every mod a minimum size of 10mb, and would skyrocket traffic, it wouldnt be a neat solution.
Disregarding the current situation I would like to get an idea of how the best integration of a build builder in players and modders life would look like, and what kind of features would be requested.

Link to comment
  • The title was changed to ESP: The beginning and the modmerging system [S2G/CP1.6/EE2.1/SS,C]

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...
Please Sign In or Sign Up