First 3D engine. Already made or minimalistic?

Started by
12 comments, last by ElieHaddad 12 years, 7 months ago
Hello all! I've been meaning to transition from 2D games to 3D games for some time now. I've most experience in RTS games so I will be doing that.

On one hand there's a lightweight renderer; Irrlicht. However considering it's a renderer and not a game engine(only basic collision, etc..) , I would have to write most of the things myself.

On the other hand there's a full blown engine like Cryengine3 for example. Although it is mostly complete, I would need to first understand the various part of the engine and it's implementation enough to be able to try and transform it into an RTS engine.

My question is, which would be easier for me to transition to?
Advertisement
In my opinion, it really depends on your personal goals.
A full-blown game engine may be the fastest way to get a game off the ground, but you will have a massive learning curve to overcome, and you may find it doesn't do what you want, forcing you to implement workarounds that can feel hackerish. There is also the problem of property rights.
In C++, friends have access to your privates.
In ObjAsm, your members are exposed!
It would be easier to transition into using a full-sized engine such as Unreal Engine 3, Unity 3D, or CryEngine 3.
You also have the option of taking various parts of existing engines and combining them to make a new one. Ogre + Bullet Physics + <insert sound library> + <insert AI engine> etc.

Combining engine parts might be very rewarding. Or it could be an annoying pain in the ass keeping you from getting to what you want to be doing. It is up to your personality.
If you want to hurry up and see your product come to life, you should use an existing engine.


L. Spiro

I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid

What is your goal?
If it is to make a game then use an engine that suits the job.
If it is to make an engine, make a game and refactor into an engine.
If you know what you want isn't available in any commercial engine available today or is more feasible in your own engine (chances < 0.1%) then go make an engine based on those requirements.
"I will personally burn everything I've made to the fucking ground if I think I can catch them in the flames."
~ Gabe
"I don't mean to rush you but you are keeping two civilizations waiting!"
~ Cavil, BSG.
"If it's really important to you that other people follow your True Brace Style, it just indicates you're inexperienced. Go find something productive to do."
[size=2]~ Bregma

"Well, you're not alone.


There's a club for people like that. It's called Everybody and we meet at the bar[size=2].

"

[size=2]~

[size=1]Antheus
Thank you all for your replies! Didn't expect them so quickly! :D


In my opinion, it really depends on your personal goals.
A full-blown game engine may be the fastest way to get a game off the ground, but you will have a massive learning curve to overcome, and you may find it doesn't do what you want, forcing you to implement workarounds that can feel hackerish. There is also the problem of property rights.

This is what I'm worried about. I've already tried Cryengine3, and although I got results (3d person cam) from tutorials, I still feel that the whole engine is a big black box to me; especially since I do not have any prior experience in 3D engines. (meshes, 3D collision, etc..) , and so any further alteration would be exponential in complexity.


It would be easier to transition into using a full-sized engine such as Unreal Engine 3, Unity 3D, or CryEngine 3.
You also have the option of taking various parts of existing engines and combining them to make a new one. Ogre + Bullet Physics + <insert sound library> + <insert AI engine> etc.

Combining engine parts might be very rewarding. Or it could be an annoying pain in the ass keeping you from getting to what you want to be doing. It is up to your personality.
If you want to hurry up and see your product come to life, you should use an existing engine.


L. Spiro


This is what I'm thinking about as well. However I'm not quite familiar with integrating various libraries into one. The couple of 2D engines I built were made from scratch (well LWJGL :P )
So I have no idea how much work it would cut down..


What is your goal?
If it is to make a game then use an engine that suits the job.
If it is to make an engine, make a game and refactor into an engine.
If you know what you want isn't available in any commercial engine available today or is more feasible in your own engine (chances < 0.1%) then go make an engine based on those requirements.


I'm trying to balance between the two. What I mean is, I want to make a game, but on the other hand I also want to understand the engine behind it. Especially since I will have to turn the engine from an FPS one into an RTS engine.

Sorry if I'm not making a lot of sense >.<

[quote name='__Homer__' timestamp='1315990644' post='4861446']
In my opinion, it really depends on your personal goals.
A full-blown game engine may be the fastest way to get a game off the ground, but you will have a massive learning curve to overcome, and you may find it doesn't do what you want, forcing you to implement workarounds that can feel hackerish. There is also the problem of property rights.

This is what I'm worried about. I've already tried Cryengine3, and although I got results (3d person cam) from tutorials, I still feel that the whole engine is a big black box to me; especially since I do not have any prior experience in 3D engines. (meshes, 3D collision, etc..) , and so any further alteration would be exponential in complexity.
[/quote]
This is true, if you want to learn about how a game engine works under the hood. For making a game, though, this is irrelevant - everything is black boxed to an extent in programming; a game engine is after all just another layer of (useful) abstraction. Also, the render part of any game engine is quite small compared to the rest of it - maybe that's why you are feeling so lost? If so, maybe a few 3D excursions might get your feet wet? :)


[quote name='YogurtEmperor' timestamp='1315990658' post='4861447']
It would be easier to transition into using a full-sized engine such as Unreal Engine 3, Unity 3D, or CryEngine 3.
You also have the option of taking various parts of existing engines and combining them to make a new one. Ogre + Bullet Physics + <insert sound library> + <insert AI engine> etc.

Combining engine parts might be very rewarding. Or it could be an annoying pain in the ass keeping you from getting to what you want to be doing. It is up to your personality.
If you want to hurry up and see your product come to life, you should use an existing engine.


L. Spiro


This is what I'm thinking about as well. However I'm not quite familiar with integrating various libraries into one. The couple of 2D engines I built were made from scratch (well LWJGL :P )
So I have no idea how much work it would cut down..
[/quote]
For some things, a lot. Others, not so much. Physics is one you can usually integrate and save a lot of time on. Of course, integrating different libraries is not going to be as easy as putting the right #include and headers in place - it requires quite a bit of work.

[quote name='DarklyDreaming' timestamp='1315991920' post='4861452']
What is your goal?
If it is to make a game then use an engine that suits the job.
If it is to make an engine, make a game and refactor into an engine.
If you know what you want isn't available in any commercial engine available today or is more feasible in your own engine (chances < 0.1%) then go make an engine based on those requirements.


I'm trying to balance between the two. What I mean is, I want to make a game, but on the other hand I also want to understand the engine behind it. Especially since I will have to turn the engine from an FPS one into an RTS engine.

Sorry if I'm not making a lot of sense >.<
[/quote]
So, which takes precedence? The game or the engine? To put it this way: envision the end-product, which is more important to you - the 'engine learning experience' or the final game?
If engine - then make a game and refactor it into an engine.
If game - use an existing engine which fulfills your game's requirements.

It is to be noted that building an engine and learning someone else's engine takes just about the equal amount of time - however, the end results differ vastly. One reason why I'd prefer to work with an prebuilt engine, even if I had no prior experience, is that it is harder to fuck up majorly since the design is already in place - rolling your own it all depends on your skill and while yes you are more 'empowered' you also take full responsibility for maintaining an engine and making a game; if the engine part is irrelevant why do both?

That, and it's unlikely any single programmer will beat CryEngine or UDK for general purposes ^^'
"I will personally burn everything I've made to the fucking ground if I think I can catch them in the flames."
~ Gabe
"I don't mean to rush you but you are keeping two civilizations waiting!"
~ Cavil, BSG.
"If it's really important to you that other people follow your True Brace Style, it just indicates you're inexperienced. Go find something productive to do."
[size=2]~ Bregma

"Well, you're not alone.


There's a club for people like that. It's called Everybody and we meet at the bar[size=2].

"

[size=2]~

[size=1]Antheus
There is no way in hell that I am going to pay blood money for a commercial game license (yes I want to sell games), and then pay a 20 percent cut of my sales on top of that, no way in hell, I would rather write my own, thank you very much! Talk about an incentive for competition!
In C++, friends have access to your privates.
In ObjAsm, your members are exposed!
That, and it's unlikely any single programmer will beat CryEngine or UDK for general purposes ^^'

I am afraid I can’t agree here, because that is exactly what I am doing.

But the original poster should definitely not be lead to believe he or she can do it.

[font="arial, verdana, tahoma, sans-serif"]

There is no way in hell that I am going to pay blood money for a commercial game license (yes I want to sell games), and then pay a 20 percent cut of my sales on top of that, no way in hell, I would rather write my own, thank you very much! Talk about an incentive for competition!

[/font][font="arial, verdana, tahoma, sans-serif"]Then I am sure you will love my licenses! With the downside being that you will have to wait a while.[/font]



L. Spiro


[EDIT]
Curious to know why I got a -1 for this. Although I acknowledge it sounds like an advertisement, which is not typical of any other post I have made.
[/EDIT]

I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid


[quote name='DarklyDreaming' timestamp='1316007144' post='4861538']That, and it's unlikely any single programmer will beat CryEngine or UDK for general purposes ^^'

I am afraid I can’t agree here, because that is exactly what I am doing.

But the original poster should definitely not be lead to believe he or she can do it.


[EDIT]
Curious to know why I got a -1 for this. Although I acknowledge it sounds like an advertisement, which is not typical of any other post I have made.
[/EDIT]
[/quote]

Yeah, because Mr. JoeAverageNobody is probably that much smarter than the engineers who designed the most complex game engine to date and who are all experts in their respective fields and have written numerous white papers on the subject. Oh, but maybe you were being ironic...?

Your technology would have to be earth shatteringly groundbreaking to be considered an advancement from either of those two mentioned above - otherwise, it's simply unfeasible to even replicate their technology to the full extent within any reasonable amount of time without a highly experienced team of programmers. Frankly, your comment comes off no better than the Euclideon guys...

No idea who gave you a minus one, but my guess comes to that your arrogant comment gave you that. smile.gif
"I will personally burn everything I've made to the fucking ground if I think I can catch them in the flames."
~ Gabe
"I don't mean to rush you but you are keeping two civilizations waiting!"
~ Cavil, BSG.
"If it's really important to you that other people follow your True Brace Style, it just indicates you're inexperienced. Go find something productive to do."
[size=2]~ Bregma

"Well, you're not alone.


There's a club for people like that. It's called Everybody and we meet at the bar[size=2].

"

[size=2]~

[size=1]Antheus
I'm a bit curious here. I believe that a single programmer with a lot of motivation and work ethic can make a usable 3D engine by himself, but for a single programmer to make an engine on par with Cry or UDK.... that person would have to be an MIT prodigy and the most gifted programmer in the world. Which brings to question why they would even make a 3D engine as they could have a multimillion dollar salary.

This topic is closed to new replies.

Advertisement