Jump to content

  • Log In with Google      Sign In   
  • Create Account


ETA for a from scratch 3d GFX engine?


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
19 replies to this topic

#1 forsandifs   Members   -  Reputation: 154

Like
0Likes
Like

Posted 16 March 2011 - 03:28 PM

How many man hours do you think it would take to write a 3d graphics engine from scratch that could be used in good looking commercial products?

Sponsor:

#2 adam4813   Members   -  Reputation: 655

Like
0Likes
Like

Posted 16 March 2011 - 03:47 PM

Not to sound harsh, but this is a loaded question with to many variables. There are many types of engines and many different components that could or might not be included. You would mostly be looking at a few weeks for a simple GRAPHICS engine that could have ships flying through space firing bullets, etc but there would be only basic collision detection with that.

#3 forsandifs   Members   -  Reputation: 154

Like
0Likes
Like

Posted 16 March 2011 - 05:09 PM

Thanks for your reply. You didn't sound harsh to me.

I'll try to be a bit more specific: it would just be a graphics engine with no collision detection. It would not be simple though imo, we're talking relative to current comercial games a good looking graphics engine. And we're talking getting it to an at least semi-professional state where people could use it in their commercial products. Just trying to get a ball park figure.

If I'm being too vague still I apologise.

Interpreting your estimate of a few weeks: is that 24 man hours each day or more like normal full time working hours (~9) each day?

#4 Hodgman   Moderators   -  Reputation: 27904

Like
1Likes
Like

Posted 16 March 2011 - 05:36 PM

It's equivalent to asking "How many man-seconds does it take to sprint 100m?". One man can do it in 9 and a half, another can do it in 30.

It could take a month or a year, depending on the person. The quality of the product would vary greatly too - even after 2 years one person's work might be inferior to another persons 1-weekend marathon...

#5 PolyVox   Members   -  Reputation: 708

Like
1Likes
Like

Posted 16 March 2011 - 06:08 PM

It really depends on too many factors. But as an example consider Ogre. This popular 3D graphics engine has been used in numerous commercial applications and took the (exceptionally talented) lead programmer about 10 years to get to it's current state. Tha's working part time though, so perhaps 3 years is more reasonable.

Ogre is a large engine - a smaller engine such as Horde probably represents maybe one year of full time work. But in both these cases it's just the engine - if you want tools for importing assets etc this will cost you extra.

If you have more specific requirements then you can possibly get it down to months, but at this point your trading off features and possibly flexibility.

#6 zzzz....   Members   -  Reputation: 84

Like
0Likes
Like

Posted 17 March 2011 - 06:31 AM

Anything from 2 weeks to 2 years, depending on skill, experience and procrastination level ;-) Pablo


Edited by jbadams, 13 April 2014 - 01:48 AM.
Restored post contents from history.


#7 harveypekar   Members   -  Reputation: 218

Like
0Likes
Like

Posted 17 March 2011 - 05:11 PM

If you have to ask, you're probably out of date by the time you're finished.

Considering that every graphics engine I've worked on had multiple people working on it ;)

But, of course, it all depends on the scope and your experience with 3D api's.

Multiply by three if you want to use it on more than one title (keep things generic, etc...).

#8 Hodgman   Moderators   -  Reputation: 27904

Like
0Likes
Like

Posted 17 March 2011 - 06:42 PM

To expand on what I said earlier - If someone asked me to make them a graphics engine, I would take as long as I could (no, not out of self-profit :P)

If they only gave me a weekend, I'd download Horde3D and wrap the API to fit the client's needs.
If they gave me a month, I'd get something done, but it would have a very bare-bones tool-chain.
If they gave me a year, it would come with the needed infrastructure, like Maya exporters, shader-assemblers, etc...

Often in a project, the time that it's allowed to take is a constant - the deadlines have already been decided and will not change. In these kinds of projects, you've got to scale back the niceties and work with rougher systems to get things done in that time-frame.
So the answer to how long it will take is: as long as you give me ;)

#9 zedz   Members   -  Reputation: 291

Like
-1Likes
Like

Posted 18 March 2011 - 12:09 AM

You would mostly be looking at a few weeks for a simple GRAPHICS engine that could have ships flying through space firing bullets

Few weeks!
try less than a day :)

#10 scgames   Members   -  Reputation: 1969

Like
0Likes
Like

Posted 18 March 2011 - 06:30 AM

You would mostly be looking at a few weeks for a simple GRAPHICS engine that could have ships flying through space firing bullets

Few weeks!
try less than a day :)

If you're saying it should take someone less than a day to write a graphics engine of the complexity described above, I think that's a little optimistic ;)

First of all, as mentioned previously, the time it will take depends on what you already know. For someone starting from scratch with little or no knowledge of programming, math, and/or graphics, a simple rendering engine could take weeks, months, or even a year or more to get up and running.

But, even for someone who already knows all the material, 'less than a day' might still be a little optimistic, assuming you're really starting from scratch. Depending on scope (e.g. whether it's 2-d or 3-d, whether texture loading is supported, whether model loading is supported, etc.), it could easily take a day just to gather all the necessary libraries, get them built and integrated in whatever development environment you're using, type all the code, etc. And, even the simplest project will still have a code-build-debug cycle, and it's often (if not usually) the case that unexpected obstacles will arise as part of this cycle.

#11 Hodgman   Moderators   -  Reputation: 27904

Like
0Likes
Like

Posted 18 March 2011 - 06:59 AM

And, even the simplest project will still have a code-build-debug cycle, and it's often (if not usually) the case that unexpected obstacles will arise as part of this cycle.

Yep, that's completing 98% of your work, and then having to complete the other 98%, which is why I always double my first estimates =D

#12 zedz   Members   -  Reputation: 291

Like
0Likes
Like

Posted 18 March 2011 - 12:06 PM

And, even the simplest project will still have a code-build-debug cycle, and it's often (if not usually) the case that unexpected obstacles will arise as part of this cycle

Of course this is based on your experience.
Sure sometimes unexpected things crop up but for me (Ive completed 100s of apps, mainly flash) & no doubt others to do this
You would mostly be looking at a few weeks for a simple GRAPHICS engine that could have ships flying through space firing bullets
would take less than a day cause you know from experience what to do.
At the other end of the spectrum a person may know nothing about coding,maths,design,logic,GFX etc in which case to achieve the above would take months

#13 scgames   Members   -  Reputation: 1969

Like
0Likes
Like

Posted 18 March 2011 - 12:44 PM

And, even the simplest project will still have a code-build-debug cycle, and it's often (if not usually) the case that unexpected obstacles will arise as part of this cycle

Of course this is based on your experience.

Hm, so you're saying the 'debug' part of the 'code-build-debug' cycle is just my personal experience? All available evidence would seem to contradict that, but ok :)

#14 mightypigeon   Members   -  Reputation: 434

Like
0Likes
Like

Posted 20 March 2011 - 02:24 AM

You would mostly be looking at a few weeks for a simple GRAPHICS engine that could have ships flying through space firing bullets

Few weeks!
try less than a day :)


Sure, you can make a modelviewer in less than a day, but I'd hardly call that a "graphics engine".

Designing the API, getting all the boilerplate stuff ready, etc. would take much longer than a single day.


#15 zedz   Members   -  Reputation: 291

Like
0Likes
Like

Posted 20 March 2011 - 01:09 PM

Hm, so you're saying the 'debug' part of the 'code-build-debug' cycle is just my personal experience? All available evidence would seem to contradict that, but ok :)

'your' doesnt mean you specifically, its meant as a general term for person or persons X.
Myself I spend less than 10% time debugging, (nowadays 90% of that time I spend debugging is cause of javascripts insane lack of static typing, grrr ), actually now I think about it, it would be a lot less than 10%. My ratio of coding-vs-debugging was far far higher back 20+ years ago or even 10 years ago. I find the more I code the more likely I am to write things that 'just work'™ I assume with most ppl is similar.

I actually knocked up a engine in about a day (from scratch in javascript) a few months ago, of course its not complete (even today) but then nothing is complete even the unreal/crytek/id etc engines are continuously being rewritten/tweaked.
but within a day it could do this -> 'You would mostly be looking at a few weeks for a simple GRAPHICS engine that could have ships flying through space firing bullets'
plus a lot more
.

#16 scgames   Members   -  Reputation: 1969

Like
0Likes
Like

Posted 20 March 2011 - 01:39 PM

I find the more I code the more likely I am to write things that 'just work'™ I assume with most ppl is similar.

Yes, definitely. But even experienced developers still have to spend time debugging. Also, I think how much time one spends debugging can be dependent on a variety of factors, such as language, development environment, number of platforms targeted, maturity of support libraries used, level of support for the technologies being used, targeted feature set of graphics APIs, and so on.

but within a day it could do this -> 'You would mostly be looking at a few weeks for a simple GRAPHICS engine that could have ships flying through space firing bullets'
plus a lot more
.

That simple description is still pretty vague. One could easily get something up and running in a day using existing frameworks and/or rapid development tools (and I certainly don't doubt that you were able to get something running in that time). But the above could also describe a cross-platform renderer targeting Windows (XP, Vista, 7), OS X (PowerPC and Intel), and Linux, with both OpenGL and Direct3D backends (depending on platform), with basic scene-graph support and support for loading textures and models, all written from scratch in C++ (with windowing handled by an API such as SDL). I don't care how experienced you are, just getting the project(s) set up appropriately for each platform and simply typing the code is probably going to take more than a day. And in reality, no matter how experienced you are, you're not going to be able to just type up the whole thing and have it build and run perfectly the first time. (Well, maybe you could, but that'd be pretty extraordinary.) Most likely, there will be multiple iterations of the code-build-debug cycle, and given how the C++ build process works and the fact that you have to build and test on three different platforms, that day is going to go by pretty quickly ;)

#17 Antheus   Members   -  Reputation: 2393

Like
2Likes
Like

Posted 20 March 2011 - 01:57 PM

How many man hours do you think it would take to write a 3d graphics engine from scratch that could be used in good looking commercial products?

Over 9000.

#18 zedz   Members   -  Reputation: 291

Like
0Likes
Like

Posted 22 March 2011 - 01:14 PM

I don't care how experienced you are, just getting the project(s) set up appropriately for each platform and simply typing the code is probably going to take more than a day.

well this was with webgl & html5. I.e. its a webpage/app
Thus it works on win/linux/mac/whatever with little or no difference between the platforms, well I cant see any diferences between say it running on linux as opposed to windows (though you do have differences between browsers eg chrome has 4xAA standard whereas firefox has no AA & the other stuff eg mousewheel,widgets/fonts displaying differently on each browser like most html pages)

#19 owl   Banned   -  Reputation: 364

Like
0Likes
Like

Posted 22 March 2011 - 01:19 PM

It depends. If you know from heart all the technologies involved and the engine is already designed, assembling and testing to production an Unreal Engine to a single person could take a year (assuming no heavy redesign is required).

If you go learning the technologies and designing the engine as you code, it could take forever and never be done.
I like the Walrus best.

#20 Frederick   Members   -  Reputation: 140

Like
0Likes
Like

Posted 22 March 2011 - 04:13 PM

Hi,

I have been starting totally from scratch and use only basic library functions like font rendering, lists, hash maps and opengl of course..
I do this as a hobby next to my student job and studies. It took 3 years + and I am at the point, that I have a simple scene graph and can utilize many "modern" functions like glsl, multi pass materials, render to texture, vertex buffers. Many things are missing like collision detection, HDR, environment mapping, deferred lighting. Some of these are likely to be never implemented. I concentrate on characters on the moment as this is part of my diploma thesis: markerless motion capture.

Hardware progress is running forward and I play catch up ;)

I have by no means reached my goal, so prepare for a lot of work, reading and thinking. Maybe its more clever to specialize on a certain aspect and implement that, rather than doing
it "right" and implement an engine with full generic capability.

You need to be patient and put lots of work in it.

Actually I don´t know if i will ever finish a game, but it has taught me so much, I might eventually get a job in the field, at least have some chances.

I continue nevertheless...

Cheers,
Frederik




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS