In my experience, pygame is kind of annoying because you quickly outgrow it. There's no convenient way to share your game with other people and it is pretty buggy. I think something like Löve2D is good for (obviously) 2D games. It's well documented and not too difficult to use.
It's also not too hard to get started in Unity. I haven't tried Monogame, but it could also be a good option. Both of those use C#, and I believe Monogame can also work with any .NET language.
Yeah. I stopped using pygame after I realised it does the things for me which are rather easy to understand and implement anyway, but leaves the things open to you that are hard to understand and important to your performance (like visibility polygons). This is the opposite of what a framework should do.
It's not comparable. Pygame does some things for you already that you probably need to do yourself in HTML. Depending on what you want to achieve (know what you are doing vs fast success) you might go either route. Android/iPhone is also an alternative to get started.
What specifically about Android/iPhone is an alternative to PyGame? PyGame is a a library (or rather set of libraries). There are many libraries that work on Android and iPhone, including PyGame.
HTML5 is also not comparable in that regard. I think he wanted to know about an area where to start learning to code games. HTML5 and Android are quite comparable from the skill sets required to get your first project done.
In what regard? I'm not really understanding what you're saying. PyGame can be used to make Android games to a limited extent. HTML5 can be used to make games for literally any platform, and can be made into native iOS and Android apps.
But when you compare HTML5 and Android... one is a mobile platform and the other is a programming language. That's where my question lies. There's no one programming language you need to use for iOS or Android. Android and iPhone are not programming languages.
All are tools to make games. HTML5 is not a programming language. It's a markup language, meaning that it describes what different blocks of texts mean. E.g. <b>this</b> is a bold text. The programming language you make games with for your web browser is called Javascript or Ecmascript.
But we are smart people, we don't need to be nitpicking, right? We know that when somebody says they make games "with HTML5" they mean "for modern web browsers using all the tools available, like HTML5, CSS3, JS, AJAX, etc". The same applies to "for Android". The common chain to code an Android game is in the Android Java version. You can off course use other tools as well to get something on an Android device that can execute as a game, but special cases would have been mentioned as such.
In any case game making, at least for the beginner, is not so different, no matter where you start. There's a canvas and you need to get started drawing something on it. You need to track your game state, images and audio data, you need to react to key and mouse events, you need to write a reasonable game loop. And that was actually the point I was trying to make. Pygame tries to take away simple things like the game loop. But things that are always a mess like the key handling (if you use more than WASD and space), lightning, etc seems to be in your hands (at least I haven't found a nice helper for lightning in the pygame docs).
And yes, in the end, making the decision to make games for mobile platforms (Android or iPhone), for desktop platforms (pygame, C++, Löve2D (yes, programming languages and frameworks compared, uh)), or for the web, that's one of the basic decisions you need to make when starting to develop games. The audience is different and the problem space is different in some details that will cost a lot of time to get it stable in the end (e.g., different browsers treating your code differently).
If you're wanting to use Python, it's probably PyGame. If you don't care, I've had a great time with Phaser.js (www.phaser.io) when it comes to HTML5. It's intuitive and the project is pretty active (and seems to be picking up speed).
I second Phaserjs. I switched for my Ludum Dare attempts and it's been great to work with. PyGame's distribution story for events like Ludum Dare was pretty horrible.
Pygame is a great tool to learn about the basic concepts of game developing. It's simple to learn and there is a ton of content online to help you.
Once you're done grasping the basics and are able to implement a few standard games using simple tools you should consider moving into more commercially appealling tools, if that's your endgoal of course.
12 comments
[ 3.7 ms ] story [ 40.3 ms ] threadOr is it better to use HTML5 these days? I wonder if someone could write something to compile pygame to HTML5?
It's also not too hard to get started in Unity. I haven't tried Monogame, but it could also be a good option. Both of those use C#, and I believe Monogame can also work with any .NET language.
But when you compare HTML5 and Android... one is a mobile platform and the other is a programming language. That's where my question lies. There's no one programming language you need to use for iOS or Android. Android and iPhone are not programming languages.
But we are smart people, we don't need to be nitpicking, right? We know that when somebody says they make games "with HTML5" they mean "for modern web browsers using all the tools available, like HTML5, CSS3, JS, AJAX, etc". The same applies to "for Android". The common chain to code an Android game is in the Android Java version. You can off course use other tools as well to get something on an Android device that can execute as a game, but special cases would have been mentioned as such.
In any case game making, at least for the beginner, is not so different, no matter where you start. There's a canvas and you need to get started drawing something on it. You need to track your game state, images and audio data, you need to react to key and mouse events, you need to write a reasonable game loop. And that was actually the point I was trying to make. Pygame tries to take away simple things like the game loop. But things that are always a mess like the key handling (if you use more than WASD and space), lightning, etc seems to be in your hands (at least I haven't found a nice helper for lightning in the pygame docs).
And yes, in the end, making the decision to make games for mobile platforms (Android or iPhone), for desktop platforms (pygame, C++, Löve2D (yes, programming languages and frameworks compared, uh)), or for the web, that's one of the basic decisions you need to make when starting to develop games. The audience is different and the problem space is different in some details that will cost a lot of time to get it stable in the end (e.g., different browsers treating your code differently).
Once you're done grasping the basics and are able to implement a few standard games using simple tools you should consider moving into more commercially appealling tools, if that's your endgoal of course.