Thoughts for writing agents that are relatively nice

Mind your TICK - this is the #1 issue I find, especially with plant agents. Odds are, your agent does NOT need to have a low TICK. (The lower the number, the smaller the number of ticks between runs of the timer script.) If it does need a low TICK, it probably doesn't need to have it for its entire lifespan, unless its lifespan is extremely short, or you know very specifically what you're doing. Manage your TICK, and keep it as high as possible, if not disabled completely.

Don't confuse creatures - Creatures aren't clever; they're wonderful little things, but when it comes to powers of discretion they just don't have a lot, and that's the neither-good-nor-bad reality. They cannot distinguish between agents within a class- when they see 'toy', they think about what they know about 'toy', regardless of whether the toy they're looking at is a beach ball or a rock. (Thanks CL.) If your agent doesn't respond in a way consistent with others in its class, change the class or change the behavior. If you want to spice things up, warn players, and preferably make a set of similar agents so you don't encourage the creation of a dystopia where creatures only know of one toy and it is your weird invention that dispenses fatty goodies and pain.

Don't forget to test with autokill off.

Don't forget to test your catalogues, especially on the GOG version.

After compiling, don't forget to pull out all your agent's packed-in files and make sure they install correctly.

Keep a clean install around to make sure you aren't specifying another person's sprite or sound file as a dependency by accident.

Mind your STIMs - These will really screw up creatures' heads. Same caveats as above apply.

Mind your CAs - Creatures use CAs, 'cellular automata' (they're smells.) to navigate the world; they are essentially blind. If your agent isn't a toy, it shouldn't smell like a toy (unless it implies the existence of other toys nearby; eg. I could see a dispenser getting away with this). If your agent is rotten food, it DEFINITELY shouldn't smell like fresh food. Also, avoid overwhelming the CAs of other objects unless you have a good reason. Especially if you're making one of these other mistakes (presumably on purpose).

Careful with TINT - Every time your agent runs TINT, it must monopolize the CPU for a moment, and the tinted sprite is stored forevermore in that world's data. Not the game data-- the world's data. Meaning if you have an agent that cycles through rainbow colors, and you think you're saving space by generating all those colors 'on the fly', you're not. They're duplicated in every world it exists in. If you know you'll be producing the same tint every time, and it's a number lower than the number of tints needed TIMES the number of worlds you expect the average player to have, just put them in the base damn sprite file. Run into a lot of people thinking they were being clever with this when they weren't.

Careful with ALPH - Nothing complicated like the above, it's just slow.

Don't put it into a self-extracting EXE-type zip. It's 2016. Just don't. No one will be able to rehost your damn file, and half of us won't be able to open it.

DO Put your name all over everything. There have been about eighty billion cheese and cheese-related agents in the lifetime of the game; yours has no excuse to overwrite the others. Find a method and stick to it.

DO Date everything. Preferably, include a changelog in the readme, or at least the CAOS. This will make a few peoples' lives less hellish.