I bet you're thinking "probably a sarcastic post that is being satirical of other people's mods."
At first, I will honestly say that was what I was going to write! Then it occurred to me that most people on these forums have not had experience making mods before
They can be as talented as they like in modelling, sound design, coding (also could be called scripting, but not programming unless you're changing core game code), mapping, etc, but they may be bad at making a mod or coming across as a good developer in the process.
You've made it past the summary, congrats! Let's get onto some actual tutoring.
As an addition, here's a link to a bunch of tutorials on compiling the source code, making new items and also rooms!
Tip top tips
I'm not going to bore you with credentials and stuff with mods I've done, let's just say I've had experience with modding for at least a few years. Faith in me or not, you should at least read some of the most important tips I wish I knew when I started modding.
#1 - It's a hobby, not a job!
I cannot stress this enough in mere text. The mod is not a means to an end, but an end itself! You don't make the mod so you look good, you don't make it so you can say "i r develop lel".
You do it because you want to! You want to learn (Blitz)Basic? Mapping? Graphics? Then learn! Don't make the mod to flaunt how much you learnt, but merely as a product of what you learnt.
Already good at Blitz3D? Sound? Graphics? Modelling? Mapping? All the boxes ticked? Then make the mod to entertain (or scare ) your players!
Don't set your goals too high. Set them low, then make a new goal when you reach it.
But never, ever, feel that you are obliged to finish the mod. This ties into my next tip...
#2 - Image is everything.
This may seem a bit egocentric, but trust me, it's important. Let's talk meta-image first, on the community you post the mod on. When you've got a mod in development, for the love of God do not post anything about it. You think that if you post an image of an upcoming mod, people are going to praise it and motivate you? Probably. But mostly, people are going to say "I hope this has this, and has that", which is going to make you conscious of whether your mod lives up to their standards. You lose motivation, and the project never finishes. You want living proof, look at my own SCP-017 and 120 mods. My own mistakes.
You want to recruit people? Be a headhunter, and send PMs to people you think are right for the task. But don't post about it.
Now let's talk about ingame image. A good philosophy I follow is "WHAT YOU SEE IS WHAT YOU GET." As a developer, you will know just about every nook and cranny of your mod. The user? They won't! They'll only see what you let them see. This is crucial.
For example, you noclip around, say, SCP-1123's room and you find the room above where you "hallucinate" . It looks tacky when you noclip up there in person, but that's because you weren't meant to! It's designed to look good from the only perspective seen by the non-cheating player: the blurry, shocked eyes of the scripted event. You save a lot of time on development if you perfect only what will actually be seen.
Here's a quick-tip: if you're a perfectionist like me, and must have EVERY DETAIL LOOKING AS GOOD AS IT CAN BE, then try to think of it like you gotta perfect what the player will see, not what you see.
#3 - Good at only one thing? Do not form a team.
This cannot be emphasized enough. Let's say that you're good at coding, but suck at modelling. Like I said before, do not post about it. Posting a thread saying: "SCP-XXX (oh I can't reveal what it is but you should help me make it!" just makes you seem like a complete tit. (I'd also like to point out that posting a teaser of your mod, with no picture, and just saying "I'm working on SCP-[EXPUNGED]" also makes you look like a tit.)
If you suck at modelling, or any part of development, find your way around it! Find a copyright-free model of what you want, or use a model from another game (it's a free mod for a free game, no one's going to care that you lifted the model from another game).
If all else fails, then you ask someone to do it for you. As mentioned earlier, do not post for help, but find someone who you think is good and willing to help, brief them on what you're doing and what you've done, and ask them kindly! Don't forget to credit them too!
#4 - Plan, design, make
Plan what you want to make, and how you want to make it. Consider how feasible it actually is, as well (i.e. dynamic lighting is a no-go, so no SCP-017 without a LOT of effort).
Websites like this and this are great for designing how your room could look, what events could take place in there, etc. You don't have to abide by your design. It might turn out you can't do it and may need to modify it. It's your design, you can modify the absolute shit out of it if you want to.
Pretty simple tip, but worth telling nonetheless.
#5 - Learn from other people's work, and let them learn from you!
So you've finished your mod, you've got it zipped up and ready to upload. But hang on, you got a pretty cool bit of code that other modders might want to use in their own mod, or learn how you did it. Don't make them ask, include your source code, your .3DS file, and PSD (if used) file for others to use!
And this works both ways too! I include the source code/map of all my mods with the download. Not sure if your room's doorway is the right size? Compare the size with a working room's doorway so you know for sure!
Not sure how a bit of the game's code works? Regalis does check his PMs. If you ask politely and be patient, I'm sure he'd be delighted to help.
You can also ask anyone on the forum for help too! juanjpro, myself, and other coders wouldn't mind helping out fellow modders, if asked politely
#6 - Random testers suck
You want beta testers, get a couple of friends or well-known members of the community to test it. Not too many, I'd say 3 maximum. And only let them test it when you feel the mod is finished. There's no point in letting them test the in-progress version because you can just test that by compiling the code yourself
Simple tip, but has to be said.
#7 - It's an addon? A conversion? Resource mod?
Fact of modding: Total conversions are coolest, addons are in the middle, and resource mods are bottom of the pile. If your mod only changes models, textures and sounds, you better make sure you aren't trying to stand high and mighty above everyone else's mods.
Ease of access is crucial. Make sure that installing your mod is as easy as possible. If your mod is a 200MB download of changed resources, it's not going to reach very many people because few can be bothered to download it.
Tip of mine: have your mod be a simple drag of the files into the game's folder to install. This keeps your download as small as possible.
Order of development
This is the order in which I think that a mod should be developed.
- Plan what you're going to do in a notebook or to a friend. Find an SCP that isn't impossible to do with an ancient engine like Blitz3D.
- Design the room by drawing it, labeling the events and object placements, monitors, windows, props, anything.
- Make the room. Do this first, as it's the most time-consuming bit. Lots of refinement and trial+error to make it perfect. When you are happy with it, move on. You can come back to it whenever.
- Get the room loading into the game, and fill the room with items or objects necessary.
- Add in the code for any items that are to be included.
- Do the event. The most difficult part, and requires a bit of effort. If you planned properly earlier, though, this should be easier.
- Now do all the easy shit. Documents and signs, etc. You can do the signs when you do the mapping, but you could just as easily use another sign/doc as a placeholder, and leave all the graphics till last.
- Sound and music, don't forget that.
- Check for bugs, send to testers.
- Upload and post on forums when you are happy. It is your mod, make sure you're pleased with it.
And that's it!
I hope you learned something from this guide
I'll be writing a guide about how to map using 3D World Studio soon, for those of you who'd like to learn a bit about mapping!