New to Android development. Should I use a game engine? - android

I'm a CS student intent on building an 2D android game. After hacking tutorial code I've got something running similar to what I want but it's not very clean. Having never done games before, I then started looking online at paradigms and learning about threads/logic-render independence/game architecture. And honestly I don't know really how to that yet.
I'm reading this article, and this guy definitely has more of an idea than I do.
Should I go ahead use a game engine (I feel a little like cheating) or should I do everything from scratch? I just have no idea how long it'll take to do the ground work for a simple 2D game.

Of course you should use a game engine, this is not cheating because there is still enough work to do. I recommend to use AndEngine (see http://www.andengine.org/). Take a look at the examples and also at the showcase app downloadable via the bar code on their site.
See also the AndEngine entries on StackOverflow: https://stackoverflow.com/questions/tagged/andengine

Personally if you aren't that familiar with how everything works then there is no better way to learn than to dive right in and start playing around. A game engine does all of the setup work for you and is optimized. That is not saying that you couldn't do the same yourself. Plus you will learn a lot, and in my opinion it really wasn't that hard to figure out (I was in your same position not too long ago)... There are many really good game engines out there such as Andengine and libGDX (The best two in my opinion) and these may definitely be something that you use in the future. But I would first recommend just making simple game that draws to the Canvas on the main UI thread to figure out how it all works. Then I would move onto the SurfaceView and do all your drawing from a thread. This will teach you the basics of a game engine. There are many tutorials about setting up a basic game engine with the Android SurfaceView.
This tutorial is pretty nice... Just do some searching around.

Related

Is hybrid (Cordova) fast enough for simple cross-platform mobile game, or are there better alternatives?

I have a simple mobile game in mind that I would really want to make, but I can't decide on how to start. I would really want to make it run on Android and iOS, but I don't know how to accomplish that. I don't really want to use a game engine like Unity, since the game I have in mind is so simple that it would really be an overkill. The only thing I really need is a canvas to draw some shapes on.
So I was thinking about making it a hybrid app with javascript and Cordova, since I already know javascript and I'm comfortable with the javascript canvas. It's also good because you don't need to re-write code for both platforms, and thus programming will be faster and easier.
Now I am wondering if this is actually a good idea. I've never made a hybrid app before, and I don't really know if it's going to perform well.
I've read that hybrid apps run slower than native apps, but is this really that big of a deal? The game really has to run smooth, since it will be a fast-paced dodger style game.
How much slower are hybrid apps in comparison to native apps, and will it be fast enough for making a very basic 2d game run smoothly? Or are there better alternatives to hybrid, that won't make me have to re-write a lot of code for iOS and Android?
Thanks in advance!
If you've never done any of it before, then you will still have to solve a couple of problems here and there. I think you are not done just by implementing a canvas part. You will still want to add some UI, maybe some ads, in-app purchases, scoreboards etc. These topics are common in game development circles and there are many 3rd party tools to help you out. If you are really serious about game development, I think it is totally worth investing some time into Unity. It will pay back in a long run.

What do I have to learn or should use in creating a 3D android game?

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! :) )

What advantages cocos2d-android does provide over android 2d

I have seen several posts here about cocos2d-android, so ambition to get more idea on it drag me at coco2ds-android-1 and a good example .
My analysis can not find any significant benefit of using coco2ds instead of usual 2d approach of surfaceView and SurfaceHolder.Callback .
I will be thankful if anybody have expertise over coco2ds-android will guide me about benefits to use it instead of usual gaming approach .
Just by clicking on links starting from the ones in OP, I have came across http://dan.clarke.name/2011/04/how-to-make-a-simple-android-game-with-cocos2d/ - which states the obvious answer you are looking for.
First of all, this is a 2D gaming engine. All of the physics and whatnot effects are just there for you. No need to re-implement from scratch
Secondly, this is actually a port of the iPhone gaming library with the same name - great news if you also plan on porting to iPhone. And thirdly it is open sourced, meaning you can tweak anything accordingly.
I have noticed however that this is a pure java library, so do not expect amazing performance. If performance is critical, google for something NDK based, not SDK based. I could not advise here as gaming is not my thing.

How to start with 2D

Ok my question is simple:
How do I start working with 2D graphics on android? Untill now,I found on the how to make almost anything on Android,however with graphics I see is harder.
On the android sdk website,I get some simple codes that don't really help me,and I also searched for a book,guess what,I didn't find one that actually shows you how to make a little game explaining me what does every line of code.
So: How do I start working with 2D graphics? I'm interested because I want to make some games.I would be very happy to find a tutorial for ex. that shows you how to make a little character that just jumps over a box.I know you need an engine and all that stuff,and I would actually want to learn how to make a little engine.
libGDX runs on Android (and a few other platforms) and provides high level 2D graphics features like sprites, fonts, tile maps, particles, etc.
Tutorials here.
A few complete demo games with source code here.
Here's a whole series that seems pretty decent, and starts from the beginning.
Also, the techniques of "generic" 2D programming apply, so general-purpose game engine information is useful as well.
If you are interested in android games(2d), I recommend this book http://www.amazon.com/dp/1430230428/
The following book is very good for learning 2d graphics in Android.
"Android 2D graphics with Canvas API".
http://www.amazon.com/Android-Graphics-Canvas-API-ebook/dp/B00DKIAVK8/ref=sr_1_8?s=books&ie=UTF8&qid=1374420538&sr=1-8&keywords=android+2d
It is not for game developers though.
It teaches how to use graphics primitives and work with different coordinate systems. It also has a chapter on multithreading.
It has many simple examples good for beginners.

An easy android 2D game engine with an easy learning curve

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.

Categories

Resources