Yet another language question

Started by
6 comments, last by mikeman 15 years, 5 months ago
Hey guys, I feel bad for asking knowing that there are so many similar threads already posted asking which language should be used, but here goes: A couple friends and myself are looking to make a 2d networked game, haven't got all the particulars ironed out but it's likely to be a multiplayer space shooter (think deathmatch / ctf). All of us know how to code (all computer science seniors), but none of us have ever done any real game coding. I've made a pacman clone (pygame), and a tetris game (Java2D), but other than that know very little about choosing a good language / API. So we're looking for a language/API that can handle a fair amount of things happening on screen at once. I suggested pygame, but after doing some research I've read several places saying pygame / sdl are just too slow to do any real-time games (not sure if this is true or not, as I've also read the contrary). Also hoping to be portable, so directX isn't really an option. So the options I've thought of are these: Python/pygame (maybe pyglet?) C/C++/SDL C/C++/openGL Any suggestions / clarifications on these 3, or any new ideas would be appreciated.
Advertisement
I'd look at python first. It shouldn't be too hard to do a mockup of the game to see if it can render X sprites fast enough; if it can process X network connections passing Y traffic... I fully expect it to, and would favor that as your best option if everyone knows the language.
If you're working with Python and are going 2d, then checkout Rabbyt. It can be used alongside PyGame or Pyglet to speed up sprite manipulation.
laziness is the foundation of efficiency | www.AdrianWalker.info | Adventures in Game Production | @zer0wolf - Twitter
Quote:Original post by zer0wolf
If you're working with Python and are going 2d, then checkout Rabbyt. It can be used alongside PyGame or Pyglet to speed up sprite manipulation.
Since the release of Pyglet 1.1, Pyglet includes dedicated sprite and animation support layered over OpenGL. It doesn't offer quite all of the features of Rabbyt, but from a performance standpoint is very comparable.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

Thanks for the responses. Seems to be a general consensus that python / pygame will indeed be fast enough, which is great news.

I'll take a look at Rabbyt, took a brief view of the homepage and it looked impressive enough. Thanks for the suggestion.
Quote:Original post by Shenn
I've made a pacman clone (pygame)
I've read several places saying pygame / sdl are just too slow to do any real-time games


Ok so you have used pygame to make a real-time game but are unsure if it is capable of making a real time game because some people on the internet said it wasn't.

Right, way to think for yourself there. Now pygame does have some performance issues(like alpha blending) but there are plenty of known ways to work around(like using opengl) them as far as I know. I would add c#/XNA to your list of platforms to investigate.
Theres a bit of a difference between pacman (with a grand total of 5 moving sprites) and a networked game with many many players, bullets, explosions, and debris flying around, so I was just looking for clarification before coding up a big project only to find out it would be too slow to work.

But thanks for the C#/XNA suggestion, I'll be sure to take a look at it!
Quote:Original post by Shenn
Theres a bit of a difference between pacman (with a grand total of 5 moving sprites) and a networked game with many many players, bullets, explosions, and debris flying around, so I was just looking for clarification before coding up a big project only to find out it would be too slow to work.

But thanks for the C#/XNA suggestion, I'll be sure to take a look at it!


Well, python is not THAT slow, but be warned that there's a possibility that you will need to fall back into C/C++ for some bottlenecks. I don't know if that will actually happen, but it is a possibility. C#/XNA is not a worse choice, so take a look at it, do some benchmarks for yourself and decide.

This topic is closed to new replies.

Advertisement