17 August 2011

MGDA: Part 2, Design Phase

(MGDA means "Making a Game: the Direct Approach" and it is a series of blog posts meant to educate people to learn how to make a video game professionally.)


To advance to this phase, you should now have a potential idea that you would want to develop into a video game. Preferably something you want to do with a passion.

In this phase, your task is to turn that idea into a functional game concept. You do this by making all of its features as clear as possible for yourself. This is so you know exactly how the game looks and functions in its finished state and how are you going to get there. Thats the entire goal of the design phase.

During this phase, these words are most sacred: Focus on what matters.



Product/Service.

I'll be using this phrase a lot during this post, so it would be a good idea to explain it.

A video game can be released as a product or as a service. The difference between them is that if you buy a product, you then own that particular item or a copy of it. Its yours. If you buy a service however, you are essentially renting it. You will not own it.

To use an analogy, buying a car from a car shop makes the car a product. Renting a car from a car renting company makes it a service.

For video games, you may sell them as a product, with the customer paying a certain amount of money for it and a that copy of the game will then belong to him/her. Or, you may have a game that is hosted somewhere, but instead of selling the game itself, you sell access to it. This makes it a service.

Whether your project produces a product or a service, depends on the project. Usually a traditional singleplayer game is commonly sold as a product because it doesn't require support or gets no new content, whereas an online multiplayer game is sold as a service, because the developer possibly keeps updating the game with new content or providing other support, so selling his game as a service is preferable to compensate for his time continuously supporting the service he provides.



Documenting is key.

Documenting is key when designing a game. Regardless of how small or large the project is, a video game is just too multiversed and loaded with small details you otherwise don't realize right away. Especially with code. If you're new to programming, you will be amazed just to what basics you must go to achieve for a program to do even something very simple.

There is just too much information for a human mind to handle. You need to write it down to free space in your brain. If you keep it all in your brain, there is a high risk you will miss something or forget. Your brains will simply explode from all the information involved in making video games. Getting a burnout is not fun, I can tell you that.

Make it a habbit to put every idea you get on paper as soon as possible. As time goes by and you keep working on a project, you will be able to focus better on new ideas as you can rest assured knowing, that any ideas you came up in the past are safely stored on paper for future reference.

For any project, always do the following documents I instruct in this guide. They are all both necessary and useful, so there is no worry about making pointless documents or useless work. These documents are recommended to both solo and team developers.

If you're working a team, documents are even more important as they are the main source of information from which the team members will draw accurate information and data to do their respective work.

If you see your partners face to face, then its better to focus on physical documents like paper or printed text documents. These are much more accessible and more comfortable to read by anyone.

If your team partners are remote, then you will be better off making text documents on the computer for easier distribution.



Formatting and grammar.

Pay close attention to formatting and grammar. If you want to be taken seriously, you have to be serious yourself. You do this by taking great care of the quality of writing in your documents. This blog post itself is a good example of good writing for a document.

  • See how my spelling is correct.
  • See how the text has a clear structure and a logical flow.
  • See how I break down text into paragraphs for easier reading.
  • See how I use titles, headers and formatting to distinguish the content.
  • See how my text is direct and to the point.

Put thought and effort into your documents. You will need to come back and read them later some day, so do your best to make them as professional as possible using the tips I gave you above.

This is extremely important for good teamwork, so make sure your documents are presentable and to the point, otherwise your team mates will only laugh at you if the document is badly made or get bored if you're not direct enough.



1. Initial Idea Document.

First, you start off by writing down the rough idea of your game and its most prominent features. You can do this on paper or a text document. This document will be like a quick explanation about your project and what its supposed to look like in the end. Roughly.

Here is a example template:
(Hold ctrl + mousewheel up/down to zoom)

================================================
[Project Name]

[Document Name]



Summary

[Write a short summary of what this document is and what is its purpose.
In this case, its the initial idea document, so you explain the premise of the game as short as possible, but accurate enough to understand what you meant.]

[Generic Feature/Aspect Title]

[From here on, you begin to describe the project in further detail, by explaining the most important aspects and features of your game, starting from the very basics and going downwards all the way to the gory details. You can seperate each major aspect with the [Generic Feature/Aspect Title] for easier reading.]

[Here's the order of things you should talk about:

Main Idea
Important Features
Story/Concept
Game World
World Elements
Characters & Items
Art Style/Format


Notice how there is a certain order in this list, starting with the very basics and coming down to the other, more detailed parts. This is because the requirements made by the things above in this list have a direct impact on the things below them.

Always start from the basics and work your way down to the details, as the basics will define the details.]

================================================


Do note that this is just the initial idea you will write down. It might (and will) change on the way, but atleast you have written down the basics so you (and your team) can review it and possibly improve it until its good enough.

By writing down the basic idea, you will be able to focus on designing the details of the project from now on, because you no longer have to hold it in your head.



2. Feature Prototype Sketchbook

Every time a random idea pops in your head, do your best to write it down immediately.

For this purpose you need a sketchbook or a notepad. It will be a place where you can dump every single idea that you get as time goes by and then be able to remember it when you need it.

Writing down the idea doesn't need to be too detailed. Just write down a couple words, a sentence, doodle, photo, web link or whatever. The point is, when you look at it later, you would remember what it means.

There is no format or any restrictions to this, just dump the ideas and make sure you can identify them later. By "later" I mean anything from a day up to a year. Make the reminder be clear and direct as possible.

Being mysterious, incomplete or ambiguous will only result in confusion and misunderstanding. Avoid that at all cost and be straight to the point instead.

Besides dumping ideas, sketch books are also really great for making short-term todo lists.
These are just simple vertical bullet lists of things that you need to do at that moment. These help you focus on a set of short-term task. Once you're done with a task, you can open your todo list and strike through that task, marking it as done. This is satisfying to do and gives you a sense of progress on the project.

Heres an image of what I mean by a sketchbook:

(Courtesy of Google Image Search. This image is just to show you how freeform a sketchbook is.)


Remember: Put all your ideas on paper as soon as they come. As time passes and new ideas pop up, you will forget older ideas. You'll be very glad you wrote them all down once you start compiling all the features in next document.



3. Required Features Document.

This is the next step after the idea document and the sketch book. When you have the rough idea of the entire game written down and sketchbook filled with ideas/features, you will now need to think and list all the possible features you will want to see in your game based on all the ideas so far. For this, you need a new document.

Simply list all the major and smaller details that come to your mind and write them down in a vertical bullet list as you figure them out. You don't really need to categorize or organize anything at this stage. Just write down everything you want in your game.

This is more of a central collective of all the features you want to have in your game and it will greatly help you figure out the overall picture of the game and its complexity. It will also help you figure out what programming language, tools, libraries and other systems will work the best for your project.

This list isn't permanent, just as the initial idea document, because you might (and will) end up making revisions to improve the initial idea over the course of time as you get new thoughts and better ideas. Thats why these first two documents are rough and expendable.

Always feel free to start new versions of these two documents to improve over the old one, but don't delete the original documents just yet, keep them archived instead. Old ideas might prove useful or provide better solutions in some cases. You could even use some good unused ideas for other projects.



Set limits for the project.

This is very important. Without limits, you are in serious danger of being stuck in the design phase forever. It is vital to know when to stop perfecting or adding new features to the project.

The key here is to focus on what it necessary. If you allow yourself to be too relaxed with changing the main idea too freely and often, the project will be stuck in a cycle of infinite evolution.

In such a situation, you will be unable to start working on the project as the design constantly mutates with each new idea, potentially redefining the original idea entirely every time. With a situation like this, a project cannot be completed. If you try to complete a project by adding things as you go, the result will be an unstable mess. Do not make that mistake.

Don't get me wrong here, creative thought and improving the idea is always a good thing and it should be encouraged, otherwise we would never evolve or improve. However, you must develop some discipline to restrict yourself on how far you can go with a design.

In order for this to work, you must have a clear idea of the final product/service you're supposed to create. If you don't, make it so. Visualize a strong picture of what you're supposed to do and stick with it.

This is the entire purpose of this phase. You make yourself a very clear plan of the project with instructions on how to build it. Then, you make it come to life in the next phase (pipeline phase).



The Limits.

Firstly, you must realize what limits you have already. Time and resources(money is among them) are the most obvious and imminent limits a human has. By time, I mean how much life you have left and by resources how long can you sustain yourself in the world. These are natural limits.

Then you take into account what other limits you (or someone) have issued for yourself. A deadline is the most common one and is widely used in the industry. A deadline means that you have a preset amount of time to finish your work or else you fail. The other limit is how much money can you spend on production and research. These are artificial limits.

Limitations are a bitch, but you must deal with them. Usually, limited time or scarce resources mean that the quality of your product/service will suffer (by being more simple or smaller than what you might have had in mind). You can make up for little time by hiring more workers and you can make up for scarce resources by allowing more time for developing.

Finally there are also the technological limits. These are things like how much the hardware (computer or console) can handle in terms of complexity or size of the program. Stuff like "what is possible" and "how complex or big can it be" are the main questions you will have to ask and find an answer to.

While engineers continue to improve hardware, there will always be limitations when designing a game, so do your best to recognize them and work with them without crossing the line of smooth performance, because lag, glitches and crashing are not good to have.

Hopefully the limitations in the future will be so little that there will be more computing power and memory in devices than you will ever need for a project, but at the time of writing this guide, it is not the case. Deal with it.



Don't reinvent the wheel.

Learn from other peoples mistakes and don't repeat them yourself.

Use existing technology to help yourself advance in your own work. There were people before you and chances are that they've already created something that you would find very helpful. It can be a solution to a problem, a better workflow, a useful application or helpful knowledge.

Learn from the past. Do things better than the last generation did.



Think about publishing.

What is the purpose of your project? Are you aiming to sell it? Or maybe distribute it freely? This is the time to answer those questions and take appropriate action to prepare for it.

For this, you will need to learn some marketing and do some research into distribution methods, as well as all the details involved. Ask yourself these things:

  • What format will the project be presented in?
  • What is the target audience of the project?
  • Who is it intended for? Who might be interested?
  • How will you recieve the money from your customers?
  • What kind of presentation will you do and how will you set it up?
  • Will there be any advertising, promotions or campaigns to market the project?
  • How will people acquire or access the product/service?
  • What methods of payment will you support?
  • Will you use the help of an existing distribution platform or will you create your own?
  • What kind of licence of use will the product be released with?
  • Will you release source-code and on what terms?
  • How will you enforce said terms?

Reading more about marketing and publishing can help you answer these questions and more if you can not at the moment. Learning those two topics, as well as advertisement, will be of great help to you if you wish to have a financially succesful project.

Notice how I don't mention about pricing your game. You simply can't do that just yet. You may only do this once you have a working product in your hands. This is because after you have evaluated on how much work, resources and time went into it (and how greedy you are), you will be much more confident to determine the real value of your product/service.

If you can't estimate the value of your product at that point, simply look at existing products/services, let trusted people test the game and tell you how much could it be worth in their opinion. Think what could be a fair price that a customer could afford to pay for your product/service. Its also a good idea to look at the state of economy in the world.

If your game is genuinely good, is readily available, it has been advertised/directed to the right audience, the price is not too high so that people can actually afford it and not too low  so that you're not getting bankrupt, your project should be a success financially.

Remember this: Make the price be worth the true value of the game, no more and no less. Customers will be happy and so will you. Don't be a sellout. Be Fair. 



Skills involved in creating video games.

As you finally begin to grasp what you project is about and what it requires, you will then have a good understanding what you must acquire, learn and/or research to complete it.

Making a traditional video game involves lots of different skills:

  • Writing/Designing
  • Graphics
  • Audio
  • Code
  • Marketing/Publishing/Advertising
  • Project Management

These are the main skills you will need to create a complete, traditional video game. Video games are very flexible and different skills can differ very radically in their content depending on the project and its requirements. Lets take a closer look at these skills:


    Writing/Designing

This is the most important, most difficult and most complex of all the skills. Designing and writing comes with big responsibility and pressure as it defines the entire project, regardless the quality of art and sound involved. Without good design, the project is doomed to fail from the start. Even the most impressive visuals and audio can't save a bad design.

Designing and writing involves lots of study, experience and research to be proficient at it. There is no way around that. Being able to come up with interesting ideas is one thing, but to figure out how to turn that idea into a functional plan is a whole different task. Thats what this is about, figuring out how to make ideas a reality. Its similar to engineering.

Writing and Designing are both a very mentally challenging tasks. To design something, you will need to focus your mind to get a clear idea of the overall project, then figure out every little detail, content and tasks related to it, that are needed to be done to complete the it. Then you need to organize it all into a plan that you (and your team) can use to build the product/service.

Among all that, you will also need to research and study various things relevant to your projects requirements. This is done to figure out how to achieve something and overcome any problem. For this purpose, the internet is a priceless source of knowledge and your most valuable tool.

You will also be in charge of critical design decisions that affect the entire project. In teamwork, there will be plenty of pressure directed at you and your work, because you will greatly influence what others will have to do, depending on your decisions in your design.

While it will seem like a designer/writer doesn't do much work physically or isn't particularly contributing anything instantly visible, like what a coder or artist does, I assure you, its extremely challenging and a tiring task mentally.

During the entire project, you will be dealing with extreme amounts of information, infinite choices and hard decisions. Getting a burnout from information overload is very common. Sometimes it feels like your head will explode as you struggle to handle all the data.

Being a designer/writer in teamwork is much harder, as the added pressure from your partners can be a tough challenge to deal with, especially if you're on a tight deadline to finish a project. Team members can also add an additional level of stress by constantly providing more information for you as new ideas, critism and feedback.

However, planning ahead is always worth the effort. Start with smaller projects in the beginning and gradually accumulate experience to deal with increasingly larger projects. Dealing with information overload is a skill and it can be trained. Don't give up.



    Graphics

Graphics represent the visual elements of a game. Basically anything your eyes percieve is graphics. Their task is to give a visual feedback of the current situation for the player, which gives them all the necessary information on their screen to understand what is going on and what are they capable of doing.
Things that graphics represent in video games:

  • Fonts, Text
  • Menu graphics
  • Object graphics
  • Animation
  • Effects
  • User Interface
  • Backgrounds

There are countless ways you can represent anything in a video game. Depending on your project, you have countless options on what kind of art style and techniques you can use for the presentation of your product.

You don't have to follow the example of other games if you're confident enough that something specific might work perfectly fine for your project. Be creative, experiment and try something crazy, but fitting for what feel you're aiming at in your project.

Anyone can become an competent artist through enough training, patience and experience.

If a certain skill doesn't feel right for you, try something different and find alternative methods that work the best for you. Focus learning only the necessary skills you see relevant to the project.

Learning to create graphics of any kind is not a fast process. Also not every art style might seem like the thing you want to learn and use. Or perhaps you might feel that you just don't have the patience to do it. Just keep trying different skills, until you find something interesting and suitable for the project.

If all else fails, you can hire an artist with the right skill to do the job. Do note, that you will need to compensate the artist for his time and effort. You will also hold responsibility of directing the artist, so he will know exactly what you want done. More about teamwork further below.

In any case, don't give up too fast. Creating art can be easy and rewarding once you find your thing and get the hang of it.



    Audio

Sounds and music. These are often very underrated and initially neglected aspects of video game development, because you only notice them when they are missing.

Although you can't see sound, it makes a very big impact in a video game. Sound effects add detail and authenticity to the experience. Music provides ambience and immersion.

Same things I said about graphics apply to audio just as well. Even you could make sound effects by yourself with a bit studying and experience if you choose to, but usually its more common to acquire existing sound effects and music elsewhere than to make your own. This is less common with graphics, but this possibility also exists.

Remember this though, the more original you are, the more authentic your game will be. It is always a good choice to make original content rather than acquire ready made assets. This applies to both graphics and audio. Always aim to make original content.

Still, in case you have no time to create graphics and audio of your own, you may always outsource the job for someone else. Or simply acquire existing assets for use in your project. There are plenty of stores, libraries and artists out there that have put up their work for others to purchase and use. Both online and offline.



    Code

Programming is what makes video games possible in the first place. While that does make this skill particularly very important, without good design, you can't do good code.

Code is dependent of the design, while design is dependent on limitations. So this means both code and design are heavily dependent of each other.

Programming is a very tricky science. The whole idea of programming is essentially figuring out a solution for technical/mathematical problems on how to make the computer perform a certain tasks, using the computer's own language. And perform it so that it runs smooth as possible.

In order to program, you will have to understand the limitations of current technology and the logic behind programming. With that knowledge acquired, you may then begin to think how to make your video game possible from a programmers perspective.

Based on what features you require, you will then be able to figure out what programming language is most suitable for your purposes and what libraries and other applications might be helpful.

When you find out what suits your purpose the best, you can then learn how to use that language safely, as you have a clear purpose for its use. In other words, you know you are on the right path and there is no fear of studying something useless.

Besides languages and libraries, there are also special developer kits that are dedicated for creating video games. These come with lots of useful features and tools that can help you create a video game much easier than doing it the traditional way.

Usually these kind of developer kits have been designed to create games around a certain system that while might be suitable for certain project, they might inherently have limitations or methods that might not be suitable for your particular project. Study these developer kits beforehand to make sure your project is compatible with them in terms of what you want to achieve and what features you require.

Check out all the potential options you find and compare them. Once you narrow down your options, you'll be able to choose the best one out of them and happily develop your project, knowing that you've got a solid base to work on.

If you are completely new to programming, I strongly suggest learning the basics of programming as a whole. Since different projects have different requirements, there is no single programming language that is best for them all.

Infact, the only thing in learning programming you should really focus on, is mastering the basics. After that, its just a matter of choosing the right tool (=programming language) for the project. Think of programming languages as tools in programming and not as programming itself.

Most languages share the basics of programming, but just have different ways of implementing certain things, so ultimately its the basics and problem solving skills that really matter in programming.

And remember: Don't reinvent the wheel unless you have no choice. Find and use existing technologies and solutions before reinventing them yourself.



   Marketing/Publishing/Advertising

These skills plays a big role in projects that are intended to be published and perhaps even sold  commercially. While you might have created the best game in the world, you will still need the power of marketing and publishing skills to make it well known and financially successful. This is vital if you wish to earn money on your product and/or distribute to as many people as possible.

Advertising is about making people become aware of the existence your product, meanwhile making them interested and convinced, that your project is worth their attention and their money. This requires the knowledge about correct advertising to get it right.

Publishing is about setting up a plan of distribution. The core idea is that Interested people would be able to find and access the product/service as easily as possible. For commercial projects, it is also important to have an easy and secure way for customers to pay you for your hard work. It is important to make the process of purchasing as easy as possible to the end-user.

Marketing is about building up an image for your product that you will advertise to people.
This said image will communicate to any human about things like:

  • "What is your product/service about?"
  • "Why would they find it interesting?"
  • "Is it worth their time and money?"

When I say image, I don't mean a graphic/picture. Image can also mean an essence of something. Look up "essense" in a dictionary if you don't know the word. Infact, do that for every unknown word you encounter. There is no shame in doing so and it will improve your grammar.

Building an attractive image for your product/service requires careful planning, knowing your target audience and clear goals that you want to achieve. Your advertisements must be of highest quality possible, well designed and consistent to get serious attention from people.

Presentation is key and you need to make it count when you begin marketing you project. First impressions are extremely important and they need to be well organized, so that people would get the right idea and a good first impression from the very start, thus making them interested in finding more about the product/service you're working on and possibly even buying it once its released.

To attract as many people as possible to buy your product/service at the very moment you release it, you must make some noise during development, starting earliest only in the pipeline phase.

Generate hype. Let people know you exist and you are creating something they might want. People will be aware of your work and will be prepared to recieve when comes out. You will need to be prepared yourself to give them information on when it will be released and where to get it.

While advertising and marketing takes time and resources, potentially slowing the progress of the actual development, it is absolutely necessary in order to ensure financial success, especially if you are aiming to make large sales at the very release of your project. This is even more important if you have a team that needs to get paid or you have any urgent expenses you need to deal with.

Marketing and advertisement doesn't stop after the release. You will need to provide continuous advertisement and support for your product/service. You must do this as long as you possibly can, as every new day, a new person is born and thus not everyone might have been aware of your project during its production or release.

Many people do actually live under a rock, either by choice or fate, so there are millions of people that might be unaware of the things going around them for some time until they resurface.

For this, you must have a consistent advertisement campaign going on as long as possible to get those new people to notice your project and hopefully buy it. Keep you advertisements accessible and easily understood by newbies, as they are the main audience that will bring you the money. Never assume that people know everything. They really don't.



   Project Management

To a solo developer, this skill is simply about knowing:

  • What phase the project is at right now?
  • What is the ultimate goal?
  • What is the next step to achieve that goal?

For team developers, however, its a bit more complex.

This is mostly because of more than one developer working on the project, which causes a need for human resources management, communication between team members and leadership. All of this is required to keep the whole project from falling apart, running smooth and on schedule, if there is one.

Most important aspect in project management is communication. Other aspects include keeping track of the project and monitoring its progress.

You will need to learn basic communication skills and some simple psychology to be able to deal with people efficiently. It is also necessary to have any chance at good leardership. When you understand people and what makes them tick, communicating and leading becomes easy.

Gaining experience simply by talking with different people is also beneficial. Analyze each conversation during and after. See what you can learn from each encounter with a person. Pay attention to what body language they use, how they talk and behave themselves.

All this will help you greatly in understanding the people you work with and allow you to... *cough* manipulate them easier. Please, do not abuse this power and do your best to respect your fellow human. Treat others as you would want them to treat you.

It is also vital for all team members to be on the same frequency. This means that everyone in the team has a clear, unified idea of what the final product/service is supposed to be and everyone knows exactly what must be done to get there. Having everyone be aware of a deadline or any other important information regarding the project is also crucial for succesful teamwork.

If this is not the case with some or all team members, you must take action to fix this problem. Ask them questions and find out what they think and what they know. And when you get an answer, verify it. Be 100% sure that you understand what they said and be 100% sure that they understand what you say.

You cannot afford to have miscommunication. Its safer to ask something multiple times than to assume that your partner already knows about it. Often the case is, he doesn't. Don't fall for this pitfall and always verify during communications.

Project management also involves figuring out what are the current tasks that need to be done and who is supposed to work on them. You will need to gather all the information you can on the project and its progress, then use it to assign work for your team members.

As a project manager, you will continuously need to monitor the situation to make sure that things are running smooth, especially during the moments where things seem to become stale and you have a deadline to meet.

Even in the event of tight moments, be sure to explain the situation to your team members and take the time to listen to their point of view before going on a rampage. No one likes it when they are being yelled at without a good reason.

Encourage team members to voice their concerns and try to make communications as transparent as possible. Secrecy and dictartorship is not healthy not have in a project as it usually slows down progress and causes severe internal issues within the team. Be open instead.



This pretty much wraps up all the skill related things I wanted to talk about.

As you can see, there are many things involved in making video games than what meets the eye. While even this is just a quick overview, it should give you a good idea which steps you will need to take to become a succesful video game developer.



How to learn the needed skills.

What so great about living in this age is the internet. Anyone can become skilled at any of the above mentioned skills and more, provided you have enough time, will and patience to sit down, find the information and then study it. Thats it in a nutshell.

You don't even need to become a master at any of those skill mentioned above, infact, it is often enough to know the basics to get the job done, unless you want to specialize in something particular to create something more advanced.

All you need is an internet connection, plenty of time and a search engine like Google.

  1. Search for what you want to learn.
  2. Once you found something, study it.
  3. ???
  4. You can now fly helicopters and do kung fu.

Props to anyone who got that reference. Seriously though, you can find all kind of tutorials, guides and information on the internet that will help you learn whatever you want. The knowledge of the entire world is in the palm of your hand.

If you don't know how to properly search stuff on the internet, you can learn that too. Just write in google "how to search the internet" or something similar and you should be able to find a guide that tells you how to find information more efficiently. Experiment and remember to use simplified queries in search engines since they're machines, not humans.

Oh, and take care not to get stuck forever browsing all that infinite information by the way.
Like I said before: Focus on what is necessary.

Word of warning though, while there is plenty of good stuff out there on the internet, you must be careful not to trust everything you see there. It is a free place where any human can put up any kind of information, so not everything is guaranteed to be reliable or good. Filter out what seems like trash or false information, ignoring them completely and focus only on stuff that is relevant to you.



Alone vs Team.

It is fully possible for any human to create a video game from scratch, alone. The main differences between working alone or as a team is:

  • Communication
  • Amount of workforce

When alone, there is no need for communication. You are the master of your project and you don't need to share information with anyone, which simplifies things and removes an entire layer of difficulty that is present in team development.

Teams require much effort in communication between team members. Teams also require organization and guidance (leading, aka project management). Teams also have more pressure and interaction to deal with, unlike the developer who works alone and does everything himself.

Its obvious that while working as a team, you have more people to do labor and thus, making a project can be inherently faster. However, you get a whole new assortment of things to deal with (which I just mentioned), and if badly managed, the project can end up as a mess and progress even slower than if someone determined was doing it alone.

In team development, there are two types of team members.

The first type are subcontracted people that are hired to do only a specific job and then leave with an agreed compensation for their work once its done. If you're a project manager, you already must have a clear idea what you want a subcontractor to do. You will instruct and guide the person on how you want the job to be done. You will also need to inform about any possible deadlines you have in mind.

Once everything is settled and both of you have made a contract, the subcontractor will then begin his/her work once they have enough information to complete their task, and will expect a fee or any other reward to compensate for their time and effort.

These services are temporary and such people are generally not part of a permanent, full-working team. Or even if they are, they are doing it for the compensation (money) rather than the project.

As such, while they can give you suggestions and ideas, the project is still completely yours. What this means is that you will always have the final word on the project and its direction. They depend on you and your decisions, because you're the one paying.

The second type of team members are very different however. These people are usually friends or other associates that are a more solid part of your team and care for the project.

Such partners are often more concerned about how the project evolves and what direction it will take. Since they are primarily in it for the project and not compensation (even if its a commercial project you and your team are working on), they are more likely to voice their opinions and give suggestions.

And unlike a subcontractor, you depend on your partner as much as they depend on you, regardless the project is a commercial or a non-profit one. This is because they are voluntarily with you for whatever reason, and this means you cannot force them to do things they do not agree with.

Working with such partners means that everyone on the team has the power to shape the project and affect its fate very dramatically.

To prevent the project from collapsing on itself or being sucked into the void of infinite design cycle, its absolutely required to have a solid way of deciding decisions and drive the project constantly forward.

There is only one good solution: Project Manager, Lead Designer or Leader.
A single person must take a responsibility of monitoring the project and moving it forward.

This person does not make final design decisions (although if you and your team feel the leader is competent enough to do this, then go ahead. It would make things more simple anyway), instead he supervises the project and brings the team together to drive the project forward.

By supervising, I mean monitoring all the team members and hearing them out so you can collect all the information they give you into one place, then letting everyone know about it so that everyone knows what everyone is thinking and what suggestions, feedback or ideas they might have. This brings everyone together and strenghtens their understanding of whats going on what needs to be done. It helps everyone be on the same frequency and work more efficiently.

By driving the project forward, I mean notifying the team where the project is at, who needs to do what and by when it must be finished. With this, everyone on the team should know where at is the project in its current state, which helps to understand how it is progressing and this helps with motivations, because progress is more visible.

When every individual team member knows exactly what he/she needs to do, how to do it and by when it must be finished, it makes it easy to do their work with maximum efficiency, because there are no obstructions or missing information. As a supervisor, you need to make sure these specification meet their target.

  • If a member doesn't know what to do, find out and tell him.
  • If a member doesn't know how to do it, find out and teach him.
  • If a member doesn't know when it must be done, tell him immediatly.

Always check up on your team members to make sure all the above things are in good shape.

As for dealing with the risk of infinite design cycle in a team, the key here is to gather all the ideas from every member. Then get everyones agreement before pre-production, after which once the design is set, no new ideas are to be accepted until the next project.

Its harsh, but it is necessary in order to be able to develop a project of highest quality as possible, because attempting to add new features and making design changes past the design phase can seriously mess things up, resulting in instability and bad organization in the project.

The only way to mitigate this harsh requirement, is by having the design phase last a good while before hitting a lock to prevent further changes. So allocate lots time for design.



Remote Teamwork.

It is also entirely possible to work on projects remotely as a team over the internet. By remote, I mean the team members of a project might live far from each other, often in different countries and seldom see each other in real-life, if ever.

Thanks to the internet you can find a partner to work with that lives on the other side of planet. This type of working involves lots of risks and it requires special care.

As with normal teamwork, communication is extremely important. It has to be open and loud as possible. Even more so with remote teamwork, because you don't see your partner face to face, so you must take extra care to verify that you both understood each other and have the same view of the project or a certain task.

Everything I said in the "Alone vs. Team" part applies just the same for this situation.

Remote teamwork involves some complications and risks that can become obstacles for the project if not dealt with properly beforehand. Many of these complications will also determine what kind of system of communication is the best for your team and what sort of agreements you must make before starting to work on the project.



Timezone Difference.

Timezone difference is a common problem for teams that consist of individuals living far from each other. This has a big impact on how often, if at all, you have the ability to engage in live interactions with your partner.

If it is simply not viable for you and your partner to talk to each other live, you will be forced to work slower, because you will need to rely on traditional communication (email) to exchange information and files.

You will also need to focus on the quality of your emails. Aim to send as much information as possible at once, because you may only get a reply tomorrow due to timezones. Don't be shy about sending small emails though, do it even if it is a simple question or notification. Every bit of communication is important.

As always, to do good work, you must be sure of what you're doing. If communication is slow, you wont be able to get instant response, thus the overall speed of progress on the project will suffer. For this reason, live/instant communication is very desirable as it will make it easier for you and your partner to talk back and forth.



Contracts.

Contracts and other such agreements are a must if your project is commercial and you do not want any of your partners to leak the project, claim it their own or harm it in any other way.

By making legal contracts with team members, you insure that everything stays fair and no one can do anything bad to the project and get away with it. Its obligatory protection for you, the team and the project. Don't work on a commercial project without it.

This is even more important if your partners live far from you and you've never even seen them face to face. Always do your best to minimize the risks, so bad things will have no reason to occur.

"Anything that can go wrong will go wrong". Keep Murphy's law in mind and prevent things from being able to go wrong in the first place. Or if anything, minimize the risks at least.

You may find out more about popular contracts used by teams around the internet, such as the NDA (Non-Disclosure Agreement), or make one yourself if need be. All that a contract is, in the end, a simple piece of paper, a physical proof of what terms were agreed upon.

This proof can then be used to figure out who is wrong and who is right, so that your local court/police/whatever can make the right judgement in the event when things go bad.

I recommend looking at existing contract templates found on the internet, as they were made on hard experience and they should cover everything you will ever need.



Project-file Management.

Good project-file management is also crucial for effective teamwork. By this, I mean that you need a system that every team member can access, view and share their contribution as easy and fast as possible.

I highly recommend having a single person be a dedicated project manager, that will compile the final product by gathering and using all the contributed work done by the team members.

There are many solutions for this on the internet. You can compare them and see what suits best for you and your team. Just keep in mind that it needs to be secure, fast and easy to use for the entire team.



Allocate plenty of time for the design phase.

I can't stress this enough. Designing a project before doing it is crucial. If you don't plan ahead or give too little time for designing, then you're essentially shooting yourself in the foot.

Without enough time to design the project or saying "I'll deal with this problem later" is going to come back to bite your ass no matter how you try.

Don't rush it, good design grows over time. As you go about your daily life and wake up every next morning, your mind will be filled new ideas and fresh thoughts on a daily basis. Not to mention any other inspirations you might catch by watching a video, listening to a song or playing another video game.

The more time to think, research and plan ahead, the better your design will be. A good design will save you time and money during production. You will be prepared to avoid most problems before you even encounter them and this will allow you to make more efficient work and better choices, which in turn, mean better stability and faster production.

You will also have a better understanding of when your project will be completed, so that you would be able to set a release date or atleast know if you are able to meet your deadline, if you have such.




Thats all for the design phase.

Hopefully, you'll now have a better idea how designing a video game is done professionally. This is a lot of information to grasp, but its all equally important and I hope really you don't skip any part of it unless you're already aware of it.

Next up, I'll be explaining the Pre-production phase, during which the design will be cleaned up and organized.

Stay tuned and if you have any questions, just leave them in the comments and I'll reply as soon as I can.

2 comments:

  1. Wow. This is good stuff here! You write very clearly and it's obvious you've put a lot of time/thought/effort into writing these posts. Still assimilating the post's contents, but as I'm in the middle of the Design phase for my first game I'll certainly be coming back here to compare how I'm doing things to how you've laid them out here.

    One question: it looks like you've maybe stopped posting up the series? I hope not, because it would be a shame to see your knowledge go untapped!

    ~FBB

    ReplyDelete
    Replies
    1. Thank you, I'm glad you're finding it useful.

      And no, its just put on hold for now. I do intend to continue this series and this blog in general, but right now my main focus is developing a game project myself.

      At the moment, my name and my blog is unknown to the world in general, so I'm making a name for myself with this project. As I begin to enter the production phase (designs are complete, currently busy with learning programming, so I can build it), this blog will resume its active operation not only with this series, but also progress updates of said project.

      On the other hand, if more people like you start popping up and requesting about continuing this series and the blog before I do so myself (like explained above), then I will consider allocating more focus and resume this series immidiately and atleast complete that for the time being.

      Infact, I have MGDA part 3 almost completed (only proof-reading is left, aka checking for spelling errors), but so far its been sitting on my HD while I've been working on the game project. Was originally thinking about using it as a kickstart for the blog when I would make my comeback here.

      Anyway, feel free to email me or post comments here if you need to ask about something. I get instant notifications on any comments made here on my email so I can respond very fast if anything comes up.

      Delete