Man Hours Necessary to Make a Game

Started by
12 comments, last by Krohm 11 years ago

There is no good way to estimate this.

It is hard to come up with accurate estimates for another person. Programming time required depends on the individual developer. What may take me 30 minutes may take you one week. Something you may do quickly I may do slowly.

I recall reading that estimating software development times is a lot like measuring mountains that you are unable to climb. You can either compare it to other mountains of known size, or you can take apart the mountain and measure the parts.

The second half of larspensjo's reply above is actually pretty good on that:

To make a good estimate, you need to subdivide the project into small enough parts. The parts should be small enough to make it possible to estimate each of them with confidence. If there is a part you don't know enough about, then you have to revert to the formula above.

That is the method of measuring rocks. The biggest problem is that by only counting rocks you miss a lot of other stuff in the mountain. You can make a good guess by breaking it down into smaller and smaller pieces and by getting more accurate measurements, but it will always be imperfect.

When you have a few years of experience you can estimate by comparing against other mountains. "This thing is like that other thing I did, and that took three months."

Advertisement

You should however drop the C++ and go for C# unless you want a (almost) direct portability to linux and mac ? Because it saves the time of having to setup and understand boost and stl, memory overrun issues and dangers of temporary references and other joys. C++ needs to code while concentrated and focused at 100%, with rigor, (apply RAII, careful design thinking with SOLID, avoid smells...) Whereas in C# you can code correctly even after a beer, and the compiler is much much nicer in its messages. Sometimes it even gives you the solution directly. Also there are virtually no build times which accelerates code-to-test cycle. I could go on and on...

I can absolutely sign my name under that (which is something I NEVER do). I did spend few yrs writing 3D engines and games in C++ / OpenGL / DirectX, so I have a meaningful base for comparison.

Switching to C# / XNA meant my productivity quadrupled, sometimes it attacks the 10:1 ratio. It's THAT different.

Now, I know, you could object, that I now have more experience than I had 8 yrs ago. And you could also object that the C++11 is waaaaay different/safer/feature-rich from C++ under Visual C++ 6 :-)

But it still freaks the crap out of me, when I just copy/paste 7-10 C# classes (for a new gameplay feature or a massive refactor) that I wrote in Notepad++ (without an access to a compiler) and the beast just works right out the box. That's just insane and it happened to me very rarely in C++ / DirectX (not even mentioning the time it took me to LEARN to write the stuff without any memory leaks whatsoever without smart pointers)...

Of course, if you want to do C++ profesionally later on, then you just gotta get burnt, there is no real substitute for that kind of an experience. Reading about a bug fix on a forum and spending a day (or evern a week for that matter) under the debugger are two drastically different things...

VladR My 3rd person action RPG on GreenLight: http://steamcommunity.com/sharedfiles/filedetails/?id=92951596

I wanted to know if anyone here had experience making a game on their own and how many hours would you estimate for its complete development (programming, sound, sprites, etc.).

For one, I have very little programming experience and have never completed a game in my life. I also know that other things like fidelity of graphics, sound and overall size and scope of the project could determine length as well. As such, I will give a clear vision of my game with regards to those parameters.

[...]

I plan to make a 2d action adventure game.

First congrats, you are asking an excellent question that most new game programmers do not ask.

Personally, for someone with limited programming experience and no completed game experience, I think you should walk before you run. Start with things like Pong and Chess first, then start moving onto isolated features of your game (each as their own mini project initially) like a simple 2d Tile system with arrows moving, etc.

Trying to jump right into something like Zelda is way too ambitious. Beginners often believe it is a short-cut to jump right into a fairly complex game since doing things like Pong would be throwing away code as they don't intend to sell it, but that is not true. Jumping into a project far too complex for your skill level (as Zelda is for you with limited programming experience) is not a short cut, it is a long-cut. You start trying to juggle far too many concepts that way without having the basic skill foundation, and you will inevitably see an exponential increase in bugs as the lack of understanding in the isolated areas cascades as the different functional areas interact. That causes a game so buggy that it either takes forever to make progress or more likely is so frustrating the code base gets abandoned and restarted from scratch. It's far better to first gain a lot of confidence and skill via tiny projects of increasing but feasible difficulty.

Switching to C# / XNA meant my productivity quadrupled, sometimes it attacks the 10:1 ratio. It's THAT different.

[...]

Of course, if you want to do C++ profesionally later on, then you just gotta get burnt, there is no real substitute for that kind of an experience. Reading about a bug fix on a forum and spending a day (or evern a week for that matter) under the debugger are two drastically different things...

100% agree. I'm using Lua and Go instead of Objective C or C++ and the difference in productivity is massive. I'm working on a 2-3 year project, that would instead take 4-6 years had I worked on it natively using Objective C / C++.

Not only that, but many professional studios these days are switching away from C++ anyways to higher level languages for the majority of their game programming, so even on the job front it is losing some of its luster and I expect that trend to continue as studios increasingly see less benefits in reinventing the wheel when excellent SDK's such as Unity and Corona already exist for cheap.

I plan to make a 2d action adventure game. The graphics fidelity will be on par with something in the middle of Nintendo and Super Nintendo Entertainment Systems. So nothing as smooth and detailed as Super Metroid, but definitely more involved than Legend of Zelda. I've already started sprite work.

Personally, I'm remaking a NES game. Started in last year summer and on hold since January of this year. I had a lot of inherited code from previous projects... most of which just plugged in perfectly.

It took me a full week to reproduce level geometry alone (with no logic associated).

Previously "Krohm"

This topic is closed to new replies.

Advertisement