On Motivation and Judgement
motivation arrogance humility mistakes
This entry for the fresh faces in the GDNet forums that have at one time or another asked what languages, libraries or applications to use to get started with game development. This is also for the ones who HAVE started developing games, without any concern over the implications of their decisions.
Confidence is vital to a developer. We know that a solo operation can be left dead in the water thanks to a lack of motivation, and sometimes the brains behind the project might feel inclined to reach out and ask others how to keep thing moving. On the other hand, self-proclaimed programming gods are fully prepared to write an engine and teach the industry how to REALLY make games before discovering that hard work is involved.
I won't take a Randian approach and try to objectively cram everyone into two groups, although I do think that a developer's motivation (or lack thereof) leads to recurring problems caused by two kinds of attitudes. These attitudes are addressed by GDNet on an almost daily basis, and I don't doubt that other members have tried to blog about them elsewhere. Still, as someone who has been both timid and arrogant at many times in his life (and likely still will be), I want to try and help reduce the influence that the motivational extremes of humility and arrogance has on our future developers.
Hopefully I can finish this post before my new kitten paws my fingers off as I type!
"I don't know what to do, so think for me!"
One of the more intimidating parts of a project is determining what you need to do it. This is especially true for unmotivated beginners; Deciding to make a game for the first time without knowing about programming languages, compilers and engines is like deciding to make a house without knowing about hammers, nails and lumber. Novices need to learn the tools of the trade, but the abstract nature of programming makes it difficult for a game development veteran to decide the best route for an aspiring developer to take.
I wanted to stress to our to-be programmers and designers that if you are starting alone, all of the burden for making decisions falls on you. It sucks to be asked to make a choice when you don't even know how to make it, but even more experienced developers are sometimes put on the spot to decide what they need to do about a new problem they have not seen before. Not too long ago, I was asked to choose a new eCommerce platform to support a retailer's family of websites. I was still a freshman and had no experience with enterprise-level eCommerce at all at that point, so the only thing to do outside of getting fired was to do my homework.
The big snag that is almost universally felt, yet often not addressed, is a lack of motivation. If it helps, know that if you have decided you honestly, truly (pinky-swear) want to make a game, you have already started. And, like in all software projects, knowing what not to do about something is a natural (and hopefully temporary!) way to react to a problem waiting to be solved. Keep going!
As implied earlier, a great deal of people (including myself) have at some time asked the hivemind about what they should use to make a game, and concrete suggestions have been offered. I could link to one of these threads, but I won't for one reason: YOU need to look for this information. Being ignorant is ok, as is making a bad judgement when you get around to making one. That's part of learning, and everyone has to endure "being human". Motivation is understanding that you know nothing, but moving toward your goals in spite of that. You will learn as you go, and problems like the one's you eventually overcome become easier with experience.
So, before you ask GDNet or another community how to approach X, how to design Y or if Z is something you want to use, understand that someone else making a decision for you does nothing to help you become a good judge of what is relevant to your needs. On the other hand, asking if you MADE a good decision shows that you have discovered what your options are and evaluated them to the best of your ability. Ask others to help you learn as opposed to asking them to decide things for you.
If someone gives you good advice, make a habit of asking them why they came to the conclusion they did. Determining relevance and knowing how to make good judgments are powerful skills, and you can only hone them by doing. Start with what you know by opening Google and searching for something relevant to your current knowledge. No matter how in-the-dark you may feel, there is always a little thread of experience that will help lead you to new information that matters.
It's up to you.
"I'm writing an app that perfectly models atoms!"
Sometimes people don't know what they are talking about, and we appreciate it if they recognize that. However, not everyone sees their own limitations. I was really bad about wanting to complete projects that were out of my league, and had wanted so badly to make a game engine before I made a game, when all I really wanted to do was make a game. Sometimes people are so sure they have the ability to handle projects bigger than themselves, they completely forget that they have to do any work at all. A common problem that many GDNet veterans recognize is a sudden desire to make an MMO game, and one of our moderators wrote an excellent post about this newfound enthusiasm in aspiring game developers.
The problem is not wanting to do big projects as much as it is allowing the ego to run amok. This often leads to a harsh realization that one is in over his head. Sometimes the only cure for narcissism is an event that demonstrates the consequences of presuming on one's experience, and these consequences can be brutal. Chronic information overloads and often inevitable failures can convince someone to have a nervous breakdown and quit game development altogether! This can be embarrassing, especially after boasting to friends about your awesome new project.
Being too humble can lead to fearing your own experience and depending on others, while being arrogant leads to fearing the experience of others while depending on your own experience. Both paths can lead to disastrous results if you look at yourself in only a positive or negative light. Growing to be both a good developer and a good person is a complex journey that cannot be defined objectively, but it does involve recognizing your strengths and limitations. Context is central to the decisions you need to make, and although you might have experience to be proud of, your decisions should be based on what you know, not who you are.