Adviced for a no code exp?

Simply copying isn’t the most reliable or best way to learn.

In Mike McShaffrey’s book Game Coding, he mentions one difference between university educated game programmers and those that were self-taught:

Self-taught coders ‘…tend to design and code things before they realize that someone has already solved the problem and posted the code on the internet somewhere…’ (Shaffrey, 2005, p.4).

Copying isn’t necessarily always a bad thing. In art, for example, it is only by imitating the great masters of the past that we may become masters ourselves. When one learns Latin, at university, rote, repetition, and learning parrot fashion is the way all Latin students learn, until they are able to pass exams, and prove that they have learned the subject matter.

Equally, I do take your point Tomcat, and it is a very important point you make:

It’s horses for courses: whatever works best. I am great at writing narrative, translating languages (actual languages, not programming ‘languages’ [English]), coming up with news ideas, playing and recording music. My strengths do not include mathematics, or having the patience to code without having to take regular breaks (becoming frustrated with it not working). One does one’s best with the tools one has. I even bought a book recently on learning how to draw (a useful skill, for a game creator).

There’s a difference between reproduction (when the goal is simply copying), as in the visual arts (paintings), where people even draw from photographs, and creation something that didn’t exist before (programs, algorithms) — these are different approaches in terms of both learning and goals; in the latter case, understanding is essential.

This painting was done by a self-taught artist friend of mine (Michael Devlin Taylor). I bought it off him the first day we met, when he noticed that my album cover was the same painting.

It is signed ‘study’ because he was learning how to paint at the time. It was originally by Pablo Picasso.

Mike (‘Don Devlin’) now is the greatest artist in the whole town he lives in, where I’m from (and there are a lot of artists there, good ones). All his works are originals.

I’l be blunt, as per usual.
If you’re severely math-averse - game programming is probably not for you.

You can fumble your way around for a while but your proficiency and the ability to come up with creative problem solutions or even good game designs - will be severely limited.

The clue is in the name. Games run on computers. Computers… well… they compute. That’s all they actually do. Although computing is not the essence of math, telling a computer what and how to compute is done to a large degree through the language of math. Your thinking needs to be math-inclined. I’m afraid there’s no way around it.

In game programming, the math that’s predominantly used is limited to very specific branches of applied mathematics. The areas you need to be reasonably fluent at are:

  • basic algebra
  • analytic geometry
  • trigonometry
  • vector math
  • the basics of calculus (optional but quite useful)

It may sound scary at first, but all of that is at most the high-school level math, relatively easy to understand. There are numerous good and free courses that cover that stuff. It all has direct and almost obvious applications for many things we see in games. As you learn a new math concept, you can look up what for it’s typically used in games, and make little playground projects in the engine to test it out in practice. Learning math can be quite fun when you get some immediate useful results.

Luckily, game dev is a multidisciplinary endeavor. You can work on the parts that don’t require math, like visuals, audio or storytelling, and team up with people who have no problems with math. Although those other disciplines also come with their own set of fundamentals that need to be learned in order to do them well.

However, if your aim is to make games as a solo dev, it’ll be very hard if you’re afraid of math.

As for memorization, that’s probably the worst way to go about learning programming. It’ll burn your mental capacities fast. The aim of learning should be understanding the underlying concepts, instead of rote memorization of every single manifestation of those concepts. That’s a much more efficient way to learn. When you understand a wider concept, the details are easy to look up in documentation, on the web or via a chatbot.

For example, if you have a good understanding of what an array is, you’ll be able to automatically solve a wide range of seemingly unrelated problems that all require organizing data into arrays. It’ll be obvious to you that all those problems belong into the same family of problems solvable by arrays.

Programming since I was 6. 40 years now. Understanding how formulae work is different to crunching numbers yourself. How many coders do you know use abaci or Arabic multiplication?

Well that was my point exactly. Computers will crunch numbers for you but you need to tell them how. When we say “math”, we almost never mean doing manual calculations.

It’s also important to have a general intuition for correctness, you should be able to say, generally, if a value is reasonable and what might be wrong about it

Ultimately programming can feel very daunting to learn at first, but it’s like any language something you need to spend time and effort with to get fluent, and generally I’d recommend learning by doing things you’re interested in and avoid toy examples and pointless exercises

So was your Quintilian quote meant to be divergent or convergent with my post you replied to? It can be interpreted both ways. It’s also sort of misplaced here.

In game programming we use applied mathematics as a tool. For the most part, we have no need for inventing new core math stuff. That’s what mathematicians are for, although there are exceptions. Sometimes a new core math concepts do arise from the needs of applied math. In the past it was perhaps much more common than today when math became more abstracted and self centered (case in point, the invention of calculus that originated in physics)

Using tools someone else built is not “imitating”. We can invent original non-math things though, like gameplay, using non-original math. If your math knowledge is poor, you won’t be able to wield it creatively in other disciplines that require its usage as a tool.

If copying strange, incomprehensible symbols is enough, then you can become an artist, but not a mathematician. That’s the main difference between studying the sciences (which require understanding) and the arts.

Funny to bring up a chinese room experiment as proof of learning, when it is significantly more often an argument against learning.


Blindly copying is a bad way to learn something, anyone following a tutorial should alter it in some intentional way to learn more out of it. Pre-internet programming magazines had basic games you could type out, you’d have to wait for the next issue giving plenty of time to modify the program on your own.

You can learn to program at any age, there was a strange “too old to program” you must be a child-prodigy to touch a computer ideology floating around for a while, I think only because there was a perfect age of kids that could play with computer programming and learn it young and experiment while shortly after programs have become much more complex, magnitudes larger, and still it’s really not that hard to “catch up” as languages change and new tools are developed.

It’s also worth noting you can absolutely program something badly, you can still make games and very fun ones none the less! Even hit games have gotten away with terrible code written by self-declared non-programmers. But you do not have to make hit games, make games for yourself!

It could be worse. I could be visual scripting. :rofl: