Sign in to follow this  

Using engines or doing it yourself?

This topic is 3841 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Let me just preface this with: I have programming experience in general, just not so much that's game-related. As such, please don't say, "Go learn C++/C#/Python/<insert_fav_lang> first," because I've got that covered already ;) Okay, my hope is that one day I might work in the industry as a programmer. Maybe that's a pipe dream, but I still want to give it a shot. So I'm wondering what I should concetrate on learning more: - Using existing game engines/libraries (Irrlicht, Ogre, Panda3d, Torque, etc..)(choosing just one or two, of course) OR - Learn how to implement the functionalities found in those engines/libraries (using OpenGL, DirectX, scene graphs, etc..) The first option is tempting because the turn around time is quicker ( in some respects ). While the second one is also tempting for other reasons (seems more well-rounded... or something, heh) Opinions? Keep in mind I'm leaning toward what would be more useful in the industry. I know that learning both would be ideal, but I find myself flip-flopping to either side on the issue. Sometimes I want to learn an engine so I can crank out a game. But then I'll start learning a little bit, at which point I'll think, "I don't want to be dependent on this engine/library, I need to learn the underlying concepts." But then I'll get lazy and switch back to dabbling with engines. Feel like I'm going in circles. :)

Share this post


Link to post
Share on other sites
Many around here suggest a first project experimenting with one of the engines, then eventually writing something of your own. That is perfectly sensible, although I prefer starting from the top. I personally wrote my first game as a DOS console app, then I eventually rewrote that in a graphical engine I wrote in X-Mode. After messing with that I finally started to learn OpenGL which is what I use today. But thats just me, it really depends on how personally prefer to work. If you are ok with a long, drawn out process of learning the APIs and experimenting to see what works and what doesn't, try writing your own engine (rudimentary at first, I suggest). If you would rather start with customizing something that is already proven, go right ahead, you'll certainly see results faster and perhaps have a little less frustration [grin].

Share this post


Link to post
Share on other sites
I personally recommend starting with OpenGL or DirectX first.
Alot of game engines use these libraries. Understanding these
libraries can aid in understanding 3d in general, which will help you
better use the engines.

Why not do both? Build a simple engine for a game, and add to the engine.
It does not need to be a next gen engine.

Also, if you feel the urge to just write a game, then do it--You dont need an
engine to write a game. I personally develope small games alongside
my larger projects to keep me motivated.[smile]

This is only personal opinion.

Share this post


Link to post
Share on other sites
I recommend first using some engines to get a general idea of what they do and what they don't. This will help you with your ultimate goal of creating one yourself, but its just my opinion.

Tjaalie,

Share this post


Link to post
Share on other sites
This may seem a little odd, but I think it's actually a good idea to write a simple engine yourself first, and once you've figured out how to do that you can either write a bigger one or switch to a 3rd-party engine.

I'm saying this for the same reason I don't think BASIC is a good programming language to start your coding career with. The more your engine (or programming language) abstracts away from you, the more you will take these things for granted and usually without actually understanding them.
Writing your own engine can be tricky at times, but you will learn so much more about 3d engines than if you just used an existing one. And of course it's also a lot of fun.

Share this post


Link to post
Share on other sites
Write two games without engines first. As you write the games, you will notice common functionality that could have been factored out. This will give you insight on what engines should do and what they shouldn't.

As a quick exercise, perform the factoring (rewrite the relevant parts of both games using a self-written engine). Then, start using already-written engines.

Share this post


Link to post
Share on other sites
IMO
Make one by yourself.
Everything you need you should do it by yourself instead of use things that other people have done (there are some exceptions like graphic libraries - better to use an exist lib instead of doing one by yourself, another exception is if that you know that X lib is bad and you know how you can do better lib that you can do lib by yourself).

Also I mentioned here comment like "Better at the beginning use a ready one to understand how engine works".
Again IMO: Learning from ready code is a good thing when the code is pretty small to medium, but when its a big program it will be very hard to understand how it works.

Again all the above is IMO and maybe I'm mistaking.

Share this post


Link to post
Share on other sites
Write games, not engines, and refactor, don't rewrite seem particularly applicable to your situation.

Quote:

Keep in mind I'm leaning toward what would be more useful in the industry.

It does not matter, neither is "more useful than the other. Consequently you should probably concentrate on writing games using existing tech as the results are far more interesting, as I outline in my articles above.

Writing your game against a 3rd party engine like Ogre is no different than writing your game against a 3rd party library like DirectX, provided what you gain from the experience is an understanding of the concepts, not just the superficial API details. Attempting to "learn" by writing your own engine from scratch, as some have suggested, can very easily lead you to learn the wrong things -- without guidance or context, you don't have much in the way of understanding or feedback.

For a professional programmer, APIs should be no more than window dressing. What's more important are fundamentals, basics, underlying theory; you tend to get these more from books or from experience with technology that is already proven than you do by operating under the assumption that you can roll your own that is better than what hundreds of established developers have already determined to be ideal for a particular situation.

Not that writing your own code for some things is necessarily bad, just that it's not necessarily good.

EDIT: It would be nice if I could properly link to my own site, don't you think?

Share this post


Link to post
Share on other sites
you say you have enough experience in your chosen programming language but not much in game programming? So have you actually made a game up to this point?

I'm assumming not by your post, I would highly suggest make several COMPLETE little games... not tech demos. something such as simple arcade clones. That way you'll get used to how games are put together. Then when your done with that start moving on to the engine idealogy that so many beginners are hyped up about. But don't go making a full fledged Engine. Just make little parts at a time.

your biggest downfall will be thinking big.

Share this post


Link to post
Share on other sites
Thanks for the replies :)

Although there isn't exactly a consensus, perhaps it's more important that I just start making games, and pick up the concepts and theory as I go?

I really haven't decided how I'll continue just yet, but these replies certainly help.

Also I made my first (and so far, only) game a little over a year ago. Here's a link to the forum post to anyone interested. I guess I should've made more progress since then, but I seem to be just spinning my wheels... hopefully that will be remedied.

Share this post


Link to post
Share on other sites
I agree with jpetrie

These days seems like everyone is gunning to build their own engine. Building a real engine is a hugely involved process. It requires a lot of design and documentation. It's like trying to run before you can walk.

I think there's a common misrepresentation of engine's these days, or maybe it's just my view, but if you can only use an engine for one game, then it really isn't an engine. A game engine is something that should be generic enough that you can pull and pick the parts you need to build any type of game. All these parts should be independent and easy to remove or add.

My advice is build a couple games first, just because it has good structure doesn't automatically make it an engine. After you build a few games you'll get a much better understanding for how the pieces of a game should interact and maybe down the road you can build a game engine.

Share this post


Link to post
Share on other sites

This topic is 3841 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this