views:

535

answers:

10

Hi, I like programming but I also like to draw and design nice-looking things, so I thought it will be nice to mix this two things developing some simple 2d games...

I've tried Flash but I don't liked it a lot from the programmer point of view, I like easy programming languages, like PHP (dinamic typing, etc.) or the old days of Visual Basic 6 (it was so easy and fast to create a functional app.!), Actionscript it's more like Javascript... well anyway... I don't like actionscript a lot...

I think not only the language it's important, also the availability of a good IDE for that language, something that helps me avoid doing the same things a hundred of times, or to remember what were the arguments of certain method...

The artistic part it's also important, that's in my opinion the strenght of Flash, but maybe there's something out there best suited for my needs of simple 2D game development. What would you recommend?

Platform: Web

A: 

If you're looking to do something that can run on both the desktop and in a web page...think about giving Silverlight a shot.

You get the familiarity of the .NET framework, Visual Studio/Blend as an IDE, and a lot of the sweet artistic abilities that are familiar to Flash developers.

Justin Niessner
+6  A: 

i would recommend you to take a look at XNA

http://www.xna.com/

http://creators.xna.com/en-US/

Adinochestva
The creator club website has some really nice quickstart project templates you can download and install. They are pretty nice and even suggest ways to do your own extentions to the game. Between those resources and their forum, there is a wealth of knowledge on that site.
Andy_Vulhop
A: 

I have been playing with the canvas element and JavaScript for some simple application graphics.

It is a hog, but I embedded the Gecko engine into a GTK app to display some graphics using the canvas and external javascript.

Not perfect, but hackable and neat.

Aiden Bell
The last sentence summarizes it. Hackable and neat. But I wouldn't recommend it for a beginner game programmer at all. It's a great approach from the standpoint of someone who is well versed in JavaScript and wants to see just what it is capable of, but not at all for someone who wants to make games.
Ricket
A: 

I'd go with .Net. Since you have VB6 experience, you could switch to VB.Net easily, although I'd recommend C# since most of the code samples you'll find are in C#.

.Net's 2D graphics library is comprehensive and relatively easy to learn. Even if you're writing for platforms other than Windows, the Mono project allows you to port a .Net app to Mac or iPhone, plus a few other platforms.

Here's a link to an online book that covers graphics in C#:

http://www.codeproject.com/KB/books/1861004990.aspx

MusiGenesis
A: 

well, i am having fun with java, and java Me , micro edition for celphones smartphones etc. Java is quite good because runs in all OS sistems (minus i phone that have their own object language based ($teve job$)) its a O-o programming , you can write some methods(like the vb functions) and u have a lot of API.

/developers.sun.com/mobility/midp/articles/game/

/java.sun.com/products/java-media/2D/index.jsp

http://www.programmableweb.com/api/java-game-tome

but if you want web based programs , java still cool

i am Using Eclipse IDE /www.eclipse.org

search JME plugin for makin mobiles apps: /java.sun.com/javame/downloads/sdk30.jsp

dont feel fear about eclipse have so many buttons :P try.

ps: all free;

adrien
+1  A: 

If you want a really simple tool, then there is always gamemaker. wont play online natively, but will with a firefox/activeX extension. It is alot more basic than the other tools suggested, but some quite impressive games have been made with it.

Nico Burns
A: 

I've only played with the iPhone version (which is pretty good in itself), but cocos2d might be exactly what you''ve looking for.

http://cocos2d.org/

about

cocos2d is a framework for building 2D games, demos, and other graphical/interactive applications.

main features

  • Flow control: Manage the flow control between different scenes in an easy way
  • Sprites: Fast and easy sprites
  • Actions: Just tell sprites what you want them to do. Composable actions like move, rotate, scale and much more
  • Effects: Effects like waves, twirl, lens and much more #
  • Tiled Maps: Support for rectangular and hexagonal tiled maps
  • Transitions: Move from scene to scene with style
  • Menus: Built in classes to create menus
  • Text Rendering: Label and HTMLLabel with action support
  • Documentation: Programming Guide + API Reference + Video Tutorials + Lots of simple tests showing how to use it
  • Built-in Python Interpreter: For debugging purposes BSD License: Just use it
  • Pyglet Based: No external dependencies
  • OpenGL Based: Hardware Acceleration
Cruachan
+2  A: 

As a student at Champlain College in the Game Programming degree I answer this question a lot. In general your choices here are somewhat limited based because of your desire to use the web,but in general I would say stick with Flash.

If you are looking to be able to spend some time getting into programming games, with the ability to take advantage of an easy pipeline(The implementation of assets into a project) for a short project learn to love flash. Flash allows a one man team to produce interesting work, in a decent amount of time. As you said the strong-suit of flash is the graphical interface, and you are right but it is so much more than that. Flash handles all of the more annoying technical pieces from other 2D development platforms, like animation. Also you can use one of the several different flash IDEs that have been built to solve a lot of the faults of the flash code editor (Such as a lack of good code sense like you said you would like to have.)

Flash Develop Wiki

Flash develop is a pretty good tool that a lot of my co-workers here use (I work summers at a company called the Emergent Media Center). It has some code sense and allows you to edit in a pretty decent IDE. This should solve your dislike of actionscript (As action script is a nice dynamically typed language that is easy with a decent set of helpful libraries)

If flash develop doesn't do it for you though google up some different flash IDEs and try them out. There are a lot of good ones out there. As a side note these IDE are only for the code portion of flash, and will require you to separate your code out in to .as files (like you should be doing anyways)

Anyways good luck with Game Programming!

Bryan Hare
A: 

once you have gotten into game developement, you will find very quickly, that performance matters ... dynamic languages are slow ... and PHP, as you mentioned, is by far one of the worst ... plus the language is inconsistent and the API is horrible ... which is why there is no proper IDE for that ...

ok, personally, i think the AVM2 (actionscript virtual machine 2, i.e. flash player 9 and higher), is a good platform for web based game developement ... as you are a windows user, i would advise you to use Flash Develop, as Bryan did ... it's simply the BEST ActionScript IDE around (ok, some guys might argue that FDT is better, but ... no ... plus FD is free, and FDT is at fewhundred dollars) ... it's so good, that mac and linux users virtualize windows to run it ... an ass-kicking autocompletion, code generation, snippets etc. ... and it's fast, unlike other IDEs providing these features (it feels much better than eclipse and net beans)... FlashDevelop is a plain ActionScript editor ... unlike in the flash IDE, you can't use it for drawing/morphing/tweening ... but you can use FD to write your code and the flash IDE to do the graphics and then compile either with FD or the flash IDE (the latter is easier, since there is a project type that offers a very good work flow) ...

you could alternatively use haXe, which is a high level open source language, that allows compiling/translating to AVM1 bytecode, AVM2 bytecode, PHP source, JavaScript source, neko vm bytecode, C++ source (.NET and JVM are being worked on) ... it also has very cool languages features ... but it requires you to code even stricter, than ActionScript ... on the other hand, the compiler outputs bytecode, that is upto 30% faster ... and haXe can use Flash Player 10 alchemy opcode, that allow very fast and direct memory manipulation ... and interesting fact to mention is that haXe was developed by Nicolas Canasse from motion twin, who are the leading web game developer/publisher in France ...

choosing flash as a plattform seems to make sense to me, because flash is

  1. fast
  2. small
  3. has been used A LOT for web games, so there are PLENTY of resources around, you can use, like physics engines (APE for actionscript, physaxe for haXe), etc. ...

the main flash con to me is, it has performance problems on mac and linux ... but anything that is not developed for mac or for linux respectively, faces these problems ...

about other platforms mentioned:

  • JavaScript: you will REALLY hate this ... every browser implements everything differently ... you will have an awful time ... canvas is not available across all browsers ...
  • Java: it's suprisingly slow in relation to its verbosity, bloated, and it's the wrong language for games ... use JavaFX instead ... but still ... personally i don't like software running on the JVM, simply because of the VMs insane booting time ...
  • Silverlight: in principle, a VERY promising technology, but penetration is still relatively poor and it has practically never been used for web games, so you can't really rely on years of experience of many developers ... i think there are reasons why silverlight did not (yet?) turn out to be the flash killer, although there is a huge .NET developer community ...
  • gamemaker: it's an extra plugin ... don't know, if that's cool with you ... but i like to use things that are widely spread ... if you wanna follow that path, you might wanna check out unity as well ... note that both are for creating 3d games, which is not what you wanted ... so they don't really offer an advantage over flash ...

in any way, you should use a technology and language, that A is developing, and B you are comfortable with, or that you find really interesting enough, to get comfortable with it ...

well, good luck then ... ;)

back2dos
.NET and JVM coming? Where did you hear that? Link?
Nosredna
ooooph, you're asking things :) i follow the mailing list, and recently there were quite some efforts to get on android. apart from that, there were some guys claiming, they wanna go JVM directly, and one guy said he was investigating going through groovy or JavaFX Script. and there were many guys looking into .NET. using either as3gen or hughs c++ generator to create C#. other than that, one could still hope CLR and JVM backends for LLVM will be coming one day, so you just use haxe/cpp to target both :) and our last hope is, as always, nicolas gets bored and writes both in a night or two :D
back2dos
I knew Nicolas mentioned JVM as the next likely target after C++. That's all I've heard. Thanks for the update.
Nosredna
And actually, JavaScript where you set up absolutely-positioned divs to be sprites is a very easy 2D game language for sprite-based games.
Nosredna
that is true, but then, on the other hand, sprite based JS is very big. there is no reliable cross browser vector graphics solution and doing everything with pixels is quite big. also, you should take into account, that for example, when doing the same in flash, you will get compression, because the different sprites composing an animation will be compressed, one against another, while in JS, you will have to load them singularly, if you want to have full control. so yeah, it's feasible, but a) big, and b) things like rotation etc. also need prerendering, instead of just setting a property.
back2dos
i mean, to summarize: IMO JS is cool, and some browser offer great APIs (e.g. webkit is actually very tough concurence for flash), but getting the same user experience across browser is always costy. be it bandwidth, or developement time, or performance.
back2dos
You are putting WAY too much emphasis on getting the most performance out of computers. Ten or twenty years ago this post would be golden, but today with computers at the speeds they are, you really have much more to gain by picking a language that is more natural and allows you to develop quicker, even at the cost of speed. I write OpenGL apps with Java, and no it is not slow actually, it has not been slow for years now and can very much compete with any other language of its kind out there. It allows me to not need to worry about memory management, and focus on developing my game.
Ricket
seems you did not read my conclusion, but ok. i'll respond specififally anyway: you are right, generally speaking. but OTOH, games, as probably one of the last app type, **are** performance critical. especially when deploying 2D webgames, you want to be able to run on the most machines possible. i said Java is to **verbose** for the speed it offers, not that it is too slow as such. BTW, the fast bit about JOGL is the native part :-P. every language has it's pros and cons. and when taking a managed language, code conciseness is the most important to me. for games, performance is a criterium.
back2dos
there has been a first peek at haxe/android: http://www.youtube.com/watch?v=reaHsOpzE-Y, for anyone interested
back2dos
A: 

If your platform is the web, then Flash or Flex are your only real choices. There are plenty of browser plugins for game development, but most of these focus on 3D (like Unity, Torque etc). You can find a tutorial for making 2D Flash games here.

The new HTML5 canvas element could also be used - most of the major browsers (excluding IE) support it, and JavaScript engines are getting to the point where they are fast enough for graphically demanding applications. You can find a Chrome Experiment that shows you how to make a JavaScript/Canvas game here.

alt text

At the end of the day the language you use to make a game really doesn't matter - once you get your head around the few idiosyncrasies of a language, the logic behind them is all pretty much the same. The platform you are targeting will generally define the language and tools you use.

Phyxx