Word of introduction - I originaly posted this on rec.games.roguelike.development (abbr RGRD) on June 10th 2004. I recently found it on my harddrive and I was surprised how the article is still valid after what I learned. As a memorial, I now repost it here on Chaosforge forum :).
Based on Mary Schmich's "Sunscreen" article, and a remake by Darrell Loudermilk on alt.books.kurt-vonnegut. With a dedication to all newbie roguelike developers - have fun and don't worry! :)
Ladies and gentlemen of the RGRD,
Develop roguelikes.
If I could give you just one tip for the future, developing roguelikes would be it. Long term benefits of developing roguelikes have been proved by ADoM, Angband, and Nethack developers, all more I can tell you is my own meandering experience. I will dispense this advice now...
Enjoy the power and beauty of your roguelike. Oh, never mind. You will not understand the power and beauty of your roguelike until you abandon it. But trust me, in 20 years, you'll look back at it's sources and recall in a way you can't grasp now how much possibility lay before you and how fabulous it really was. Your code is not as ugly as you imagine.
Don't worry about optimizations. Or worry, but know that worrying about optimizations is as effective as trying to solve an algebra equation by chewing bubble gum. The real troubles in your code are are apt to be things that never popped up in your worried mind, the kind that have nothing to do with the source code.
Do one thing with your project every day that scares you:
Test it.
Don't be reckless with other people's roguelikes. Don't put up with people who are reckless with yours.
Lurk.
Don't waste your time on jealousy. Sometimes you're ahead, sometimes you're behind. The race is long and, in the end, it's only with yourself.
Remember RFE's you receive. Forget the flames. If you succeed in doing this, tell me how.
Keep your old rewrites. Throw away really old bug-reports.
Play.
Don't feel guilty if you don't know what you want to implement in your roguelike. The most interesting roguelike designers I know didn't know at Alpha-stage what they wanted to have in their game. Some of the most interesting veterans I know still don't.
Get plenty of feedback. Be kind to your beta-testers. You'll miss them when they're gone.
Maybe you'll finish your roguelike, maybe you won't. Maybe you'll have fanpages, maybe you won't. Maybe you'll lose the whole source code to a hard drive failure, or maybe you'll get a contract from Blizzard on your 10th wedding anniversary. Whatever you do, don't congratulate yourself too much, or berate yourself either. Your choices are half chance. So are everybody else's.
Enjoy the beauty of ASCII. Use it every way you can. Don't be afraid of it or of what other people think of it. It's the greatest instrument you'll ever work with.
Play your roguelike, even if you have nowhere to do it but at work, or on your university.
Test and brainstorm on other peoples roguelikes even if you don't plan too play them.
Do not browse other peoples sources, it will only make you feel that yours is ugly.
Get to know the roguelike genre, games and websites. You never know when they'll be gone for good. Be nice to fellow roguelike-developers. They're your best link to your hobby and the people most likely to prove your sanity when you release an ASCII game to a GeForce dominated world.
Understand that newbies come and go, and that it's the precious few veterans who hold on. Get to know the long-time-posters. You'll miss them when they get full-time jobs and won't have time to criticize your new roguelike project.
Browse NetHack's source once, but stop before it makes you hard. Browse JADE's JavaDoc once, but stop before it makes you soft. Study.
Accept certain inalienable truths. Newbies will vapor-post, die-hard roguelikers will flame. You, too, will get old. And, when you do, you'll fantasize that, when you were young, RGRD was made up exclusively of bright, professional roguelike-developers, the vapor-ware count was low, and everyone was releasing interesting playable beta versions.
Create a interesting playable beta version.
Don't expect anyone to support you. Maybe you'll have a dedicated artists group. Maybe you'll have a brilliant group of testers/brainstormers. But you never know when either of them might get a commercial full-time job, and loose interest in your charitable self-production.
Don't mess too much with your code or by the time you release it, it will look like Crawls.
Be careful whose advice you buy, but be patient with those who supply it. Advice is a form of nostalgia. Dispensing it is a way of fishing the past from the disposal, wiping it off, painting over the ugly parts and recycling it for more than it's worth.
But trust me on roguelike development.