Python or C++ For Quick Game Development

Started by
13 comments, last by moff 14 years, 11 months ago
I'm interested in developing some small to mid-size games that run on Windows. However, it would also be nice if they were cross-platform and I could port them to different operating systems with changing only a little code. I narrowed down my choices for game development to Python and C++. I've been programming for the last three years and I have used C++ before (it was my first language). I have also tried a little of Python and it seems like I'm a lot more productive with Python than I am with C++ and other languages. Recently I've started web development with PHP and MySQL and that's what I'm currently doing. However, I want to move into game development; more specifically, I want to be able to create a simple 2D sidescroller or shooter, and later (when I gain more experience) possibly a small 3D game. Anyway, choosing between C++ and Python is tough for me. If I use C++, then I'll use OpenGL for graphics and SDL for input and sound. I have some experience with SDL but almost none with OpenGL, but if I go down the C++ route, I will get started with learning OpenGL. On the other hand, if I use Python, I will use PyGame for graphics, input and sound. The problem is, I'm not sure which to choose. If I use Python I'll be more productive, but I might not have as much control over my program as I would with C++. With C++, I would probably have more control, but then I'll be less productive, one of the reasons being that I'll have more problems coding with C++ than I would with an interpreted language. So, which one should I choose? I don't have much time to spend in game development so the quicker I can finish my games, the better. But, I also want a good amount of control over my programs and be able to create larger and more complex games when I have more experience. Any advice or help would be appreciated. Thanks.
Advertisement
You keep bringing up the issue of control. Perhaps you could give us examples of control issues you would have in Python that you wouldn't in C++.
Python's a no brainer IMO.
Then again maybe I'm biased since I did do a tutorial on Python and Pygame a while back here.
Anyways, you can use OpenGL with Python so that's not an issue here.
PyOpenGL is the cross platform Python binding to OpenGL and related APIs.
See that's the great thing with Python is that you really have no excuses with all the existing bindings available and if there isn't one there is SWIG you can use.


[size="2"]Don't talk about writing games, don't write design docs, don't spend your time on web boards. Sit in your house write 20 games when you complete them you will either want to do it the rest of your life or not * Andre Lamothe
Nothing about C++ encourages "quick" anything. Certainly not making games quickly.
SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.
i would recommend using python for the 2d games and then c++ for the 3d, my work with python has been small but i've noticed the more math crunching that you are doing the slower its gets, you may want to end up using a mixture of python and c to handle graphics
0))))))>|FritzMar>
Python and SFML no question about it.

Only hook is figuring out how to install PySFML. Bleck, I managed to get 1.3 working on Python 2.5 (I have a thread about doing so if you want to poke around in my history), but I couldn't get 1.4 working on any Python. :/ It's worth it, though! Outclasses PyGame pretty handily, IMO. And outclasses C++ in a blink for those sorts of projects (or nearly any projects, for that matter).
Actually, if you want 3D, I would recommend Panda3D, which comes with Python. It's a heavy duty 3D rendering engine with most of the bells and whistles you want. You can also write C++ extensions if you want. Disney uses Panda 3D for Pirates of the Caribbean, and a previous version for ToonTown Online.

The main problem when I looked into it a year ago was that the 3ds Max exporter wasn't quite up to snuff, despite having been re-written recently. Trying to export skeletally animated characters didn't work right. I see that they just released a new version (1.6.1) and that they claim COLLADA support, so that may be less of a problem now.
enum Bool { True, False, FileNotFound };
Why don't you use Panda3D? It's Python/C++ (encourages Python but possible with C++) and if you're making quick games you'll want to use an engine.

If you're more interested in Engine programming then go C++.
Quote:Original post by Ntvu
I'm interested in developing some small to mid-size games that run on Windows. However, it would also be nice if they were cross-platform and I could port them to different operating systems with changing only a little code. I narrowed down my choices for game development to Python and C++.

Did you consider Flash? It's a viable option, and can be pretty fast to work with.

Quote:Anyway, choosing between C++ and Python is tough for me. If I use C++, then I'll use OpenGL for graphics and SDL for input and sound. I have some experience with SDL but almost none with OpenGL, but if I go down the C++ route, I will get started with learning OpenGL.

You don't need to if you don't want to - there are various engines and frameworks out there that can do the heavy lifting for you. You still need to learn how to work with them, but you'll be up and running much faster. I'm currently using Ogre 3D (for 2D, actually), but Haaf's Game Engine is interesting too.

Quote:On the other hand, if I use Python, I will use PyGame for graphics, input and sound.

Pyglet is another option you may want to look into. And Panda 3D is good for 3D games. Whatever you pick though, it'll allow for rapid development indeed.

Quote:So, which one should I choose? I don't have much time to spend in game development so the quicker I can finish my games, the better. But, I also want a good amount of control over my programs and be able to create larger and more complex games when I have more experience.

Sounds like time is currently more valuable to you than 'control'. So go with Python for now. If your needs or requirements change in the future, then pick a language that suits those needs - when those needs arise.
Create-ivity - a game development blog Mouseover for more information.
Quote:Original post by Ntvu
The problem is, I'm not sure which to choose. If I use Python I'll be more productive, but I might not have as much control over my program as I would with C++. With C++, I would probably have more control, but then I'll be less productive, one of the reasons being that I'll have more problems coding with C++ than I would with an interpreted language.


What do you mean by "control". What are you really after when you say that?

This topic is closed to new replies.

Advertisement