Mod-making Tutorials on the Wiki

Started by Tynan, April 23, 2014, 06:09:31 PM

Previous topic - Next topic

Alistaire

What's up Tynan and Mod Tutorial writers.
Something happened; tutorials from Modding are now moved over to Modding tutorials, which always was the better page to place tutorials.


The following text dump is me slightly ranting about the state of Modding Tutorials on the wiki.




I've worked on a few tutorials over the past day detailing the following things:

> The above four conclude the Introduction part of Modding Tutorials,

> The above three conclude the C# part of Modding Tutorials,

> The above two don't have a clear category.

... Which leaves the wiki with a bunch of red links and another bunch of outdated tutorials and an outdated Modding page:

  • Getting started, doesn't get you started but rather throws you into a crazed man's pursuits of making a useless buildingDef block in
    an outdated Alpha;
  • Items, continuing the guy's saga but this time it's titanium that is irrevocably the goal of learning XML;
  • Flooring, where this mad professor somehow thinks modding was invented to mod in titanium floors using outdated XML code;
  • Weapons, which might be a continuation of this tutorial series but for whatever reason explains the same things again and then assumes
    you already know how to make weapons by throwing all this code at you without actually explaining it;
  • Furniture, an article written in an entirely different alpha but slowly jumps in alphas till the final paragraph tells the reader "what's new
    in Alpha 11
    ", which really should be the goto version for anyone reading the article;
  • Races and Pawns, the most irrefutable mess of all of them. Not only does it completely deny anything a wiki stands for by putting all the
    explanations in a <source> box instead of actually writing paragraphs explaining its actions, it also details several points of interest to the
    reader who should be assumed to never have ever even looked at Races and Pawns in the first place and is now somehow expected to
    understand what the line "Although you can change the numbers and <diet>, they don't really affect the appearance of pawns with
    <race>MyRace</race>
    " means.

I also came across one of the most useful tutorials on the wiki at the moment;

  • Sounds which not only greatly details how to edit sounds from inside of Rimworld but also does so without touching custom code at all,
    which means there's not gonna be any incompatibilities between Alphas.




To make the wiki Modding Tutorials section a better place I would suggest getting style guidelines in place, telling people to not only scan but
thoroughly read the existing tutorials before writing a new one that either completely ignores existing tutorials and tells the reader for the fifth
time how to set up a folder structure or one that adds a lot of Alpha specific code so the tutorial is useful for a full four weeks.

I get that updating your tutorials on the wiki is a big responsibility, but throwing them on there and leaving them for time to make them
obsolete is more of a waste of time. Please, write good articles and if you think part of, for example, coding a nuclear reactor should already
be known to the reader you're golden writing a tutorial on the basics first and writing up to the point where the reader should understand all
the nitty-gritty of it.

TL;DR:

- Make tutorials that will stand the test of time, unless you want to keep them updated.
- Look at the other tutorials first; lots of things are already explained. Readers aren't stupid and don't want the same thing explained twice.





If anyone actually feels like I'm ridiculing their tutorials, that wasn't the purpose of this post. I felt creative in the body of the message and
went overboard with assumptions about Cala13er, so sorry if that offended you.

kaptain_kavern

Thx for your hardwork.
Much clear organised that way (or organized at all ;) )

longbyte1

I wrote the "Getting Started" tutorial. In fact, I was the one who started the whole modding tutorials thing. This was back in, what, alpha 4?

If anything, it was more of an invitation to contribute than an attempt to teach "advanced" modding. I thought, "no, it's not worth another 6 hours of research trudging through ILSpy and source code on people's mods trying to figure out the simplest plugin possible." Besides, this was alpha! Features are overhauled all the time; there's no point in trying to spend too much time figuring out changes in each update. :-\

Things are still changing a bit too rapidly. It's not just tutorials that are out of date; a lot of information and stats also get outdated very quickly and the way we are trying to keep it up to date at the moment is extremely inefficient. The content is also prone to grammatical errors that don't get fixed. In addition, not many of the properties are documented well. I can tell you that property X makes the def work correctly, but I cannot tell you where it fits into the game.

The sound article was written by Tynan. "Well why doesn't everyone write like him?" As the developer, only he knows the technical details of just about everything in the game, knows exactly what's going to be updated in the future, and what is going to stay the same. We as players cannot read his mind or the sticky notes on his desktop, and we do not know what game mechanics or defs will be preserved across versions in order to make our tutorial as "neutral" and version-agnostic as possible. Notice that Tynan did not include any XML code in this tutorial, because only he knows that the dev menu will always contain a sound editor that will always produce compatible code.

Suffice to say, there is no way to make a tutorial that will stand the test of time. Maybe later this will be possible once we get into Beta.

Alistaire

I understand you need some commitment to update tutorials over the course of several alpha's, I can't expect people to do that (although people
should expect to be doing that themselves really.. oh well). However;

The moment you open any of the tutorials on very specific things, you're greeted with "Start of by making your xml look like this." followed by a
very simple XML file structure. What a programmer or even XML coder has to know by now is that you're lazy and so are aspiring programmers
and coders. Just like in XML, you should be able to inherit existing information from the wiki otherwise you're writing the same code till the end of
time. It's true that the wiki doesn't have enough parent classes tutorials, but as a modder you already know the basics and as a wiki writer
you already know how to write..

As Tynan says in OP: "If you're willing to help write more modding tutorials, that would be awesome as well! I also encourage people to transfer
what they've learned from the forum to the wiki. The forum is ephemeral, the wiki is a permanent knowledge repository which I hope can just
grow and grow until it is supremely useful.
", the wiki is to be built upon over time and I get that half a year ago there was very little to build
upon, but people who see the tutorials in their current state are scared away and rightfully so.
I pointed out tutorials that I read when I started modding and never ever learned anything from - I browsed through the game files and read
them for several hours till it kinda made sense. What I didn't learn through that were things, like XML's Abstract type, which could be explained
in a small wiki article and then sent to the realm of things readers from that point on are supposed to understand.

So, if you're writing tutorials or planning on doing so, make sure you split more basic things that other tutorials might also need off into their own article so others can build upon it, and build upon the things that others have written so far.

s_fratley

Hey Guys,

I just got done looking through the tutorials and was encountering the issues mentioned above. I appreciate that individuals took the time to put that together those tutorials and it is unfortunate that they aren't as useful as they once were.

I am experienced with programming, however new to modding and writing XML and so was more interested in something along the lines of an API reference. specifically in regards to ThingDef and what parameters are required/available for it. I'm guessing from the above post that something like that doesn't exist and really the best way to get a grasp on creating mods is to dive into the source and just look at everything? I just wanted to check and make sure before i spend that time.

This is the first time a game has attracted me enough to become interested in modding. Thanks for a great game and I look forward to being able to contribute.

s_fratley

Cardbo

If I wanted to make a set of armor, give it certain attributes like say regeneration, is there a guide out there for that.  I see a weapons guide, but nothing focusing on armor.

Cala13er

You really wanted to shoot some bullets when criticising mine and others tutorials. Baring in mind I wrote them back in Alpha 3, and spent about 5 minutes doing so, a rubbish tutorial is better than no tutorial at all. But hey, whatever floats your boat I guess.

catter

Ok so I have a question...

I want to make a new background in A10 and I don't know how to do that. Please help!

Noa3

Can anyone update the example projekt pls?
for now, the example is realy confusing

ppumkin

Hi Everybody,
Been playing rimworld for manyhours by accidentially discovering it. I am a C# developer and noticed C# files while looking around the directory. So I thought to my self lets see if I can mod something.
Obviosly I started at the mod wiki help section, which now out of date but thanks to the stick post on the XML for A15 and the ingame errors I sorted the basic building out within 5 minutes.

So. I would like to update the turotial on github. Is this still the way to do it?
What is suggested way of doing it, just create a pull request against the named tutorial is enough?
I will be raising a PR soon, I hope somebody is there to check it out. As I will be learning I can update the GitHub docs, maybe add some new one? As I go along.

Lets see how far I can get. First time modder - But all this looks pretty standard and easy to me. Just need to learn the XML'hell' root node names..sigh.. but should be fun! :)
'Sharing is caring'
- Unknown

jjcm04

I think everyone could benefit from a map making tutorial. A lot of people like making their own custom textures for the WorldGen and the playing field (don't know what the name of that map is). 

roxxploxx

I'm creating a wiki brain dump for what I am learning as I am modding. Since I'm going fairly in-depth in c# coding, I'm finding a lack of resources. For example, in my Unifica Magic Mod https://ludeon.com/forums/index.php?topic=31826.0 I am creating new types of items: turrets run on arcane runes, druid plants that reach out and grab, wands that cripple people that are zapped, etc. There's a lot to learn but it's doable. I'm trying to archive what I have learned to help others.

So, here's an example of low-level class relationships that I put together:
    https://github.com/roxxploxx/RimWorldModGuide/wiki/SHORTTUTORIAL%3A-Things-and-ThingDef

Here's my wiki's home page:
   https://github.com/roxxploxx/RimWorldModGuide/wiki

Hope it's useful to others!

Sugarbunnylet

#27
Quote from: roxxploxx on May 02, 2017, 11:41:31 AM
I'm creating a wiki brain dump for what I am learning as I am modding. Since I'm going fairly in-depth in c# coding, I'm finding a lack of resources. For example, in my Unifica Magic Mod https://ludeon.com/forums/index.php?topic=31826.0 I am creating new types of items: turrets run on arcane runes, druid plants that reach out and grab, wands that cripple people that are zapped, etc. There's a lot to learn but it's doable. I'm trying to archive what I have learned to help others.

So, here's an example of low-level class relationships that I put together:
    https://github.com/roxxploxx/RimWorldModGuide/wiki/SHORTTUTORIAL%3A-Things-and-ThingDef

Here's my wiki's home page:
   https://github.com/roxxploxx/RimWorldModGuide/wiki

Hope it's useful to others!

Hey rox, do you have Discord? I'd like to chat with you!!
Mine is [email protected]

-Sugar

roxxploxx

I'm on Discord as roxxploxx. Say hi.

Mehni

It's time to take ownership of some recent additions.

New:
- https://rimworldwiki.com/wiki/Modding_Tutorials/Hello_World
- https://rimworldwiki.com/wiki/Modding_Tutorials/XML_Defs
- https://rimworldwiki.com/wiki/Modding_Tutorials/Modifying_classes
- https://rimworldwiki.com/wiki/Modding_Tutorials/Compatibility
- https://rimworldwiki.com/wiki/Modding_Tutorials/ModSettings
- https://rimworldwiki.com/wiki/Modding_Tutorials/DefModExtension
- https://rimworldwiki.com/wiki/Modding_Tutorials/ThingComp
- https://rimworldwiki.com/wiki/Modding_Tutorials/GameComponent
- https://rimworldwiki.com/wiki/Modding_Tutorials/BigAssListOfUsefulClasses
- https://rimworldwiki.com/wiki/Modding_Tutorials/TweakValue
- https://rimworldwiki.com/wiki/Modding_Tutorials/Compatibility_with_DLLs

Completely rewritten:
- https://rimworldwiki.com/wiki/Modding_Tutorials/Modifying_defs
- https://rimworldwiki.com/wiki/Modding_Tutorials/Custom_Comp_Classes
- https://rimworldwiki.com/wiki/Modding_Tutorials/Compatibility_with_defs

Large contributions:
- https://rimworldwiki.com/wiki/Modding_Tutorials/PatchOperations
- https://rimworldwiki.com/wiki/Modding_Tutorials/Distribution
- https://rimworldwiki.com/wiki/Modding_Tutorials/Assets
- https://rimworldwiki.com/wiki/Modding_Tutorials/First_Steps
- https://rimworldwiki.com/wiki/Modding_Tutorials/Decompiling_source_code
- https://rimworldwiki.com/wiki/Modding_Tutorials/Testing_mods

Planned:
- Rewrite ThingDef to be useful (no, I'm not going to document all 200+ tags)
- Linking C# and XML
- Rewrite https://rimworldwiki.com/wiki/Modding_Tutorials/Weapons_Guns
- Rewrite https://rimworldwiki.com/wiki/Modding_Tutorials/Def_classes
- Add Jecrell's step-by-step guide.

I could use some help with:
- Adding links to all modding articles where useful
- Adding screenshots (https://rimworldwiki.com/wiki/Modding_Tutorials/Testing_mods for instance could do with an up-to-date screenshot of the dev mode bar (including tweak values) and visuals on how to set up a shortcut for testing.)
- Categorising stuff
- An article dedicated to textures. I am out of my depth on that. TexturePaths, especially for multis and randoms, confuse me.