[Twitch] Chicken release for iOS, Android and HTML5! - May 22, 2014

I think we hit most of these in the live stream, but to recap:

Any HTML5 browser with WebGL support. The latest version of Firefox, Chrome, Safari, or Opera should all work (see the HTML5 FAQ for more details). I’ve run it in IE11 before as well, which has beta WebGL support, but the experience isn’t ideal (takes IE11 about 5 minutes to JIT the javascript before you can start playing, and IIRC text rendering was broken).

A GPU capable of OpenGL ES 2 is necessary to run UE4, but I’m not aware of any Feature level 9 devices that don’t support ES2 to be honest (some don’t support it fully or bug free…). We’ve got it running at 60 fps during gameplay on most Android devices and all supported iOS devices.

Note: The following section is from memory, so I might have gotten a device name wrong: There are a few fairly old devices where performance isn’t as good like Nexus S at 30 fps, and one device was around 20 fps (Fascinate S). I’ve asked someone from QA to post actual measured numbers from our device test matrix, which should happen in the next couple of days. We’ll continue to improve mobile performance over time as well.

What are the current package sizes for the apps on iOS/Android? Are you still working on reducing mobile package sizes and what is the optimum that you could imagine for a game like Chicken?

[/QUOTE]

The final shipping sizes for the various platforms are listed below:

  • HTML5: 9.4 MB
  • Android: 26.8 MB (OBB + APK combined)
  • iOS: 28.2 MB

The actual Chicken game content is under 2MB, the rest is basically a fixed overhead for the engine that won’t increase as you add more content to your game. We’re still optimizing this overhead; expect to see further size reductions in future releases. Even so, you can ship a much larger game with dozens of times more content than Chicken and still fit into the OTA download size for the various stores (typically 100 MB).

If you’re willing to compile some C++, you can get Chicken on iOS size down by around 10% by changing the iOS build cs to optimize for size instead of for speed, which should be fine for a game like this, and you can shave about half a meg off of iOS or Android by replacing a couple of unused but referenced engine textures with 1x1 replacements (we did this for the shipped version of HTML5). We’re going to start a wiki article talking about optimizations like these that can be made as well.

There haven’t been many big changes here in 4.2, we’ve been more focused on improving compatibility and performance on device. We hope to work on this more for 4.3, although you can use UnrealRemoteTool right now (most people at Epic use this path rather than using a Mac), it’s just not a polished workflow yet.

The game is entirely done in Blueprints.

You need a supported mobile device, and a PC for Android, or a Mac for iOS. You can do either of those using the launcher version of UE4, but HTML5 currently requires using the GitHub build.

Once you’ve done the initial setup to get the platform SDK installed and provision your device, it’s really no different to making a game on the PC. You can go ‘mobile-first’ and implement only touch controls, and have the PC version emulate touch input when the mouse is clicked (it’s a project setting under the Input tab). I’d also recommend using the ‘Play on PC mobile preview’ setting from the editor to double-check that your materials are working as expected when iterating on effects or materials, but otherwise the regular PIE works fine most of the time and you only really need to deploy to device to check performance or get a feel on the small screen.

The shipped versions of Chicken were created from a branch made off of master, which roughly corresponds to 4.2. All of the fixes made in the branch have been merged back to master and will be in 4.3, and most of them also got merged into 4.2 but not all of them. I’d give 4.2 a try when it comes out.

You can use the ShowAdBanner or HideAdBanner Blueprint nodes. There are some setup things you have to do per-platform as well (e.g., enable iAd support in iTunes Connect or add the API key for AdMob on Android), which we’ll go into more detail on in a future blog post once 4.2 has been released.

Chicken does not currently use Paper2D. It will be updated to use it when Paper2D is a bit further along. You can check out progress in the Paper2D thread, on the trello roadmap, or directly by looking at GitHub commits to the master branch. My current aim is to get Paper2D to a point where an ‘early adopter’ can start using it in earnest in 4.3, but no promises yet.

Cheers,
Michael Noland