Opinions of games engines

My guess: Some of these powertools are hard to learn, some are even difficult to use. In the beginning of learning, if one doesn’t know yet how powerful they will be once mastered, it sometimes looks easier to make something of your own.

But I totally agree. We should use more powertools.

But to be honest, the time to learn how to use one of the real life powertools is about 10 to 30 minutes for me (drilling machine, jigsaw, buzz saw, angle grinder,belt sander, soldering, electric welding …) Learning LWJGL needs some weeks at least … maybe this is why people are a bit afraid of those. The entry hurdle is high.

But maybe I’m biased because I grew up with a father who used all that, and I learned how to use such quite effortlessly while growing up, so it only seems so much easier than the software equivalents. Electric welding was the hardest, but even that had some first success in 10 minutes, even if a pro would have frowned much on my welding - I had two pieces of iron together, stronger than any glue or soldering would do!

I dunno. I still agree on the idea that we should use more powertools in software development.

I think game engines can become a very alluring distraction to aspiring programmers (particularly hobbyists like myself, who don’t know much better).

About two years ago I discovered jME and thought “woo, great, I can start creating 3d games without having to learn that OpenGL business!”. The problem was, at the time I’d produced little more than a horrible naughts & crosses game with Java2D, and to be honest still had NFI about programming or Java. But I had a vision that I’d soon be pumping out awesome 3d gaming masterpieces.

So I spent a few months messing around with jME and getting nowhere, until the reality of my situation finally dawned on me: I didn’t have the knowledge to make a game with, or without an engine, and that I needed to go back to basics and learn a lot more. All said and done, the engine had sidetracked me for a few months, and I hadn’t progressed much as a programmer. My lesson was learnt, and I moved on.

So the crux of my story is: game engines can be great for programmers that already know what they’re doing (i.e. as a ‘powertool’ as some have mentioned). They’re not so great for people that want to become programmers but take the (perceived) easy way out.

*Note: This is in no way a critique of jME. It would’ve happened to me with any game engine.

I wouldn’t say that if you use a gameengine like unity, etc, that you are/become a programmer. I think it’s called gamedesigner.
Those engines are made for producing high level products faster and less expensive without the need of having highly educated programmers in your team.
For example Porsche is using Untity in their “configurator” (configurator sounds weird, is it really used in that context?): http://cc.porsche.com/icc_euro/ccCall.do?rt=1389002047&screen=1920x1080&userID=DE&lang=de&PARAM=parameter_internet_de&ORDERTYPE=918320&hookURL=http%3A%2F%2Fwww.porsche.com%2Fgermany%2Fmodelstart%2Fall%2F%3Fmodelrange%3D918

And as we both know: You can’t learn everything. There’s too much to know and it’s changing faster than is possible to keep up. If you look at really good researchers they only know a reasonable amount about of vary small number of related things…and most frequently very closely related…and (when provided) their code is most often horribly structured. Writing readable/writable/maintainable code really isn’t a needed skillset for them. Closer to home pretty much all of the high-profile game engines use a fair amount of external libraries even for very important parts of the engine. It’s not worthwhile for even big studios to invest time/money in reinvesting a wheel unless there isn’t an off-the-shelf solution which fits the needed specification.

The key thing with these engines is not the coding aspect, it is the level building. If you use libgdx to make an RPG shootem up platformer. How are you going to make the levels? You will have to write some custom software to create levels. With these visual editors that interact with code seamlessly you do not need to write as much custom software. But you still need to actually code the game.

The more productive developers here don’t seem to use monolithic game engines, they have a tool chain of different things.
Kev Glass, author of Slick2D and a bunch of high quality games used to use

  • LWJGL for rendering,
  • Inkscape vector drawing program for making free-from curvy levels which can be saved as SVG an XML format,
  • Tiled or some other program for tile-based game world creation,
  • Phys2D for physics (an early derivative of Box2D before JBox2D superseded it),
  • Paint.NET or gimp for pixel art, and lots more I’m not aware of.

Yeah that’s true about the level editing. Most of us never get to that stage. After we make the cool effect or achieve the super fast ‘frames per second’ goal we’re satisfied and call it a day.

CommanderKeith is absolutely right. I rarely ever get to the point where I need to focus on designing levels. And if I do, its for a simple game that I made in a few hours and not an actual game I would think about putting up for people to see. I’m more interested in learning than I am about doing right now. Riven and Cas, they’ve been learning for a while, so using game engines would make sense!

Sure, you can always learn more. But I think sometime I’ll hit the point where I’m also sick of learning and I just want to make something. If that ever happens, maybe I’ll understand why people like Unity or JME so much. But for now I’ll stick to my minimalistic tools that I created for myself to mess around and have fun. Isn’t a hobby supposed to be fun?

The troublesome part is people that are deluding themselves into thinking they’re working on a game and don’t understand that they’re really just tinkering. Of course that’s their problem but they “share” with others by providing what they think is reasonable advice.

Well that’s why I can’t stand people that have never touched code before using game engines. They try to tell others what they need to do, and how this works etc… when they really have no idea how it works themselves!

I have no problem with game engines as long as you know at least a little how they work.

Devil’s advocate mode: Take a person with zero programming experience who takes “Neverwinter Nights”, uses the tool, some downloaded end-user scripts and some horrible written code they toss together by hacking-and-slashing the work of others and after a couple of month creates a playable module. Now compare that to someone with a high amount of programming experience who tinkers around with this-or-that and never finishes anything (or anything worth looking at). Who’s the better game programmer?

More of who actually completed something or developed a game/ module or w/e. Not necessarily game programmer.

This is true. The people here (myslef included) are tinkerers primarily. NOTHING WRONG with that. But we really do not churn out any games. Riven just talked about how the featured section is barren. This is because we tinker more then make a game. We get all technical and write everything our selves so development on a game is super slow. Again, nothing wrong but we do not produce any games really.There are a few exceptions on here but you get my drift.

But the first person is not a game programmer, he’s a game designer. Not to mention he pretty much took code from others, and probably doesn’t know how any of it works. The programmer who tinkers has the ability to actually make a game, if he wants to, and will know how all of it works, so he can make an amazing game in a short amount of time, and be able to explain how (mostly) everything works. I don’t think it’s fair to call the first person a programmer if all they do is use a visual game engines and steal code. Don’t get me wrong, I’m sure we’ve all stolen code, but at least we know how to use it and what it does vs. game engine guy who is just like well, this works so I’m done with it! And never looks at it again.

I was one of those people a while back, I used Blender to try to make games, and there’s this one site which pretty much gives out scripts for anything you can imagine, and so I tried to make a game. It failed horribly, of course, and I realize today that I never knew how anything in my “game” actually worked. I just copied and pasted and hoped for the best. People like I used to be aren’t programmers.

Nobody makes amazing games in a short amount of time.
It takes much, much more than coding to actually finish a game, not to speak of the amazing ones…

About game engines… no player actually gives a #*$! about how ingenious all the coding was…

I meant a short amount of time relative to the game engine guy.

No player cares, but I care as a developer. Shouldn’t that matter? If I was working for someone else then yeah, it doesn’t matter. But since this is a hobby… I care and I won’t use a tool that I don’t want to use simply to get a game out. I will do what I feel is right so I can go to bed at night and feel satisfied with my days work.

Let me point out that my comments aren’t directed at opiop65, but are simply a play off of some things said.

Single person indy game devs have to be programmer, designer, worldbuilder, artist, etc. etc. Only the final product counts. My (not-so) hypothetical first person actually wrote some code. Code that’s in something playable that other users actually run when playing the module. The second hasn’t.

To expand on 65K’s response. The thing about tinkering is that it’s a disease that’s hard to overcome. Goofing around is fine as long as you understand that’s what you’re doing. Ability is pretty moot if it’s never effectively applied.

If I had access to an existing game engine that did a significant percentage of what I needed, then there’s no doubt that using the engine would have a faster turn-around time than writing everything from scratch. But really the important time investment is in content creation and not the code that the content runs on.

I understand what you all are saying, but I think we are at different points in our programming careers and as such will never agree on something such as this. I’m fairly new to coding (3 years) and I absolutely love doing everything myself, oddly enough. The only reason I don’t want to use an engine is because it would detract my experience that I know and love. I imagine some people on here just don’t want to learn anymore, but they want to utilize. So engines are a logical choice. I guess I’ll never agree with that right now because I can’t understand not wanting to do everything yourself and learning more from it. Do I want to make games? Yes, but I went to make them with my own tools. I’m ok with waiting a few years until I have enough knowledge and enough tools to do so. I just have to choose to not tinker, but create, and I’ll be on the right path.

Some developers who still want to learn things can use engines, they can even improve them. Using engines requires to learn how to use them too. Your knowledge is never lost except if you decide not to use it.

Only way to learn making games is to make them. This also mean finishing them. It’s also really important to get something ready so you can add it to your portfolio. With good portfolio you can get job as game dev quite easily but if you have some non finished tinkering who would want to hire you.

Tinkering, a disease?

When Columbus was searching for the New World, he was looking for a shorter route to India. He ended up finding a whole other continent. Tinkering isn’t a disease, it is a path to find a shorter route to an idea. If the tools presented were as accessible and easy as people said, people would gravitate toward it. It fills their needs.

“People do what works.” - Dr. Phil

MyUC_28HIvA

Being productive is relative.

In the video, they went over three reasons why people play games (Competence, Autonomy, and Relatedness.) The same thing that applies to gaming, is pretty much the same thing that applies to programming in general. We program to fill different needs in our lives. This is one of the main reasons why we can’t just tell people what the best tools are and expect them to go for it. We also can’t say that learning through game engines, regardless of how exceptional they are, is the best way. It fully depends on the individual needs of the person, and what they are trying to fill in their own personal lives.

Games happen to be the result of these elements coming together, more than a purposeful dive into the unknown. No one actually knows what the next big game idea would be. So, what happens, we “play it safe.” It is a reason for the many franchise games that just stick a “2” or “3” at the end of the product. It is the reason that we don’t see too much stray from the tried-and-true formula. It also covers why we see many clones of popular existing games. It is playing it safe, knowing that taking the low risk route would yield a return.

Enough of that.

Human beings are here for risk taking, and for venturing the unknown. The moment we stop advancing is the moment we stop existing. All of our current successes today come from those who were willing to take the risk to get us here. This way of advancing hasn’t changed, we must continue to adapt for the future. This goes for gaming, it goes for programming, and it goes for life.

Advancement is not an equation, it is a state of improvement.

If we want languages to progress, gaming to progress, and our lives to progress. We have to be willing to accept change and the different ways people choose to advance it. There is more to being successful than just writing a game.

In general programming terminology isn’t equal in meaning to the (in this case) English word used. In this case tinkering is “code tinkering” which is a very negative thing…unless you understand that’s what you’re doing.

Yes “Being productive is relative.”. And when you don’t complete things, your productivity is zero. From my days in management, I promise you…code tinkering is a serious disease that’s a hard habit to break.

If Columbus had the equivalent to “code tinker” disease he would have never set of. He’d have spent his time designing the best way to make the trip, designed new boats, find the best people to accompany him. He’d eventually gotten bored and wondered off to some other “great” idea…which also wouldn’t get complete.