IREFUSE :
So I'm looking to dip my legs into programming/coding to see if I enjoy it
So i'm wondering where to start on this. So I want to know what type of programming has to go into making games. To name a few examples would be, fire emblem awakening, skyrim , skullgirls, and others. So I don't know much about this topic but hoping to change that so where would you guys recommend someone start at?
I heard python is a good starting point for this so maybe that?
3D-modding is also used but not sure if that counts as programming but also an interest ?
And one last question, what is the extend of programming ?
If you're interested in making a career out of game development, there's one -- and only one -- path to get there.
Start with C. It's a monstrously powerful language that's narrow enough to learn easily yet deep enough to let the programmer do whatever he or she wishes to do. Getting results with C takes a long time because the language is essentially a portable assembler. If you want something done right, do it in C.
Once you're comfortable with C, start learning C++.
Do not attempt to learn C++ before spending a substantial amount of time with C. C++ was designed with C compatibility in mind (many compiler infrastructures use the same toolchain and driver for both), but they are philosophically different languages and it's very important to learn not only what those differences are, but why those differences exist. Every time I hear someone say "Why would I learn C when I can just learn C++, that way I'll know both?" I want to slap that person with a 2x4.
C++ is a trial by fire. It is an excruciatingly deep and complex language with all sorts of gotchas and caveats that take years to master. There's a reason why C++ is the dominant application programming language, it does the job best but it requires a knowledgeable individual to take full advantage of the language's capabilities.
Python is a scripting language, and like other scripting languages it's fine for a quick and dirty application that is only executed periodically and where runtime is not important. It is not fine (in fact I would argue that it's downright terrible) at teaching good practices.
Part of the spirit of C (and this is one of the reasons I recommend learning it first) is that it presents only a very small handful of different ways to perform the same task. Out of these small handful of different ways, only a very small number will be optimal or desirable. C (and to some extend C++) tend to push programmers towards better practices through successive reinforcement. Scripting languages on the other hand tend to allow programmers to be lazy. Python in particular allows programmers to be
extremely lazy. This is fine for a transient application, but it is not fine for a game that uses time sensitive operations.
Java and C# (and other CIL compatible languages) are a middle ground between machine languages and scripting languages. Both of these languages are considered to be "managed" in that they run on top of an existing process (called a virtual machine, not to be confused with OS virtualization) rather than on the metal itself. This allows the language runtime to assist with certain aspects of design, such as managing memory (real programmers manage their own memory). Like C++ I don't recommend learning either of these as a first language, but for a different reason. Both Java and C# share the C syntax yet lack the extreme complexity of C++. This is good. Both Java and C# have enormous standard libraries that require 1,000+ page reference books to understand. This is bad. With C++ it's easy to get lost in the language grammar, but with Java/C# it's easy to get lost in the language's standard library.
In summary,
Start with C. Stick with it until you're comfortable making some basic components. It's tough, but it's essential to game development.
Then, move on to C++. It should be very easy to pick up if you've come far enough with C. If it's too daunting, go back to C or move on to Java/C#.