Mobile Game Development - Java, C++, Lua? Whats best?

Started by
14 comments, last by Lenny1986 8 years, 11 months ago

I totally agree with Argurth.

I always preach that before jumping into using "Game Editors"(Unity, GameSalsad, Construct etc). You should build one game from scratch. It does not have to a be a very complicated game, but something simple enough to get your hands dirty.

As you are doing. Start with learning java. Then use a engine(AndEngine, LibGDX(What I recommend. I've built several games with it)) and start coding your first game.

Once you do this. Moving on to an editor will save you hours of frustration from miscomprehension of basic concepts. Trust me, it is very important to understand logarithm, design, and framework behind building games. It will help you produce very high quality and awesome games in the future.

I first started with learning java(In college) and then moved on to using AndEngine(About 5 or 6 years ago when it was popular.). And then LibGDX. These days I now use unity.

Get what I am saying? Of course you can be successful without following this and some people have. But the people who are successful without any prior experience are only a select few who get "lucky breaks" etc. Don't rely on luck. :-)

You'll do well though. Keep learning java and then step it up.

Check out my website where I do videos on popular topics about mobile game development and building a business with apps

http://www.passiveincomewithapps.com

Join the Free facebook group with over 800 members

https://www.facebook.com/groups/763907437003942/

Advertisement

This topic pulls at me as I often wish I had someone talk sense into me when I was younger :) Frob gave you the answer and it's an answer that is hard to hear when you're starting out. Nevertheless it is very true.

The amount of effort to make a game is consistently under estimated. Now add learning mobile on top off it and just forget it. A common topic of bitching with colleagues is just how painful mobile development is. Console development IMHO is much easier. If someone wants to become a race car driver they need to start with a regular car first. People don't just start off learning to be a race car driver.

Now I am not interested in discouraging anyone at all and I know it sounds pretty preachy but I wish someone had preached it to me when I was younger. Use your brilliance in a productive manner. I spent WAY too much time learning every aspect of a game engine or at least what I thought a game engine should do. In reality I wasn't equipped with the knowledge to even know a full game needed to do. In the end I never finished a game until I was in the industry. I had so many games that were almost done but in reality they were just graphics with a guy type of thing. Perhaps 10% of a game at best.

If I was to start out today I would likely use Unity because there is so much support. The amount of work spent on just getting assets into the game and rendering something is huge. Don't fall for all this ego stuff that says you need to know 3D graphics and be a hard core C guy. Let other people go that way and see what they have in a year. People spend so much time on graphics and simple collision and still haven't even touched on game play. Build a very very simple game in Unity and finish it. Make it very small like pac man or space invaders but finish it. Seriously finish it. Having finished projects will look very good on your resume and when hiring, people only want to hear about shipped games and there is a reason why.

After you have finished your little game you will now be more equipped to ask the right questions. Again this isn't meant to discourage as I say go out and conquer! Just be realistic and work smart. After reading this a second time I am reminded how I had a problem with some planes getting stuck on a couple of towers. The planes were somewhat of a secondary object in the world and it pained me that I had to try and fix the steering for this. I came up with a few ideas and then I moved the towers out of the way. I could have wasted god knows how much time making a better steering system or I could ship the game. Work smart and get it done.

If you still just have to get at it, then use the suggested language for the platform. For Android you should use Java as it's way more supported and the debugging will work out of the box, well maybe. For iOS use ObjC. I hate ObjC myself and it pains me to suggest it, but all the samples are using it and you don't want to add the extra complexity of mixing ObjC with C++.

For the record I use C++/OpenGL/lua. I originally used Java to do BlackBerry development and later some Android and I loved it. The problem was I couldn't get enough platforms with it. Using C++, OpenGL and lua for scripting got me 95% shared code for Android, iOS and BlackBerry 10.

I would agree with the idea to look at Unity, because if you move out of mobile games you still have a good skill set developed to move to other platforms.

Developer with a bit of Kickstarter and business experience.

YouTube Channel: Hostile Viking Studio
Twitter: @Precursors_Dawn

f you already have a little Java coding under your belt then give libgdx a try:

http://libgdx.badlogicgames.com/


At this stage there is no need mess with third party tools to make your language work on Android. With libGDX you can just start to code and you'll get Android and desktop support from the get go.

Now personally I dislike libGDX, but there isn't anything like it for Java out there right now.

For the record I use C++/OpenGL/lua. I originally used Java to do BlackBerry development and later some Android and I loved it. The problem was I couldn't get enough platforms with it. Using C++, OpenGL and lua for scripting got me 95% shared code for Android, iOS and BlackBerry 10.

Now having said this, there are ways to make Java code work on iOS and BlackBerry. BlackBerry 10 ships with the Android runtime now so your Android application should work, and there is RoboVM for running Java on iOS which works pretty much like Xamarin.iOS. Pretty sure libGDX guys endorse RoboVM as the way to go to ship your libGDX game on iOS.

"I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"

My journals: dustArtemis ECS framework and Making a Terrain Generator

As per my assumption you need to leave first 'C' language which is basic fundamental of programming, then starts to learn JAVA and C++ in advanced level which helps you to develop a good mobile game application using Android. Mobile game development is the growing and popular field of mobile technology you can get more information from here...www.potenzasolutions.com.au

Hey dude , I was in the exact position you are not long ago, except i started with python. In about one year of learning python and kivy ( crossplatform framework ) I managed to make 2 games for android. Here is my latest: https://play.google.com/store/apps/details?id=org.test.spaceravens

Don`t try to swith too much , figure out what you want to do and learn the language which is best suited for your needs. Altough I started out with python ( not a native language for mobile platforms) the community was great and i learned a lot but I will be heading to Java wich is the official language of android. Think about what you want to do , think about the platform you want to target and i suggest using official tools and languages for the specific platform. Don`t go targeting all mobile platforms just pick one and stick with it until you get more experince.

This topic is closed to new replies.

Advertisement