By The Shrike, 20/12/2010
Starting out modding, I had enormous trouble, as I was basically teaching myself to code from scratch. I did it in the end, but I'm still learning. And while there's very good tutorial stuff here on these forums (if you can find it), it's a little old, and there's very little super-general stuff. So here's a list of the top 10 things I've learned over the past year of modding Transcendence.
This list assumes you start from scratch, with no real coding skills, and intend to look through the various XMLs of the game and other mods to see how to do things. It does not instruct on actual code (usually).
1. Just because you can think of something, doesn't always mean it can be coded into an extension.
Speaks for itself. A lot of ideas you will come up with are physically impossible to code. Don't worry though! Write them down in a .txt or .odt on your computer, and come back after every new game version to see if they're now possible.
2. Never be afraid to shelve a mod and come back to it once you've got more skills.
As with 1. Often, you'll come up with ideas you just can't do without a lot more coding knowledge. Put them to one side, don't forget about them, and come back later when you have the skills to get a bit further with it. Long term projects are fun challenges, and give you something to go work on when you're bored of your current mod project, but want to get some coding done anyway.
3. For every day you work on coding, you should spend at least 2 or 3 days testing and tweaking.
Testing is SUPER MEGA EXTREMELY ULTRALY IMPORTANT. Only with careful, detailed and observant in-depth testing of every little thing will you find all the bugs, mistakes and balance issues that a good mod must not have when finished. You also can refine graphics, behaviour of ships/weapon projectiles, usability of devices and individual advantages and quirks in the things you are creating to make them more unique and enjoyable for a player to use.
4. If you need help quickly, the Transcendence IRC (Internet Relay Chat) channel is an invaluable source of advice and assistance.
It may, however, be dead when you go there, so it might take a few attempts. It's worth it though. Most modders who frequent the channel will be happy to help you if you ask nicely. If you don't have an IRC client (or a browser that can handle IRC by itself, like Opera), there are many free programs that will handle IRC and other IM systems. personally, I use Pidgen. The channel you're after is #Transcendence. Be aware of time zones, as they do affect channel activity massively.
5. Learn how the attributes and modifiers you are working with actually work.
For example: Attributes such as Mining, WMD, Stealth, Radiation, Disintegration, EMP, Device damage and Shatter only take a value from 1-7. If you put the attribute there (no point in a mining0, as it's the same as not putting a mining modifier in the damage code of a weapon, likewise a stealth=0 projectile or armor segment). So were I to make a laser with mining999999 in the damage code, it would be no more effective than a mining7 weapon. It also looks very unprofessional, as do 999d99999999999 damage weapons (there's an upper limit on how much damage the game can do. Go past that, and you do immense negative damage, possibly ending up with an unkillable target.)
6. Use a proper coding program.
There's a limit to what you can do in Wordpad, Notepad and MS Word. Using a proper code-writing tool with syntax highlighting speeds up coding like you would not believe, and will allow you to find those coding errors that are stopping the game from running with ease. I would suggest Notepad ++ as it's free, and it works.
7. Always check your code as you write it.
Especially when it is a major part of the mod. I started doing this after an early weapon turned evil when I missed the "d" in the 6d12 damage code, and started one-hit killing just about everything. Mistakes like these are easy to spot during testing, but you should also look through what you've coded every minute or so to make sure there isn't a blindingly obvious error.
8. Xelerus is a good source of examples, but always make your stuff different to everything else.
Looking through mods from Xelerus that are similar to what you are trying to do will help you solve problems enormously, and give you ideas on how to improve your work. That said, don't just copy it, change a few things and rename it. It HAS to be your work, or you don't learn. You also might have your stuff taken off Xelerus if you decide to upload it and it is obviously plagiarised.
9. BALANCE YOUR WORK
...unless you are deliberately making a Godmode type mod. You'll never be able to balance on just one factor, so tweak multiple things, and consult people on IRC and/or the forums for help. Atarlost in particular is a useful source of wisdom if you can grab him.
A good approach for weapons and shields is to find an "equivalent" device (at the same level, doing a similar sort of thing but in a different way), and match Damage/second, HP against X damage type or whatever against it, allowing for the fundamental differences between the two (EG. If I want a shield equivalent to the Nephren P25, but focused against Blast and Kinetic, I'd just take the peak resistances for the P25, tweak them a bit to allow for difference in HP, poweruse, cost and regen, and put them into the new shield under the required damage types). This way you're not working blind.
Also, you can make damage code that has the same upper value, but a higher lower value, quite easily. This can be worth it to prevent an overly low minimum damage without raising max damage. EG: 1d24 gives the same maximum damage as 12d2, but the former gives a range of 1-24, and the latter 12-24. The effect on balance of a changed damage range is quite major, and is an invaluable tool to use.
10. Good things take time. Relax.
Take your time, and enjoy it. Experiment with things, have your own mods for trying out new things before putting them into other mods, and every so often just take some time to play the game and have some fun. Modding can be extremely frustrating when things go wrong, but if you can just relax and take it easy, you'll get more work done eventually and not get as bored with it. You'll also make better mods.
![Wink :wink:](./images/smilies/icon_wink.gif)
Good luck out there!
-TS