Checklist to Lead an Online Game Project

So, it’s come to the junction where you’ve decided that you’d like to form and head up a project. It’s time to recruit a proper team and build something real. Should be no problem, right? Your idea is bloody brilliant, and you’re certain that people will be clamoring over each other to join when they hear your idea and see your logo.

Allow me to provide you with a reality check.

Nobody wants to join your project. Some people might very much like to see your project completed, but nobody really wants to join all that badly. We all have our own ideas and pet goals, so why on earth would anyone care about yours? But your idea is so much better, you might think. Nobody cares. If you want to start a project, you need to convince people that you have a lot to offer them, enough that they should work on your dream instead of their own.

So how do you convince people? Step one, have a real skill. Ideas are not a skill. Game design is a skill, but it’s usually not strong enough to stand on its own. (And I’m talking real design here, which means a hundred page game design that sounds fun on PAGE ONE.) Art and programming, those can do the trick as long as you’re good at it. And because you’re good at it, you will have no problem coming to the table with an existing demo. Or a serious, substantial portfolio that you’d be comfortable sending to a potential employer.

Let me reiterate. You need one of these three things:

  • A real game design document which sounds fun from the first page.
  • A working demo of a something that at least behaves like a game.
  • A real portfolio of artwork, preferably artwork for this game.

If you don’t have at least one of those three, go home. You’re not properly equipped yet.

Okay, let’s say you’ve gotten your act together and one of these three is actually in your possession. The next big step in getting a team together is starting the other two. The more you do, the better.

  • I don’t know how to design a game!
  • I don’t know how to code!
  • I can’t do artwork!

Once again, go home. In fact, stop and ask yourself this question: Can I do this project entirely by myself? If the answer is no, don’t start a team. It’s okay if you’d do an awful job, or if it would take you years upon years to finish. But if you don’t have the skills right now to actually complete this project on your own, you’ve got absolutely no business running a team. A team lead has to be aware of all the issues that the team is going to run into, on all fronts, and be able to assist and participate in the decision making process. Note: I’m not suggesting micromanagement, but you should be able to understand at least generally what your people are doing at any given point in time and what problems they’re facing. Otherwise you’re not a lead, you’re just another passenger.

By the way, it should be obvious at this point that recruiting a team comes several months into development. Project first, team second. That’s how successful online projects work.

Lastly, you need to be willing to lead. That probably sounds stupid and obvious, but it’s a critical point and people don’t consider what it entails. Leadership does not mean “I’m the forum admin and also have the best ideas.” It means being a manager and a boss. And make sure you understand what that really means.

Deadlines, milestones, and deliverables needs to be set and adjusted realistically. And this is especially for the teenagers — if you’ve never been on a software project, you don’t know anything about milestones. Sorry, but professional experience (not necessarily as a manager) is basically a prerequisite.

Be ready to fire people. In the real world, people’s livelihoods are on the line; there’s incentive to do a good job and there’s incentive not to fire people callously. Without the money involved, neither side is really bound by those rules. Now life happens, and nobody will really be able to dedicate their entire lives to side projects. But if somebody is consistently flaking out on you, you better have the spine to end their involvement and go find someone else.

Promotions and demotions can happen. If someone is way better or worse than expected, don’t be afraid to change the hierarchy. Some tact is called for when you’re telling someone they suck and have to follow another team member, but that’s part of running a project. And if they’re not willing to accept those decisions, see the previous point.

Last but oft-forgotten and maybe the most important — you are the lead, you are the manager, and in some sense you are a dictator. But communication between you and your team needs to be two way. Software projects tend to mutate and evolve drastically over their lifetime, and that’s not a top down progression. If you trust your people, you’ll give feedback and suggestions an honest chance, and be ready to pick their ideas over your own. And if you don’t trust them to provide that kind of support to the project, you’re not fit to be leading it.

If any of this makes you uncomfortable, it’s time to reconsider whether or not you’re really ready to lead a team. And remember that a lot of professional developers don’t want the hassle and will turn down a lead position. There’s no shame in helping to produce someone else’s project. Just remember this checklist when you’re picking a team to join. It could save you from joining a dead-end group, after all.

P.S. Nobody gives a damn how “motivated” or “inspired” you are.

SlimTune Plans

I had to sit down and figure out exactly what to do about SlimTune. People really, really like that little thing, which is amazing for something I put together in six weeks. It doesn’t deserve to die, so I’m going to make sure it doesn’t. That said, it looks like it will be a while before I get back to it. January, to be exact. Unfortunately, I need to buckle down and finish my degree right now, and I can’t really afford to commit to a side project.

That’s the bad news. The good news is that I haven’t stopped thinking about the project, and I’ve figured out how to do some really sweet stuff. Let’s recap. The current release of SlimTune is a purely sampling based profiler. The goal is to enable instrumentation and hybrid modes for public use. They actually already work, except the data is thrown away by the frontend. I’ve been unsure of how to collect it in a useful way, but I’ve got some ideas now that will give you some serious detail. Min/average/max will be there, but who cares? I can give you a graph with timings, showing you the actual characteristics of the function. So if it often takes 5ms or 50ms, but nowhere in between, you’ll see two spikes at 5 and 50. The average might be 30ms, but that’s basically a bogus number in these situations.

I’ve also got some UI improvements scheduled. Probably chief among them is to fully enable custom visualizer plugins, so you can throw together your own views of the data. I’d really like to enable some kind of graphing support, but we’ll have to see how that goes. It’s tricky to find a chart control that also has favorable distribution terms. I was using MS’ chart control for the teaser photos, but it really sucks — or at the very least, I don’t understand how to use it the way I want to. Things get sized very strangely, for example. I’ll figure something out.

Oh, and people are practically begging for a way to save and load launch configurations. I promise you, that’s top of the list. It annoys me too. I did it in six weeks, remember? It will be fixed.

Now, here is the important bit. For those of you who are interested in SlimTune, I have a request! File issues against the profiler for anything you want. And I don’t just mean bugs. UI and other feature requests are welcome! You can even request things I’ve promised I will do. That’s totally fine. Hit me with everything you’ve got people! That way I know what’s most important to YOU, not me.