Jump to content


Why Game Engines Suck (all you noobs read)


23 replies to this topic

#1 gardon

    Valued Member

  • Members
  • PipPipPip
  • 282 posts

Posted 01 September 2008 - 10:47 PM

This is neither a rant or a condescending post. It's because I'm pissed off for (once again) going with a game engine rather than writing my own, and how it (once again) screwed me.

Game engines are a pain in the ass. There's a catch-22 with engines, much like there is one with anything else in life. It's a give or take scenario, and it always will be.

If the engine is very fast and flexible, chances are you'll have to suffer from no documentation. Also, if an engine is fast chances are it's NOT a point and click type of engine, meaning you're going to have to learn a programming language to be able to use it. So chances are if you're asking about "which engine to use" you have no programming experience at all, and are looking for an easy way out because you haven't done your research, and you don't have enough knowledge to KNOW what you want from an engine. Engine's don't make the game for you, you make the game with the engine. You should know what you're looking for before asking others.

I recently tried out TV3D. It's great, but there isn't any documentation. I've spent weeks trying to figure out what the hell is going on with that engine, since it handles all the Device enumeration, camera positioning and matrices, landscape loading, etc. The end result is that I'm unhappy with it, and I'm right back where I started: looking for a way to create an engine that is easy to use and flexible enough to let me CREATE my game rather than worry about setting up the bullshit that allows the viewers to see it.


I've tried others like Unity, DirectX Studio, GameStudio... the list goes on. The bottom line is that programming your own engine is the best way to go. Had I started programming my own (headaches or not) and learned from my successes and failures, I'd have been a lot better off than where I'm at now (no project, no engine, numerous restarts, and more WASTED time). I at least would have had experience.

So for all of you thinking about using a game engine, DON'T! Learn to program yourself, get a few books that teach you DirectX (or OpenGL), C++, and Windows programming, and learn progressively how things are done. The best way to learn and create a game is by doing it yourself, and not relying on someone else's crap to do it for you.


As of now, I'm going to create a game engine (finally). I said to hell with these engines. They're supposed to make game dev easier, but I've found that they make it a lot harder than it should be for something you pay for. Rather than wasting more time to end up at the same result again and again (which is having nothing to show for it), I'm going to create my own product and at least progress into something which resembles progress.

End rant thingy.

Good luck to everybody. You noobies start learning how to program, because if you just try to jump into an engine it's all downhill from there, unless you like creating flash games or 2D games quickly, in which case the point and click editors would be your best bet.

#2 TheNut

    Senior Member

  • Moderators
  • 1467 posts
  • LocationThornhill, ON

Posted 02 September 2008 - 12:25 AM

Hmft, programmers are sooo fussy ;)

Writing your own engine is a good experience and you will carry that to the grave, but that doesn't come without a trade-off. It takes years to master engine development. You'll not just build components, but learn how to connect them along the way. Everything from graphics to 3D audio to AI to networking to user inputs to multi-platform development (assuming you go that route), etc... I've spent years on my own as a hobby, which has proved to be an invaluable experience in the work force. If you have that kind of time, I say go for it.

In the end though, I find myself not caring anymore. I just use whatever is given or demanded of me to get the job done. I must have learned a dozen frameworks over the past couple of years, but such is the way of the world. Just make the best of what you have, cause fuss'in about it won't pay the bills.
http://www.nutty.ca - Being a nut has its advantages.

#3 KingPayne

    New Member

  • Members
  • Pip
  • 1 posts

Posted 02 September 2008 - 01:14 AM

Sounds like a bad time, sorry to hear about your misfortune. How far have you got with that current engine?

#4 starstutter

    Senior Member

  • Members
  • PipPipPipPip
  • 1039 posts

Posted 02 September 2008 - 01:42 AM

I'm having trouble telling if this is really a post about being mad at engines or ranting at "noobs" who want to be lazy (btw, using the word noob cements you as a hardcore nerd for the rest of your life, be careful with that ;)).

Quote

If the engine is very fast and flexible, chances are you'll have to suffer from no documentation.
bi-product of development cost. The more time spent on perfecting the engine, the less time can be used to write the documentation.

Quote

Also, if an engine is fast chances are it's NOT a point and click type of engine, meaning you're going to have to learn a programming language to be able to use it.
I think just about anybody can tell you that. Any game engine that promises you a purley point and click interface and making "state of the art" games with it is nothing short of a scam. It would be competley impossible to optimize an engine and make it customizable if the end user had to do nothing.

Quote

I've tried others like Unity, DirectX Studio, GameStudio... the list goes on. The bottom line is that programming your own engine is the best way to go.
I think you're missing a bit of a critical feature. Modding...

If you're going on a long term project and want to use an engine, I think the best way to go is probably to get very good programming skills and modify the engine to fit your needs. Yeah I know that sounds like a ton of work and it probably is, but in my mind it may save you from a potential restart because the archetecture on the engine you built is slow, unstable or just doesn't work.

I'm not sure a single game has been released (with the exception of GoW and UT3) with Unreal that has not undergone moderate to severe modding by the game companies. I think the trick is to get so good at modifying the engine you don't really need to read the documentation.


EDIT: oh, and here's something you *need* when working with an engine... source code. If the engine does not sell its source code along with the package, don't waste your money on it, because you won't finish anything.
(\__/)
(='.'=)
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!

#5 fireside

    Senior Member

  • Members
  • PipPipPipPip
  • 1266 posts

Posted 02 September 2008 - 04:10 AM

All engines have their problems, but if you notice the development time taken on the engine, that's about what you'll need to write your own, unless you are doing something fairly simple and then it might be better to write your own engine. Most any engine out there will do a good job for you if you take the time to learn it, and it will take time. I agree with one part of this, if you have to ask what engine to use, you are hopeless and should just give up right now. 1. Check the engine features to make sure it will do the job
2. Check the forum to see that it's up to date and the people on it are reasonably polite.
3. Check to see if there are adequate examples and tutorials.
4. Check to see if your modeling program can do imports into it.
5. Expect to spend at least 2 months learning the engine.

#6 ExtraProgrammer

    New Member

  • Members
  • Pip
  • 9 posts

Posted 02 September 2008 - 12:53 PM

Just curious, as I am intending to get Unity, what's wrong with it?

#7 Daddy Warbox

    Member

  • Members
  • PipPip
  • 40 posts

Posted 02 September 2008 - 08:55 PM

fireside said:

I agree with one part of this, if you have to ask what engine to use, you are hopeless and should just give up right now.
Why?

#8 gardon

    Valued Member

  • Members
  • PipPipPip
  • 282 posts

Posted 02 September 2008 - 10:15 PM

Unity was actually one of the best engines I've experienced. If you spend time learning how to script, you can pretty much make anything.

The thing I didn't like was that it did NOT come with source code, and the networking architecture wasn't to my liking. The engine handles everything for you (physics, collision detection, running the scripts, etc.), so it would have been hard to use client/server architecture. Unity is clearly a client based application,and since the idea behind networking is to have the server run most of the game critical code (updating player movements and other requests), the whole physics, collision detection, player to npc interaction would be worthless. So I figured if I were to make a game that needed networking, and needed the server to handle most of the load, I should look toward something else.

Then again I didn't give it much time. I think I JUST MIGHT go back and give it another shot....

No seriously, Unity was the #1 choice of an engine if I had to pick on.

This thread is retarded, I regret making it. I apologize.

#9 starstutter

    Senior Member

  • Members
  • PipPipPipPip
  • 1039 posts

Posted 02 September 2008 - 10:38 PM

gardon said:

This thread is retarded, I regret making it. I apologize.
It's ok, we all need to pointlessly rant :lol:
(\__/)
(='.'=)
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!

#10 fireside

    Senior Member

  • Members
  • PipPipPipPip
  • 1266 posts

Posted 03 September 2008 - 12:33 AM

Quote

Originally Posted by fireside
I agree with one part of this, if you have to ask what engine to use, you are hopeless and should just give up right now.
Why?

Because 10 people will give you 10 different answers, and the answers will apply to them, to their background and understanding and not relate to your needs at all. Most of them have only used a few engines, if even that, so they can't make any kind of judgment on the others. There is a list with people who have actually used the engine at the top of this page. It gives the engines features, etc and every thing you need to make an intelligent decision. If you need to have someone tell you which engine to use, the chances are you don't have what it takes to learn any of them.

#11 saymoo

    New Member

  • Members
  • Pip
  • 6 posts

Posted 03 September 2008 - 02:34 PM

Asking about engines, can be (and mostly in practice IS) a good thing, discussion wise, and experience wise.
In other words: SHARE KNOWLEGDE.
The database is not a good reference at all, since many comments are either old, incomplete, or written by the creators team themselves (sneeky advertising comments).
Real users are mostly inside forums/mailinglists.

And by means of forum interaction (threads emerging), one responds to the other etc etc.. you get a better understanding of how and engine/tool is working for someone, and WHY.
(from many people, who are willing to answer indepth and honest).

Besides it's good for the engine creators too, who are supposed to read the "reviews" and discussions about their product. End users/licensees are their income mainly or popularity list position, and can make or break sales/use of the product over time. And they can respond to the users needs. They should follow their userbase not the other way around.
(negative responses, lower the consumption of an engine, while possitive responses raise consumption.)

And we are all developers here (veterans or newcomers, not only programmers but also artists/level designers/modelers etc), since that's what the site is made for, we should be able to share experiences, thoughts in the broad way of the word. Even about engines...
(why else use a forum service, if one cannot freely ask/answer about products/services/skills/howto's etc etc)

Oh and one other thing.. a nice list of features for an engine is initialy handy,at most. Reading the feature list you can't tell if it's clean code, optimized, good userbase, etc etc etc.
it's just features.. it even won't tell

- how stable ALL the features are, if it's bug free, or all the requirements needed.
Yes requirements, because i've discovered that quite a huge part of the engine list is hiding the additional requirements to use the engine. (for instance, what compiler is supported: e.g. vc.net (2003) or vc 2005/8? it's a huge difference between the versions of vc++. so knowing it might help you infront of choosing. (also license wise))

- if the support is OK (written, and human)

- how solid the art pipeline is

- if it has proper working toolsets (leveleditors/plugins for various programs AND which versions of those programs!!)

- how updates work (payed or free and for how long)

- how active the engine is maintained by the creators

- etc etc

Therefore, communication about it is KEY!

(you do it in other parts of your life too... researching/asking around about products/services, before buying/applying it.)

So why not with game tools presented here.

my two cents.


And now ontopic:

I think game engine do not suck at all. It's like other things in life, if you have a wreck of a car, don't expect it will work without many problems (now or soon in the future). Choosing the right tool, for the right job, does the trick.
Besides, the engine is prebuild/coded, it (if you choose the right engine) lowers to production timeframe by millions of hours. No need to code from scratch, no need to test the engine itself, no bugfixing etc etc. (purely engine wise)
All you need to do is mainly focus on the game creation, USING the engine as the base.
Most of the code is written and tested for you. (engine wise)
So, i don't see the problem. Hence why do you think AAA class game creators in many cases use a thirdparty engine instead of writing from scratch? TIME TIME TIME (and the testing/bugfixing horror that comes along with it)

#12 tobeythorn

    Valued Member

  • Members
  • PipPipPip
  • 189 posts

Posted 03 September 2008 - 06:39 PM

Gardon,
No reason to be pissed off. It's all good experience. I worked on a commercial game for a while at a small company where none of us had substantial experience making a game. We tried several game engines before we found something worthwhile. We found some engines to be bloated and convoluted and to obscure inner working that shouldn't be obscured and to have serious art pipeline problems. We also tried a trial of the HL2 engine, which had almost non-existent support and documentation (which is absurd for $250k) and IMHO the code made no sense whatsoever and was very strange. Finally, we tried the Gamebryo engine, which was wonderfully organized. The code made sense on its own, was very well documented, and emergent had awesome support. Even so, I also took note of the flaws and limitations in that system too.

I left around the time we put together a working demo, which took about 4 weeks, which is very good. I definitely learned much from my experiences at that company and I learned what I liked and disliked about engine design because I had to try to get something to work in so many. That experience is necessary. No one can tell you what design you need and like. Currently, I am writing my own engine for a game I want to make. The choices I've made and continue to revise are anything but typical (objective-c, my own physics engine, etc). Many people would disagree with or be confused by my design choices, and that is OK. Because they have also found something that works for them and that they enjoy and continue to learn and evolve. And best of all, forums like devmaster allow us to share ideas so that we can go explore them for ourselves.

#13 alphadog

    DevMaster Staff

  • Moderators
  • 1641 posts

Posted 04 September 2008 - 02:57 PM

gardon said:

This thread is retarded, I regret making it. I apologize.

Actually, it's common. I've just joined the forum. As a mid-30s developer of many things, just not games, I am branching out for hobby.

One thing is for sure, a game engine is probably like any other application framework. Documentation is always lacking, sometimes more so than others. You must balance the time saved coding versus the time cost of learning that framework. Usually only too late do you sometimes realize that your evaluation was wrong and the latter was greater than the former. I've recently been hit with that on something as "simple" as a web application UI framework.

It becomes a difficult choice. A framework will have done a lot things for you. In some cases, too much. And, it leads to unnecessary confusion and performance problems. In some cases, too little, but will you be able to tell from docs or source?

I'm debating the very same build-vs-buy, and then buy-what questions. It's worse when you are making your first step.

Don't feel bad. I'm sure many here echoed your feelings...

#14 fireside

    Senior Member

  • Members
  • PipPipPipPip
  • 1266 posts

Posted 04 September 2008 - 08:01 PM

Quote

Asking about engines, can be (and mostly in practice IS) a good thing, discussion wise, and experience wise.
In other words: SHARE KNOWLEGDE.
Nothing wrong with asking about a specific engine. Asking people to tell you which engine to use is a useless venture. One guy doesn't like java and doesn't think you can make a game with it. One guy says you should always write your own engine. Blah blah. What good is it? Do some research, find out about languages and what you are capable of doing, and ask specific questions. All the engines that have a lot of recommendations are good engines. The question is which engine best suits your particular needs and you need to do research to even find out what your needs are. C++ is generally not the best language for a beginner, but it can be in certain situations. It's not necessary, certainly, and the learning curve is higher, but you will almost always get that advice and I think I may have given it myself already. Not true at all. Take a look at Disney's Pirates of the Caribbean which was written with the free engine Panda3d in python. Jmonkey is a great engine for Java. Who really gives that kind of advice on a site like this which is mostly c++? People come here looking for something to get going as soon as possible and are given the encyclopedia brittanica of languages by very well meaning people who haven't been around much lately.

#15 martinsm

    Member

  • Members
  • PipPip
  • 88 posts

Posted 04 September 2008 - 10:17 PM

Write Games, Not Engines: http://scientificnin...mes-not-engines

#16 alphadog

    DevMaster Staff

  • Moderators
  • 1641 posts

Posted 05 September 2008 - 01:38 AM

fireside said:

Do some research

But, isn't asking about engines in a forum like this precisely "doing some research"? Or, being a noob myself to the current state of "game engine world", as I am figuring out the landscape, should I be looking elsewhere?

#17 gardon

    Valued Member

  • Members
  • PipPipPip
  • 282 posts

Posted 05 September 2008 - 02:22 AM

Na, you're doing the right thing. I'm just pissed at wasting so much time with game engines instead of creating my own and: 1) learn something about it and 2) make progress toward the end result.

Most engines that I have used were utter crap. Little documentation, more headaches than they're worth, etc. Maybe they work wonders and save dev. time, I don't know. Probably. I just don't have much patience, and it's very hard for me to sit there and try to learn someone else's engine with no help whatsoever.

I mean there's always some... but every time I want to do something I have to go ask people what function it is, or what class it belongs to. If I wrote my own then I wouldn't have to ask, because it would be common knowledge since I wrote it.

On a side note, I'm trying Unity3D again. I said the hell with it, since I'm a lone developer anyway and will probably never make a commercial quality game otherwise. I might as well stick with something decent.

Again, the documents and tutorials lack, but maybe it will be for the better, since the main benefit is it has world editors built in, which has always plagued me on different engines.

But alphadog, to finally answer your question, you're fine here. I just think that working on your own material is better in the long run because you learn how the programming is done, plus you have something to show for it. Going right to an engine when you're JUST STARTING OUT can be painful and frustrating, because after you get all excited and into an engine you realize that it can't make the game you want (the next UBER MMORPG).

If you learn to write DirectX/C++ code (or whatever), then go to an engine, you at least understand what's going on under the hood, and can work with what they give you. The only problem (what I hate) is that there isn't any docs, so it's like learning another API all over again.

The hell with that.

Anyway, if you have mac try Unity. It's pretty kick ass, it'll teach you how to code (script, actually), and they got everything you need built into the engine. A quick way to get something up, running, and have a project that's actually worth a damn if you're a lone developer like me.

End seemingly meaningless rant # 2.

#18 fireside

    Senior Member

  • Members
  • PipPipPipPip
  • 1266 posts

Posted 05 September 2008 - 04:03 AM

Quote

But, isn't asking about engines in a forum like this precisely "doing some research"? Or, being a noob myself to the current state of "game engine world", as I am figuring out the landscape, should I be looking elsewhere?

"What engine should I use?" is not doing research, no. The question is too general to have any meaning at all and just leads to endless discussions that go no where. You should be checking out the engines list, visiting the site, talking to people on the forums of people that are using an engine that you feel fits your needs and can offer useful information. This site is a general site and is good for general programming questions along with game design and things that relate to all engines. I think general sites are very important because all games, no matter what engine you use, share a lot of things in common and it's better to talk to a larger base of people about those things. There are very few people adept enough to write their own engine and it's basically a waste of time, however, I think all beginners should write a 2d game first, because a game is a game and 3d tends to overwhelm a lot of people. Actually, I think it would be better to write a text game first.

#19 rouncer

    Senior Member

  • Members
  • PipPipPipPip
  • 2322 posts

Posted 05 September 2008 - 07:03 AM

i always coded my own and people gave me shit for my opinion.

#20 starstutter

    Senior Member

  • Members
  • PipPipPipPip
  • 1039 posts

Posted 05 September 2008 - 01:17 PM

rouncer said:

i always coded my own and people gave me shit for my opinion.
wait... what do you mean exactly? That people thought you were "stupid" for coding your own?
(\__/)
(='.'=)
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