Forgive me for not posting in a while, but I have more important priorities than you guys. Oh, snap! That's right, bitches, I totally went there.

((Just to let you know, I'm bolding the important points.))

I do not claim to be an expert on any of these topics, but as I’ve gone through a lot of leadership positions and have set many “impossible” goals and achieved [a number of] them, I thought I could discuss here what I’ve learned along my journey and my thoughts on certain aspects. Okay, so I've been seeing a lot of threads in the Game Programming forum on this site saying "I want to make an epic MMORPG as good as, or better than, WoW or Runescape”. Okay, well, I'd hate to dash anyone's dreams, but with your current mindset, you're not going to get very far. There are a few questions you have to ask yourself first when you get an idea like this, or any major goal in mind (can be a career, college, losing weight, hooking up with the hot drunk chick at the party, etc.).

Do I know how to make this happen?

What intermediate steps are involved?

Do I have the necessary skills?

What is my motivation?

What resources are required to make this happen? (and I swear to God if someone says roofies...)

How long do I expect this to take?

Is this even a reasonable goal at this point?

Etc.

At this point, I would say that your goals aren't very reasonable. Therefore, you should probably break up your main objective into smaller, more attainable goals. Since I like the video game scenario, I'm going to use this as my main example. Your main goal is to make an MMORPG, alright, so you jump on the internet to figure out how. The first thing you should do is research how others have done it. Reading blogs and tutorials are a great way to see how people approached the problem you're facing, and it also shows the road blocks and mistakes they encountered, so you know what to expect.

In the research, you find the individual components that work together to make your main goal a reality. These should be your immediate goals to obtain. Even within those smaller goals, there are milestones you have to achieve for that. For instance, you've determined that a game requires a storyline, graphics, audio, map scrolling engine, events programming, etc. Alrighty, but now what? Well, you know that coming up with a storyline is basically just writing a story, and remembering from 7th grade English class, a story has a beginning, escalating action, climax, declining action, then a resolution, with varying levels of the middle three occurring throughout the story. A story also has several characters, to include a main protagonist (good guy/gal/idea), a main antagonist (bad gal/gal/idea), and various side characters to make the story more interesting. There is also usually a theme, a genre, a targeted audience, etc. that makes up a piece of literature. So you can see that you can infinitely break down a task or goal into smaller, more obtainable goals that can be achieved in a decent amount of time.

Another major thing that people forget when doing projects is to start out small. You can’t just jump in and start programming an MMO right off the bat! You have to break it into pieces, just like breaking your goals into pieces. When learning to program games, start out with something small like rock, paper, scissors or tic-tac-toe. That way you get a feel for how your programming logic should work. Once you’re done with that basic game, go in and add more features. After a while, that small, insignificant game will have turned into a major, full scale production (not that I can really imagine tic-tac-toe being a major spectacle, but...).

The reason all of this is important is because when you just try to tackle projects like this it's easy to get overwhelmed and quit. Besides, the idea that you’ve achieved one of your goals, no matter how small, makes you feel better about your chances of success with the project/goal, and feel better about yourself. I see a lot of aspiring n00bs jumping on the game programming bandwagon, and think that they can do this in like... a week. Not going to happen. I can guarantee that making a decent general outline of a storyline will take more than a week. Just realize that your ideas and goals might take a while, so take the time to sit down and break it all down into bits. You can’t swallow a steak whole, you have to cut it up into pieces first. (First one to show pics of them attempting this though will get some mad rep).

So, now that you’ve gotten all of those steps broken down, now what? Well, I would suggest making a good, detailed plan of how you’re going to do something. Start out with a general outline. For example:

Storyline

Graphics

Audio

...

Once the general outline of your goal is laid out, put in the individual steps in.

Storyline

Plot

Characters

...

Graphics

Environment

Characters

Items

...

Audio

...

After you’re done with the smaller individual steps, you can estimate how long it should take to do each task, to include learning how to do something. This way, you get a visual representation of your goals and the process to achieve it. It’s easier to stay on track if you have a visual checklist . Each individual checklist can have its own checklist of itself. For the storyline, once you’ve gotten most of it fleshed out, I would put it in a script-like list.

Chapter/Act/Part I

Intro

Setting: City Z

Characters involved: Character X, Character Y, ...

...

Character X meets Character Y

Required plot event: Chase

Battle

City Z explodes

Required plot event: Timed escape

...

Chapter/Act/Part II

...

Chapter/Act/Part n

Plans can pertain to a lot of things and can be used almost anywhere. You can of course change your plan later on, but it’s easier to communicate and coordinate when working in teams, and in remembering exactly what you wanted originally.

On the topic of plans, a timeline is an essential plan to have. I already mentioned having a general time markers in your plan outline above, but having a separate visual representation of your goals is another nice thing to have handy. These can take the shape of calendars, lists, or an actual “timeline”. An example would be like:
|------------------x-----------------------------------------------------x------------------------------------------|
Jan_______main story done______________________story outline done______________________Feb

or something like that.

It’s always important to keep sight of your main objective, but you can get so caught up in the little things that your main goal gets skewed. Working in teams can help prevent this. With everybody being on board together, and focusing on different aspects of the project, teams tend to keep other members in check and remind them of their main objective. If you get so caught up in the storyline that you wind up writing a novel, your goal is off track. A novel is nice, but it’s not the media you chose to present your story!!!

Telling others about your goals is another great action you can take to ensure success. Other people besides you and your team play an important part in obtaining your goals, because they motivate you, cheer you on, give feedback, and can give excellent advice. Always remember, no matter what you’re doing, where you are, or how old you are, you are always learning, whether you know it or not. When someone says your story sounds “gay”, it probably is, and you should ask them what about it makes it “gay” and how you can fix it. Learning from your mistakes teaches you not to do that again.

Taking feedback and accepting constructive criticism gracefully is also essential to making your dream a reality. If somebody has something to say about your project/goal, but you don’t particularly like what they’re saying, it doesn’t mean that they hate you and only wish for your demise, it just means that they’ve found errors, flaws, inconsistencies, snags, or mistakes that could potentially ruin you later on down the road. Now realize, however, there might be a few naysayers and a-holes out there that do want to mess with you. If someone says “Your story sucks! You’ll never amount to anything, you retarded buttmonkey!!!!”, chances are, they’re not going to be the most helpful person when it comes to feedback.

Conversely, giving effective feedback and constructive criticism is also a very productive thing to do. Not only does it help to guide your team members on their roles in the project, but it also helps you to realize the sort of things you’re looking for in feedback. When you’re giving the feedback, make sure to give specific details on what exactly the discrepancy is, suggestions on how to fix it, but most of all TELL THEM WHAT THEY ARE DOING EXACTLY RIGHT AS WELL!!! Nothing is more annoying than someone only walking up to you/emailing you to tell you that something is wrong. They’re people too, damnit!!! Just make sure you compliment your criticism with a compliment. ;)

Most importantly, of everything I’ve mentioned here, do not think you’re beyond doing small stuff! I don’t care how experienced you are, how old you are, how much “seniority” you think you have, etc., you are not beyond doing menial tasks to get the job done. If it needs to be done, do it, even if it “isn’t your job”. Pitching in every little bit helps get your goals achieved quicker, and people will not think you’re a snobby, stuck-up brat who thinks they are better than everyone else. Therefore, the logistical and interpersonal benefits of this single piece of advice are far vaster than you can imagine. Make your own damn coffee!

Well, that’s about all I can think of to say on this matter at the moment. Hope someone finds this useful.

Attached File(s)

1 Comments On This Entry

YES!! thank you NeoTifa Iv been looking around on the interwebz and even asking at school how to plan big projects like this but everyone always skips over this stuff like its common sense. you didn't go into that much detail on the planning part but it was still better then most.

May i put a request in?

whenever you have time in your busy life. Could you help the noob game programming community in making an actual outline of how to plan out each part of making a game. maybe run though an example. when i say game i don't mean pingpong or tetris I mean like a tile based 2d game something complicated enough to give us an example of how someone might do that.

*this may be asking too much but it can be done in parts*

this is just a request i'm not saying DO IT NOW!!! or even do it at all. its just something that i think would greatly improve the game programming community.