Sorry to jump in just like that... but I'm quite interested in learning how to design and develop games, and I wanted to know if Java can give me the capability to create a game similar to some games that really appeal to me.

From a programming perspective, I was trained in Java from 2000-2004 when I was in college, but I've only used it sporadically since I started working. So I'm no beginner to Java and OOP, but I'm not nearly an expert or anything.

I'm not out to build an AAA-quality game, but just simpler games similar to Super Meat Boy, Binding of Isaac, LIMBO, Braid, Mark of the Ninja, Hotline Miami and the like. Maybe a 2D platformer... maybe a roguelike... maybe an endless scroller...

But I'm first and foremost interested to know if Java can recreate that aesthetic and feel of those games. If yes, where should I start?

Personally, I feel like the best way to learn how to create a game is to take an existing game and try to clone it. That way, I have a roadmap to follow and practice my skills along the way. This is why I'm worded my thread title like that, but that's just me.

In Java you can make every kind of games - from simple 2d platformer to complicated 3d strategy.

Thanks Mac70. I think one can say the same for other programming languages, but what I was getting at was more of: If one tries recreating Super Meat Boy in Java for example, can they make it look, feel and control in exactly (or at least almost exactly) the same way without too much trouble?

The reason I'm asking is that I was googling for java game development stuff, and I didn't find a whole lot of resources, and what resources I found seemed to be outdated.

And the screenshots for games developed on Java I would come across don't look as polished as the games that I mentioned. I was wondering if that's because I wasn't just finding the right stuff, or maybe Java isn't the right language to be doing games like that? I don't know really.

Thanks Mac70. I think one can say the same for other programming languages, but what I was getting at was more of: If one tries recreating Super Meat Boy in Java for example, can they make it look, feel and control in exactly (or at least almost exactly) the same way without too much trouble?

I'm not sure what you are looking for. Making a game like Super Meat Boy is very, very hard. There is no way in any language to make such a game "without too much trouble". I'd argue that Java is a relatively easy language to learn, and that it should be as easy, or easier, to make something like Super Meat Boy using Java (e.g. using LibGDX library) as in any other language. But much depends on what programming language you are familiar with.

But I'm first and foremost interested to know if Java can recreate that aesthetic and feel of those games. If yes, where should I start?

The programming language is pretty much irrelevant for that. What you need from a programming language, Java can offer. Much more important is the art. You need a good artist to recreate an aesthetic such as those games, and a good artist is much harder to find than a good programming language

Personally, I feel like the best way to learn how to create a game is to take an existing game and try to clone it. That way, I have a roadmap to follow and practice my skills along the way. This is why I'm worded my thread title like that, but that's just me.

One more thing, maybe this approach works for you, but usually the advice is to start with a really, really simple game and work your way up. As in, if you do not have programming experience try to make a little text-based game first (e.g. some word puzzle). If you do have programming experience, maybe try a simple tetris clone. Then try a simple shooter. And if all goes well, try making a platformer (which is really a quite advanced type of game).

Thanks Mac70. I think one can say the same for other programming languages, but what I was getting at was more of: If one tries recreating Super Meat Boy in Java for example, can they make it look, feel and control in exactly (or at least almost exactly) the same way without too much trouble?

I'm not sure what you are looking for. Making a game like Super Meat Boy is very, very hard. There is no way in any language to make such a game "without too much trouble". I'd argue that Java is a relatively easy language to learn, and that it should be as easy, or easier, to make something like Super Meat Boy using Java (e.g. using LibGDX library) as in any other language. But much depends on what programming language you are familiar with.

But I'm first and foremost interested to know if Java can recreate that aesthetic and feel of those games. If yes, where should I start?

The programming language is pretty much irrelevant for that. What you need from a programming language, Java can offer. Much more important is the art. You need a good artist to recreate an aesthetic such as those games, and a good artist is much harder to find than a good programming language

Thanks. What is typically used to incorporate and make flash-based graphics (which SMB uses) interact in Java?

Personally, I feel like the best way to learn how to create a game is to take an existing game and try to clone it. That way, I have a roadmap to follow and practice my skills along the way. This is why I'm worded my thread title like that, but that's just me.

One more thing, maybe this approach works for you, but usually the advice is to start with a really, really simple game and work your way up. As in, if you do not have programming experience try to make a little text-based game first (e.g. some word puzzle). If you do have programming experience, maybe try a simple tetris clone. Then try a simple shooter. And if all goes well, try making a platformer (which is really a quite advanced type of game).

Well, I'm thinking of taking it slow anyway. And since I have some sort of background with Java, I hope that would come in handy in understanding how to develop games in Java.

I mean, if I could just take a little black square and could make it move back and forth on the screen with a gamepad to begin with, I'm totally fine with that.

(oh, by the way, does game programming in Java support gamepad controls?)

Thanks. What is typically used to incorporate and make flash-based graphics (which SMB uses) interact in Java?

What do you mean by "flash-based graphics"? The original Meat Boy was made using Flash, but the sequel using (I think) C# and XNA. Graphics are typically bitmap-based, either drawn yourself using a tool such as GIMP or Paint.net, or using some public domain sprite library.

Find a language that clicks with you and start coding. In the beginning it is important to have as much instant gratification as possible. You want to be able to get something on the screen quick and build from there. You want to be able to edit what you create and add on to it easily. Instant gratification is key to staying motivated when starting out, you probably don’t want to be learning a new language while making your game. If you try to learn a new language while creating your game, chances are you will spend weeks reading and have nothing to show for it except knowledge that you have not yet been able to apply to your game. That can be pretty discouraging.

Stick to what you know, or go the easiest most comfortable route possible to acquiring skills to start work on your game. So if you know a little Flash, use Flash, if you use C++, use C++, if you only use Java, then use Java. There is no such thing as “the official game development language”. ALWAYS remember that. Minecraft is written in Java, Super Meat Boy is written in C++, Farmville is written in Flash, some other game people play is written in HTML 5, some other game people play was made on Index cards. The point is: It doesn’t matter. Find a way you can make your game comfortably, and make it with that.

(oh, by the way, does game programming in Java support gamepad controls?)

Yes. For example, you can program using Java for the Ouya console, but you can also use a gamepad on the PC. I don't think you can develop for XBox or Playstation using Java, but those are not good starting platforms anyway.

What do you mean by "flash-based graphics"? The original Meat Boy was made using Flash, but the sequel using (I think) C# and XNA. Graphics are typically bitmap-based, either drawn yourself using a tool such as GIMP or Paint.net, or using some public domain sprite library.

Let's say I drew my art myself and scanned it to use in-game... or maybe just created simple shapes using paint... how would those typically be incorporated into a Java game?

All I learned in college regarding java graphics was using java.awt, but graphics done that way doesn't look good at all iirc, and I never leared how to use custom-made graphics for a Java game.

Stop smoking weed mr heisenberg You can create the EXACT same games with java, that includes AAA games. Every game could be written in java. Look at games like spiral knights for polish. The only reason games aren't written in java commonly, is because there is a giant codebase/toolchain/legion of programmers/legacy in C++ land

Also consider this: Technically all Android games are Java. Are these unpolished? And there are many complex 3D games too, like I dunno the mass effect or dead space games

Opengl is just the same, so the language doesn't matter and java is excellent.

All I learned in college regarding java graphics was using java.awt, but graphics done that way doesn't look good at all iirc, and I never leared how to use custom-made graphics for a Java game.

Yeah, using Java2D (say the java.awt approach) is a good place to start, but it is limited. Using a library such as LibGDX (multiplatform gamedev library. very good) or LWJGL (more basic) you can use the full power of OpenGL.

Using custom-made graphics is pretty simple. I use the free paint.net software to make an image and save it as a .png file. You can then load and render this image using a few lines of code. Here's the help page for that.

All I learned in college regarding java graphics was using java.awt, but graphics done that way doesn't look good at all iirc, and I never leared how to use custom-made graphics for a Java game.

Yeah, using Java2D (say the java.awt approach) is a good place to start, but it is limited. Using a library such as LibGDX (multiplatform gamedev library. very good) or LWJGL (more basic) you can use the full power of OpenGL.

Using custom-made graphics is pretty simple. I use the free paint.net software to make an image and save it as a .png file. You can then load and render this image using a few lines of code. Here's the help page for that.

java-gaming.org is not responsible for the content posted by its members, including references to external websites,
and other references that may or may not have a relation with our primarily
gaming and game production oriented community.
inquiries and complaints can be sent via email to the info‑account of the
company managing the website of java‑gaming.org