How many BYOND developers (myself included) have only learned this lesson after abandoning multiple projects (Peregrine City, Reverie, Nostalgia, etc.)? However, it was never my vigorous propaganda campaigns that killed my projects, it was always a combination of feature creep and ambitious programming.
There's a lot of lessons I've learned from developing projects that I wish I had known years ago. Some of them can be summed up in the same way as the Warning of the Day:
- Only program those features which the game absolutely needs, and release a 1.0 version ASAP. Once that's done, you can always release sequels.
- Don't open the doors until version 1.0. Why should your players come back when the game is finished if they've already seen everything in development? Further, why should you finish the game, if you've already seen everyone play it in development?
- Make the interface first. The hardest part of programming a game, and the least rewarding part, is the interface: the title screen, the ending, putting players into a waiting queue, etc.. These things only get harder as you program more of the game. However, once you have input and output programmed, the internals are easy. This goes for games as well as modules.
- Always focus on what the game absolutely needs at this moment. Sure, that GM jitsu would be awfully cool to program and use against n00bs, but your game really needs a working saving system to step forward. Always do the next step, otherwise you're wasting time.
- Stick to one project. That game idea you had today is the coolest ever, and it would be really fun to program, but you know what? You have a game you're half done with, and at some point it was the coolest idea ever. Give that other idea two months, and it will be just as boring as this one. The only way you'll ever have a finished game is to stick to one and finish it.
One more rule I use is always complete the most boring parts of the program first and fast, such as a joining queue. Several times I have started working on the most exciting and hardest stuff to program foremost, and when it comes to the last stretch I lose motivation as the additions I need to add do not interest me.