Jump to content

Modding basics for programmers?


Taylan

Recommended Posts

Heya, I'd really like being able to dig into game files a bit, and check out the code of mods I install, for instance to see whether something I experience is a bug or not. (Especially since I'm on 2.6 already.)

I'm an experienced software developer, but I haven't been able to find any quick and easy guide that simply tells me "you can install this program and run this command to decompile BIF files" or "do this and that to compile a BAF and integrate it into the game."

I found the IESDP, which is an absolutely amazing resource. I also found DLTCEP but it doesn't seem very user friendly and seems to have no user manual. Then there's WeiDU which I guess can be used to extract information from game files, but not sure if that's the best way or if there's another tool I'm missing.

So, is there a straightforward guide or a sort of "rundown" explaining how to play around with IE game files?

Link to comment

Near Infinity and it's snapshots is the program you are searching for.

And the weidu's readme. A baf file is just a .txt file renamed so the weidu can compoile it to a .bcs file... this is all in the IESDP, you just need to read all the pages.

Also, a while ago I was told that one doesn't want to decompile a .bif file for many reasons -none of were given- but you just don't want to. So I'll give the same advice.

Edited by Jarno Mikkola
Link to comment
3 hours ago, Jarno Mikkola said:

Near Infinity and it's snapshots is the program you are searching for.

And the weidu's readme. A baf file is just a .txt file renamed so the weidu can compoile it to a .bcs file... this is all in the IESDP, you just need to read all the pages.

Also, a while ago I was told that one doesn't want to decompile a .bif file for many reasons -none of were given- but you just don't want to. So I'll give the same advice.

Oh, amazing! This is like a whole dev environment... Hah, it even found the screenshots I made with the Print Screen key and wasn't able to locate thereafter. xD

I know BAF are text files, I thought compiling them results in a BIF but looks like I confused it with BCS. I see BIF is an archive format of sorts. Lots of reading to do in any case.

I think it would be great if there was a little guide/tutorial like "making your first mod" which lists you the tools you'll need and walks you through the steps to create some basic "Hello World" kind of mod. Say, creating a new item called "Hello World" (could be a copy of another item, like a gem or something) and dropping it in the inventory of the character upon starting a new game. Or creating a creature which appears aside you when you start the game, and says "Hello World" when you talk to it... You get the idea.

This would allow people to jump right into mod development in a day.

Link to comment
48 minutes ago, Taylan said:

Say, creating a new item called "Hello World" (could be a copy of another item, like a gem or something) and dropping it in the inventory of the character upon starting a new game. Or creating a creature which appears aside you when you start the game, and says "Hello World" when you talk to it... You get the idea.

You can do this with NearInfinity, DLTCEP or Weidu.

If you want a quick, one-off in-game change, NI/DLTCEP will do fine (edit the file, drop into override dir). Weidu is the heavy machinery for creating mods that you actually want to distribute to other people. (But you still use NI/DLTCEP a lot while creating a mod, even it's weidu-packaged).

Scripting languages themselves are simple and shouldn't pose a problem for an exprienced developer to get the hang of. Mostly the challenge lies in learning how Infinity Engine works, how the things are connected, and various tricks and quirks.

And the most often given advice it to look at other mods to learn.

48 minutes ago, Taylan said:

I think it would be great if there was a little guide/tutorial like "making your first mod" which lists you the tools you'll need and walks you through the steps to create some basic "Hello World" kind of mod.

Well, it's in your hands. Once you figured out a thing or two, feel free to create one.

Link to comment

Wow, a software developer getting lost in the Infinity Engine. This thing is really very simple, and there is very little real coding. Mostly it's for more complicated functions for Weidu, the mod-sharing program. There is some flexibility there, something for a programmer to do, if you care to go into writing those macros etc. - but that has nothing to do with making actual fantasy adventures. Most people here dedicate their time to programming something or other for Weidu, but they create very little that's playable. The tools you use for that are very straightforward, even crude: 1) Weidu's D format - for writing dialogues; 2) Actions and Triggers in IESDP - the links on top of the page; learn those, make an empty BCS file in the mod-making shell of your choice, try simple checks and responses then; 3) Effects - also covered in the guide. Everything that can't be done with scripts can be done with custom spells under the hood. Have a look inside a "real" spell like SPWI112.SPL (Magic Missile); 4) CRE files - the creatures. Again, open one, try changing colors, hit points, adding-removing items. I could continue to other file formats, but you get the idea: no programming is necessary to be a modder. You look at existing items, ask a lot of questions on this board and the other two unabashedly and begin to learn the exceptions - where this engine just fails, where its functions can be upended (e.g. reverse Level drain can give levels), and you ask yourself how you can use these discoveries, what you can make with the features. Then you encounter a shitstorm of total indifference, but that's dessert; get to it in due course.

Link to comment
39 minutes ago, temnix said:

Wow, a software developer getting lost in the Infinity Engine.

I could go through the whole source code of GemRB to figure out how all the game files fit together, and it would still not teach me how to distribute mods with WeiDU. 😉 Documentation is crucial in any software project and more broadly in "software communities" that create content together with hand-crafted tools like NI/WeiDU/etc.

The French guide looks exactly like what I had in mind... at least from a glance, since I can't read French LOL. I guess I could run it through Google Translate and clean it up to create an English translation.

The link to the BGForge MSL extension for VSCode is also much appreciated. Nobody likes writing code in Notepad. 😛

Thanks for all the pointers!

Link to comment
59 minutes ago, temnix said:

Wow, a software developer getting lost in the Infinity Engine.

Well, you must have been the best pilot and submarine captain ever after you got your drivers licence. As in, there's specializations that a card cannot give you, and to get to that, you must know the general tools to the subject, and as said, the original poster didn't have them, so he asked the people that know to show them for him.

Now, the things that a serious programmer can do with moding, can be a lot of things, one being to extend the games starting excecutable to do stuff it wasn't meant to do like with EEex and ToBEx. And those are things that can employ people, like happened already, with the Enhanced Editions of the games, they were not created in a vacuum.

5 minutes ago, Taylan said:

 Nobody likes writing code in Notepad. 😛

You must have misssed me then, cause it's simple. Things being simple is far better than them not being simple. Not saying that those things are equalent, they are not, but whatever.

Edited by Jarno Mikkola
Link to comment

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...