Wow I've always wanted to get a foot hold in developing games. But I don't know where to start as the range of my development experiences comes from J2ME apps to web applications.
Are there any YCer's here who are in to game development that could give me a helping hand? Should I start with Flash or something?
since you're from the java world, if you're open to working with MS stuff - they have XNA http://msdn.microsoft.com/en-us/xna/ I think it's a specialized version of Visual Studio for DirectX (PC/Xbox) and you can use C# (which is very similar to Java - just not as much open source libs)
It's a REALLY bad idea. Just because you know how to use a drill machine does not mean you should use a drill machine as a saw.
If you want to make a game for a particular platform, use the tools designed to make games on that platform. You'll learn a lot and it will save you a lot of time learning one technology, and then having to go back to relearn a new technology when you reach a certain stage where your development capacity is limited by the tools you are using.
Er... People do use Python to make games. Well-known ones include Eve Online, Grim Fandango, and Vampire: The Masquerade.
I take it you are advocating learning C/C++ to make games before learning Python? If so, consider why anyone who already knows C/C++ would bother embedding Python or Lua in their game... That would also be "going back to relearn a new technology when you reach a certain stage where your development capacity is limited by the tools you are using". And if you need to know both C and a scripting language to make a game, it doesn't really matter which you learn first... except that by learning the scripting language first you can prototype earlier and faster.
(And, considering the article's context of indie games, being able to rapidly prototype game designs is more important than having them perform well from the start.)
You're right, my mistake. I get the games using the two languages confused -- both are common choices for game scripting. The same logic applies, though.
(Heh... looks like Lua's also used to drive World of Warcraft. Civilization 4 uses Python, as does Battlefield 2.)
You don't get it. You can use ANYTHING to write a game, but a developer should not be limited by the language of the platform. A platform comes with a preferred language. If you want to use the platform, then use it with what it comes with, don't impose your ideas on it.
You say every platform has a preferred language which should be used instead of others because they would be "limiting", and that Python is a categorically bad idea.
But the original poster didn't indicate which platform he was choosing. What if his platform of choice is Pygame? What if it was the .NET CLR (which effectively "comes with" languages like Boo or IronPython)? Wouldn't Python then be the ideal choice?
And before you dismiss Pygame as too limiting to be a platform, note that one of the games in the article is flOw, originally written for the even-more-limited Flash platform.
Check out PyGame. Also check out the PyWeek game development challenge.
Building a game in a week is an invigorating challenge. I learned python during one of the PyWeeks and I'd never made a game before. The best part is that because of the short deadline it isn't some huge amorphous task. Even if the game is crap, you learn something, have some fun, and get to see how more experienced people get things done.
I also like to take a holiday from the languages I have to use for work. I mean, Flash games are pretty hot, but spending some time in a different language is good for the brain. Regardless of tool analogy.
Thank you...I'm trying to learn HaXe along with Python. But Python's syntax is so much easier on the eyes. I just want to rapidly produce a game enough to whet my appetite. And I think Pyglet or PyGame is the way to go.
If you're already got some experience with Java, then applets may be the way to go.
Despite what people say, Java plugin penetration is still very high and games like Runescape show what you can do. The ability to run cross-platform OpenGL in the browser is a huge advantage.
The problem is Java Applets are limited to 64MB of memory unless you have the user go through a horribly unusable process to change that. This include Xith3d, jMonkeyEngine, etc.
The best 3d web engine is Unity3D. Best game engine tool is Flash, even for some small 3D.
You can always have a downloadable client but if you want good web based browser games Unity3D and Flash (AS3 since it is on AVM2 and much faster) are the only way to go.
If you want a pretty sweet Python 3D engine check out Panda 3D.
By the way I am not discounting Java as a viable platform. It works in many cases, Runescape proves that being the #2 North American MMO. But it doesn't do that with graphical quality. It does it with gameplay and the progression etc. As of right now the best looking platforms and easiest to develop for are Unity3D and Flash for the web, if we are talking developing games for the browser.
EDIT: btw those numbers are old, these are newer: http://kaioa.com/node/40 But still 1.6 is about 70% penetration.
Unfortunately, as a closed-source propriety platform that doesn't have any support (nor plans any support) for Linux, I had to discount Unity3D almost immediately.
Flash loses out largely for the lack of good accelerated 3D. I've played with papervision but it's just too slow for a anything decent, that I can guarantee will run on even moderately equipped machines.
While I am with you on open source. Unity uses lots of it to build on such as mono.net (C#, boo, javascript), OGG formats, some collada support and FBX support (autodesk), opengl (also directx), Cg formats for HLSL and GLSL shaders etc. I am betting you haven't tried it, if you do I am sure your opinion will change the pipeline and ability to create quality stuff with it is almost immediate. There is not just another product like it currently in terms of pipeline improvements, apis, ide, size of plugin, shader support etc for the web.
Yeh I actively promote Unity3D after working with it and many other engines like Director, Virttools, jMonkeyEngine etc. I also run a blog called drawlogic where I have mentioned your company flashbang. I work over at Handcranked game at CME working on Flash and Unity. I have been making games for a long time and Unity3D is a great thing when it comes to their pipeline. Keep up the good work.
Is it really that new? Indie games have been popular for quite some time--maybe they're just coming more into the spotlight now, but this trend has been going on for quite a while.
See my post at http://news.ycombinator.net/item?id=398305 for an example of a tremendously successful indie game developer who managed--alone--in his free time (!)--to create one of the most popular franchises in Japan.
I find it funny that the "game degree" is exploding at the same time the indie game scene is. I understand why... but I just wish people would realize that they don't need to go to school to make games on their own.
24 comments
[ 3.9 ms ] story [ 76.3 ms ] threadAre there any YCer's here who are in to game development that could give me a helping hand? Should I start with Flash or something?
Here's a look at some Xbox 360 community games: http://www.xbox.com/en-US/community/events/gdc2008/xna/defau...
If you want to make a game for a particular platform, use the tools designed to make games on that platform. You'll learn a lot and it will save you a lot of time learning one technology, and then having to go back to relearn a new technology when you reach a certain stage where your development capacity is limited by the tools you are using.
I take it you are advocating learning C/C++ to make games before learning Python? If so, consider why anyone who already knows C/C++ would bother embedding Python or Lua in their game... That would also be "going back to relearn a new technology when you reach a certain stage where your development capacity is limited by the tools you are using". And if you need to know both C and a scripting language to make a game, it doesn't really matter which you learn first... except that by learning the scripting language first you can prototype earlier and faster.
(And, considering the article's context of indie games, being able to rapidly prototype game designs is more important than having them perform well from the start.)
EDIT: link: http://www.grimfandango.net/?page=articles&pagenumber=2
(Heh... looks like Lua's also used to drive World of Warcraft. Civilization 4 uses Python, as does Battlefield 2.)
You say every platform has a preferred language which should be used instead of others because they would be "limiting", and that Python is a categorically bad idea.
But the original poster didn't indicate which platform he was choosing. What if his platform of choice is Pygame? What if it was the .NET CLR (which effectively "comes with" languages like Boo or IronPython)? Wouldn't Python then be the ideal choice?
And before you dismiss Pygame as too limiting to be a platform, note that one of the games in the article is flOw, originally written for the even-more-limited Flash platform.
Building a game in a week is an invigorating challenge. I learned python during one of the PyWeeks and I'd never made a game before. The best part is that because of the short deadline it isn't some huge amorphous task. Even if the game is crap, you learn something, have some fun, and get to see how more experienced people get things done.
I also like to take a holiday from the languages I have to use for work. I mean, Flash games are pretty hot, but spending some time in a different language is good for the brain. Regardless of tool analogy.
Despite what people say, Java plugin penetration is still very high and games like Runescape show what you can do. The ability to run cross-platform OpenGL in the browser is a huge advantage.
The best 3d web engine is Unity3D. Best game engine tool is Flash, even for some small 3D.
You can always have a downloadable client but if you want good web based browser games Unity3D and Flash (AS3 since it is on AVM2 and much faster) are the only way to go.
If you want a pretty sweet Python 3D engine check out Panda 3D.
http://www.realchat.com/blog/java-vs-flash/
By the way I am not discounting Java as a viable platform. It works in many cases, Runescape proves that being the #2 North American MMO. But it doesn't do that with graphical quality. It does it with gameplay and the progression etc. As of right now the best looking platforms and easiest to develop for are Unity3D and Flash for the web, if we are talking developing games for the browser.
EDIT: btw those numbers are old, these are newer: http://kaioa.com/node/40 But still 1.6 is about 70% penetration.
Flash loses out largely for the lack of good accelerated 3D. I've played with papervision but it's just too slow for a anything decent, that I can guarantee will run on even moderately equipped machines.
See my post at http://news.ycombinator.net/item?id=398305 for an example of a tremendously successful indie game developer who managed--alone--in his free time (!)--to create one of the most popular franchises in Japan.
I love a good shmup.
Indeed, and the ones with good bullet patterns aren't just fun to play, they're even just fun to look at!
Examples:
http://mirror05.x264.nl/Dark/Flash/extra.html
http://mirror05.x264.nl/Dark/Flash/saextra.html
(Disclaimer: Not my replays. I'm not that good.)