I am embarking on a project (game) and I have a question about the implementation, will be developed specifically for Android and want to know which is better (easier, faster to develop and portable). canvas or OpenGL ES
Unless you already have a good working knowledge of OpenGL, then using a Canvas will be easier and faster. In terms of portability it really isn't as clear cut.
That said you should probably consider using one the pre-existing game engines, if you really only about Android then you should check out http://www.andengine.org/ its a great engine with a strong community and lots of great little example games.
Actually I'm not really sure where I read this,but when it's about developing game if you have any knowledge of OpenGL, you better use that,because the system is separating more space for your application so it can run without lagging or crash.So you can't get an Memory Full error. (Please correct me if I'm wrong.)
Related
After doing android programming for over a year, I think it's time to notch up things a little bit and what is a better way than OpenGl.
I would like to know which version of OpenGL ES should I learn, as I am a complete beginner.
I just started to learn Open GLES on Android (with no experience of Open GL before). I wasn't that interested in learning Open GLES, just getting my graphics to work (to set up a coordinate system and to draw images on it).
I read that it would be easier to learn GLES10 than to learn GLES20, so I went with GLES10. However, drawing an image in Open GL turned out to be a much more complex operation than I expected, and I thought that if I were going to learn all this, I might just as well learn GLES20, so I changed to that instead.
There aren't that many simple tutorials showing you how to draw images in Open GLES. Android's tutorial is quite bad. The code they show on the page is not the same as the code in the "Download the sample" link, the author of the tutorial seem to have made some mistakes, and it doesn't show you how to draw an image. Instead I would recommend this tutorial, although it's not as good as what I was looking for.
I know that my text doesn't answer your question, but I'm just sharing my thoughts in case you find them useful.
Your question should be closed since the answer to it would be completely subjective. Where it comes to the ES version there is no "better", only "better for your needs". I suggest you pick either ES1 or ES2.
There is a huge difference between the ES1 and the ES2 where the ES1 is still using a fixed pipeline and the ES2 is not. What that means is you will have to learn shaders in order to use ES2 and a lot of very handy tools such as a matrix stack are removed in ES2 due to the shaders. There are other libraries replacing those functionality but you still do need to understand them a bit more then in fixed pipeline.
So the ES1 is probably much easier for a beginner since you can have a nice drawing in a very short time but you will want to migrate to higher versions as quick as possible at which point most of the ES1 stuff will be useless to you. The ES2 can be a real pain to begin with and once you understand how things work you have quite a lot of power working with it, still that might take quite some time.
Also most of the current topics considering the openGL and the Android are targeting the ES2 version which means you will have most updated sources around the web.
Still in the end the choice is yours. I know I have not given you the answer but still I hope this helps you understand a bit what you are working with.
I want to develop an adroid game.
I want to develop a simple game in 2D, like these games:
https://play.google.com/store/apps/details?id=no.dirtybit.funrun&hl=en
https://play.google.com/store/apps/details?id=com.sagego.panda.run&hl=en
I know how to design characters and other objects for this kind of game.
Can I use android canvas class in order to develop a game like the examples above?
I read that the canvas class is now hardware accelerated.
or I have to learn the hard way - openGL ?
I would try using Unity, if you still don't have good android skills, because it's more visual than code writing.
Other alternatives are LibGDX or AndEngine, with a lot of tutorials and active community out there, as they have Apache 2 License, unlike Unity thats not completely free.
AndEngine has a little learning curve as you know Java and basic Android already.
As you never developed a game before I suggest you to try something really simple at first.
Here is some inspiration : http://inventwithpython.com/blog/2012/02/20/i-need-practice-programming-49-ideas-for-game-clones-to-code/comment-page-1/
A good exercise would be to try to make it first with the canvas, then port it to a game engine or even opengl.
My thesis is to create an 3D android game. I have installed the 3D softwares like 3DS Max, ZBrush, Blender. I also downloaded Android SDK for Windows and I have Eclipse Juno. But I don't know how to start. Thank you in advance. :)
If you want to write a game, use a game engine.
I would advice against using OpenGL directly if you want to focus
on game mechanics or story. 3D game engines like
Unity or JMonkeyEngine
give you all the tools you need to turn your 3D assets into a game:
Importers for various file formats, a scene graph,
math libraries, and usually tons of example projects that get you
started quickly.
If you want to write a rendering engine, use OpenGL
With OpenGL you can build everything mentioned above yourself: Write
or find importers for your assets, figure out a lighting model, write
a scene graph. If you want to do all that, cool, use OpenGL. But
doing this technical stuff will keep you busy; you will have less time
to make a really great game.
I prefer OpenGL ES for Android. Good performance and easy enough to learn.
It's better to start from basic with opengl and then understand concept of using 3d and then prefer standard tool to use.
I have listed android game engine tool for 2d and 3d. Hope it might help u.
https://stackoverflow.com/questions/17163446/what-is-the-best-2d-game-engine-for-android/17166794#17166794
Start with unity3d which is a game engine, I am not sure but the names that you have posted are used for making 3d models for the game.
Your Thesis? That's pretty broad scope! :)
What I would be looking for, is something with lots of example code (since you say you don't know where to start) and good community involvement (ditto the start thing).
If you only need a single player setting, then I would suggest libGDX as a place that would be a good jumping off platform, as there are lots and lots of step thru tutorials along with lots of example code (and a very up to date wiki on the API), and a pretty good group at helping out with issues.
Since it is open source, you can dig as deep as you want into the inner workings to understand (or be mystified like me) as to how the code is accomplishing whatever task you are looking at. (which might be handy for your thesis)
While it might not be quite as polished as some other commercial 3d development kits, the BadLogic crew has made some very big progress the past few months on the 3d side of the house, along with breaking my JSON code... thanks! :) )
A New Year's resolution for me is to learn both the HTML5 Canvas and the Android Canvas API. (I do a lot of Swing scientific graphics stuff and need to branch out) How similar are they in concept and execution? Are they similar enough that is makes sense to try to learn both together at the same time? Or are they really different and I should probably focus on one at a time to avoid confusion?
I've used Swing's Graphics, HTML5's Canvas and Android's Canvas extensively and they are very similar. If you know how to use one of them, you'll quickly learn how to use the other two. The concepts are pretty much the same. The biggest difference is how Android stores some of the graphics state (it uses a Paint object you pass to the draw functions instead of setting the state directly on the Canvas.)
I would advise you to focus on one of them first, just to make things a bit easier.
I can tell you this...
They are of course similar, the most obvious difference being that HTML5 Canvas is designed to be cross platform where as Android Canvas is highly specialized, proprietary even. But just to get down to it..
HTML5 Canvas is web/server based and uses web language javascript to draw on the canvas.
Android is javascript and relatively the same.
I've been working with HTML5 Canvas and its very flexible and powerful. Im enjoying the color rendering system, with my experience the color normalization across systems helps a lot (especially with color sensitive charts). I've been experimenting with text animations and particle effects lately and I think its great for small screen applications! The easy of physics also makes it a great choice for more advanced implementations. Good Cross compatibility for my app/web hybrid apps (SaaS/SaP/B2B solutions)
HTML5 is young so its not without its problems, but I think with a properly coded website & SaaS/SaP/B2B Application any desired result is achievable. But there is plenty of information on stack about issues with loading HTML5 Canvas on Android phones & etc.
I read somewhere else on stack that PhoneGap might be a solution for you.
Here is a great chart that could help you: Mobile Frameworks
Hope this helps you!
Hey all.... I am currently trying to make a game on the android platform. I want some guidelines on choosing a good android 2D game engine. I have been looking on the internet for sometime and have found these game engines to choose from the one which doesn't have a huge learning curve
AndEngine
libGdx (The one m most impressed by)
JMonkeyEngine
For anyone who wants to know more about the different game engines the following link should help you..
http://www.cuteandroid.com/ten-open-source-android-2d-or-3d-game-engine-for-android-developers
I intend to keep the interface simple yet attractive, so want to choose the correct engine, and also want to choose the correct engine using which making complex games also is easy in my future projects. If some one could tell me commercially used free (or open sourced) game engines i would be really grateful. I even wouldn't mind learning a 3D game engine if its learning curve is not that too steep and its implementation of 2D games is also pretty simple.
Andengine hides most of the complexity from you, so its super easy to get started, but because of this you do not have full control over it. The documentation or javadocs is close to zero, so dont expect anything from there.
As for libgdx, its harder to learn, but the community is bigger and more matured, and u have more control to the engine.
no idea about the monkey engine.