Jump to content

Are game engines a good thing?


Nightside

Recommended Posts

Discussion: 

Are game engines (like Unity) a good thing or bad thing for computer games?

The main benefit I can see is that the game maker essentially has to create a world- but not the whole universe.

The main detriment is that the game creator loses control of the fundamental laws of the universe that the game exists in.

 

Link to comment
Share on other sites

Engines make up a huge part of the development work needed to build a game. It's all the low-level nitty-gritty stuff—physics, collisions, entities. It needs to be robust, performant, stable… Add to this the fact that most programmers specialize, and gameplay programmers don't typically enjoy engine development, and the loathing with which programmers typically regard duplication of effort, and you may begin to see why off-the-shelf engines have become popular and profitable.
As for its potential detrimental effects on games: If your game depends upon any libraries you can't touch yourself, you're handing a lot of control over to those libraries' authors. We've seen the results of this in KSP development, where particularly stubborn bugs have been tracked down to a root cause somewhere in the Unity engine, and SQUAD has been unable to fix them. Your point about the loss of control of the game world is valid in this sense. However, from what I've seen of e.g. Unity development, the game developer is responsible for the vast majority of game mechanics. Stuff like collider behavior is usually too low-level to impact mechanics (a notable exception is Shadowmage's KSPWheel colliders, which would work much better with more access to low-level engine components).

And if a developer ever decides that they would be better off without the few restrictions a good engine puts on them, they can always cast it off and write their own engine.

Link to comment
Share on other sites

I think it's overall a good thing. Projects are a lot easier to start thanks to game engines. And if the game being developed needs some unavailable feature, or you want more control over development, you can develop everything yourself. But if you can get away with it or just don't want the extra control, already existing engines are useful.

Link to comment
Share on other sites

Greetings all

 

I speak as someone with limited exposure to Game Programming, and some professional (as in I got paid real money that could buy real things and pay the rent) non-gaming programming.

 

Game Engines make modern games possible. Without them every game developer would have to start from scratch writing the same messy code required to get DirectX working, and if you are going to cross platform programming... the nightmares get pretty bad, very fast.

 

Game Engines do two things:

(1) They allow the devs to avoid making someone else's mistakes (bugs) again. I guarantee that the devs responsible for Unity have ironed out hundreds or even thousands  of bugs related to the ... er ...eccentricities of the  DirectX API. The same goes double for the Mac OS, and Linux API. Programming for all three is a challenge. The Unity Devs have saved Squad from (most of) those problems.

(2) Game Engines also allow the Game Developers to concentrate on producing Content rather than Code (and producing Code almost always means producing Bugs). In Unity you can happily drag and drop in a few images, attach them to objects and point and click to position instances of your objects in the game world. You don't even have to be a coder to make a simple game (more a mini-game) in Unity.  

 

The option to concentrate on Content rather than Code means your developers (coders) can spend their time solving the real problems of Game Dev, like Game Play, and UI (and to some degree Portability) and Fun-ness (which is sadly something many modern games lack). Artists, writers and musicians can concentrate on supplying excellent content instead of arguing with the coders as to why their last lot of content didn't work as intended because someone changed the spec or introduced a new bug.

 

Game Engines ultimately come down to Reusing Known Reliable Code, and that is something every good coder should recognize as a Good Thing. If you broke it and fixed it last time then you won't break it and need to fix it in the same way this time (of cause the possibility of finding new and interesting ways to break other things or every thing still exists but we're dealing with computers, new bugs are unavoidable). 

YMMV.

 

REgards

Orc

Link to comment
Share on other sites

3 hours ago, Orc said:

Game Engines ultimately come down to Reusing Known Reliable Code, and that is something every good coder should recognize as a Good Thing.

I appreaciate the modularity and practicality that game engines offer, however I still lament the rather general fact that games (and other programmes) today takes up way more resources then they once was.

"But we get more things off them ! You need more things to get more things !"

True, however the rate at which a certain setup is going to be practically obsolete due to lack of resources gets faster and faster.

My laptop, which is a model that would be somewhat mid to up tier 5 years ago, struggles with games that just comes around. And heck, it even sometimes struggle to run the browser and google earth alongside each other.

I remembered when I had my computer from when we still use a dial-up (that's early to mid 2000s), it ran things fine up until 2010 came. Granted it had a few virus invasion and the fan was incredibly noisy, and I burnt the power cable, but it kept up. I remember reading about programming in general in the early 2000s - optimization is almost always one of the things they tout.

So, with the rise of game engines, have we thrown optimization away in return of modularity ? I know, we have to keep up with the times, and it was almost an impossibility to update things online (your experience might differ but I still remember unspooling a long telephone cable to get the internet and we can't receive telephones during that), but isn't that just locking people out of the game itself ?

Or maybe I've missed something ?

EDIT : And now I hear 32-bit support is dropped off KSP... Sign of the moving times isn't it ? Just like you can feel the wind.

Spoiler

digital_resource_lifespan_2x.png

 

Edited by YNM
Link to comment
Share on other sites

Well, if you want to create an own universe with physics and everything you're probably better off with an own renderer uisng libraries and APIs, which isn't too difficult when using C++/OpenGL. The problem is that a game engine can be like a corset, as we have seen in the case of KSP. Even multi platform development (Windows, Linux) isn't that impossible with the above combination and loader libraries and a lib for event handling.

For simple games like platformers, shooters, grab the flag, crawl the dungeon and do so on apple, windows, linux, android, ..... game engines are almost inevitable, as @Orc said. For things more on the simulation side where the renderer and sound aren't the main problem, but all those algorithms that make up the sim are, one is probably faster in time to market and definitely in execution time with an own engine. That code you know and you don't have to run after the development of an external engine. avoiding trouble with version transitions, etc.

Just my humble dabbler's opinion.

For more info, there is for example gamedev.net with forums etc.

------------

Also, the first renderer is really fun :-) And sooo buggy and primitive ....

Edited by Green Baron
Link to comment
Share on other sites

I don't think many game-developers care too much about the fundemental laws of the in-game universe that much, unless you wanted to create some sort of higly-accurate spaceflight simulator. *Cough*, Orbiter *Cough*

Link to comment
Share on other sites

its a double edged sword. while it does slash development costs by a huge margin, i feel it leads to a bunch of games that are all more or less the same. whats worse is that with such a low bar to entry, your dev team isnt going to have the programming talent needed to really do anything spectacular with their game. there are some games (not this one) that seem to exist without having any programmers what so ever beyond a couple intern level script kiddies. you end up with game devs being nothing more than overpaid modders. now there are exceptions, ksp certainly is one, squad managed to muster a lot of talent while still using an off the shelf engine, so it didnt fall into the trap that lesser studios tend to fall into. 

Link to comment
Share on other sites

  • 4 weeks later...

The need for 3rd party engines such as Unity and Unreal are just an outcome of the rising complexity and therefore cost, of games development.

Until the studio I'm at (very small team) moved over to Unreal recently, I'd only ever used in house engines. These had some benefits for sure, but in the end unless you have the resources to throw a lot of people at developing, maintaining and upgrading your tech, then it's impossible to compete with the 3rd party offerings.

There's just some much that's needed. Rendering, physics, level editing, object set up, animation, art source import, particle system, screenspace effects system, scripting system, revision control integration.

That's not including audio, or the issues of multi platform support.

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...