Archive for the ‘MOBILE’ Category
A sweet engine for getting started with Android game development is the andengine 2D OpenGL ES engine. This is very simple and compares with cocos2d-iphone for iOS development in 2D with OpenGL ES. They both support a wide range of 2d techniques with an OpenGL renderer. Some great videos are posted on the andengine google code page showing a box2D example, multiplayer example and more.
Mobile games are on slower hardware, similar to later 90′s computers so native is a great way to go for 3d and 2d game development because of this limitation at the current time and well into the next few years. Take this time to learn you some native gamedev. andengine isn’t native directly as it is Java based but compiled with the Dalvik JIT virtual machine. Another way to go native on Android is the Android NDK which allows C and C++.
- andengine download at google code
- andengine examples at google code
- andengine blog
- Mercurial repository at google code
- cocos2d-android port of cocos2d-iphone with BSD license
- rokon android is another BSD licensed android game engine
The engine also has extensions that can be easily added and some great ones exist already.
A quick roadmap was posted by Unity3d.com blog on the immediate future of Unity iPhone. Currently I am developing two games for the iPhone OS 3.0 and these are welcome updates. We are really looking forward to items not in the hard version just yet but we are looking forward to terrain support and downloadable content support in iphone sdk 3.0.
Unity iPhone 1.0.2. Based on custom builds we’ve been sending to devs in need, this release will address engine memory leaks and fix other outstanding issues:
- Physics and audio related memory leaks
- Asset leaks while reloading scenes
- .NET sockets and threads
- Compressed audio related issues
- Stripping away too much of GUI components
- Occasional crashes in AOT compiler
- Support for both portrait and landscape splash screens
Next will be Unity iPhone 1.1. Since the release of 1.0.1 we’ve been working on a number of performance and memory optimizations. Most of the work on 1.1 is finished already and we’re doing an internal bug fixing round before it goes to beta testers too. Along with optimizations this release will include number of important features such as:
- Native on-screen keyboard support and interoperability with Unity GUI
- Movie playback support
- Performance optimizations:
- general rendering loop optimizations resulting in less OpenGLES state changes and less CPU work per object
- number of internal routines were rewritten using VFP coprocessor assembly
- way much faster mesh skinning utilizing VFP
- batching small objects, given that they share same material, into single draw call
- General distribution size optimizations which allows applications below 10Mb
- Number of significant memory footprint optimizations
We don’t have strict versioning past 1.1 yet. Some of the following features will end up in the next big release and some might find a way to sneak into 1.1:
- Compressed audio streaming directly from disk
- Support for 3.0 SDK
- 3.0 downloadable content
- 3.0 bluetooth networking
- GPS/Location support
- Vibration support
- Post-processing and render-targets support
- Terrain support
- Per-pixel DOT3 lighting support for skinned meshes
- Reduce load times
- Reduce distribution size even further
- Improve GarbageCollector collection patterns to reduce spikes
Flash not being on the iPhone yet is quite telling of the type of company battles going on. I like what Apple produces many times but they love a locked down environment more than Microsoft, in fact Microsoft seems like an open company and open market that is for sure compared to Apple. I am starting to think it will not happen, Flash on the iPhone. I have to boycott the iPhone for the type of closed environment that only non-developers can love. There are certain technologies, open or not, that become base technologies that create a platform of commonality to even make a market possible, the mobile market seems to be doing everything to not let that happen.
Daring Fireball (John Gruber) has a good take on the situation.
Flash, on the other hand, is (from Apple’s perspective) the wrong sort of proprietary — owned and controlled by another company. Apple and Adobe aren’t enemies, but they’re certainly competitors, and the history between the two companies is not entirely warm.1 In the grand scheme of things, I suspect Apple’s executives aren’t happy at all about Flash’s prominent and entrenched role in desktop computing, particularly the fact that Flash, rather than QuickTime, has become the de facto standard for video on the web.
It is all about control…
The mobile market is wide open in ways that the desktop market is not. E.g., in the mobile OS market, Microsoft isn’t even in first place, let alone a monopoly. And, in the mobile world, Flash is rare, not ubiquitous. Why would Apple help Adobe establish Flash as a de facto standard for the mobile web, too? If Flash does turn into a major force in the mobile world, Apple can always add it later. But why shouldn’t Apple push for a Flash-free mobile web future now?
As it stands today, Apple is dependent on no one other than itself for the software on the iPhone. Apple controls the source code to the whole thing, from top to bottom.2 Why cede any of that control to Adobe?
Unfortunately if Gruber is right the mobile market will continue to be a lag in areas such as gaming, vector based apps, video, competitive markets, and many other things that lead to innovation. I think some of the recent changes in mobile recently are extermely cool (iPhone, Android, new flashlite) but unfortunately they have added about 20 new directions that mobile developers have to develop for. It is anything but a consistent platform even within the company silos being created in the mobile market.
There is no Flash or Java support on the iPhone. This had leaked earlier but now that it is out this is verified and it pretty much sucks.
I was at least hoping for FLV support which would open up many clip sites for mobile, but then again this would compete with iTunes and QuickTime.
Current knowns about the iPhone dev platform:
- there’s no Flash or Java support
- there is PDF support
- Quicktime is used for encoding and displaying video and audio
- said video is encoded via H.264
- with Safari on the iPhone, links can be embedded in web pages to allow phone calls from a click; this would be insanely useful for corporate directories and such
- the iPhone’s browser user agent: Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A538a Safari/419.3
Also more info from here:
- 10MB max html size for web page
- 8 documents maximum loaded on the iPhone due to page view limitations
- Quicktime used for audio and video
- stylesheet device width:480px
- there are no scroll bars or resize knobs. the iphone will automatically expand the content
- new telephone links allows you to integrate phone calls directly from your webpage. remember this is only on safari.
- built in google maps client for integrated mapping from your website
- iPhone screen size 480×320
- encode movie size 480×360
- Links to movies on a web page will take users directly to video full screen playback
They are really controlling the experience early on, something I was hoping they wouldn’t do. Controlled markets is the current problem with mobile platforms in the US. I am sure better specs and flash might pop up in later versions of the iPhone in Apple fashion of increasing the hype on each version. Advancements such as 3G, more than 8GB storage, flash maybe, just not sure about this one due to the competition of Quicktime and iTunes. This severely limits the RIA web on the iPhone, at least this version of it.
UPDATE: Jesse Warden has links to using Flash content inside of Quicktime. This coud be a gaming option after all. It still limits the web browsing but in terms of interactives and games this could be good.
Flash on the iPhone via Quicktime: Part Deux
Apparently the “enabling” of Flash is as simple as clicking a button, correcting my original coverage.