It is currently Sun May 26, 2013 3:03 am Advanced search

Selecting a cross-platform language

Non-project-specific matters-- talk about art, music, writing, coding and the creative process.

Selecting a cross-platform language

Postby Magicked » Wed Jul 27, 2011 8:43 pm

Hello everyone! This is my first post. :)

One of the biggest issues I'm struggling with right now is picking a programming language and the game libraries associated with that language. I find there are a lot of options out there, and it is very difficult to determine whether I will be wasting my time with some and not with others. Recently I've looked at newly released indie games on Steam and figured out what they've used. Frozen Synapse used Torque, Terraria used XNA, Dredmor used SDL (assuming C++), and Minecraft (not on Steam obviously) used Java with LWJGL.

I'm reasonably familiar with several languages - Java, C/C++, Python, Ruby (Java is my strongest), but my knowledge is not outstanding with any of them, especially when dealing with external libraries. How would you recommend I make a decision? I only have a couple criteria right now: I'm going to be working in 2D, and I want to be able to do cross-platform development. I'm also not sure whether I would want to use a premade engine or "game builder", because I think I will run into their limitations, but I might be convinced otherwise. :)

Thanks in advance!
User avatar
Magicked
 
Location: The Metaverse

Re: Selecting a cross-platform language

Postby FuzzYspo0N » Wed Jul 27, 2011 9:16 pm

I have found that there is always a compromise. There are also many many options in terms of frameworks. The question is where are you going to be first (which is the target platform) and how hard it would be to get to the others.

For example, you can get on many many platforms with C++, except xbox (without a dev kit, i mean) and windows phone 7 for example. If those aren't a goal at first, its easier to stick to c++ and get as many as you can with one code base, and then figure out the rest later when you need.

The question is which option lets you finish and release the game, on the most platforms soonest. Right?
User avatar
FuzzYspo0N
 
Location: South Africa

Re: Selecting a cross-platform language

Postby Darien » Wed Jul 27, 2011 9:26 pm

If you're sticking in 2D and you want cross-platform compatibility, well, as long as the platforms you want don't include iOS, I think Flash is probably the way to go. AS3 is quite similar to Java, and there are tons of libraries you can use to make things simpler for yourself.
User avatar
Darien
 
Location: Greenfield, MA

Re: Selecting a cross-platform language

Postby Magicked » Wed Jul 27, 2011 9:58 pm

FuzzYspo0N wrote:The question is which option lets you finish and release the game, on the most platforms soonest. Right?


For the most part. I also don't want to be limited (too much) by overly-restrictive game engines, and I want the game to run well on its platform. Another thing I forgot to mention is I'm targeting PC-only (as in Mac, Linux, Windows) for now.

Maybe I should just jump in with both feet on C/C++. I've been looking for an excuse to understand it much better than I do now.

Darien wrote:If you're sticking in 2D and you want cross-platform compatibility, well, as long as the platforms you want don't include iOS, I think Flash is probably the way to go. AS3 is quite similar to Java, and there are tons of libraries you can use to make things simpler for yourself.


Hmm, I hadn't thought of Flash. One of my goals is to eventually release a game through Steam or a number of other channels for sale. I don't think I would do that initially because I wouldn't expect my first games to be high enough quality, but hopefully some day. As I understand, Flash doesn't lend itself to this model very well. (Correct me if I'm wrong though!)
User avatar
Magicked
 
Location: The Metaverse

Re: Selecting a cross-platform language

Postby Ian Clevy » Wed Jul 27, 2011 10:22 pm

Hey,

XNA will only get you XBOX and PC.
Java and SDL will only get you Linux, Windows and MAC.

I think C++ is the best place to start if you really want all platforms. However, I also think C++ is a hard chunk, and it will take you longer to get a game working than with anything else. You know Java better and it is easier. I don't know much about perfomances with Java, but Minecraft seems to run well. Java will be harder to port to consoles though ( if ever you want to ;-). )

Hope this helps. :-)
Ian Clevy
 
Location: France

Re: Selecting a cross-platform language

Postby Isaac » Wed Jul 27, 2011 11:20 pm

C++ is a great language for cross-platform development, but it's also a very difficult language to wrap your head around if you've never done anything like it before. Java is cross platform, but in my opinion it's a pretty terrible language for game development. You want to be able to try stuff out quickly, but Java puts so many roadblocks in front of getting stuff to work (even if those roadblocks were intentional), that it makes game development a pain. It's also a little slower than C++, if that's a worry.

Basically, it's hard to make a wrong choice. Look at your game, decide what you need, make a list of the tools that can fit those needs, and pick the one you like best.

Flash is also a good choice if it fits your needs. It can be pretty slow.

tl;dr pick the platform that a) fits your needs and b) you understand and enjoy. It's really easy to get caught up in "what other people use".
User avatar
Isaac
 

Re: Selecting a cross-platform language

Postby Magicked » Thu Jul 28, 2011 12:10 am

Thanks for the suggestions. It's definitely easy to get caught up in what other people use and what is the "best" tool, but I just need to pick something that will do the job and get to work.

I think I'll dive into C++ and get better with it, and most importantly, start building a game. :)
User avatar
Magicked
 
Location: The Metaverse


Return to Process

Who is online

Users browsing this forum: No registered users and 0 guests