This a very long thread to add a few points to this thread, all is taken from my experience and seeing other teams at work, also seeing successful teams make their games and actually release them
Right I’ve been in a few teams and a lot of these deteriorate over time! People take on ambitious ideas even a simple side scroller game can become overwhelming when you start doing it. When coders understand they need to make health bars, enemy AI, different guns, bullet controllers, hud controllers, level controllers….
You see how quickly something as simple becomes so overwhelming?
First: I agree you have to find people you like, I went the trial and error way and joined many teams in my time and simply filtered them out as they went along. I’ve now found a brilliant team and couldn’t be happier.
I would advice for everyone to just throw all your worries away! Jump into any teams you can! As soon as possible! As soon as you know how to create an object in game maker (very quickly you can jump into GML which is quite powerful)!!!
this sounds silly? Well think about it. If one team has 10-20 people the team will fall apart, maybe 0.1% of time they might not. But if you meet at least one guy who you get on with, the time spent on the project was worth it, plus you learn from mistakes and will learn things to avoid and find some new way of doing things.
Don’t wait till the end of section 2 to join a team!!! Can’t stress this enough. I've met a developer in a game jam, who was at the same stage of the course as me. Previous to game jam I've already made a few experimental games and been in a few teams. He only studied the course…
Put it this way: I've spent most of the time explaining how things should work and how to do this and that to him. Now I didn’t mind it, as I love sharing what I know, and it's the experiences that matters. But you need to make games, to learn how to make them!!!
GET IN THERE!!! GET YOUR HANDS DIRTY!!! You will learn a lot. And by the time you’ve been on a few projects that came through or didn't. Each one will give you invaluable experience!!! And maybe you'll meet 2-3 other awesome people, and start your own team.
I've Found that teams of 3-4 people is just right for small projects, which is what people who are starting out need.
Obviously if you hit it off first time, you're one lucky guy/girl. So stick with the team.
Secondly: You’re not paying someone a wage!!! This is simply the truth for starting out. Work as a team. Decide on things together, be open minded and let people criticize your ideas, let them add input, let them say what shouldn't/should be in the game. Discuss these things as a team. And when you do, as A TEAM decide what to put in your game!
One advice to everyone in the team. DO NOT just agree to everything the designer(or whoever is the focal point) says…
argue the points with them if you don’t think something will work say so! If you think something will improve the idea RAISE YOUR POINT! No matter how silly you think it is! you’ll be surprised how many of your silly little ideas, make it in to the game and add those WOW/LOL/OMG moments to it…
Ok making the actual game…
This one is a biggy… to narrow down the choices here is a few good engines for “starters” to make “2D” games.
For beginners stick to GameMaker. The program is really good and can do quite a lot. I’ve even made the character that could be controlled with my wired xbox controller on pc.
Gml is easy to pick up and to use, there are vast forums on how to get things done!
Use goggle and community forums! If you can’t find what your looking for, post in the forums asking specific questions. Doesn't matter how silly they are! The people on these forums started asking the same silly questions to learn. The indie community is a very friendly bunch and will try and help you as much as they can.
Few pointers on making the threads on these forums… Search for the problem first, pick a few keywords that you think define the problem and search in the forums or Google make sure there is nothing a like it, if there is something similar post in that thread rather than starting your own… You’ll find that most topics, will have at least one threads covering it… This is a biggy as people don’t want to repost their answers or help someone, who clearly hasn’t even bothered to look for the answer...
If your tried and failed Just start your thread with “ I've spent an [insert amount of time] on Google, and these forums, and can’t seem to find what I’m looking for, if you know a thread covering this issues, could you please point me to the right thread, otherwise, could you please help me solve this issue/problem/bug/etc. ” You’ll be surprised that most of the time people will simply post a link to exactly what you’re looking for or if not will help you in any way they can. This applies to all engines and their community forums and indie forums.
Really don’t bother learning game maker too much. After you, finish your first game, you will or should be moving on to some more advanced style of engines or using proper languages.
There is other good 2D engines. But in my opinion for your first game you shouldn't really be doing anything that game maker couldn't handle. After you finish the simple game you can see how you work as a team and see if you want to spend more time with each other. Then you can go on to bigger projects and more suited engines.
Like Flash! Using free "flash develop" and some sort of supporting engine. Flixel, FlashPunk, Pushbutton Engine. Are all very good engines for 2D games, and some of them show good practices in Object Oriented Programming. Or you could, write your own engine, using flash if you want to go the hardcore way.
There is always the C++ route which is what some of the developers will want to go with in the course. DirectX and OpenGl is your way forward with this language. Again plenty of support on forums and tutorials for these... Although I might be wrong about DirectX and OpenGL.
Unity or Unreal engines – the two clear options for starting in 3D programming. Very well supported and lots of tutorials and help out there.
OR once again C++. Although most of the programmers who can do C++ 3D, will most likely want to progress to doing a placement, if not they will be focusing on their course! So making a 3D game is only for the truly dedicated teams that already made one or two games and published them... My advice: Do not start a 3D game until you're at this stage as a team!
Ok engine rant over next…
DESIGN THE GAME
Do it, before you start coding it… ok make a simple demo to see how things would work, don’t spend more than a week on the demo… this should be a very stripped down version of the game, with basic play mechanics, this is to get the feel of the game!!! No menus, no backgrounds, no sound, no proper animations, just placement stuff!!! No advanced features!!!
Once the demo is done. Play it, see what cool features you could add and feel how they would improve the game, write these down… then SCRAP THE DEMO. And don’t do any more coding until you have sketches, the feel of the game, GDD and TDD worked out and written down!!!
Developers if you think you got nothing to do at this stage…. YOU ARE VERY WRONG!!!!
Designers if you think developers have nothing to do at this stage YOU ARE VERY WRONG!!!
Teams are for working together! Getting everyone’s input before you hit the production stage!
A good developer will keep designers dreams in check and say “yeah I can do this… but it would be better if we did it this way” or simply "No!"
Programmers: make sure you know how to say NO! coding is not “MAGIC” and for simple projects know the limits!
Be sure to stop them and say “look I can’t do this" or "I don’t know how to do this, but I’ll check the forums and see if I can find a solution, no promises!”
Know your limits! When you simply agree to do everything the team asks of you, you’re putting a lot of pressure on yourself!
This will lead to you becoming overwhelmed! missing deadlines! Stop responding to team mates emails!
All because you said you can do it and you found out you can't!!! Make sure you have at least an idea on how to go on about the task if you don't... say you don't know! look at Google forums and try and find a solution if the task is important to the game, if not scrap the task!
Make sure you have A GDD to work from, and developers write TDD for even the smallest games, I will post a different thread up on these mysterious things soon enough!!!
Set to do’s and deadlines! Talk to people and find out how long it will take them to do the specific task! Make sure they say “ OK, I can definitely do this in a month’s time!!!”
Oh yeah quick fact : MAKING GAMES TAKES TIME AND EFFORT!!!
Now sometimes, people miss deadlines… Don’t start shouting at them or throw them out of the team. Ask for reasons why they missed it and if you can help them in any way to make sure they meet them? Real life gets in a way for all of us sometimes you have to be understanding!
You as a devoted team member have to warn your team, then things don't go as planned! Say to them that you will be missing the deadline because you simply didn't have the time to get around to it or whatever reason you had for missing it, quick email or a text message will warn them and put them at ease!!!
It’s much better to warn them. Than come deadline date and you say "oops I forgot " or worse yet don’t respond!
Meet up constantly!!! use Skype for conference calls if you can, if not get mirc up or some sort of program where you can chat real time (although conference calls seem to be the best way). Make sure everyone is putting in input to the conversation! If they’re not… they are most likely not even listening in, on the conversation…
With this in mind: YOU WILL FIND TIME WASTERS! Make sure to weed these out a.s.a.p. As they demoralize the teams greatly!!! I’ve seen few groups split because of this…
Ok! So now you have :
A small team;
A project GDD and TDD;
An engine suited to your needs;
A to-do list with deadlines;
Regular meetings to reinforce everyone’s motivation!
You are now a proper team and are around 90% sure to finish and release the games you work on!!!
Hope this helps