Jump to content
  • entries
    943
  • comments
    5,899
  • views
    924,327

Android Progress


Josh

4,243 views

 Share

I got touch input and text rendering working on Android. Happily, I have not encountered any issues with different behavior on any tested OpenGLES devices, including iOS. The framerate on my HTC Evo jumps around quite a bit, which appears to be an issue with the Java garbage collector. Framerate on iOS is a solid 60 FPS, so we should be able to get this sorted out.

 

Here's a video:

http://www.leadwerks.com/werkspace/page/videos/_/leadwerks-engine-3/android-progress-r100

 

I also discovered that LuaJIT for ARM processors was recently released. This is fantastic because it means Lua script will run on Android and iOS at about the same speed as C# and Java. I knew this would eventually be supported, but I didn't know until yesterday it was released about a month ago.

 

We've had a surprisingly strong positive response from developers over our support for mobile platforms, especially Android. This feedback has been coming from both the Leadwerks community, as well as other places like Google+. My estimation is there's probably ten times as many people interested in mobile game development as there are interested in PC development. Since Android especially is going to be an important platform for us to support, I've decided to implement an OpenGL 2.0 renderer, and make that a higher priority than the OpenGL 1 fallback I originally planned. Leadwerks Engine 2 used OpenGL 2.1, but this will be a much simpler renderer that just matches the functionality of the mobile renderer, so you can get the exact same pixel output across all supported platforms. Expect to see something about as capable as the Half-Life 2 engine.

 

Of course, the OpenGL 3.2/4 renderer will still be available on Windows. At this time, Apple's OpenGL 3.2 drivers are not functional, but when they are it will be no problem to enable the OpenGL 3 renderer for Mac computers as well. (Tim Cook: Please see bug report #9896622.)

 Share

12 Comments


Recommended Comments

Is Lua going to be a problem for IOS devices? IIRC, Apple is pretty down on any scripting languages being used. Would all the scripts be run through a Lua AOT compiler first? Or am I misunderstanding Apple's policies?

Link to comment

My estimation is there's probably ten times as many people interested in mobile game development as there are interested in PC development.

I think so also, mobile games target more entertainment , causual, fun instantaneous gameplay even if there are some solid games

like Dungeon Hunter 2.Its' mroe easy for people to make mobile game than for example AAA Next Gen FPS commercial game.And tablets become more and more powerfull and sells a lot actually more than PC mobile !

 

Great news For Lua, this is what i plan to use also.

In fact it seems to turn in something like Unity3 and it's scripting system :), it means fast gameplay makinf and tunning and fast game production. Mobile game publishing will only boost up LeadWerks engine :)

 

Unfortunatly, Apple mobile publishing involves having some Apple computer what is really expensive.

Android will be much the way for PC people , caus the build can be made with CyGWin for example !

Link to comment
In fact it seems to turn in something like Unity3 and it's scripting system

I hope not.

 

caus the build can be made with CyGWin for example !

Android compiling of C++ is pretty difficult. You have to install the Java SDK, Eclipse, the Android plugin for Eclipse, Android SDK, the NDK, and CygWin. Lua is a much simpler path since you don't have to install any third party compilers or SDKs.

Link to comment

Also with other engines you have to install 5 or more different SDKs, but that's just setting your computer up, and it's usually very well documented. Also when you install Windows, you have to install like 30 different SDKs, drivers, tools, programs, etc... Which is actually more difficult, but most people seem to have it working.

The actual compiling should be quite easy though?

Link to comment

For Android, you also have to create makefiles. :)

 

But once everything is set up, it's simple to compile. The emulator doesn't support OpenGLES2, so you will want to run the app directly on your device. You can do this from Eclipse.

 

I recommend developing your game on Windows, and then just build it on Android. Don't try debugging C++ code with Eclipse.

Link to comment

Code::Blocks is kinda like a graphical makefile maker, so it should work then too. Possibly also CygWin can be replaced with MinGW, although I don't know yet if it's better or worse. Code::Blocks supports CygWin also, so either will work. I will test that when LE3 beta comes out.

 

I haven't needed an Emulator with my Galaxy S2, because it has USB 3.0, which is insane fast. As soon I have an apk file, I can just do "adb install filename.apk" from the command-prompt, and it's right on my phone's desktop. That command can then be integrated into Code::Blocks as well, so I have a one mouse click action in my C++ editor to install it on my phone.

 

For debugging I would use in-game statistics displays, I've always done that, and find it easier and faster than some debuggers, which usually then don't even work the same way as the release code. I could also write the output to a text file on my phone, because the phone is just like an USB stick, and I have mapped it with a drive letter, so then I have realtime debugging results on my PC.

 

I've realized that also, that it's in the end faster to make the game first work in Windows. Because the same game code should work on Android then too, especially if you use only source code libraries, and no precompiled .o, .lib or .dll files.

 

With modern high-end phones I don't even have to worry much about FPS, as they are sometimes faster than some low-end PCs :) For example my phone can run a game with terrain, physics, realtime shadows and lights at 60 FPS, while some low-end phones run it at 10 FPS. At 10 FPS I can still have realtime FFT water with reflections, but that's too heavy even for my phone.

 

Then the porting is only one more independant step in your game development pipeline, which needs to be only once also, since then you have already all your libs ported and adjusted for your next game.

Link to comment

It's probably possible to set up CodeBlocks to work with Android, but we always do things the official/most common way that Google recommends.

 

Yes, the PC market is so bad that cell phones often have better graphics performance. At least with an iPhone you've got a minimum graphical capability that is decent. I'm afraid the Android market has a lot of low-quality garbage, just like the PC market. Manufacturers want to cut costs, and so they put a cheap graphics chip in the phone, and think no one will notice. Meanwhile, Apple puts a good GPU in every phone, regardless of whether the user will actually need it.

 

It's just like the low-end PC market. "Why would you want a GPU? Not everyone plays games. A work computer doesn't need one." :)

 

My HTC Evo, for example, gets 30 FPS max (it's a known hardware design issue) and it gets 7-16 FPS drawing a single 15,000 poly model. Meanwhile, my iPhone and iPad render the same thing with no performance cost, running at the max framerate of 60 FPS. The Evo was marketed as "the iPhone killer" (for a month, anyways) and I had no way at the time to know how its graphics performance would be. If you buy an iPhone, you don't have to worry about making the right choice; everything will be reasonably good, even if there's an Android phone out there that is better in one area or another.

 

This is why I think HP had the right idea when they acquired WebOS, but I guess all those plans went out the window with Mark Hurd's departure.

 

I don't know what it is about PC and cell phone hardware, but it seems like pure competition destroys customer choice and quality. Maybe it's just the inability of the market to know what they're really buying. It doesn't help when hardware manufacturers obsfucate the performance of their products, like how CPU makers no longer advertise their clock speeds and GPU makers don't specify the number of stream processors their cards have. Now Intel just rebrands the same stuff over and over (yes, I know the architecture changes, but is that really that big a deal?), and they act surprised when no one is motivated to buy their processors. Even nerds have a hard time getting excited over a Clarksdale, Sandy Bridge, etc. Clock speeds aren't perfect, but at least it's an arbitrary indicator of performance.

Link to comment

It's actually wrong to compare Android and iPhone, since there is only one iPhone (a few different versions), and thousands of Androids. It makes more sense to compare a Galaxy S2 with iPhone 4, because they won't change much and don't have random specs.

 

As a Indie, I don't really have to worry where my game works. I can choose to make a low-end game which should work on all phones, or I can choose to make a high-end game which works only on Galaxy S2, and perhaps on HTC Evo 3D and the new Motorola Atrix 5G.

 

Even if I sell only 10 pieces of one game, I make profit, because the costs are shared with all games I make.

Link to comment

It's actually wrong to compare Android and iPhone, since there is only one iPhone (a few different versions), and thousands of Androids.

 

I think that's some of Josh's point. The Android market is so fragmented and you never know what kind of Hardware you are going to get.

 

I don't think it's a huge deal because games are really just not considered at this time to be the main reason people have these smart phones so most vendors probably aren't caring all that much about it. I think at this time most vendors want to spend the time making sure the basic apps work great. I mean how many people would refuse to buy a phone just because it didn't play a video game all that well? Probably a pretty small market at this point in time. People realize these things aren't portable consoles, they are phones.

 

I think phone games are the flavor of the month (OK maybe it'll end up being decade), but your input options at this point are so limited that the types of games you generally can make are pretty boring. Even what is considered "great" by mobile standards is still pretty crappy compared to PC or Console standards as far as gameplay goes.

 

I mean Angry Birds? On the PC that's a free flash type of game that you play for maybe a few days and forget about. On the mobile platform people are going crazy over it most likely because, shocker, it was free! I would love to actually see some of these video game numbers because I have a suspicion people aren't making all that much. If anything it seems like these developers are just making a ton of crappy games in hopes people are just more willing to try a game for $1.99 sot he more games you have the more chances you have to make money as opposed to actually making a good game.

Link to comment

In fact there are solid games for Iphone and Ipad. Specially now with Ipad 2 that have even more power.

And there are little games on mobile that are really attracting.

Just try Dungeon Hunter 2 for example, or some great RPG, or some sort of Zelda Clone, and Gameloft games that are

really polished for mobile games and fun.

For people travelling , or taking common transport each day, a good bunch play games. At home some people

prefer to open the Ipad and beeing confortable , surf on internet and play good mobile games instead of starting their big PC.

 

Wel when you see the sales on Apple Store for some games, there is a big market :)

 

And you'll have lot of work to do as good games as some companies are making seriously for the store.

Gameloft is the proof that mobile games can sell a lot, now it's a really big companie with big revenues no ?

Find a team and make polished interesting games and you'll be successfull also :)

Link to comment
Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...