Advertisement

Why learn game programming?

Started by March 14, 2015 04:16 AM
16 comments, last by Jay Jennings 9 years, 9 months ago

I was thinking, why learn game programming when I can just jump into an engine like Unreal,Unity or game maker and create games really fast?

What advantage do I get from learning c++ and then using SDL to create a game, over using something like Unreal.

Learning to program from scratch, you get 100% control over what you want to create. With an engine like Unity or Unreal, you are more limited to whatever the engine will allow you to create.

Advertisement

I was thinking, why learn game programming when I can just jump into an engine like Unreal,Unity or game maker and create games really fast?

"Really fast" is relative. There is still a lot of work that goes into building, polishing, and releasing a completed game using a pre-existing engine. Yes, including programming, regardless of what form that takes.

What advantage do I get from learning c++ and then using SDL to create a game, over using something like Unreal.

You get an idea of how things work "under the hood" of a game. That can be very helpful when working with high-level systems like Unreal, even if you aren't dabbling in engine code yourself.

One could argue that a more appropriate title would have been "Why learn game engine programming?" as technically, any programming related to the development of a game is considered game programming.

As stated above, you get greater flexibility when you roll your own engine. However, source code is (legally) available for at least 2 AAA game engines that I am aware of which would allow for almost limitless customization.

Writing your own game engine is a huge undertaking, especially if you want it to come anywhere near competing with the mentioned engines. I think that it is a great goal to have, but for someone starting out, your time would probably be better spent learning how all of the pipelines should come together by working with an existing engine. Why try to reinvent the wheel without first understanding how your competitors wheel works?

YMMV

I was thinking, why learn game programming when I can just jump into an engine like Unreal,Unity or game maker and create games really fast?

What advantage do I get from learning c++ and then using SDL to create a game, over using something like Unreal.

Unreal, Unity, etc games still require programming...

I was thinking, why learn game programming when I can just jump into an engine like Unreal,Unity or game maker and create games really fast?

What advantage do I get from learning c++ and then using SDL to create a game, over using something like Unreal.

Unreal, Unity, etc games still require programming...

Unreal still requires a working knowledge of C++. Unity requires a working knowledge of C# or JavaScript. Sooner or later you are going to hit a problem where something like Unreal's Blueprint system won't be able to do what you need it to or you find that you need to extend or add to it. At that point, you are diving head first into code.

"The code you write when you learn a new language is shit.
You either already know that and you are wise, or you don’t realize it for many years and you are an idiot. Either way, your learning code is objectively shit." - L. Spiro

"This is called programming. The art of typing shit into an editor/IDE is not programming, it's basically data entry. The part that makes a programmer a programmer is their problem solving skills." - Serapth

"The 'friend' relationship in c++ is the tightest coupling you can give two objects. Friends can reach out and touch your privates." - frob

Advertisement

A variety of reasons:

  • You're interested in an AAA career and want to learn the kind of fundamentals that can get you a more low level coding job, not just the guy that can use Unity and what knowledge of C# you learned from it, knowledge that is likely missing very large and fundamental powerful tools of the language.
  • You want to create your own games from scratch as a fun learning exercise and don't require the power or complexity that a massive engine comes with.
  • You are an experienced programmer and for reasons such as licensing or the engine not fitting your needs, you'd rather roll your own code.

This topic has been explained in probably hundreds of threads before this one. The point is not "why do other people do it?" but "what are your particular needs." If you just want to make a game as a hobby there isn't anyone stopping you from using something like game maker or a user friendly engine like Unity.

Although to be honest if you're talking about making some fancy 3d shooter and whipping out a large build environment like Unreal or even to a lesser extent Unity, I'd be surprised if you get very far as a one person operation. Those engines are designed for people to make games as a product, they're industrial strength.

I was thinking, why learn game programming when I can just jump into an engine like Unreal,Unity or game maker and create games really fast?

What advantage do I get from learning c++ and then using SDL to create a game, over using something like Unreal.

Don't be fooled into thinking that. Most of the games created using those engines, were made by people with programming experience.

Also... using a pre-existing engine, could easily take just as long as building an engine from scratch. Reason? You spend a good chunk of your time learning the engine, and modifying the living mess out of it so it works for your game.

Unreal is more forgiving and flexible. So you will rarely need to touch it's C++. But it's learning curve is intense.

Unity is not as flexible as it claims. In fact, you will be spending MOST of your time trying to program an interphase on top of Unity's, and working with unreadable (usually non-sourced, or just bad design overall if sourced) code from the market place. It took "Wasteland 2" 2.5 Years to create (The game does not look that complicated art wise. But it had a nasty slew of bugs in it's beta days). and THOUSANDS of lines of code. Interstellar Marines is taking longer than it takes to make an assassin creed game. In fact, Interstellar Marines is still in early access.

Building your own engine means it does what you want it to. And when you get a frame work, you will learn that there is less coding involved from that point on. Think about why it's so easy to Mod something like skyrim, or fallout. It's engine was designed specifically for those types of games. In fact, there's very little difference between the game's structure. And the most they actually have to do is script. Less fighting involved.

I was thinking, why learn game programming when I can just jump into an engine like Unreal,Unity or game maker and create games really fast?

What advantage do I get from learning c++ and then using SDL to create a game, over using something like Unreal.


Don't be fooled into thinking that. Most of the games created using those engines, were made by people with programming experience.

Also... using a pre-existing engine, could easily take just as long as building an engine from scratch. Reason? You spend a good chunk of your time learning the engine, and modifying the living mess out of it so it works for your game.

Unreal is more forgiving and flexible. So you will rarely need to touch it's C++. But it's learning curve is intense.
Unity is not as flexible as it claims. In fact, you will be spending MOST of your time trying to program an interphase on top of Unity's, and working with unreadable (usually non-sourced, or just bad design overall if sourced) code from the market place. It took "Wasteland 2" 2.5 Years to create (The game does not look that complicated art wise. But it had a nasty slew of bugs in it's beta days). and THOUSANDS of lines of code. Interstellar Marines is taking longer than it takes to make an assassin creed game. In fact, Interstellar Marines is still in early access.

Building your own engine means it does what you want it to. And when you get a frame work, you will learn that there is less coding involved from that point on. Think about why it's so easy to Mod something like skyrim, or fallout. It's engine was designed specifically for those types of games. In fact, there's very little difference between the game's structure. And the most they actually have to do is script. Less fighting involved.

Practically all those examples appear to have way more variables in play than what's presented, atleast in my opinion. Or is it just me?
The fact of the matter is if you want to program you have to learn how to program. You can't play an instrument without learning; programming
is no different

Even if you use an existing and established toolset, you are still going to have to write a ridiculous amount of code. You are either going to have to pay someone who knows how to code or learn how to code yourself.

"The code you write when you learn a new language is shit.
You either already know that and you are wise, or you don’t realize it for many years and you are an idiot. Either way, your learning code is objectively shit." - L. Spiro

"This is called programming. The art of typing shit into an editor/IDE is not programming, it's basically data entry. The part that makes a programmer a programmer is their problem solving skills." - Serapth

"The 'friend' relationship in c++ is the tightest coupling you can give two objects. Friends can reach out and touch your privates." - frob

This topic is closed to new replies.

Advertisement