Development time for a full-featured engine?

Anything and everything that's related to OGRE or the wider graphics field that doesn't fit into the other forums.
User avatar
cybereality
Hobgoblin
Posts: 563
Joined: Wed Jul 12, 2006 5:40 pm

Development time for a full-featured engine?

Post by cybereality » Sat Jul 15, 2006 7:04 pm

I am going to be starting development on an online multiplayer game, and I am concidering using Ogre as the graphics engine. Orginally I was planning on using an out-of-box solution (like torque) but I want to get a next-gen look for the game that ogre provides. I understand that ogre is just a 3d engine and not a game engine, which is why other 3rd party libraries must be used. Right now I am looking into using Ogre combined with OpenAL, ODE, Lua and RakNet. My question is to how long a solution like that would generally take.

Currently I am the lead programmer on the project and will be overseeing all the technical aspects. We have a small team of artists and designers who are working on content for the game. I would be in charge of developing the engine and any necessary tools for the artists. We are planning on bringing in more programmers as the project grows. I have been programming for years in many languages (c, java, web scripting) as well as studio programs like flash, director, anark, blitz3d, etc. However, I never worked with a bare-bones graphics SDK and my real strength is in gameplay programming. I already got code::blocks set-up and was able to compile the demos without a hitch. Having browsed through some of the tutorials I was able to follow the code, but I can tell already that this is a huge undertaking.

I was hoping someone here could give me a rough idea of how long it would take to get a functional game engine together. This would mean including audio, physics, networking, scripting and probably some sort of quest editor and level editor. If anyone has developed a solution like this, how long did it take you and what was your previous experience? Were there any serious pitfalls that I should avoid if going with this solution?

I did look at the YAKE engine, but I wasn't really keen on the specifics of the engine and there didn't seem to be any demos or games which showcased its abilities. If there is an all-in-one solution I would likely use that to save time, but it has to be a supported project. If not, I'd rather code it myself. Let me know, thanks.

// cybereality
0 x

User avatar
SunSailor
Gnoll
Posts: 699
Joined: Sun Jan 02, 2005 5:45 pm
Location: Velbert, Germany
Contact:

Post by SunSailor » Sat Jul 15, 2006 7:54 pm

Depends, if you can work on it fulltime or not. Me, I'm working on a game engine, based on ogre for over a year now, making good progress. But my estimation is, that I'll need at least three quarters of a year more to get the thing finished. I'm working at a database developer on my dayjob and do the engine development in my spare time. Few enough, but at least ogre and its concepts made it possible to do at all. I've worked in the gaming industry for several years, so I think I mostly know what to do, saving me a lot of time, which would result in experiments if not. So, I would say you need more than two man years of spare time development or aprox. a half year of full time development to create such thing.
We don't use a physics engine or networking at all. We have java for content scripting and fmod ex for sound. Our editor is build with swt and in java, too. Our custom file formats are build upon xml, utilizing tinyXML for this purpose.
Try to start with unliked things, don't start with the visual beauty. Try to build a framework first, taking a look at file management, asset pipeline etc. Try to create a working workflow with your team first and define the workflow. These are things a publisher definitly wants to see first. If it is a hobby project, no matter, things working in a professional environment mostly work there, too.
0 x

User avatar
xavier
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 9481
Joined: Fri Feb 18, 2005 2:03 am
Location: Dublin, CA, US

Post by xavier » Sat Jul 15, 2006 8:00 pm

More important than the engine itself are the tools you provide for the engine -- world editor, UI editor, physics editor, exporters and asset toolchain, and so on. The engine is pointless if no one can get content into it.

If you were paid to develop the engine and tools, using the readily-available libraries that exist, you could probably expect it to take 1-2 years, with the tools taking the larger portion of your time. As a hobbyist project, much longer.
0 x

User avatar
eugen
OGRE Expert User
OGRE Expert User
Posts: 1422
Joined: Sat May 22, 2004 5:28 am
Location: Bucharest
Contact:

Post by eugen » Sat Jul 15, 2006 8:41 pm

In general i dont see a medium quality online multiplayer game engine been made by a single programmer no matter how much time he'll spend on it (there are alot of things to learn and to use each component at full u need to really understand each inner workings but also decisions to be made in the development cycle one man cannot foresee) ...Also if u'll want to use only components that are opensource and/or free of charge and u have many programmers (it will be good to have at least one for each component - network, graphics, scripting, sound, physics...) then i think it it will take around 2 years to have it (maybe more, depending of the programming resources u have)
But one thing i believe is crucial : u need to have a good application architect (engine architect or some sort) so u can plan the developoment from the start and to have it going in the right direction. Otherwise u'll end up using different compoenents (each having it own way of implementing things, main loops, handeling errors and so on) into a hybrid architecture which u'll need to repeately change (or worse, recreate) untill u got smth that will integrate close to perfection. Not to mention that u need to study each component from the start so when u'll start making the overall engine architecture (and tools integration) u'll know what each does and how can u use it together with the others.

My suggestion is, dont start this alone. Try to find as many programmers as u can, organize the team, give each programmer small study tasks, gather results and see how each is doing on its part...then decide which one will study what compoenent (the compoenent he likes or can handle better) and then start the actual engine planning
0 x

User avatar
cybereality
Hobgoblin
Posts: 563
Joined: Wed Jul 12, 2006 5:40 pm

Post by cybereality » Sun Jul 16, 2006 2:39 am

Thanks for the info. I forgot to mention that this is a community project so I would only be working on it part-time. Taking that into account it would seem that I could expect at least a 2 year dev time to get the engine up and running with the necessary features. I would be willing to put in the time and recruit some more programmers, but I dont think this will fit out schedule. The project need to be developed concurrently, and it will never get done if the artist are waiting around for me to finish the toolset.

With all this in mind I think I am going to have to go with an existing framework (right now I'm looking at torque). While I can see that Ogre has more raw power, time is more of a factor at this point. I'd still like to use Ogre for some of my personal graphic demos, but I dont think its going to work with the game I'm developing. Thanks for the info, I think it may have saved me a lot of time and heartache.

// cybereality
0 x

User avatar
Game_Ender
Ogre Magi
Posts: 1269
Joined: Wed May 25, 2005 2:31 am
Location: Rockville, MD, USA

Post by Game_Ender » Sun Jul 16, 2006 6:12 am

You could also take a look at Yake. It a full game engine built with Ogre, Cegui, ODE, OpenAL, and a few other open source libraries. At first blush it seems quite complex, but it does all that integration work for you.
0 x

User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
Contact:

Post by jacmoe » Sun Jul 16, 2006 6:15 am

Take also a look at OpenFrag, a game engine framework based on Yake. :wink:
It's better than spending two years rolling it on your own.
0 x
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.

User avatar
xavier
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 9481
Joined: Fri Feb 18, 2005 2:03 am
Location: Dublin, CA, US

Post by xavier » Sun Jul 16, 2006 8:12 am

cybereality wrote:right now I'm looking at torque
Please for the love of God use anytthing BUT Torque in the year 2006. Honestly, I'd use CrystalSpace before I used Torque -- at least CS is still actively developed and does not still think it's 2001.
the game I'm developing
Which is....?
0 x

User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
Contact:

Post by jacmoe » Sun Jul 16, 2006 8:17 am

Nebula2 is also a very interesting option. Shader driven, script driven. Steep learning curve though. :wink:

Still: Look at OpenFrag/YAKE. The most mature/feature complete framework using Ogre.
0 x
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.

User avatar
IFASS
Gnome
Posts: 387
Joined: Tue Jan 04, 2005 12:07 pm
Location: Netherlands

Post by IFASS » Sun Jul 16, 2006 8:30 am

jacmoe wrote:Nebula2 is also a very interesting option. Shader driven, script driven. Steep learning curve though. :wink:

Still: Look at OpenFrag/YAKE. The most mature/feature complete framework using Ogre.
We'd be happy to help you out, just step by at IRC if you want (irc.openfrag.org #openfrag)

:)
0 x
Image

User avatar
cybereality
Hobgoblin
Posts: 563
Joined: Wed Jul 12, 2006 5:40 pm

Post by cybereality » Sun Jul 16, 2006 9:29 am

xavier wrote:Please for the love of God use anytthing BUT Torque in the year 2006. Honestly, I'd use CrystalSpace before I used Torque -- at least CS is still actively developed and does not still think it's 2001.
Honestly, I agree with you, but development time is a big factor and Torque seems like an easy solution. I don't exactly love the render quality, but it has a full feature-set including world editor and networking. Plus the Torque Shader Engine looks a little better and has been used on an xbox360 game (marble ball ultra) that looked decent. I'd much rather go with Ogre, but I got the impression on the forum that it may take too long to assemble a game engine. I was under the impression that using existing open source APIs would save me a little more time on the development. I was hoping to get at least a rough prototype done in about 6 months, and a complete bare-bones engine in maybe a year. That way I would have time to code the game specific features in and still expect to finish it in this decade.

I will definately look into YAKE or OpenFrag (already seen the sites and browsed the features a bit) but I wasn't sure how mature the technology was and if it was ready for a full game yet. Nebula 2 looks nice, but the community really isnt there. Previously I was using Blitz3d (which looks better than torque IMO) but it only supports Dx7 and I want to use shaders and modern tech. Everything else I've seen on the open-source/indie market either looks really dated, or looks good with no support whatsoever. The ogre community seems live, which is why I want to use it, and the technology is there. My main concerns are the tools for the artists and getting a working prototype finished in maybe a few months.

Also, this project is more of a portfolio piece than anything (not expecting to make any money) so I would value the experience of assembling a game engine from scratch. At the same time, I dont want to have my learning curve slow down development to the point where the artists can't work in a timely fashion. That being said, I still havent made up my mind, but I will concider everything that has been said.

BTW, xavier, the game is a futuristic MMORPG. Please spare me the speech, though. I have read some of your comments on the topic, and I know where you stand. I understand where you are coming from, but I'm still a dreamer.

//cybereality
0 x

User avatar
steven
Gnoll
Posts: 657
Joined: Mon Feb 28, 2005 1:53 pm
Location: Australia - Canberra (ex - Switzerland - Geneva)
Contact:

Post by steven » Sun Jul 16, 2006 3:04 pm

As I thought you wanted a working engine now, I didn't propose our project.
cybereality wrote:... so I would value the experience of assembling a game engine from scratch.
But if you change your mind about development time why not participate in building our engine: OGE.

IMO we will need at least 6 months to have the basic functionalities ready.
All depend on what engine features you need (and tools).

As you we want to use open-source lib: RakNet, ois, etc.
0 x

User avatar
cybereality
Hobgoblin
Posts: 563
Joined: Wed Jul 12, 2006 5:40 pm

Post by cybereality » Sun Jul 16, 2006 3:38 pm

Sounds interesting steven. I was thinking that there would be some overlap with ogre projects and was surprised there wasn't already something like OGE. There are a few other projects that seem to be trying the same thing (YAKE and Visual3d.Net), but they are still in the alpha stages. Why dont you PM me and explain a little more about your project. Thanks.

// cybereality
0 x

User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
Contact:

Post by jacmoe » Sun Jul 16, 2006 3:53 pm

@cyberreality:
Are you listening?
OpenFrag and YAKE are lightyears ahead of OGE.
They are young, but not alpha.
0 x
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.

User avatar
Chris Jones
Lich
Posts: 1742
Joined: Tue Apr 05, 2005 1:11 pm
Location: Gosport, South England

Post by Chris Jones » Sun Jul 16, 2006 5:31 pm

we (OGE) are further behind, because 1, we started alot later (january 06) and 2, OGE is multithreaded, so it has been harder to work on OGE, we had to get many thread safe things made first, we are just coming out of that part of work, and although the engine must stay thread safe, many components dont need to be because of the messaging system we are using, so now, hopefully work/speed should increase now.
0 x

User avatar
xavier
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 9481
Joined: Fri Feb 18, 2005 2:03 am
Location: Dublin, CA, US

Post by xavier » Sun Jul 16, 2006 6:10 pm

cybereality wrote: BTW, xavier, the game is a futuristic MMORPG. Please spare me the speech, though. I have read some of your comments on the topic, and I know where you stand.
No, you probably don't -- you might think you do but so far no one has understood the point I am trying to make on that.

Regardless, you can't do that with Torque. I know you think speed is the utmost importance here but the simple fact is you cannot do anything MMO with Torque, in any way.

If you think you understand my point on MMO hobbyist development then you probably also understand that it is not something you will pull off in a few months. It already sounds like you don't want to spend 2 years working on it, so why don't you simply drop the first "M" from your project and use CrystalSpace, which is a complete, mature, modern working engine that is specifcally geared towards RPGs?
0 x

User avatar
Jerky
Orc Shaman
Posts: 791
Joined: Wed Mar 02, 2005 4:13 am
Location: Springville, Utah
Contact:

Post by Jerky » Sun Jul 16, 2006 9:43 pm

cybereality wrote:At the same time, I dont want to have my learning curve slow down development to the point where the artists can't work in a timely fashion.
Honestly, since I understand what you are trying to do, I wouldn't worry too much about the artists' task. If they manage it correctly, they can get by without the world tool as they focus on content. Creating a list of thousands of models should keep them busy enough while you work on your own learning curve. Regardless of which way you go, your game will be waiting on Art (IMO of course) before it ever waits on the programming.

In my project, we have been waiting for tools, but that in no way means we artists have nothing to do. The artists, if they understand the task, should be able to keep themselves busy for the next couple years, whether or not you have tools. Yes, tools would be nice, but the amount of content is enormous, as you already know.

@xavier: He specifically avoided mentioning MMO because he wanted to avoid your comments on the subject. It was only when someone asked, that he divulged the truth. Believe it or not, we do understand your opinion on the subject and yet still choose to go on. That is possible to do in the real world.
0 x
Erik Briggs (Jerky)
My Blog
Project Wish
Image

Imperil

Post by Imperil » Sun Jul 16, 2006 9:56 pm

xavier wrote:Regardless, you can't do that with Torque. I know you think speed is the utmost importance here but the simple fact is you cannot do anything MMO with Torque, in any way.
Does this statement include the already completed and launched MMO "Minions of Mirth" build with Torque? Realistically your statement should say "You can't do that with Torque out of the box".. just like Ogre couldn't, N2 couldn't, etc.
0 x

User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
Contact:

Post by jacmoe » Sun Jul 16, 2006 10:13 pm

I say: Well done, Minions of Mirth team! :)
You can see the graphics are somewhat lacking, but that doesn't matter much: it seems like they've really worked their asses off to provide loads of content. Impressive! :wink:
0 x
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.

User avatar
xavier
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 9481
Joined: Fri Feb 18, 2005 2:03 am
Location: Dublin, CA, US

Post by xavier » Sun Jul 16, 2006 11:28 pm

Imperil wrote:
xavier wrote:Regardless, you can't do that with Torque. I know you think speed is the utmost importance here but the simple fact is you cannot do anything MMO with Torque, in any way.
Does this statement include the already completed and launched MMO "Minions of Mirth" build with Torque? Realistically your statement should say "You can't do that with Torque out of the box".. just like Ogre couldn't, N2 couldn't, etc.
http://www.rpgdot.com/index.php?hsaction=10053&ID=1182

I do not see anything in there that would lead me to believe that MoM is an MMO. It's an MORPG, it's also a SP RPG. I stand by my statement.
0 x

User avatar
cybereality
Hobgoblin
Posts: 563
Joined: Wed Jul 12, 2006 5:40 pm

Post by cybereality » Mon Jul 17, 2006 12:46 am

@jacmoe: yes I am listening and I have checked out the websites. YAKE does look ahead in development. But I am also one to give everyone a fair chance to voice their opinion. I never said I was definately going to use OGE or anything like that. I was just interested in knowing a little more about the project.

@Jerky: You have brought up some valid points. I realize that asset creation will be the major bottleneck in the project. Everyone on the art side has more than enough on their hands as it is. However, we wouldn't expect to create all the assets without a working engine. If there was some unforseen issue, either with the poly count or how the models were textured for example, it could seriously hinder development. I'm just trying to have all my bases covered.

@xavier: I really don't want this thread to get hijacked into another "MMORPGS are impossible"-type of threads. At the same time, I do actually want your advice on the topic because you seem to have some experience in the industry (believe it or not, I have read a lot of your posts in this forum). You say that doing a MMO game with torque wouldn't work, could you explain why? Someone else pointed out Minions of Mirth, but I played that and wasn't impressed in the least. Actually, if anything, playing that game made me want to get as far away from torque as I possibly could.

I never said I thought I could finish a MMO game in a few months. I was talking about a bare-bones prototype with a player controlled character in a small area, a few animations and some collision. It is not that I dont want to spend 2 years on it, I am willing to spend as long as it takes to complete this project. But this is a community project and I also have to be part of the team. That means creating tools to assist the artists, progress updates, meeting milestones, etc. There have been many community projects fall-off because of a lack of anything concrete to show. I just want to make sure that enough progress is made on the engine side to motivate the artists and to attract more developers to our project. Having a functional prototype is key. When people can see thier work in-game it has a certain air of accomplishment and rallies the team together. It is also a lot easier to design a game when you can play it. Too often if there isn't anything concrete, people just shoot for the stars and the dreaded feature-creep takes over the project. I was trying to get a rapid-prototype done early in development to avoid these issues.

Also, this is not a personal project of mine. I was recruited to the team recently, but the other members have already created design documents and various references for game dynamics. I am not in a position to radically change the design of the game. I was brought on the team to do a task, and I am trying to find the best solution. Coping-out and making a single player game really isn't an option.

I will also look a little more into Crystal Space. I noticed that CS seems to have a large user base, but I still really like the look of the Ogre render engine for whatever reason. Does CS not support multiplayer, and why would that be any harder to add then to an engine like Ogre (or modifying the torque network code which was done for MoM)? If you have used CS before and its so good, why did you switch to Ogre?

I'd like to thank everyone who has given helpful advice so far. But lets please keep this discussion "above the belt" if you know what I mean.

// cybereality
0 x

User avatar
Aklix
Goblin
Posts: 222
Joined: Mon Dec 27, 2004 5:21 am
Contact:

Post by Aklix » Mon Jul 17, 2006 1:01 am

cybereality wrote:I will also look a little more into Crystal Space. I noticed that CS seems to have a large user base, but I still really like the look of the Ogre render engine for whatever reason. Does CS not support multiplayer, and why would that be any harder to add then to an engine like Ogre (or modifying the torque network code which was done for MoM)? If you have used CS before and its so good, why did you switch to Ogre?

I'd like to thank everyone who has given helpful advice so far. But lets please keep this discussion "above the belt" if you know what I mean.

// cybereality
Multiplayer for online games requires extremely unique network programming based on the gameplay involved in your game. Your game may need a server to manage many people, or a p2p connection in which the user hosts his actions to everyone else and recieves from everyone else as well. The data you transfer, when you transfer it, if you need it before you update or if it can stream in, it all depends on what you need for your game.

You will basically have to add your own networking code to any engine you use. To me, it's easier to add the code than to modify some code made for first person shooters to work on an MMO. Ogre stays out of the way of this because it's JUST a graphics engine, which to me allows more freedom and familiarity with how your engine works, making it easier to add this code. Look up network abstraction libraries, or if you have someone good with networking, he can probably cook something up.
0 x

User avatar
cybereality
Hobgoblin
Posts: 563
Joined: Wed Jul 12, 2006 5:40 pm

Post by cybereality » Mon Jul 17, 2006 1:40 am

I am mainly a graphics / gameplay programmer and will likely not be coding the network backend for this project. But as the lead programmer, I have to make sure that whatever solution is decided on will support any features we will be using in the future. I also agree that most if the time it is better to add new features then to hack someone else's code to do what you want. But I guess it really depends on what you need to do.

// cybereality
0 x

User avatar
xavier
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 9481
Joined: Fri Feb 18, 2005 2:03 am
Location: Dublin, CA, US

Post by xavier » Mon Jul 17, 2006 1:41 am

I've never used Crystal except to run the demo. Part of my job involves knowing the details and intended usage of a variety of game engines (both open source and commercial). For my side project, when we were investigating game engines (of the free variety) I obviously came across Torque Game Engine and CrystalSpace, but neither fit the concept of the game we are working on -- they both were far too limited, and if we had to rework an engine to make it do what we needed, then we might as well start from scratch using the best-in-class available libraries as our base. Which is what we are doing there.

As for Torque itself, you can see its rendering shortcomings laid out in the "Ogre > Torque" thread. I've been all up inside that engine at work and it still pisses me off. You'll also see in that thread that TGE was not our choice -- the client stated "you will use Torque" (they found out how much Unreal cost, I guess). It still is not my choice. It's a fine hobbyist engine if you have limited scale to your levels and not much need to handle many more than ~30 connected clients per server (a liberal figure -- given everything else that needs to be calculated in software I'd drop that closer to 20). So no, you cannot do an MMO-anything with Torque. TNL simply is not up to it. And don't think that you can just strip it out -- the whole architecture of TGE is so friggin wacked and convoluted that nothing in it can be cut out without a serious amount of effort.

As for TSE, as has been pointed out several times, it's an alpha, and has been an alpha for 3 or more years now. GG will happily let you pay them to test their alpha for them, but don't expect any support, because "it's an alpha" (the same copout that applies to far too many open source projects that never reach 1.0 status). And even TSE is hideously behind the times in terms of supporting modern GPUs.

So, Garage Games produces game engines for hobbyist projects of limited scope. If your game is such a project, go for it. TGE has one thing going for it, and that is its level and UI editor. You can have a game up and running within a day using one of their "XXX Starter Kits". But it sounds to me like you are dead set on that first "M", so if you truly want to make something massively multiplayer, you should start with something else, more than likely putting together best-in-breed libraries that fit what you need done, and engineering a serious (and incredibly expensive) server architecture and infrastructure, and don't expect it to take less than 2 years for even a paid and properly staffed commercial team. For a hobbyist effort, well, it won't happen, sorry. You simply cannot afford the server infrastructure required to make a massively multiplayer game, so just content yourself with making a multiplayer game and use Torque. You'll be much happier in the end.

If you consider this hijacking, my apologies...all of you people who say you are going to make a hobbyist MMO are fooling yourselves. You are making an MO. Sorry to keep repeating myself, but until you all wake up to the reality of that first "M" I am going to continue to point this out every time.
0 x

User avatar
cybereality
Hobgoblin
Posts: 563
Joined: Wed Jul 12, 2006 5:40 pm

Post by cybereality » Mon Jul 17, 2006 1:55 am

You've brought up some good points xavier. We may be better off creating our own game engine using Ogre and other cutting-edge libraries. I still have to do some more research and evaluate the SDKs.

Just so we are clear, I would define a Multiplayer Online Game (MOG) as a game that supports anywhere from 2-32 players (such as Counter-Strike). I think once you have more than 128 players in one level, that is concidered Massive of MMOG. Maybe we are thinking of different things.

BTW: I already have my own server, which I use for business, which is more than capable of handling a standard MO game. I know how much bandwidth costs and how expensive a MMO game can be. But with scalable architechture you can get something up and running with a few quality servers and expand if need be. I don't expect to release a game and then have 5 million subscribers the next day. As the game grows, the infrastructure will too. There are already indie games that have accomplished this, though they may not be up to your standards.

// cybereality
0 x

Post Reply