Be sure to check out:
Programming Tips #1 - If Statements
Programming Tips #2 - Making Progress
Programming Tips #3 - Design
Programming Tips #4 - Datums
Programming Tips #5 - Organization
Programming Tips #6 - Procs & Organizing Code
Programming Tips #7 - Comments and Whitespace
Programming Tips #8 - Loops and Ifs
Programming Tips #9 - The Map Editor
Programming Tips #10 - Variable Names
When you first start programming, the problem you're trying to solve is "how do I write code that'll do ______?". Initially you're happy just to get something working, who cares what the code looks like. But when you try to develop a complete game this indifference can become a problem. As your code gets messier and messier, the project becomes harder to work on - you're more likely to write code that has bugs and they become harder to track down and fix. Eventually it'll get to the point where you're wasting a lot of time, don't feel productive, and are more likely to stop working on the project.
As a more experienced programmer, instead of asking "how do I do ______?", you should start asking "what's the best way to do ______?". In this post we'll bring together ideas from other articles to see why developers lose motivation and can't finish projects.
This article brings together ideas from many of the previous articles. You should be familiar with these articles before reading this one:
Programming Tips #1 - If Statements
Programming Tips #4 - Datums
Programming Tips #5 - Organization
Programming Tips #6 - Procs & Organizing Code
Programming Tips #7 - Comments and Whitespace
Programming Tips #9 - The Map Editor
Programming Tips #10 - Variable Names
If you're a hobby game developer like me then you make games because it's fun. A game idea pops into your head and you want to create it. The better the idea, the more motivated you are - you can work furiously on project. But there's also a problem with this approach:
If something's not fun, you won't do it.
It's the fun parts of game development that motivate you, but some parts of game development just aren't fun. These parts could be very important to the game, but if they're not fun you won't want to do it. There are two big reasons why something might not be fun:
It's challenging — Sometimes a challenge motivates you but sometimes it's just frustrating. If you have no idea how to go about doing something you might just avoid trying it.
It's tedious — Sometimes you can get yourself to do a tedious task because you know the outcome will be worthwhile, but it's still not something you'll look forward to doing.
Many of my programming articles are about how to program games in such a way that you'll avoid difficult and tedious tasks. If you don't follow the advice in my articles, you're more likely to run into difficult or tedious tasks. For example, if you don't give variables good names, you'll eventually get fed up and have to re-name all of your variables - this might be so tedious that you don't do it, and you end up limiting how long you can tolerate working on the project.
Game development shouldn't be a race where you're trying to complete the game before the code gets too messy. From what I can tell, for many BYOND game developers that's exactly how it goes. As the code gets messier and messier the project becomes less and less fun to work on. Most BYOND game developers just hope to get the game to a playable state before the code has become completely unmanageable.
These are the reasons why people have trouble finishing BYOND games. Either developers don't realize these problems exist or they don't realize the problems are within their control. Many developers assume that they're just losing motivation at the standard rate, but really they're losing motivation because their code is a mess so the project isn't fun to work on. This doesn't have to happen - these problems are all completely within your control.
By making an effort to be a better programmer you'll avoid lots of annoying problems - this will help to keep the project fun. Instead of dealing with annoying code issues you can focus on implementing and improving your game. You'll create better games and be more likely to finish them.