quote:
Original post by Anonymous Poster
I would not recommend python however because of it''s very limited use globally.
What do you mean? Python has a massive user base and it is growing very rapidly. The toolset available is very good, the community is very helpful, and most of the stuff is free. All of the Python tools I use for professional development are completely free to use, including the base runtime and libs, the interactive IDE, debugger, GUI libs (wxPython), OpenGL libs, Win32 extensions, tutorials, etc.
The huge advantage that Python (and many dynamic languages) has over C++ for beginners is the interactive environment. The environment allows you to type in snippets of code and have immediate feedback of the results. This immediacy is something that continues being useful even for experienced professional programmers, who often like to employ incremental development techniques. Often, you will find newbie C++ programmers struggling to get their code past the compiler, in the mistaken belief that compiled code means correct code. It is a small triumph simply to get the type-system to accept what they want to do.
A further advantage of Python over C++ is a reported 20x decrease in the amount of code you have to write to complete a task. Admittedly, that figure is anecdotal, but I have heard that from David Ascher. My own experience also bears that out. I recently recoded a medium-sized C++ application in Python and found a reduction in LOCs of around 50x (IIRC). The C++ was badly written, so I''d expect that to come down to 20x-30x if someone competent had written it. Still, that''s a hugely significant figure. If you are writing less code, that means you are concentrating less on irrelevancies and more on the problem you are trying to solve. That''s no small consideration when you are learning, or when you have a complicated problem to solve.
Furthermore, the fact that in C++ you have to adorn many declarations with type-information is redundant from a functionality point-of-view. It means much duplication of effort and often confusion (in particular for newbies). In all, C++ puts far too much syntax in the way for people to really concentrate on the problem at hand. That is a particular problem when you have not already learned to deal with the syntactic issues.
Another advantage of Python for newbie game developers is the
PyGame library. Unsurprisingly, it''s free. PyGame is very easy to use - a basic screen can be set up in around 10 lines of code. The PyGame libs include such things as classes for sprites, image loading routines which perform necessary translations, ready built collision detection which takes 2 lists of game objects and tells you which ones are intersecting, code for handling sounds and MPEG playback, control devices such as keyboard, joystick, mouse and CD. There are a number of games linked-to on the website and you are free to download the source for each one to see how they work.