I've tried 3 times and each time I learned something new. I hope next time I'll be successful. What did I learn?
(1) The first time my company was called Echidna. I learned that being underfunded is bad. I can't tell you how much we were getting paid directly. Let's just say 2 of 3 of us were each getting paid 1/4 of what I consider the average game programmer's salary. The 3rd person, me, was getting paid by the other 2 to help out. I was basically living off credit cards. By the end of the project my credit cards were completely maxxed out and I had to take a real job.
Why did we do such a thing? Because we were naive. We were just out of school, we didn't have alot of experience, we needed the money and we thought it was a deal. It seemed like alot of money at the time.
(1.5) Between the first and second times I did some contract work. That time I learned that I can't work out of my house. Maybe you can but I can't. I get restless. I wasn't getting any work done at home and a friend offered me some space at his office. I thought about it but at first my thoughts were that I didn't have time to move my computer and desk and supplies somewhere since I was behind schedule. A friend suggested that if I wasn't getting anything done at home then what did I have to lose by trying it. So, I tried it and it ended up making all the difference. All of a sudden I was productive. I believe there are several reasons.
One is that I believe it's important to have a change of location. At home it felt like at any time I could be working. I could do things like watch TV for an hour or two because I would tell myself that I could work later, my work is just in the other room. My office was in my bedroom so waking up I could just get out of bed and sit at my desk without taking a shower etc. On the one hand I felt like I was ALWAYS at work. One the other hand it always felt like I could just wait a few more minutes. As soon as Scooby Doo is over I'll start, really. It just didn't work.
Another reason is that I need to see other people. At my friend's office there were 6 other people. That meant I had some social interaction. I was surprised how much I needed that to be productive. Without that social interaction, talking to people and seeing other people working, I always felt restless for other people's company. I also see this happen when people are working overtime. When lots of people are working overtime I feel like part of a team trying to achieve a common goal. If there are only a few people working overtime, especially if they are not near me, I feel like I'm the only one that cares about the project and soon, if I feel that nobody else cares, then I'll eventually stop caring myself.
The last is just having a place to call work. This is the place I work. While I'm here I'm working. While I'm not here I'm not working. I need that distinction.
(2) The second time I started a company it was called Seven. A few things I learned there: (1) Never except a fixed amount of money for an unspecified amount of work. This was obvious at the time but we were anxious to get started on something so we excepted. (2) Partners are generally bad. Not bad people just a bad idea. You can hear this advice from many many different people. There are several problems with partners. Is it an equal partnership? Will you have to put in the same amount of effort? For example a programmer may have to work 11 hours a day to get his work done. The accounting partner might only have to work 2 hours a week to get his work done especially for a small company. Sooner or later this kind of issue will cause a painful break in the partnership. Another is direction, some partners might want to do one type of game where as another might want to do something else, maybe not even games. I believe this is what happened at Id. It also happened at Seven and Big Grub and caused no end of frustration for everybody involved.
(3) The last time I started a company was with Big Grub. This time there were four partners. Again we had the direction problem. Which type of game should we do next or should we do something other than games etc. Which small side projects should we take on. The big lesson I think I learned is that it is very very important to have a good Director. The Game Director is my definition for the person that has the vision of the final game in his head and it is his job to direct everybody to create it. That would mean the best Game Director would be someone who is both the main game designer and also the game's manager (schedules, budget, etc.) That's a very hard person to find. People that design don't usually want to manage and people that manage aren't generally qualified to design. That person also needs to authority to direct. I believe that can be next to impossible with partners. Equal partners can generally say, "screw you I don't want to do that I want to do this." Employee's can't do that. Next time I start a company I will definitely be the Game Director and not a programmer unless I find someone who's design and management skills I truly believe in. Consider the Game Director to be just like a movie director. He should talk to the Art Director to get the art style he wants for his vision. He should talk to the music director to make sure he gets the music that matches his vision. He should talk to the programmers and make sure they can create his vision and how he needs to adjust it to fit reality. You can't have the art director directing the art separate from the game director directing the game. The game director should look over the shoulders of each person on the team on a daily basis to see that each person is creating things that fit his vision. He needs to manage everybody so the project is finished on time and so they are always working toward a common goal. If a programmer needs certain artwork by next week the game director should make sure somebody is creating that art.
So how do you start a game company ?
*) Pick a game, make it as small as possible.
This is important. If you've read some of my other pages you should have already read about how much work making a video game can be. That means it's important you start with something you can actually finish with a reasonable number of resources, in a reasonable amount of time and therefore with a reasonable budget.
The bigger the game you want to make the more important it is you have a very detailed plan. For example if you're making a game with 10 levels and your plan says about as much as
"Level 3 - The Ice Level"
This level will be slippery. It will have 3 to 5 monsters made of ice and the player will be able to throw snowballs.
That's NOT ENOUGH! If the game is large, you need to know every little thing you are going to need for that level so you can get a true idea of what it's going to cost in time and in resources. You need to know for example that monster #1 will have 3 attack anims, 2 idles and 1 death, 1 reaction and 1 defense. You need to know what each attack will be. You need to know what weapons will effect this monsters The best way to do this is to diagram it with sketches similar to a storyboard for a movie. Stick figures are fine but the sketches should have enough detail that someone can take it and create the needed animations and implement the needed programming by looking at these storyboards. If the first attack only happens whe n the player is carrying the XYZ banana then note that on the sketch. On the other hand if you are doing a Tetris clone maybe you can wing it. Still if you take a look at a good Tetris type game like Tetris Attack or Tetrissphere, an awful lot of work when into making those games as polished as they are with several puzzle levels, tutorials, bonuses, characters, sounds, music etc. It probably easily took 6 months, 2 programmers, 1 musician and 2 or 3 artists to make them that polished.
Note: some people will disagree with this in that they don't feel it's necessary to put down all those details. I suppose I agree to an extent. I think it's important to do it for each level before each level starts. That means you could get away with detailing just the first level and then while the first level is being implemented you can detail the second level. Just remember that if you find that the 1st level had 100 things to do which was going to take 5000 man hours (about 3 months for 5 people), then if you plan on having 30 levels it's going to take 150000 man hours and if you forgot 25% of the items in the first level then your estimates are going to be way off.
*) Start small and build bigger in the next game.
You think you are going to be the next Id. You're going to make a game as good as Quake and right off the bat you'll be driving Ferrari's in no time. Well I'm sorry to inform you but Quake is Id's 5th or 6th game. They started with a smaller game and using the funds and technology from that game they were able to develop the next and so on.
Do the same. Start with a smaller game. If your dream game is to make a 30 level game with every feature known to man and tons of graphics and video and music and ... This time start with something smaller. Try a 3 level game or try a game that re−uses alot of graphics or both. Then, after you shipped it, make your next game a little bigger. Build your way up.
*) Finding funding
You're out of luck here. Either (1) your the type of person that can get money from anybody (sell snow to an Eskimo) If you're that type of person you win! Please get me some money too 😉 (2) you know somebody that will give you money like a rich relative or you have a connection at a publisher (3) You're nobody. In this case the best way to get money is to first make a really good playable demo. Depending on the game you might be able to do something like this in a VRML like tool or in Director but most publishers are going to still need a type (1) person to sell your game or you're going to have to make a really really good demo. Also, a publisher is going to want to know that you've got a good team in place. A bunch of friends who say they'll quit their day job when you get a contract is not good enough. Neither is a bunch of people that have never created a commercial game. Look at it this way, if you had 4 million dollars would you give half of it to a group like yours? What would it take to make you comfortable to give somebody 2 million dollars considering that most games don't make there money back?
*) Have a realistic business plan
Everybody only pays attention to the hits. Quake, Doom, C&C, Mario 64 etc. Those are the exception not the rule. Every year something like 5000 entertainment products come out. How many of them have you heard of? Most of them you probably haven't because they didn't make any money. Even within all the games you have heard of possibly half didn't make money.
Therefore, don't create a plan that only works if your game is one of the top ten games of the year. In the movies 2 or 3 hits a year fund another 20 titles and didn't make money. The game industry should be so lucky.
*) Hire good people
At least at the top. As mentioned above, the number one person you need is a good Game Director. Hopefully that is you but remember it will be a full time project. Don't think you are going to have time to do more than manage and design. You won't. Of course you need an experienced lead programmer, and an experienced art director. The rest of the people can probably have less experience assuming the two leads are capable of leading and teaching others. On the other hand it should be fairly obvious that experienced people should in general be able to get things done on time, to spec and give reasonable estimates. (Come to think of it I'm not so sure that's true, check your references before you assume that a particular person's experience is actually all that valuable)
*) Don't waste money on super expensive software/hardware
It may sound glamorous to have an SGI and Alias on your desk or an Intergraph machine with a 6 thousand dollar video card in it but in the whole scheme of things, 3 artist with SGIs and Alias = 5 artists with a PC and 3DSMax. Everything else being equal, 5 artists will out perform 3 or another way to look at it, with the money use save you can afford to pay for outside video or for when you have those late deadlines and you're short on cash. I've worked with all the major packages, Softimage, Alias, 3DSMax, Lightwave. Any of them are fine for making games. They all have their quirks and no matter which one you use you'll find something you hate about it, your programmers will find something they hate about it, and your artists will find something they hate about it so don't think if you had just bought X instead of Y things would be better.
Some things not to skimp on.
1) Buy large monitors. Today's software requires lots of screen real estate. 19−21 inch monitors are a must for production.
2) Don't skimp on memory. At least 512Meg per computer or more. In fact if you're used to working with SGIs with 512Meg or more of memory then get that much memory for your PC and run NT and it will feel about the same if not faster.
3) Buy reliable equipment. Remember that time is money. If somebody's machine is not working and they are idle for 3 days, at $30 an hour that's 30*8*3 = $720 dollars in the toilet. Maybe you shouldn't have bought from the garage down the street. This is especially true of the network equipment. I worked at one company were the network went down at least once a week for a few hours. That company had about 45 people. That means one hour cost them at least 45 * 30 or $1350. After a few weeks they already lost more than they saved by using cheap hardware.
*) Hold your people accountable
Have a real schedule and weekly meetings and make sure people stay on schedule. If the schedule is unrealistic then fix the schedule. If the schedule is realistic and one person just can't seem to meet it you've got a problem. Also, people in the game industry are often at work from 10am to 12am or longer. That doesn't mean they are working more than 8 hours a day. They may come in at 10am, take a 2 hour lunch, a 1.5 hour dinner, play an hour of Quake, browse the net for 1.5 hours. That's only 9 hours. That's still good. My point is they aren't working 14 hours a day. What's my point? My point is that I've seen several people at various companies come in at 10:30 or 11 and leave at 8 and still do all of the above not work stuff. In their head they think they were working hard because they stayed until 8pm (ie, past 6) and they spend all their time at work. In reality they only put in about 5 hours and they did things they should be doing outside of work at work. Call them on it.
*) Get rid of bad people
If there is somebody who is clearly not up to the task get rid of them immediately. Don't wait and put if off because it's unpleasant. People that don't cut it bring down the entire team. Other's will resent the fact that they are getting paid the same or at all even though their work is crap or is always having to be redone or is always late. That makes them less productive too.
*) Keep people together
By this I mean that I don't agree with the books that say programmers need offices. I've worked both ways and for the most part I believe that making entertainment software is different from making other types of software. You wouldn't make a movie with the director in his office and the camera man in his and each actor in another. You're making something that not only has to be functional but it has to be fun, entertaining and beautiful. That comes from people being together and collaborating, working together to make things their best. You might be able to have an engine programmer not interact with the team but your detail programmers, the people that make things work using the engine, need to be in constant communication with the artists and designers and that means in the same room within talking distance.
*) Support your team
Realize that your team is working their asses off for you and that they are trying to make something great. Support them. Stock the fridge with drinks and snacks (if you figure out the cost for this you'll see it's actually pretty small) If they are staying late to meet a deadline get them dinner. Make sure they have what they need to get the job done. Whether it's software, hardware, a new chair, whatever.
Also, never take credit for other people's work. If the press comes in, show off the team, don't forget anybody. There's no better feeling than getting noticed for doing a good job and no worse feeling than getting overlooked or having somebody else take credit for your work.
Be honest with your team. Don't promise them things you can't deliver on.
*) Finish a level
Make the game playable as soon as possible and then finish the first level of the game. FINISH IT! If its got voice put the voice in. If it supposed to tally your score at the end put that in. If it needs a HUD (Head's Up Display) implement it. If it's supposed to have a map then do it. Dialog, put it in. Video? That too. That first level should be ready to ship before you do the second level. Ready to ship means there is NOTHING LEFT TO DO. If you've still got a list of things yet to be done (like go through the level and add hints, or, add the final bonus crates) then you are NOT finished. Why? Because until that level is finished and shippable you won't know how long it actually takes to finish a level. You won't know what things you forgot. You won't know whether or not all the things you wanted in the level will actually fit. In order for that level to be shippable you will need every piece of your engine in place and you will have had to do each thing you will ever have to do on your game at least once. That means you will have to solve your problems now instead of later when it's too late. You will also find out things you forgot to plan for which means that sooner rather than later your schedule will become more realistic as you see what's left to do. Also, once you have a FINISHED level you have something you can show the press and impress them. Nothing is more uninspiring that an half finished level with crappy place holder art, no music, no or bad sound effects and that crashes every time you touch the pink tile because pink tiles aren't implemented yet.
One Million more
I'm sure there are a million more things that should be listed. For now, these are the things I think are important to start and have a successful game company. Feel free to tell me I'm full of it.