IREFUSE

Honorable
Nov 24, 2013
10
0
10,560
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 ?
 
Solution


It's not possible to learn anything about programmer or computer science from youtube videos. Forget that youtube even exists.

As for websites, absolutely. There are a ton of very good teaching websites around. Learn C the Hard Way is one that I recommend.

I also recommend the book C Primer Plus as it's very affordable and very thorough.

Computational theory is best learned in a classroom setting. It is possible to self-teach a lot of CS topics but I would recommend against it. CS does not overly concern itself with...

turkey3_scratch

Estimable
Herald
Jul 15, 2014
571
0
5,210
If you have completely no programming experience and are very doubtful, check out Scratch http://scratch.mit.edu which is an object-oriented language. You can make 2D games in it, and though it does not require syntax to memorize, it can be very very helpful in understanding the logical structure and ways of programming. Do not be fooled by the childish look of the site, it can be extremely helpful to new programmers. Just hit Create at the top to begin creating! There is a lot more to coding than knowing syntax, a lot more, and Scratch provides the tools for learning how to apply logic to accomplish a task or game.

Once you get good with Scratch, I would actually learn web design along with Javascript on http://codecademy.org and from there after that you can learn Python. Both Javascript and Python can make games, I prefer Javascript.

Once you master web design/javascript and python, you can move onto Java. Java can be used to make games and was used in Minecraft. However, don't rely on Java too much. Yout can also learn Flash if you want, but both Flash and Java are starting to die out some.

Then learn C# or C++ which is the ultimate for all PC games and Windows programs. If you master these after a decade, learn Assembly.
 

IREFUSE

Honorable
Nov 24, 2013
10
0
10,560
Thanks for the respond but syntax is like the where you type in variables into {} these things right?
Also I'm 16 ,so around 26 if I put effort into this I'll learn all this?
 

Pinhedd

Distinguished
Moderator


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

IREFUSE

Honorable
Nov 24, 2013
10
0
10,560
Thanks for the long it was quite helpful. So I guess I'm starting on C.
One last question can I self teach myself on this topic, like go on YouTube and see a bunch of videos/learn from a website?
 

turkey3_scratch

Estimable
Herald
Jul 15, 2014
571
0
5,210

Syntax is memorizing codes, but whether you memorize all codes or not, you need to know how to logically think and use those codes in an efficient manner.
 

Pinhedd

Distinguished
Moderator


It's not possible to learn anything about programmer or computer science from youtube videos. Forget that youtube even exists.

As for websites, absolutely. There are a ton of very good teaching websites around. Learn C the Hard Way is one that I recommend.

I also recommend the book C Primer Plus as it's very affordable and very thorough.

Computational theory is best learned in a classroom setting. It is possible to self-teach a lot of CS topics but I would recommend against it. CS does not overly concern itself with implementation, so it is usually language agnostic. If you do enjoy your time with C and are considering making a career out of it, consider going to college/university for computer science or software engineering. If you're diligent for the next year or two you will have a solid leg up over your classmates.
 
Solution