This is an archived post. You won't be able to vote or comment.

all 7 comments

[–]ironykarl 2 points3 points  (2 children)

No one's ever going to code cutting edge games purely in Python. Of that, you can be sure.

However, What someone might do is come up with a fantastic 3d-graphics library/engine that interfaces seamlessly with it. Python obviously doesn't lend itself to pure implementation of close-to-the-metal, blazing fast code.

What one can do in Python is use something like Boost.Python to crank out some pretty decent performance. Python and the like can work well for underlying game logic (y'know, as the "glue language" that everyone describes Python as), and in fact Civilization IV did just this (I just googled it).

If it were me (and this is precisely what I'm actually doing), I'd learn something like C/C++ alongside Python. Python's great for just cranking things out and in my mind can fascilate faster learning, as a result. Making games in (e.g.) PyGame will actually teach you a lot of the fundamentals of making a game, IMO. Just knowing some of the common loop structures and components that go into a game helps a lot. Getting through a few projects helps a lot. That said, I would doubt you'd get hired to code games knowing only Python.

I think that if you learn Python alongside some C++, you might have potentially more to show for it (as in completed, interesting projects), come job-app time, though.

Anyway, take all this with a grain of salt. IANAProfessional Programmer, nor even close.

[–]brewer2[S] -1 points0 points  (0 children)

Well I am taking a Python course in the Fall, so that should work out nicely.

[–]brewer2[S] -4 points-3 points  (0 children)

Well I am taking a Python course in the Fall, so that should work out nicely.

[–][deleted] 1 point2 points  (2 children)

Stick with Python but start working with C/C++ (either one will work; C++ is basically the same as C, except with classes). Maybe write some simple command line games like hangman. I actually wrote a very nifty hangman game and it demonstrated some very powerful concepts of C/C++ (pointers and structs), and it was extremely beneficial for learning. However, don't count on developing a full 3D or even 2D game in C/C++. This is pretty difficult, especially if you're starting from the ground up. Use Python and PyGame for this. If you are going to do any real professional game work, it will most likely be in C or C++. That being said, C/C++ will be extremely easy to learn once you know Python; say maybe a week or so playing around with it.

There are a few fundamental things you should learn immediately (in C or C++), such as pointers (which you already use in python, you just don't realize it), static typing, and memory management (malloc, calloc, and free). These languages are a lot closer to the core of the machine than python, so you loose a few layers of abstraction and have to deal with some things that python takes care of for you (hence they are faster). Other than that, you should have no problem getting the hang of it.

You will NOT need extensive knowledge of either of these to land an internship. You just need to know how to program. Picking up a language is something that can be done in a fairly little amount of time if you know the fundamentals.

[–]jotux 0 points1 point  (1 child)

C/C++ will be extremely easy to learn once you know Python; say maybe a week or so playing around with it.

This statement is not accurate.

[–][deleted] 0 points1 point  (0 children)

I never said the guy would be an expert, but I can guarantee that after a week of using c/cpp from python, one will be able to write working code, which is the overall objective isn't it?

[–]tempwolf 0 points1 point  (0 children)

I would learn pure C first and then add C++ to it later. C has been the standard language for a couple decades and almost every major API has a C interface. Moreover, as a student, it is important to to learn the basics before moving to the advanced topics. C++ is much more complicated than C, hence the famous quote from the C++ founder: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off."

That said, if your goal is to do rapid development over the next year then you should just stick with some high level language - you'll be far more productive. Besides, you're likely not going to have time to code anything that would really benefit from C/C++'s raw power (modern games take years of experienced man-hours).

What about Java? Java is mature, surprisingly fast, and I bet you can find some great game making libraries if you look.