Game Development Stack Exchange is a question and answer site for professional and independent game developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I wan't to see how great of an idea is to start a game project like Machinarium coded in Java. I'm not really good at Java yet, but it's the programming language I decided to go with first. Not really to learn a lot about games, but rather to have programming base if I ever decide to go with C++/C.

share|improve this question

closed as not constructive by Byte56, John McDonald, Tetrad Sep 7 '12 at 20:17

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

Do you have any other programming language experience? – Petr Abdulin Sep 6 '12 at 9:44
I'm not planning on jumping right away to make a game like this. It's not a realistic goal, but I'm decided to learn JAVA. I would love to make something like Machinarium in the future. – RufioLJ Sep 6 '12 at 9:53
up vote 3 down vote accepted

JAVA is a perfectly viable language for creating an adventure game like Machinarium. All the tools are there. However if you haven't created a game before it might be a good idea to first get a good feel on how games are structured (code wise). Maybe follow a tutorial on creating text-based adventure like this one first. And then later tack on the graphics. You can use OpenGL and what not for that :).

As always, small small steps at first :)

share|improve this answer
Yes! Thanks for the answer. I was afraid this community was dead. I'm messing around with libs like Slick2D and LWJGL. I know is practically impossible to jump to make games like that without a couple of years getting familiar and doing more basic stuff! But a game like Machinarium would me my ultimate goal :) – RufioLJ Sep 6 '12 at 9:50
+1 it's good to start with text adventure game first – Lukas Stejskal Sep 6 '12 at 10:14
Don't worry, have some fun. Try a few basic games first. (Text based, then a platformer, then something slightly more interesting). And remember to keep having fun. Also Slick2D looks nice, should be fun to learn that after you finished a simple text adventure. :) – Roy T. Sep 6 '12 at 10:30
If you want to learn a lot about opengl, graphic cards etc. I would recommend you to use LIBGDX, as you can target windows, linux, mac and android very easily. When you want to make the game as easy as possible and don't care about the technical things, then stick to slick2d, as it abstracts the whole opengl stuff into a very accessible 2d rendering system... The performance is a bit worse than in libgdx, but it shouldn't have any impact on a game like machinarium. – tom van green Sep 6 '12 at 10:58

I'm going to give my opinions about Java and explain why it's not good for games in general:

  1. it's performance hungry, especially for the memory ( RAM and CPU/memory controller ), this also means that to run a simple game you need at least a computer with medium range specs
  2. the JVM it's not standardize, especially on Mac, the first official Java version on Mac is the actual version ( Java 7, first and only one ), the previous versions are provided by Apple and are not standard, especially for the part related to the window system and the graphical appearance, also in many GNU/Linux installations the default JVM is OpenJDK and not Java from Oracle
  3. Java generates bytecode and not compiled code, even if you obfuscates the code it's really really easy to crack, sometimes it's also easy to do reverse engineer
  4. If you distribute java code you are implicitly asking the user for installing the JVM, most of the users do not have this abilities and most of the times they just expect that your program will run/install right after the download without additional software
  5. for what i know Machinarium is in Flash ( probably even worst than Java ), the original one on PC/MAC/Linux, the others are porting.
  6. if you are interested in Java and you want to code games, do yourself a favor and just use C#
share|improve this answer
Well I'm aiming to learn code that's why I choose JAVA as a first... I'm sure if I get the hang of it and start improving I would jump to C/C++. You are right JAVA might not be a smart choice for someone that really wan't to make a good comercial game, but I just wanted to know if something similar could be done to learn from. I'm not seeking to create a masterpiece from JAVA. – RufioLJ Sep 6 '12 at 10:28
I don't completely agree with this answer. A agree to 1 and 2 though. If you use java with an opengl wrapper (lwjgl, jogl etc.), that graphics heavy parts are calculated by the graphics card and not by the processor. For simple games (I count machinarium as simple game) it is sufficient and provides the advantage, that it is much easier than c/c++. For something graphics heavy, as machinarium, flash is also a viable solution (basically, flash was made for such things). One last word, I find it a bit hypocrit to taunt java and then suggest c# in the same breath, as it has the same implications. – tom van green Sep 6 '12 at 10:50
I know both and Java is as easy to learn as C#, but it offers platform independence (that is btw. the reason, why I chose java over c# for my projects). If you use a framwork like slick2d or lwjgl, you can do very nice games pretty quick. I agree, if you want to make a AAA+ 3d high end graphics game, both c# and java are the wrong way to go, but I think in that case you would stick to an engine like UDK or CryEngine. It really depends on your goal. and sorry about my first comment. It sounds somewhat harsh. Shouldn't have that tone. – tom van green Sep 6 '12 at 11:03
Seriously? C# run in a VM just like java but guess what, it's not portable... to me your post makes no sense since great games are made in java, even commercial ones (i will take Minecraft as example once again). – nathan Sep 6 '12 at 14:24
Not to start this entire language discussion again. But C# is arguably faster (or at least just as fast) as Java and C#/.NET is an open specification and portable (MONO does a great job and MONOGAME even wraps up most of XNA, C#'s most prominent game development tool. C#/XNA games can run on Android, iPhone, Windows Phone, the Xbox 360, Linux, and the PC :). So C# vs Java is just taste if you ask me (and they are so much alike in syntax that you can switch anytime). – Roy T. Sep 7 '12 at 5:28

Not the answer you're looking for? Browse other questions tagged or ask your own question.