3 ms·
If you really do want to be a professional game programmer then I'd recommend biting the bullet and starting with C. It's a fundamental requirement for programm
by ajg1977 16y ago
If you really do want to be a professional game programmer then I'd recommend biting the bullet and starting with C. It's a fundamental requirement for programmer at any game studio, and it's absolutely the closest interface you can get to the low-level workings of a machine without resorting to assembly. Learning about the heap, pointers, arrays, addresses and offsets isn't particularly fun, but neither is it particularly hard. I would be far more likely to employ a junior or intern with a solid understanding of these concepts, than someone with a fancy python graphics demo but who couldn't implement strlen()
That said, if you do want to dip your toe in the water and figure out if programming is for you, I'd really disagree with the suggestion of using Python as your language, particularly if your intention is to later focus on C/C++. Python is great, but its structure and constructs do not map particularly well to those languages. A better first step would C# (native on Windows, Mono on other platforms). In most ways its syntax is virtually identical to C++ and shares the same project and compile/run concepts. If you are using Windows, you'll also be using a best in class debugger and the same environment as you would in C/C++.
- sukuriant 16y agoOn the other hand, python, at it's very basic level, gets the syntactic mess that you or I are very familiar with, and removes all of it for first-timer's. There are no classes, no functions, just statements. Also, for the "enter a name" and "guess a number" programs, for the beginner, everything I can think of will look effectively the same between the two languages. Furthermore, you can see the results right then and there when you're programming, rather than compiling, running, and repeatedly earning segfaults. That said, the moment they begin to understand the flow of logic, they should move away from that language, so they can comprehend pointers/etc. This is, of course, all my opinion. Dijkstra would disagree with me, and so would many hackers, I'm sure, but wouldn't it be advisable for them to first begin to think in the minuscule steps, like a programmer does, before they have to deal with some of the stresses of C, and, even more so, classes?
- ElliotH 16y agoI couldn't agree more with the middle paragraph. But 'no classes' and 'no functions'? class NewClass: def NewFunction(arg0, arg1): print("Hello, World") Python has both. Pointers wise, I think you can learn them fairly late. I certainly didn't struggle to pick them up after years of using pointer-free languages. (edit fixed my formatting)
- sukuriant 16y agoI meant needing classes. You can program in python without ever looking at them; where as in C#, they're required to do anything. Not needing that extra boiler plate code is just one more hurtle a new programmer won't need to learn before getting into the real meat of development, if they chose to use Python as their first language. I should have been more clear about that.
- charlesdm 16y agoI agree, knowing the basic concepts is very important. As a way to teach OOP you could also use an existing 2D engine and start creating basic games in that. That would be an easy way for people to get something on the screen and at the same time get the feeling that they're actually making a game.
- probablycorey 16y agoI couldn't disagree more. I used to work in the game industry and one of the biggest things we would look for was a passion for gaming and the ability/history of shipping a game. If an entry level candidate developed a game we could download and play, it was almost guaranteed we would bring them in for an interview. It didn't matter if it was text based in C, a simple card game in Python, or a Galaga clone. Sure a background in C/C++ is good, but it was pretty low on the list of things we looked for in entry level applicants. So if you want my advice, complete game of your own as soon as you can, in whatever language works best for you. Pick up the skills and tool knowledge you need as you go along.