Why Game Engines Suck (all you noobs read)
#1
Posted 01 September 2008 - 10:47 PM
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
Posted 02 September 2008 - 12:25 AM
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.
#3
Posted 02 September 2008 - 01:14 AM
#4
Posted 02 September 2008 - 01:42 AM
Quote
Quote
Quote
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
Posted 02 September 2008 - 04:10 AM
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
Posted 02 September 2008 - 12:53 PM
#7
Posted 02 September 2008 - 08:55 PM
fireside said:
#8
Posted 02 September 2008 - 10:15 PM
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
Posted 02 September 2008 - 10:38 PM
gardon said:
(='.'=) 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
Posted 03 September 2008 - 12:33 AM
Quote
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
Posted 03 September 2008 - 02:34 PM
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
Posted 03 September 2008 - 06:39 PM
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
Posted 04 September 2008 - 02:57 PM
gardon said:
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
Posted 04 September 2008 - 08:01 PM
Quote
In other words: SHARE KNOWLEGDE.
#15
Posted 04 September 2008 - 10:17 PM
#16
Posted 05 September 2008 - 01:38 AM
fireside said:
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
Posted 05 September 2008 - 02:22 AM
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
Posted 05 September 2008 - 04:03 AM
Quote
"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
Posted 05 September 2008 - 07:03 AM
#20
Posted 05 September 2008 - 01:17 PM
rouncer said:
(='.'=) 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












