How to improve at programming games

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By DodoIta
:warning: Old Version Published before Godot 3 was released.

Big question today!

So, I’ve been studying computer science at university for almost 4 years. 6 months ago I decided I really wanted to make games, at least try, picked Godot Engine and started playing around. Although, unfortunately, I can’t do this full time, I can’t shake the sensation I’m doing this wrong. I feel like I’m wasting time.

Thus my question is: how does one learn to code games? How to improve with gdscript? Would you advice reading books (not about game desing, just game programming), watching tutorials, making simple games, etc?

Thanks for any help =)

:bust_in_silhouette: Reply From: PugMasterPug

I do not know if this will help, but I think that to get better at godot and gdscript you should just create games, for each game you will get better and learn something new, when you create games you become more experienced, there is no way to instantly get good at something only practice works.

I recommend trying to recreate some famous but simple games (Super Mario Bros, Tetris,etc…)
Hope it helps :slight_smile:

“I recommend trying to recreate some famous but simple games (Super Mario Bros, Tetris,etc…)”

Yes that is what I started doing to learn Godot. Cloning my favorite game as closely as possible. Fortunately that game is 2D.

@DodoIta
I also recommend you watch some of the Hand Made Hero video series. He teaches a way of programming he calls Compression Oriented that I found very helpful.

whooshfrosted | 2017-05-12 06:17

Thanks, I didn’t know him :slight_smile:

DodoIta | 2017-05-12 13:38

:bust_in_silhouette: Reply From: eons

Programming logic on games usually relies on math, physics, not much about optimization or perfect results as a normal program, the result must be to try to make a good gaming experience, not a flawless application.


If you want to focus on programming you need something to program, that leads you to learn about game design.

Also when programming a specific mechanic you need to test it and fix it from the design first, then programming (if was not made to fix without touching the code).


Other things you can try to learn is to program plugins and tools (something used on all complex engines like UE4, Unity, Godot), plugins, utilities, etc, is becoming the principal use of programmers, to make life easier for the different kinds of designers.

Also the use of external libraries and modification of the engine for optimizations.


Programming shaders could be a good way to use CS knowledge too.


My advice, if you don’t want to learn about design (which can open a bit your mind on how to face some challenges) is to try to replicate mechanics of other games, even if should be a work of a mechanics designer, it can help you to discover some tricks.

Also, if you want to program, don’t stick to GDScript, using another language in the same paradigm can help you to develop different techniques too.

Exactly, my problem is that I tend to create the best possible code because I have been taught that mentality. That made me waste a lot of time and got me a lot of frustration. Maybe I should focus more on just making things work.
I’ve never thought about programming shaders, I’ll definitely take a look!

Complete answer as usual, ty.

DodoIta | 2017-05-12 13:31

Making a game is like making a movie, it needs to feel good but behind the scenes could be a mess.


Other parts that require a good design is the AI design, coding an AI is mostly straightforward but designing one is where the real “programming” takes place (and is useful not only for games).


And about shaders, these are math heavy but is fun to mess with them, also on godot 3 can be used to manipulate particles (and the language more friendly with other implementations).

eons | 2017-05-12 16:31

Good, I like Math :smiley:

DodoIta | 2017-05-12 19:05

:bust_in_silhouette: Reply From: gtkampos

Another sugestion is to follow video tutorials, you can learn new stuff, even of things that you already know. For example, this brazilian channel is really good, and I em learning a lot from there.

https://www.youtube.com/channel/UC9leBtpltYJIqyvPLDabGwg

Unfortunately I don’t speak portuguese, but I’ve been following a lot of tutorials from YouTube, a couple of them are also part of this Q&A, which is really great :]

DodoIta | 2017-05-12 13:37

:bust_in_silhouette: Reply From: DodoIta

Thank you all for responding!
I hope I can help building an even more awesome community =]
And for those who’ll read this later, feel free to reply :stuck_out_tongue: