Advertisement

Do you think using Unreal Engine could cripple the basics of a begginner programmer?

Started by September 05, 2017 11:46 PM
16 comments, last by Gildar 7 years, 2 months ago

Basic reality is that not everyone works on that low level stuff anyway, and if they do it might only be small sections of it at a time. Contrary to what you might expect not everyone needs to know how to make all that low level stuff like game loops, input handling, physics, etc. Is it helpful to know? Sure! In reality someone with good programming knowledge that gets thrown into even a proprietary engine like frostbite or something will be working in a separate layer from all that stuff, it already exists.

Coincidentally, even if you want to work on that low level stuff, often someone new to industry won't be trusted with it anyway, so you would end up learning piecemeal by working around it, people can get quite good at developing software like that without ever having made their own version from scratch. But at any rate, it doesn't hurt to know.

It really depends on the level-of-detail you want to master.

The same can be set for third-party and standard libraries of a programming languages: if you use them, will it limit your abilities? In the extreme, we can go even further: network protocols, OS, instruction set architectures, till we eventually reach the semiconductor level (and we can probably go even further).

Knowledge and experience with neither of these levels-of-detail will have a bad impact. On the other hand, nothing comes for free. Don't expect that sticking to one domain, will reveal all the secrets of other domains. Translated to your specific topic: don't expect that using Unreal makes you an expert in collision detection and physics.

🧙

Advertisement

My stance is this:

If you're a "beginner programmer", I think you should write a simple game, like Pong or Breakout "from scratch".  Do it one time, and see how much it sucks to write.  Spoiler alert:  It will suck :-D The good news is: it's a simple enough game that you can finish it; or you can get far enough to realize that you don't want to finish it, because writing every-single-aspect-of-the-engine sucks:  The game loop; input/command handling; object/asset/resource management; sound/music; collision detection; physics; graphics/rendering; etc... 

Then, write the same game in Unreal Engine, and see how much faster you go. If you're a complete beginner, the development time might be longer than you think (time spent learning Unreal Engine/API).  But you'll quickly find that writing a game using Unreal goes WAY faster than writing the game and also the rest of the engine

Unless you WANT to write engines (like me:  I so happen to enjoy writing the engine bits).  Then, by all means, write the engine bits, and then write the game, using your own engine.  But that's not necesary to make games.  Indeed, some kits allow you to make entire games without writing any code at all.  Using those doesn't make you any less of a game developer (well, maybe less of a software developer, but no less a maker-of-games.. and the goal is to make games, right?)

Just focus on creating a game and making great content. Solve problems as they come. Everything else is needless worry.

To answer your question in the context of "Do you think using Unreal Engine could cripple the basics of a begginner programmer?".

I don't believe it can cripple the basics of a beginner programmer because the word cripple in this context refers to disabling someones ability to program. I've known people that have used drag and drop game engines for years, and started pumping out iOS games after learning objective-C! Just because the engine handled a lot of tasks prior didn't prevent people I've known from programming those same functions from scratch once they learned the language, and understood the library.

To be honest, I started on GameMaker 3 back in 2001 when Mark Overmars was working on it still. I was able to make games, but felt very limited in what I wanted to do (If I wanted to make changes to the engine, I couldn't, I needed to wait for those changes), and always enjoyed re-inventing the wheel to a degree. I ended up jumping into Basic, C++, JAVA, C#, and many other languages throughout the years designing my own engines and editors using low level libraries. The many times I went back to such tools, and even tried some engines, I always went back to coding for some reason, I wanted more control, and to dive deeper. In the 2D world, I have no reason with my code base to even consider any game engine.

I haven't used Unreal yet, but intend to in the future as I have not developed, or intend to develop a 3D engine. However, I only want to work directly in code and avoid using Blueprints. Faster or not, I still enjoy the creative process with code and control. Unreal offers an outstanding deal for those wanting a AAA engine to make games with a very decent licensing package.

Everyone has different goals. Mine wasn't just to create games, but the engine and editors that built those games. I wanted to dive deeper, and be in control. Some people want to develop games with as little low level programming as possible, or even no coding. Others enjoy that process, and many have gained enough experience and knowledge that it's not a daunting task to code their game from the ground up. If someone is happy using RPG Maker, GameMaker, or a game engine, so be it! We're here because we love making games, however you do that isn't important.

Programmer and 3D Artist

I don't believe using advanced engines to make games, and learning to program as a programmer have anything to do with each other.  If you think of each of these as skills in an RPG called "technology career simulator 2017" you would see that having a "designing games" gives a small bonus to checks of the "designing computer games" skill (full bonus for simple indie games, half bonus for FPS/Sports style games) ... and "basic programming and hacking" is a prerequisite for "advanced programming and design" and so is "computer science and programming theory", but the skill "game modding / level design" doesn't require any of those (it does get bonuses from programming and hacking though) ... and "3D game development (using engine)" gets full bonuses from any programming or hacking or modding or asset skills ... but doesn't require any of them.

So what I'm saying ... in a long winded way ... is that these are 2 separate parallel things, that don't form the foundation of each other at all ... but skills in either will somewhat help you in the other, only because they each kind of help you with different aspects of "the big picture" ... a required skill if you want to do things 20 years down the road like "game engine architect" or "lead game producer" (maybe)

If you wanted to do a career in music, learning to play guitar/drums/piano wouldn't be directly preferred skills before learning to use sequencing software, be a sound technician, or DJ.  nor the other way around.  BUT, if you had learned any of those, it would give you a starting point/frame of reference to make learning the other side less like starting from nothing (more of the terms and concepts would feel familiar than when you had done nothing in the field at all).

Advertisement

In my opinion. Learning the basics outside the engine is a good thing. I'm talking about the very basics, nothing in depth. I think this will help you understand problems and how to solve them a bit faster later on. I'm not saying you can't learn programming while working in an engine, but it will probably be easier if you already know enough programming to understand how to read the API documentation.. It will likely also help you to break down and think about the problem you want to solve. (also useful while looking for help). Engines will hide some basic concepts from you that you won't even know you need at some point. 

As said, this will most likely only hurt you short term, as long as you're willing to learn. This can be applied to  different levels of programming languages as well.

SO, the short answer IMO is no, but learning programming languages and concepts outside an engine is a better approach, and should pay off quickly.

 

This topic is closed to new replies.

Advertisement