Hello
I read that to master a game engine you have to know how these engines are built.
What do you think?
Do you agree?
What do you think?
Started by mohammedderhalli, Oct 27 2008 11:36 PM
8 replies to this topic
#1
Posted 27 October 2008 - 11:36 PM
#2
Posted 28 October 2008 - 01:12 AM
EDIT: Oh wait, I misread your post slightly. That statement is %100 true. Imagine building a car. You have all the vital components pre-build and put in front of you, but you have no idea how any of them work and are only given vauge, sometimes inaccurate, instructions on how to put them together.
what I had written by accident ><
-----------------------------------------------------------------------------------------------
I don't necessarily think that's true, but here's what I do think:
It takes just as long to master the use of an engine as it does to write one (writing just a mid-quality 3D engine I mean).
According to many, engines only save significant time after you have already made a game with them, and are familiar with all the parts.
If you have already written a 3D engine, you will know the workings of them. Then when you use someone elses engine, you will be able to grasp concepts, find bugs, and most importantly, mod much better.
My suggestion:
Don't set out to write the next Unreal 3, but do a learning project where you write the real "meat" of the engine. It doesn't have to be releasable or totally polished (although there's nothing stopping you from doing that) but it should be able to put out a good tech demo. IMO this will give invaluble experience that will go with you in any programming project.
what I had written by accident ><
-----------------------------------------------------------------------------------------------
I don't necessarily think that's true, but here's what I do think:
It takes just as long to master the use of an engine as it does to write one (writing just a mid-quality 3D engine I mean).
According to many, engines only save significant time after you have already made a game with them, and are familiar with all the parts.
If you have already written a 3D engine, you will know the workings of them. Then when you use someone elses engine, you will be able to grasp concepts, find bugs, and most importantly, mod much better.
My suggestion:
Don't set out to write the next Unreal 3, but do a learning project where you write the real "meat" of the engine. It doesn't have to be releasable or totally polished (although there's nothing stopping you from doing that) but it should be able to put out a good tech demo. IMO this will give invaluble experience that will go with you in any programming project.
(\__/)
(='.'=) This is Bunny. Copy and paste bunny into
(")_(") your signature to help him gain world domination.
bunny also wants to fight spam: Click Here Bots!
(='.'=) This is Bunny. Copy and paste bunny into
(")_(") your signature to help him gain world domination.
bunny also wants to fight spam: Click Here Bots!
#3
Posted 28 October 2008 - 01:31 AM
If you have good docs, I don't think it's necessary. We use computer languages without knowing how they were written. We use modeling programs without knowing how they were written. It takes study and experimentation to get good at something. Engines have to provide a lot of functions to be useful and aren't all that higher level than the API's they were written for, but they provide a lot of useful things like model loading, scene graphs, animation, etc, that would take a long time to implement with just directX or opengl. Having said that, I think it's best to start with 2d because 2d forces a person to build a simple engine and does give a general understanding that carries over. The trouble is that there is just really too much to learn for an average person and actually write a game. Everyone thinks they should be able to write Oblivion or the next great MMO when they were written by a lot of experts. The reality is that you have to cut about every corner you can to just write anything at all.
Currently using Blender 2.5, FlashPunk, and Unity.
#4
Posted 28 October 2008 - 12:06 PM
starstutter said:
Imagine building a car. You have all the vital components pre-build and put in front of you, but you have no idea how any of them work
Common analogy, starstutter, but unfortunately incorrectly applied IMO.
Creating a game = driving a car; i.e. race driver.
Building a game engine = building a car; i.e. race mechanic.
And, no, to be an effective race car driver, you don't have to know anything about the car's internal mechanics. You just have to understand the "interface" and drive, drive, drive until the car becomes an extension of your will.
Now, if you want to or need to mod a car because it "doesn't have the right turn radius", then you have to become not only a driver but a mechanic too. You have to understand that, at this point, you are electing to develop two careers. I would say that if driving is your deeper passion, start there and only spend time on learning mechanics when your abilities surpass your tools. Juggling two careers, or starting them in the wrong sequence for your desires and interests, can backfire on you.
Here's one for you car analogy buffs:
http://www.elitefts....ts/mechanic.htm
#5
Posted 28 October 2008 - 06:06 PM
alphadog said:
Common analogy, starstutter, but unfortunately incorrectly applied IMO. :)
Creating a game = driving a car; i.e. race driver.
Building a game engine = building a car; i.e. race mechanic.
And, no, to be an effective race car driver, you don't have to know anything about the car's internal mechanics. You just have to understand the "interface" and drive, drive, drive until the car becomes an extension of your will.
Creating a game = driving a car; i.e. race driver.
Building a game engine = building a car; i.e. race mechanic.
And, no, to be an effective race car driver, you don't have to know anything about the car's internal mechanics. You just have to understand the "interface" and drive, drive, drive until the car becomes an extension of your will.
But I really don't think this is one of those things that can really be answered in one sentence. As with a lot of things, it depends on your situation. You can use an engine without knowing the inner workings, but I think your power in what you can do is then severley limited. An engine like unreal which is made for code-challenged artists and uses state of the art tools may not require a bit of modification to give you a great product, but remember that most engines are in no state to be used completley as is.
If you want to make a basic game that you and your fiends can enjoy, then you're right, you probably don't need to know a thing about it. On the other hand, and as I've mentioned in my warnings about the Tourqe engine, if you want to create a polished, customized, releasable game, I think you do need to know how to mod and at least know the basics of how the engine operates.
Going back to the car analogy, and as you kind of mentioned, every car owner needs to get his car fixed and tweaked. At that point there are two options. You can either fix it yourself or get a mechanic to do it. Yeah it's possible to do the second, but I think the first is a lot more advantagious. I should stop before I start complaining about over-charching shop mechanics :)
(\__/)
(='.'=) This is Bunny. Copy and paste bunny into
(")_(") your signature to help him gain world domination.
bunny also wants to fight spam: Click Here Bots!
(='.'=) This is Bunny. Copy and paste bunny into
(")_(") your signature to help him gain world domination.
bunny also wants to fight spam: Click Here Bots!
#6
Posted 28 October 2008 - 06:37 PM
starstutter said:
You can use an engine without knowing the inner workings, but I think your power in what you can do is then severley limited.
I think the analogy is fine. Different people have different purposes wrt to cars. The builder wants to build it; the driver wants to drive it.
I think your above statement is correct, except maybe in its "intensity". Just because you may eventually get "severely" (wow!) limited in your expressiveness as a game developer doesn't mean you need to know engine innards right away. You may want/like to, but you don't need to.
I consider creating a game and creating a game engine both very different things, each with its own large learning curve. You can create a great game w/o ever altering one of many relatively advanced engines out there. You can create a great game engine w/o ever writing more than vapid-yet-pretty demo.
Now, the counterpoint is that, at some point, one's idea(s) may (because game developers as a group have lots of prima donnas that suffer intensely from NIHS) not be expressed well in any current engine. But, at that point, and only at that point, should you straddle those two vast (from a necessary knowledge POV) worlds.
starstutter said:
most engines are in no state to be used completley as is.
Really? You can't create a good game in an engine like SDL, Haaf's, PyGame, Panda3D, OGRE, NeoAxis w/o having to modify a non-negligible amount of source code?
starstutter said:
You can either fix it yourself or get a mechanic to do it. Yeah it's possible to do the second, but I think the first is a lot more advantagious. I should stop before I start complaining about over-charching shop mechanics 
I hope my opinion is clear by now: there's nothing wrong with either setting out to learn to build a game, or to learn to build an engine. But, I think knowing both (should?) only matters to the advanced game builder that has odd needs, not the beginner developer just looking to get a start.
PS: Also, it's a matter of interest. Whereas I do not care to know my car's innards as long as I can get to point B, and will hand off my car to fix so that I do more useful things with my time, I do have an interest in woodworking and so may try to fix cabinetry around the house instead of hiring a carpenter. Far be it from me to tell someone interested in both game building and engine building to pick one or the other and never the twain shall meet...
#7
Posted 28 October 2008 - 08:48 PM
alphadog said:
I consider creating a game and creating a game engine both very different things, each with its own large learning curve. You can create a great game w/o ever altering one of many relatively advanced engines out there.
Quote
Now, the counterpoint is that, at some point, one's idea(s) may (because game developers as a group have lots of prima donnas that suffer intensely from NIHS) not be expressed well in any current engine.
Quote
Really? You can't create a good game in an engine like SDL, Haaf's, PyGame, Panda3D, OGRE, NeoAxis w/o having to modify a non-negligible amount of source code?
Quote
But, I think knowing both (should?) only matters to the advanced game builder that has odd needs, not the beginner developer just looking to get a start.
Overall, yes, it's totally possible to make a game with only the defaults of the engine, but I just think in the long run its far better to learn the inner workings. We have forgotten a pretty critical point though... what of the engine has a bug? In the neo-axis demo, I found a pretty enormous problem with point-source shadow maps. They said they were aware of it, but imagine being stuck with that problem and being dependant on them to fix it... *~*
(\__/)
(='.'=) This is Bunny. Copy and paste bunny into
(")_(") your signature to help him gain world domination.
bunny also wants to fight spam: Click Here Bots!
(='.'=) This is Bunny. Copy and paste bunny into
(")_(") your signature to help him gain world domination.
bunny also wants to fight spam: Click Here Bots!
#8
Posted 28 October 2008 - 09:50 PM
Quote
Really, you can make a fun game, but I think it would be very difficult to have it not come out looking like a template.
I guess it depends on whether you are a lone developer or expect to be one member of a large team. I've found what happens to lone developers is just the opposite. Although technically all right, the modeling is a bunch of free models they found on the net. If there's a plot, it's barely cohesive and the dialog is terrible, I mean pathetically terrible, and the game play is a clone of some other game. It's all some special effects and a bunch of junk. Most of them don't even get that far. They make a tech demo and keep increasing the things that are in it.
Currently using Blender 2.5, FlashPunk, and Unity.
#9
Posted 28 October 2008 - 09:53 PM
Actually I should clarify my statements. I don't at all think you need to know enough to build an engine, but you should at least know how the major components work. For instance, you should know the difference between shadow volumes and shadow maps, how each are constructed and how they effect the game's optimization (such as VSM's vs PCF and how they relate to screen resolution). You should know that normal and parallax mapping require extra information stored in the verticies, most beginners don't (I didn't before).
I just think you should know the concepts in depth, but no, you wouldn't be required to know enough to make them yourself.
I just think you should know the concepts in depth, but no, you wouldn't be required to know enough to make them yourself.
(\__/)
(='.'=) This is Bunny. Copy and paste bunny into
(")_(") your signature to help him gain world domination.
bunny also wants to fight spam: Click Here Bots!
(='.'=) This is Bunny. Copy and paste bunny into
(")_(") your signature to help him gain world domination.
bunny also wants to fight spam: Click Here Bots!
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users











