Forum Thread
Starting my first hobby game... (Forums : Coding & Scripting : Starting my first hobby game...) Locked
Thread Options
Jan 9 2013 Anchor

But there's a bit of a problem :l

Before you answer the question at the bottom, here's some background information:

I began coding using java around mid 2012. I'm incredibly comfortable with java, and making hobby games is great fun. However, as a major project for both my own entertainment and possibly public application, I need to know what language I should use, or continue using. Of course, using java would be a breeze, since I already know quite a lot. However, I've done some reading and found that XNA/C# is also a great language for indie developers.

Edit: Oh, just some extra information. The game is going to be a 2D platformer, based around solving mysteries and puzzles, finding treasure and so forth. There will be no boss fights, no fighting of any kind, turn based or real time. You can die, however only from natural causes, and the penalty will only be losing a few points and restarting at the point in which you began to take the damage that killed you, so falling off a cliff will result in you ending up back on the cliff, falling on spikes will result in you ending back at the edge beside the spikes. Because of it being a complex puzzle solving platformer with no enemies, I don't think performance will be an issue (Unless of course I'm wrong, but I hope someone will correct me on that)

So, I'd like to ask:

What language should I use?
a) Java
b) C#
c) Other (c/c++, python, etc...)

Thanks in advance

Edit: Respones:
CGO: I'd like to stay away from c++ unless someone gives me some good points of it over Java/C# for the type of game I want to create. Thanks anyways!
Arieas: I am willing to move over to C# as I've read that it's very similar to Java, would not take very long to learn. With that said, I'm not willing to switch over to c/c++ because It's very difficult to learn, and doesn't seem like it would be needed for my game. Thanks a lot!

Edited by: WithM

Jan 9 2013 Anchor

Im not a coder but from what ive heard C++ is the best, but hardest to learn tho

Jan 9 2013 Anchor

Can't really answer directly, but I think it'd be good to plan out what you want to go for, and then pick the language that could be used to accomplish it without being too complicated. You could make something pretty big with Java, but it may not fit if you wanted to do something more intensive for your project.
Still, learning a new language would be no harm.

Could always make use of unity, game ready, so you could use time learning while developing something early on.

Jan 9 2013 Anchor

Thanks! I've edited the thread with some more info, thanks for the responses!

Jan 9 2013 Anchor

java is multi-platform so everytime a line of code is processed, the computer translates it to work both on mac and pc. this sacrifices performance.

Jan 9 2013 Anchor

You said you are really comfortable with Java. Use Java. It's more than adequate for what you want to do. Don't hobble yourself by making a game AND working with a language you are less comfortable in.

Also Guiboune that's wrong. That was Java in 2001. Java does not translate every instruction. Hotspot identifies areas that are performance critical and caches them as machine language.

Edited by: ShinobiNFC

Jan 10 2013 Anchor

I'd go with C++ as it's used...well...everywhere. But then again, so is Java. But if you want to write your own engine, use Java. Unity is a nice engine that uses C# which I hear is like Java. But I'm sure you could find free game engines for Java too, if so, go with Java. If not, pick between if you want to write the engine from scratch or use a free existing engine. But eh, that's just me.

Jan 10 2013 Anchor

If you are going Java try libgdx. It has a 2d layer and is essentially an evolved version of Slick2D

Unity is a 3d engine. You can use it for 2D but there are various conflicting schools of thought on whether it's worth it.

I don't know why these people are recommending c++. I use it every day for both work and hobbies but I'd only recommend it to someone with less than a years experience if I wanted them to fail.

Also there is no "best" language for game development. Just appropriate languages for the task you wish to complete. Avoid falling into the trap of trying to identify the best language.

lancer611 Professional Software Developer
Jan 11 2013 Anchor

ShinobiNFC has it right. Until you have more experience, just stick to what you know. The only reason I would suggest learning a new language is if you hope to make a career out of programming.


Controlling complexity is the essence of computer programming.  --Brian Kernigan
Game I was paid to make -

Jan 11 2013 Anchor

I was in the same spot you were when I decided I wanted to make my own game. I had been coding Java for over 10 years when I decided to get into the game building business. For me, this made Java my language of choice. After a lot of research and talking to other people, I ended up using jMonkeyEngine. This is a very mature Java 3D game engine. It also has a very active code team, is fully open source and has a very active community. I've been working with the engine for a while now, and haven't had any regrets yet.
Compared to the two frameworks ShinobiNFC mentioned, from my experience, jMonkeyEngine is a lot more mature and has been built with 3D in my from the start. So if you want to go 3D, I'd take it over the other ones.

Jan 11 2013 Anchor

^^ In his original he said he's making a 2D game. Otherwise I would have also suggested jMonkeyEngine.

Using a 3d engine for a 2d game is overkill in this case.

Edited by: ShinobiNFC

Jan 25 2013 Anchor

Do what ever language you feel comfortable. They all have their advantages and disadvantages so it's impossible to say which language is actually the best one. Many will say 'C++' and although it's a commonly used language for advanced games it's hardly worth it for a platformer. If I were you I'd stick with 'Java' if that's what you're good at, personally I use 'C#' however it's just preference and needs. I guess if you purely wanted a challenge then having a go at 'C#' could be fun but like I said it's all about personal preference and what you're comfortable in using. Take this for example I've spent most of my time coding in 'Objective-C' so when I started to work with 'C#' it was a doddle as I could easily understand it and it's syntax, yes I could have gone to Java but why would I? When I have a perfectly good reason to go to 'C#' - stick with what you know IMO.

Anyhow good luck!

Reply to thread
click to sign in and post

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.