0 votes

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 =)

in Engine by (570 points)

4 Answers

0 votes
Best answer

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.

by (7,934 points)
selected by

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.

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).

Good, I like Math :D

+2 votes

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 :)

by (131 points)

"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.

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.

Thanks, I didn't know him :)

+2 votes

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.


by (192 points)

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 :]

0 votes

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 :p

by (570 points)
Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read Frequently asked questions and How to use this Q&A? before posting your first questions.
Social login is currently unavailable. If you've previously logged in with a Facebook or GitHub account, use the I forgot my password link in the login box to set a password for your account. If you still can't access your account, send an email to [email protected] with your username.