Estimating development time

Started by
14 comments, last by Isvar Arthur 7 years, 7 months ago

Hi,

I need tips on how to better estimate development time for games.

Also if I were to give you a project like this, how long do you it would take to develop it from start to finish? Assuming there is only one programmer and one artist and the game is being developed in Unity.

platform
  • IOS - Android

Single player

  • Endless survival runner
Online Multiplayer (cross-platform, real-time)
  • Up to 4 players
  • Pick-up random powerups
Social features
  • Link to facebook/twitter
  • Invite friends
  • Chat
  • Invite to a multiplayer game
  • Remove from friends list
  • Global leaderboard for Single player and Multiplayer
In-App Purchases
Ads
Thanks :)
Advertisement

Anywhere from a month to... I dunno... 10 years, depending on the level of polish and depth and the level of expertise of the developers (none of which you state).

A good way to cost things on the development side is to break down work items into as small chunks as possible - ideally 1 day or less. But to do that you'd need to know everything that needs to be implemented for the game, and have no surprises along the way.

How to estimate development time more accurately:

  1. Get several years of experience.
  2. Plan carefully and comprehensively.
  3. Estimate the length of each task listed in your plan, using your own experience and any available industry data.
  4. Add together the task times to get a reasonable total time.
  5. Multiply by 10.
void hurrrrrrrr() {__asm sub [ebp+4],5;}

There are ten kinds of people in this world: those who understand binary and those who don't.
Those social features will be 99% of the development time.

I need tips on how to better estimate development time for games.

Experience and training.

The way I most improved my estimation was being the only programmer on the team. I estimated all my programming tasks and was held accountable -- via extra hours -- for my estimates.

If you aren't accountable for your estimates in a very real way it is difficult to be motivated to improve them.

Also if I were to give you a project like this, how long do you it would take to develop it from start to finish? Assuming there is only one programmer and one artist and the game is being developed in Unity.

Features are very terse, there isn't enough detail for good estimates.

Endless runner, IOS & Android, Unity engine, single player. By itself if you know what you are doing and want to make a potentially viable commercial product, I'd say bare minimums of 4 months programming and 3-4 months art. That's for a terrible product that cannot compete commercially but at least is not embarrassingly bad on the marketplace. If you aren't already experienced and don't know what you're doing I'd say at least 8 months programming (or far more, depending on the programmer's skills) and 4-8 months artwork, since the artist may have to rework things many times.

Online cross platform multiplayer for 4 players is going to add about two months programming if you really know what you are doing and your app is built for it up front, easily six months or more if you don't or the app is wrongly designed for it, and you'll need to include QA because bugs are hard. Artwork is UI, so far less time, perhaps a few weeks.

The random powerups are not that difficult, maybe another 1-2 weeks programming and whatever time is needed for art depending on visual complexity, perhaps a few more weeks if you have many diverse powerups or they do different things.

The link to facebook could be fairly simple if it is just posting directly, there are components you can buy that do almost all the work, add two weeks if you're using one of those, one if you've used them before and know what you're doing. Otherwise add in about a month, or two if you are learning how to post everything for the first time. If you want more than that, maybe full facebook integration and all that jazz you can add a full development year or even multiple development years.

Same for twitter. If you're just posting, and using a plugin, or just posting using their direct API, about the times mentioned above.

In-game chat basically comes for free with the other networking. Maybe 1-2 weeks for UI if you know what you are doing, more time if you have to learn how to handle UI and text input.

Friend invites, friends list, and join-in-progress all mean trouble unless you've got a lot more infrastructure than you are hinting at. Far beyond the scope you're mentioning.

Global leaderboards are a huge risk, I wouldn't touch them. The simple solutions are the most hackable, and they tend to become cesspools.

Having in-app purchases itself isn't too bad but you didn't list what it is that is going to be purchased. If you use a good cross platform library you won't need to write anything yourself, just hook in to a cross-platform entitlements system.

Ads will depend on the types of ads you use and the libraries they provide. Anywhere from one month to six months to implement, depending on your skill and experience.



The bare-bones "I can show my friends I made a game" endless runner could be done in about a month of programming work, about the same in art. The "I made a product that has the tiniest chance of being commercially viable" is anywhere between one to three years of programming work and anther year or so in artwork.

If that wasn't enough, the market for endless runners is not favorable to newcomers. The niche is saturated and even an amazing product is unlikely to succeed.

How to estimate development time more accurately:

  • Get several years of experience.
  • Plan carefully and comprehensively.
  • Estimate the length of each task listed in your plan, using your own experience and any available industry data.
  • Add together the task times to get a reasonable total time.
  • Multiply by 10.

I do not agree with your point 5. The heuristic I have been exposed to suggests to change to the next higher unit of time (day to week, week to month, ...) and multiply by pi, then round as reasonable.

There are a few big problems with software estimation that mean we're not as good at it as we should be.

a) We're often attempting things we have no direct experience of, because we like making new things with new technology and methods. This means past estimates are usually inapplicable to our future work.

b) We often conflate research and development, meaning a software task to "Add X to Y" often really means "Learn about X, learn about Y, then try and find a way to attach them without breaking Y". Typical development tasks should be trivial to estimate based on past experience, if you have it. Research tasks are unbounded - you just have to keep learning until you know enough or you know everything, and that can't easily be estimated because of the unknown factor. I find that separating the investigation from the work is good for estimate quality, providing the work estimate follows the completion of the investigation. However, sometimes the best investigation involves doing some of the work anyway.

c) We don't break things down far enough. The term 'Endless survival runner' has a ton of implicit features and each of those has a ton of implicit tasks, but I've never seen anywhere break down such features into enough detail to be certain over how much work is involved. Often the estimates are done without looking at the code at all, which is always going to fail.

d) We forget that there is more to it than development, such as marketing, testing, publicity, community engagement, applying to the various marketplaces, etc. All of this is optional, providing you don't need anybody else to play your game.

e) We underestimate development overheads because they're not the interesting parts. That might be the requirement to refactor code, time taken to fix defects, integration of new libraries, problems dealing with version control like dodgy merges or conflicts, updating platform-specific SDKs, waiting for replies from 3rd parties, buying or borrowing devices for testing, optimising unexpectedly slow code, agreeing on naming conventions and build processes, updating or upgrading tools, training people with tools, creating app/API keys for 3rd party services, complying with 3rd party restrictions, etc etc.

Hi,

I need tips on how to better estimate development time for games.

Also if I were to give you a project like this, how long do you it would take to develop it from start to finish? Assuming there is only one programmer and one artist and the game is being developed in Unity.

platform
  • IOS - Android

Single player

  • Endless survival runner
Online Multiplayer (cross-platform, real-time)
  • Up to 4 players
  • Pick-up random powerups
Social features
  • Link to facebook/twitter
  • Invite friends
  • Chat
  • Invite to a multiplayer game
  • Remove from friends list
  • Global leaderboard for Single player and Multiplayer
In-App Purchases
Ads
Thanks :)

Well if you are talking full time development work then I could probably get a prototype up and running with all these features in a couple of weeks. It wouldn't be very polished. After that the estimate would be entirely dependant on your game design but, to go from prototype to fully polished game would be a upwards of a month.

It is worth pointing out that one of your features is not actually possible anymore:

Facebook will no longer allow you to invite friends in a mobile game (they won't even allow you to retrieve your list of friends anymore) unless there is also a web version of the game on the Facebook store and your friends have not disabled this feature from their privacy settings (most people have nowadays).

There are other ways to invite friends such as Game Centre on iOS and various third party APIs or you can role your own but, they are all dependant on your friends using these services. So it just goes to show even before you attempt to estimate for your time you need to do a little research as to what tech you are going to need to use because if you start developing and find out later then all your estimates will have been for nothing.

In the real world we don't always give estimates based on time. A lot of companies use Agile systems such as Kanban or Scrum.

We give estimates based on how complex a task is. This estimate is just a number (could be T shirt sizes, Fibonacci sequence, prime numbers etc..) . At my current company we us 3 for small, 5 for medium and 8 for large. Anything bigger than an 8 needs to be broken down into smaller sub tasks. Again this figures aren't an indication of how much time a task will take to do but, how complex the task is (actually this isn't true. I'm actually over simplifying here. The points are seen as units of work which should not reflect as time or complexity but, are simply there to enable the process). This numbers are referred to as story points.

How then you may ask do we estimate time?

Well we know how many story points we completed the previous two weeks, this is known as our "velocity". After working for several months in a team you tend to get a feel from this velocity figure about how many story points you can fit into a Sprint. So when you have all your features you sit down and story point every single one. If you come out with 160 story points and you usually complete 40 story points a week then you can estimate 4 weeks of development time.

My share;
1. Create a GDD/ plan, with a black and white scope
2. Make all deliverables small enough that you could deliver them without doubt or interpretation
3. Estimate per deliverable

Crealysm game & engine development: http://www.crealysm.com

Looking for a passionate, disciplined and structured producer? PM me

Hi,

I need tips on how to better estimate development time for games.

Also if I were to give you a project like this, how long do you it would take to develop it from start to finish? Assuming there is only one programmer and one artist and the game is being developed in Unity.

platform
  • IOS - Android

Single player

  • Endless survival runner
Online Multiplayer (cross-platform, real-time)
  • Up to 4 players
  • Pick-up random powerups
Social features
  • Link to facebook/twitter
  • Invite friends
  • Chat
  • Invite to a multiplayer game
  • Remove from friends list
  • Global leaderboard for Single player and Multiplayer
In-App Purchases
Ads
Thanks :)

I'd give it half a year - year(6-12 months) depends on how much work time you can hold per week.

Frob,

You talk from a professional point of view,

Don't include "re-writing" and "QA" since they are only 2 people.

The only QA they might get is another friend to play endlessly (Don't forget to include beer for the friend).

If they focus on the development of the product as fast as they can, they might get a product running in several months.

From my understanding, the development is the easiest part of your idea,

Marketing and environment managment will be the most difficult. And I didn't even include that for my estimation.

This topic is closed to new replies.

Advertisement