Advertisement

Why learn game programming?

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

The main reason why I decided to program games/graphics when I started out with C/C++ was that it was so much more fun than doing boring exercises in a textbook.

Start with something really simple, like SFML/GLFW/SDl..

Too many projects; too much time

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


Your question sounds like this: "Why learn how to drive when I can just jump into a car and stomp on the pedals randomly?"

You can totally do that! There's nothing stopping you. But you're not going to get the same result as people who actually know how to drive.
Advertisement

You can totally do that! There's nothing stopping you


Well, you know, other than police officers... tongue.png

Sean Middleditch – Game Systems Engineer – Join my team!

I think your first misconception is that there's a difference between programming in an engine like Unity or Unreal and "game programming" when you use a library like SDL or write your own low-level engine. There's not a whole lot of difference in how you program, just in what you're programming. Writing a game from scratch uses the same programming techniques, but you're using them to write things like file loading code or vector math or whatever your libraries don't cover, plus the gameplay code.

I think your first misconception is that there's a difference between programming in an engine like Unity or Unreal and "game programming" when you use a library like SDL or write your own low-level engine. There's not a whole lot of difference in how you program, just in what you're programming. Writing a game from scratch uses the same programming techniques, but you're using them to write things like file loading code or vector math or whatever your libraries don't cover, plus the gameplay code.


+1 for this reply.

"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

In my opinion, it would be advisable to start out with a very simple and back to basics homemade framework (that includes the countless game engine projects on Github et al) and concentrate on loading/parsing/rendering a scene. Then add some models/entities/whatever and learn how to load Lightwave objects or other models.

Then collision detection, without using a physics engine.

I think you will learn more that way than using an existing engine.

Of course, you will soon begin to realize that you will save a lot of grief and effort if you used third-party code, like physics libraries, renderers - or even a full-fledged game engine, like Unity, Godot, Unreal, Panda3D, ...

The problem with jumping right into a fully featured professional engine is that you will have a much harder time grokking it all.

You learn better if you go down to basics.

But, we are all different. :)

Too many projects; too much time

Advertisement

using an engine =/= not having to program! That is something very important to remember...

True, simple games can be done with little programming in any of the bigger engines as soon as you have a basic understanding of how the editor for the engine works... yet try to do something even a little bit more advanced, and you will hit a wall without proper programming knowledge.

How you build that knowledge is a very personal decision... different people pick up new knowledge different ways. Some people will NEED a structured school or tutorial to show them the way, while other just start playing around, experimenting and kitbashing stuff, and looking up things as problems arise. Depending on the type, both might end up with the same amount of knowledge in the end.

Likewise, you CAN just start with a 3D Engine, bang your head against the "virtual wall" of trying to tackle advanced topics, and look up and learn things as you go along. Some people have the thick skulls and patience needed to do it that way, and for those it might be the only way that works for them.

If you are not so frustration proof, and like a smooth gently rising learning curve instead of a very steep almost unclimbable one, you rather follow the common guidelines. Learn to program, do your share of console 'hello worlds' and text adventures, move on to simple 2D games, learn to use the graphics middleware and how the game loop works, then move on to 3D engines with a proper knowledge of what is going on under the hood, and with the ability to go in and code even complex game logic yourself, or write a shader you need from scratch.

Do you want to write a game engine, or do you want to write a game? They are two different things, and if you're wanting to make games, in most cases there are ZERO good reasons to write your own engine.

If you really don't like coding, pick something that doesn't require any/much such as Stencyl or Construct 2. Yes, you're more limited, but tons of fun games have been created with both of those. If you're willing to write some code to make your game, your options open up tremendously.

Jay

This topic is closed to new replies.

Advertisement