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 :)
Related
Although this is not a direct programming question, but it would be great if someone can share knowledge
I am very much impressed with the graphics based android games especially "Subway surfer". Can some one explain
Using which tool these graphics are developed and incorporated in Android and iOS. Is it OpenGL ES ?
Can someone point to free opensource games sources which has amazing graphics, which can be used as a reference?
Any related info would be of great help
Thanks.
OpenGL ES is probably the most popular solution because it is pretty fast and supports 3D drawing. Not to mention iOS supports OpenGL ES too (AFAIK) which allows one to develop a cross-platform graphics layer. AndEngine is a popular platform for developing games on Android that sits on top of OpenGL ES, and the example apps show off some pretty cool graphics.
OpenGL ES is the best solution for developing serious 3D games on Android, but be aware that large projects are usually done in native code, not Java. This article explains the reasons in detail:
http://software.intel.com/en-us/articles/porting-opengl-games-to-android-on-intel-atom-processors-part-1
The sample programs provided with the Android SDK and NDK are really incomplete. A much better example is Replica Island:
http://replicaisland.net/
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.
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.
when I was working with XNA model format was obvious .X or .FBX, they had bones so I was able to do animation and collision detection, they probably had everything I needed. But now I started to work with Android and OpenGL ES and I can't seem to find anything about preferred model formats, I keep seeing .OBJ but they don't support bones, I also read something about collada and md5 formats but heard there are some problems with loading them? Also suggestions with min3d but I don't like the idea using third party stuff.
Could someone please explain a bit the situation with models and OpenGL ES, why there are no preferred obvious choices(at least from my point of view), and what format or solution should I go with?
Also this is my first question, please write suggestions if I didn't explain myself right or made any other question errors.
OpenGL ES is much much more low level than XNA, it does not provide anything related to 3d models 'management', and thus, has no preferred model/file format or bone management.
Basically, if you don't like the idea of using 'third party stuff', then you'll have to pick whatever 3d model format you see fit, and do it all on your own.
OpenGL ES is basically a specification, nothing more, the 'SDK' provided by Khronos contains only 1 library. Generally, development resources are provided by the various hardware vendors, in the form of code samples.
I'm looking for convenient and efficient 3d engine for android. Can you recommend me one om them? Now I choose ShiVa3D, but I'm really concerned about performance, because I'm writing augmented reality application, which definitely needs all CPU resources =).
All what I need from 3d engine are:
load model (scene) imported from 3dmax
render basic animation
playing audio
load C++ modules (my external lib with frame processing)
maybe (not mandatory!) basic physic
So I looking for light convenient 3d engine for android =) Or performance differences are not significant?
Unity3D should cover all your needs. It's light, convenient and easy to learn.
Shiva also has those qualities, but is not as easy and convenient as Unity. It has the added benefit of not requiring a $400 license to publish to Android.
The other options are probably too cumbersome for what you need.
Performance-wise, I don't think there's much of a difference. The burden is more on you of optimizing the poly counts, textures, and code.
Bottom-line, I think Unity will probably save you time, Shiva will probably same you some money. So your mileage may vary. Unity3D has an Android trial you can use to test it and compare
I am one of the developers of Linderdaum Engine and would recommend you using it. It is open source. It runs on Windows and Android, so you can do all you prototyping on Windows. It can:
load animated .md5 models exported from 3dsmax
render skeletal animations
playing .ogg and tracker (.xm, .it - very handy on mobile devices)
audio
has integrated Box2D physics
And you can easily load your C++ modules in it.