For those of you that know .dll Modding, where should I start?

Started by KnucklyDuck, March 02, 2015, 11:22:37 PM

Previous topic - Next topic

KnucklyDuck

I want to know how to do and what to do to be able to do whatever I want with .dll and I feel my first project is a bit more than I can chew per-se. So I am asking you from the depths of my heart and the furthest reaches of my console, to tell me where to start.

What should I do to learn this stuff? Are there any mods you'd recommend me taking a peek at their source so I can learn from it? Good habits? Bad habits? Anything you'd tell to a noob to .dlls?

I'm not brand new to programming, I have a moderate knowledge of OOP and of Pascal (kill me please), so this isn't any baby level stuff, but when applying the steps to RimWorld, please be indepth.

And if anyone is willing, I'm looking for a mentor, and I plan to be thorough with my modding "career" within this game. Lot's of good content, and to be very very ingrained within the community.

Regards,
     KnucklyDuck and the Back of Class Studio Team
Why do Java programmers have glasses?
.
.
Because they can't C#.

NoImageAvailable

#1
Quote from: KnucklyDuck on March 02, 2015, 11:22:37 PM
I want to know how to do and what to do to be able to do whatever I want with .dll and I feel my first project is a bit more than I can chew per-se. So I am asking you from the depths of my heart and the furthest reaches of my console, to tell me where to start.

How about that tutorial on .dll-modding that is stickied in this very forum? Beyond that, learn C# and learn Rimworld's program structure, not much more anyone can tell you.
"The power of friendship destroyed the jellyfish."

herrcaptain

As someone else making the jump into this very thing, I think the tough part for most of us newbs is the part about learning the program's structure, especially with it changing so fast between releases (not that that's a bad thing, as it obviously means that things are progressing nicely). The tutorials are nice and definitely a big help, but so far I haven't come across enough of these sorts of resources that I really feel like I understand what is going on under the hood so it's tough to really figure out where to start with modding the dll's.

Going through existing mods and this very forum is definitely helping me hash it out, but I'm also in a position where I'm craving any bits of insight I can find, so I definitely feel what KnucklyDuck is saying. That said, this learning curve definitely exists with any new framework and us newbs just have to keep hacking away at it and figuring it out bit by bit.

skullywag

The changes to the c# arent usually that bad by now its usually namimg changes for old methods and the new stuff we all have to learn and the xml ones are just a case of comparing core to your own and picking the new bits out and replacing them. Its more tedious than anything , depending on the size of the mod. My point being dont be scared of the changes between alphas, theres always help here on the forums. Now go mod something....
Skullywag modded to death.
I'd never met an iterator I liked....until Zhentar saved me.
Why Unity5, WHY do you forsake me?

Viceroy

Yeah, the first step in modding dll's in my opinion should be looking at various mods ingame and taking note of things you'd like to recreate in some manner. Because each item and pawn and thing in a mod can be seen as a tool.

I'd suggest looking at:
CaveFlora does interesting things with MapComponents.
The zombie mod look at that because it does interesting things with MapConditions and some AI Behaviours.
Then the ticker based tutorial.
And finally slap the Assembly-CSharp.dll into ILSpy and check out stuff like Building_CryptosleepCasket and Building_PowerPlant. Since those are rather interesting.
Dog goes moo!

Gaesatae

I started with the dll tutorial because I didn't know C# and it was a big help. Then I made a simple mod as an exercise, nothing too serious, just a couple of customized buildings. When I finished, I spent a couple of days trying to learn the code structure behind specific things in game. Then you'll get familiar with the game code structure and it's easy to locate what you're looking for in the Assembly-CSharp.dll.

I found it's a very good exercise to browse the help forums, trying to figure out by yourself the answer for the people who are asking for help.

If you have programming experience, jump in. It's amazing the things the game allow you to do if you work hard enough.

KnucklyDuck

As to NoImageAvailable, you and I both no that is out of date amongst other reasons as to why it isn't ideal anymore.

Thanks everyone, ultimately it seems what I've been doing is the right thing to do, time to keep on doing it!

Cheers.
Why do Java programmers have glasses?
.
.
Because they can't C#.