I've studied game programming and design in Windows using DirectX, and a bit using Python and PyGame.

I would like to start developing some games for Ubuntu. Now I would like to build a game called Hnefatafl which is mathematically complex but graphically fairly simple (2D board game). However, I'll need to create some simpler ones building up to it.

Anyway, which of the three languages C++, Python, or Java is most supported under Ubuntu for this type of programming operation? Also, which libraries should I be studying using for such endeavors - OpenGL, the venerable Allegro, or others I'm not aware of yet?

  • 3
    I'm not sure that I would consider any of them more or less supported. Though for Java, you would need to apt-get install default-jdk to gain access to javac. In general, you would likely be working with a library like SDL or PyGame, which you would install separately anyway. – smskelley Nov 8 '12 at 2:12

Python and C++ are the Ubuntu "default" languages, both are more used than java for native development. There is not even one java program in the default install.

Now, choosing between this two is harder. You already have experience with python and pygame, so this is a great choice to get a quick start. You will be productive as soon as possible and your game will be cross-platform. But C++ is way faster than python. If you're game is really into heavy math with complex data structures the performance gain could well worth the extra effort.

  • 2
    Or you could somewhat combine the two. Use Python for the rapid development and extend it with C/C++ modules for the heavy computation. – Timo Nov 8 '12 at 12:00
  • Thanks, I'm actually a bit more at my speed in C++, although I've only worked with DirectX before. It looks like this is an "as I find what works best for a particular application" type choice. Thanks Again. – Combat Hippie Nov 13 '12 at 19:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.