I would like to create an android game but one thing I do not understand is what I should use to create the graphics for it,
It is going to be a 2d game with movable images but would I use OpenGL ES or something else?
You should use OpenGl ES to get the best performance. Alternatively you could use Canvas drawing which is the default way of drawing in Android...
But the easiest way of creating an Android game probably by using Unity 3D...
Not Java development thoe :)
Try it via libgdx
it is easy to use.
Thanks
LibGDX is a fast library that is essentially a wrapper around OpenGL, saving you a lot of time. Unfortunately the documentation around it is severely lacking, so there is quite a steep learning curve, but once you are used to the library development is very fast.
It also gives you the option to run your code as a java application instead of the android emulator, which saves a lot of time.
There are a few good tutorials on the wiki to help you get started, but you will ultimately have to rely on the Java Docs and the test code to see how to use the library properly.
There are other options such as AndEngine, which is easier to learn but has less flexbility and runs slower, so ultimately you are better off with LibGDX.
Related
I would like to use OpenGL graphic on Android games and read some basic tutorial articles. I think it is very difficult, lenghty and long-time taking to prepare OpenGL code by hand. What is the practical way to prepare OpenGL code in real. Are there any editors to generate OpenGL objects code or any software it can help in generating of OpenGL code ? How do the companies prepare OpenGL projects ?
Quick response: Do some research with google for "android 3d engines" and pick the one that meets your needs.
From an opensource perspective, use any open graphics library out there (#andengine #libgdx #shadingzen...) as the main framework so that you don't need to write much of the complex OpenGL code. For creating 3D meshes you can use #Blender which supports many export formats and you can even write your own in python. There are some tons of examples on how to use Wavefront (.obj) objects in OpenGL (e.g. https://github.com/TraxNet/ShadingZen/blob/master/library/src/main/java/org/traxnet/shadingzen/core/shapes/OBJMesh.java).
There is not a OpenGL-code-generating-tool as you may think. OpenGL is an API which allows you to manage GPU driver states which is not enough to display objects, you also need to either write your own 3d engine (even if its very simple) or use any of the already made ones out there.
And again, do some research and find the workflow and the engine that meets your needs.
OpenGL is freakingly difficult to learn, for a newbie to Graphics programming. If you are comfortable with Java, then I would recommend you look into LibGDX. The way Libgdx or in fact any other gaming engine works is, they hide the difficulty of OpenGl programming by writing wrappers around OpenGL programs. So if you are comfortable with higher level language such as Java then working in Libgdx is much easier. Then you are good to go about your game.
The reason I have recommended Libgdx is clearly simple,
A) From outside i find they have a very active forum and lot of test code, demos.
B) Also the particle editors from Libgdx is something exceptional from a free Open Source point of view.
C) The ability to verify the output in the desktop is something exceptional, it saves hell lot of time.
It looks like AND engine or cocos2d the other free open source engines are no more as active as earlier. Probably they are having good time in Zynga ville :)
I am trying to learn to create 2D games on android, and I have heard that andengine is one of the best tools for that. I tried using it, but unfortunately there I have encountered numerous issues with andengine having little documentation, and no stable place where I can learn things. So my question is that what would you recommend to a completely newbie developer? Should I try learning andengine, or learn things the hard way? And can you please provide some good links to learn? So far a lot of links I found were quite old and would not work properly all the time.
Thanks to anyone for their help.
Also just to clarify, I am middle skilled in 2D game development (especially in java and C++), so I know the basic structure, my main issue is making things run on an android since I am completely new to android itself.
With andengine, your best bet is to download, compile and run the sample games and examples. From reading through and understanding the source code for those, you'll learn how to use it. The examples in particular are effectively documentation, they're very good!
Is there some free and easy to use 3D library for iOS (and Android) that simplifies Open GL ES framework. Just like there is cool WebGL library: ThreeJS for javascript.
So far I saw Unity but it's not free and I would like something simplified.
My usage would be setting the scene, meshes, camera, rotating the camera etc...
For Android you can use AndEngine which supports GL ES1 and GL ES2. For IOS you can use Cocos2D.
I decided to go with Cocos3D because it has all the features I need and is similar to JS libraries. It is free and you don't have to use any special engines with it.
Well, there is Sparrow for iOS, and as for Android you can consider AndEngine
(easier) or LibGDX (faster).
One option I believe is SiO2.. And Oolong too.. I once played with blender and SiO2 and it went well..If you are only interested in 2D games only then Cocos2D is best bet for iphone..
For android AndEngine is good,and I believe SiO2 works for android too..
Ahh, Unity did give away the iOS/Android versions back in March/April this year - maybe if you asked them nicely?
OpenSceneGraph has a large and active following in the Vis/Sim community, and is starting to creep into games, here's a couple iOS/game related topics from their forums:
http://forum.openscenegraph.org/viewtopic.php?t=10291
http://forum.openscenegraph.org/viewtopic.php?t=10308 (p.2 of this thread has links to a couple osg-based games in the iTunes store)
For Leaning very basic of open GL for iOs I would suggest to have a look at this http://antonholmquist.com/blog/opengl-es-2-0-ios-tutorial-getting-started/. This gives the basic idea of vertex and fragment shaders. After going through this a beginner can go through other tutorials which explains the detailed concepts of openGL.
I have gone through so many links but this one explains the basic really well.
I have a project which has a native android OpenGL implementation. MyView extends GLSurfaceView and MyRenderer implements GLSurfaceView.Renderer. I'm not satisfied with the implementation, because it was done in a hurry and is improper. I'd like to change it to a LibGDX implementation. A couple of questions, is it worth it? I'm not using any native code for my existing opengl implementation, I'm not really familiar with C/C++ code. So will I see a performance improvement by changing over to LibGDX. Second, how hard is it to do. I'm just starting out with LibGDX, got the app to run on my device. Am I better off investing time in NDK or LibGDX?
If you're not really familiar with C/C++, then it's probably not going to help your project to switch to the NDK. You're going to slow down your progress to make any framework change, and adding a new language is only going to compound the delay.
As for moving to libgdx, that might be a worthwhile investment of time. The main advantage I found when switch from native android to libgdx was that you could run your app straight on your desktop. The emulator is too slow to run games, so normally all your testing has to be on your phone, which is slow and aggravating. With libgdx, it runs right away, and all you have to do is export a different project to get an apk. I found that was also a good way to test screen sizes: you can just resize the window instead of creating a bunch of virtual devices.
I guess the main disadvantage to running libgdx is that you don't get direct access to the android framework. I worked around this (using different Activities for menus, for example) by adding those to the android project. The libgdx project was essentially just the core of the game.
What is the project the more active/Stable?
Can you say me the deep diference between cocos2D and andengine?
I would definitly choose Andengine. Cocos2D for Android is yet too buggy.
I'm using AndEngine for one of my projects, and I must say, it's rather nice. A little comparision between LibGDX and AndEngine:
1) AndEngine
Only for Android.
High level, you propably won't need any direct calls for GL functions.
Quite easy to learn, and to code with.
There are versions (source) for OpenGL ES 1.0 / 1.1 / 2.0 (with support for shaders)
2) LibGDX
Multiplatform (http://code.google.com/p/libgdx/)
You will be able test your code directly on PC
Harder to learn
The question is, do you need the LibGDX platform freedom, or maybe you are making project only for Android?
Also, look at that nice list of Android engines here.
AndEngine was specifically designed for coding-efficiency, libGDX gives you a little more freedom but requires a little more work. So LibGDX allows you to the low-level stuff easier, which is a little harder to do in AndEngine.
I think cocos2d-android is not an active project like cocos2d-iphone and cocos2d-x .
It haven't been updated for quite a long time.