Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
I am looking into game programming in Java to see if it is feasible. When googling for it I find several old references to Java2D, Project Darkstar (Sun's MMO-server) and some books on Java game programming. But alot of the information seems to be several years old.
So the question I am asking, is anyone creating any games in Java SE 1.5 or above?
If so, what frameworks are used and are there any best practices or libraries available?
there is the excellent open source 3d engine called jMonkey (http://www.jmonkeyengine.com) which is being used for a few commercial projects as well as hobby developers...
there is also at a lower level the lwjgl library which jmonkeyengine is built on which is a set of apis to wrap opengl as well as provide other game specific libs...
http://www.javagaming.org/ is a good source for up-to-date information.
Another framework not mentioned yet is Xith3D
I haven't directly done any game programming but some scene-demo coding and have found that JOGL is really a quite nice framework to work with. It's Java OpenGL so it has a rich 3D functionality and i do believe there are some open source graphic engines done for it aswell.
Also check Pulp core - deals with the most common problems facing Java gaming.
Despite the odd name ( pretty sure he's talking about the soft drink...), this site has loads of resources and examples games both 2D and 3D. Coke and Code
As an update, a couple of the JMonkeyEngine guys have forked that project to create Ardor3d, a new version of which was recently released, so its still under active development. Project Darkstar is also still actively developed. Indeed DarkMMO an opensource example Darkstar game is being currently refactored to use the latest version of both Darkstar and Ardor3d.
GTGE (www.goldenstudios.or.id) is an excellent 2D Java Game Library, with tutorials and an extensive API. It has gone open-source in its latest version, and the source can be downloaded, browsed, etc. at gtge.googlecode.com.
As mentioned by all others in this topic, there are plenty of excellent libraries/engines available for building games in Java.
Game programming in Java is definitely feasible. Keep in mind though that, as with any other language, getting real-time performance will always take some effort. I wrote a small article about my experiences with using Java for our 3D breakout game 'Caromble!'. It is mainly about the steps we had to take to get our game running smoothly.
http://www.caromble.com/2013/05/java-game-programming/
I've made a list of a bunch of tutorials that should be of help
I like to code games a bit in my free time. I use a library called slick2d which makes programming the back-end a lot easier. For example, you can copy/paste the example 'main' class file from the Slick2d Wiki and you have your game loop as well as the Update() and Render() methods all ready to go.
Slick 2d is based on LWGJL and uses it to load images and do other cool things with OpenGL. There is also a bunch of helpful topics at: http://www.java-gaming.org/
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I am still very new to coding and Stack Overflow, this is my first question. I have been coding random apps, and experimenting with Android for the last 3-4 months. I recently published my first app. Just a day counter, with a widget. Still pretty basic, but my intention has always been to create Android games. My question is where do I start to make an Android game? Should I make games using just the default libraries and API on Android Studio or should I just make a Java game on Eclipse then try to import it to Android. I am trying to start by doing a simple 2D game. Can someone please explain to me what options do I have, or point me in the right direction please. Thank you.
You can use either Android standard API like Canvas API or OpenGL ES A good book explaining both aspects is Mario Zechner's Beginning Android Games. You can find a good examples of using both API in different games.
Also you can use third party frameworks and engines. Good one is Cocos2d-x (it is c++ framework) it is well known open source cross platform game development framework with good community and a lot of examples and books over the internet.
Also you can check Unity (C# or JavaScript) it is proprietary game engine extremely easy to learn and use (you can make many features like sprite animation without any code). This engine have large community and books. There is also a ton of well written documentation. (There are two licenses personal and pro).
Another good is Unreal Engine (C++) it is similar to Unity but from other developer. This is also good engine for game development and free to download and use (you must pay 5% royalty to epic games only if you earned more than 3k on your game).
There is also libGdx framework for cross platform development (java).
You can also check marmalade(C++), Corona SDK (Lua), AndEngine (pure android game engine).
My own opinion you should check Unity or Cocos2d-x. These are two most popular engines for Android/iOS game development so you will easily find books, videos and tutorials and even video courses (1 2) how to work with these engines.
you should try andengine for 2d games. you can find basic tutorials here
Start with GameSalad
easy and fast.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
I am looking to start developing applications for Android and i was wondering if you could fill me in on the know how's and the requirements on a technical viewpoint.
I have the SDK, Eclipse and Java installed and even a handset to "real" test on.
My question is being a complete amateur to Java and having never used the language how much java would i have to learn to develop Android Applications ?
I would say you can just start with some tutorials the same way you would when starting with just Java. You'll learn along the way, just use a lot tutorials.
There is not much difference for the language, but there is a great difference in the framework, ie. the way you set up applications.
So just Java you would learn:
public static void main(String[] args){
System.out.println("Hello World");
}
In Android it would be:
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
System.out.println("Hello World");
// Or:
Log.v("MyActivity", "Hello World");
}
to print "Hello World" to the console respectively the log.
The short answer is no since nobody has a "complete" understanding of Java anyway.
The longer answer is the complexity of your Android apps will be limited by your knowledge of Java. You can probably learn to write a "Hello, world!" app on day one, but it will take several months before you can write simple but useful apps. It also depends on how whether you are new to Java or new to programming in general.
My suggestion is to get a good introductory book on Java and maybe another on Android apps and start there.
Barry
For basic applications - no, a "complete" understanding ist not essential. What you'll have to learn is to use the android framework, and I think, if you grab some android related tutorials and books, then it should be OK even if you start with basic Java knowledge.
(I assume, that you already know some other language and have a decent experience with object oriented programming)
You should have a good understanding of both Java and object-oriented programming.
You should have a firm grip of how Polymorphism and Inheritance work in java. These are pretty central to Android development. Also, having an understanding of java memory optimization and Threading are useful skills for writing more advanced applications.
Learn java up to understanding within reason the following concepts/implementations:
Object Orientation (this is a biggie)
Interfaces
Superclassing / Extending
Some ultra-common java APIs and syntax
Our good friend, mr. garbage collector.
Then you'll be ready to go in Android dev. I wish I had read the book "Head First" java development before starting with Android, it would have helped me immensely.
You would benefit immensely by learning Java first. All of the "Android" code is Java-based so you will handicap yourself by not going through a few tutorials (at the least) to get caught up on Java.
I would suggest NOT starting with Java first, as others have said the framework is so different you will be learning syntax that you will not use writing Android Apps. Get a good book on Android development for beginners and start from there. I've found Android Application Development for Dummies to actually be a very good book, as well as O'Rielly's Learning Android. As you come across the need for Java knowledge, then hit the Java Tutorials over at oracle.com, pick up what you need and then back to Android specific documentation.
You aren't going to be using System.out.println in a real Android App, you will be setting a textView either programmaticly or in XML, so learning the Java way won't be all that helpful.
Start here: http://developer.android.com/resources/browser.html?tag=tutorial and do all the tutorials.
You need to be familiar with the basic Java tasks
knowing what is a package, a class, some inheritance
understand the building of your app (compile, link and packaging)
debugging
You can start with building the tutorial sample, then going down in Java code progressively.
It depends on the complexity of your app. If you will be building complex and high quality apps like Google Maps or Angry Birds you do need to know Java very well. I would suggest you to learn Java because you can make lots of things with it not only make apps for Android. Good luck!
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I am currently trying to decide between using JOGL and JMonkeyEngine on a project so I would like to learn a bit about the basics of each and decide which one I prefer. Does anyone have any books or web resources to recommend for learning how to use each one? I really prefer stuff that gives a lot of detailed information and examples that use good style over brief online tutorials with poor quality code examples. Official documentation is always good, but I haven't yet found it for either. JMonkeyEngine says that it has complete documentation but I haven't yet located it on their website. Any information would be appreciated.
I should probably mention that I have never used OpenGL before. If I go with JOGL I will need to learn all of the OpenGL basics, so I also need good resources on OpenGL if the JOGL resources don't go into full detail on it.
Updated:
jMonkeyEngine 3 Beginner's Guide
jMonkeyEngine 3 Cookbook
I am in the jMonkey Core Team, albeit not as a programmer.
For starters, if you're considering JOGL, I hope you're looking at JOGL2 by JogAmp, and not the old abandoned one over at Java.net. In terms of use, JOGL and jME are two different things. JOGL, like LWJGL that jME (and Minecraft, to name one) is based on, only eases you into the bare essentials, mainly OpenGL. It means even more freedom, but you will be spending a large amount of time making the "bare bones" of your game before you get to flesh it out with real gameplay features.
jMonkeyEngine, the latest jME3 especially, is designed with intermediate developers in mind, not by means of limitations but with a gradual learning curve and a whole lot of game-specific features built in.
/takes salesman hat off
Our wiki is located at jmonkeyengine.org/wiki/doku.php. Even if you're more used to Eclipse, I strongly recommend using jMonkeyPlatform (the jME3 SDK) for all your jMonkey development, as it comes with a lot of tools that we just couldn't put into the engine core.
As for books, I don't believe there is one, for either. Our main doc writer is working on a contract with Packt though. The final "jMonkeyEngine 3 Beginner's Guide" book is expected late 2011 or early 2012.
I can't speak for JOGL (though I figure they'd say the same), but if you have any more questions regarding jMonkeyEngine I suggest you come visit our forum.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I want to develop a game and I am at a beginner level.
When I searched for game engines on Google a long list was returned (e.g. Delta 3D, Panda 3D)
Then I looked at wikipedia and it also showed a very large list.
I am not sure which engine to choose.
Please suggest a good game engine and some good tutorial or a good ebook.
I am experienced in C++, QT4, Java and Python(at very initial level).
If the game engine supports Linux platform then I will be very happy.
You should check out OGRE3D. It's totally cross-platform and it's a commercial quality game engine- for example, the indie game Torchlight uses OGRE3D and it was a huge success.
Asuming you are looking at 3D, I'd personally recommend jMonkeyEngine.
It's well designed, open source, has great performance, very easy to use (for a 3D engine...) and under active development.
Whatever you choose then good luck - just be aware that you have a long journey ahead if you want to actually successfully develop a 3D game :-)
Java:
jMonkeyEngine
Python:
pygame (though not really a game engine)
For Linux you can look at the Cube which you can download from here.
Since you are a beginner, I suggest you look at linear algebra. A very good source for this is the Khan Academy. That you will be in a much better position to evaluate the needs you have for a game-engine.
Most all of the code for Quake engine, but not the content, has been made public. So you can play around with that engine to see if it's up to you specifications (the Quake 1, Quake 2, and Quake 3 engines have all been released). Quake 1, 2, and 3 all support the Linux platform.
Also, while the Source Engine isn't open source, a great deal of the source code is available through the Source SDK. It's very easy to modify and you should definitely consider working with it. However, Source is Windows and Mac only.
This resource deals with the Quake 3 engine and is a bit outdated, but I'm sure it'll suit you just fine.
You may wish to qualify your question with what sort of game you're trying to build. Not all game engines are created equal for this :)
So, just for brevity's sake, if you are after building a 2D game, the Gluon game creation and distribution framework ( http://gluon.gamingfreedom.org/ ) may well be the sort of thing you're looking for. Also because it's built using Qt, with which you mention you are already familiar.
If you're looking for 2D, then the GLib engine (theglibengine.wordpress.com) is probably a good start. I must warn you though, it's new and still a bit buggy. It's written Java. For 3D, I'd recommend JMonkeyEngine (for NetBeans) or Ardor3D (for Eclipse).
PLIB is a useful engine for Linux users. It uses a program called OpenGL to operate, so you may need that first, and it's a tiny bit complicated to install, but there are tutorials on that and on C+++ script writing. Perfect 3D engine for Linux.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
I've been thinking a lot lately about a music-oriented project I'd like to work on. Kind of like a game... kind of like a studio workstation (FL Studio, Reason).
I guess the best way to describe it would be: like "Guitar Hero", but with no canned tracks. All original music--composed by you, on the fly--but the software would use its knowledge of music theory (as well as some supervised learning algorithms) to make sure that your input gets turned into something that sounds great.
It sounds a little silly, explaining it like that, but there ya go. It's something I think would make an interesting side project.
Anyhow, I'm looking for a Java library for generating the actual audio. Browsing around on sourceforge, there are countless software synths, and I have no idea which to choose.
My top priority is that it should sound incredible... Really rich, layered, textured synths, with gobs of configurable parameters. Emulation of acoustic instruments is not important to me.
My second priority is that it ought to be straightforward to use strictly as a library, with no GUI involved at all. (If there's a synth with really breathtaking output, but it's tightly-coupled with a GUI, then I might consider ripping the audio portion out of the application, but I'd rather start with a nicely contained library).
I know I could send MIDI to a standalone synth, but I think it'd be cool to read the actual synth code and learn a little DSP while I'm at it.
Any suggestions?
Oh yeah, I'm on Windows, so posix-only stuff is a no go.
Thanks!
Have you checked out JFugue? It's an "open-source Java API for programming music without the complexities of MIDI".
Additional information: Found a couple of other resources referenced in the JFugue documentation (pdf):
Audio Synthesis Engine Project: open source version of Java’s MIDI synthesizer
Gervill: open source software synthesizer created as a proposal for the Audio Synthesis Engine Project
Yeah, I noticed JFugue a few years ago. It's on my list of interesting computer/music bookmarks:
http://delicious.com/BenjiSmith/computermusic
http://delicious.com/BenjiSmith/programming.java.libraries.music
But JFugue is all about the structure of the music itself... the melodies, harmonies, rhythms, etc....
What I'm looking for right now is just the synthesizer. Something like this...
Synth s = new Synth();
Instrument i = s.getInstrument("Robot Bass");
i.makeAwesome(true);
And then I'll send my events into the MIDI stream (or into whatever control API the synth library provides).
If Clojure is an acceptable option (runs on the JVM, easy to integrate with Java), then it's definitely worth checking out Overtone.
It uses SuperCollider as the synthesis engine, but wraps it all in a nice DSL and interactive programming environment.
minim isn't exactly a java synth, but it is a processing lib and I imagine that it should be pretty easy to use with vanilla java too.