Skip to content

Archive

Tag: iPad

I started getting my next app ready to release. I’m looking into small things – icons, launch images and the like. This article is mainly about compliance. It is meant as a quick reference if anything and may be little help if you have never released an app before. You can check references at the bottom of this article if you’re looking for comprehensive information.

Finally, keep in mind that this kind of information easily gets out of date. Even if you find this article useful please check every information using reliable sources.

Launch images

XCode 4.2 (for iOS5) will rename images using the following convention:

Default.png, Default@2x, Default-Portrait~iPad, Default-Landscape~iPad

Default-Landscape~iPad won’t work on my iPad running iOS 4.3.

Using these names instead: Default-Portrait, Default-Landscape (without the ~iPad extension) works and the images still appear in XCode.
However using this method, so far I only got Default-Landscape to be recognized (may need to refresh build completely)

Another way to fix the issue is to add keys in the info.plist:

UILaunchImageFile, UILaunchImageFile~ipad

There is a Q&A about that.

App icons summary

iPhone: 57×57 (Icon.png)
iPhone (retina): 114×114 (Icon@2x.png)
iPad: 72×72 (Icon-ipad.png)
iPad (spot): 50×50 (Icon-spot-ipad.png)

Icon-settings.png 29×29

iTunesArtwork.png: 512×512

Note 1: I am not sure whether names are needed depending on the plist configuration; however keeping names is also good to maintain backwards compatibility.

Note 2: In XCode 4.2, if you add icons to the summary view, XCode will duplicate and rename the icon file, even if the icon file is already added to the project and already uses the correct name. If the icon is correctly named and you don’t to keep the duplicates (for example because your project folder is organized in a different way), I think it’s okay to delete the duplicates (icons still appear in the summary view). Additionally XCode adds entries to the info.plist automatically. Apparently older entries may not be overridden so doing a little house keeping may be necessary.

Caveat: in iOS5, it seems that there is a new info.plist entry for icons and this may require adjusting the ‘gloss effect’; check
CFBundleIcons > CFBundlePrimaryIcon>UIPrerenderedIcon, which apparently overrides it’s namesake in the plist root.

Universal apps

In XCode 4.2 some work will be done automatically when you switch to universal app, e.g. copying MainWindow.xib. The UI will look so-so and require corrections. In some situations the same xib file can be used for both (if the UI is simple) – obviously designing a dedicated UI is the best.

Other than MainWindow-iPad.xib (wired from the info.plist), it is the developer’s responsibility to point at the correct xib files.

References

For launch images and icons, check this comprehensive article on the OOPS tech blog

Also check: iPhone Dev 101 – size of UI elements

Hairlock - dev pic

On the 1st of December, major Japanese iPhone site App-Bank reviewed Antistar: Rising and posted a gameplay video. Thanks guys, getting a little attention is all we needed to steal the spotlight this week-end :)

We’re still way off the next Antistar update. Essentially changing the way our game engine works, without actually rewriting the bulk of code that makes it work, has occupied the best of my time in the past 6 weeks or so – although I’d like to rush into chapters VI-XI and all the fun of designing new stuff, I’m actually just piecing Chapter I together again, patiently. On this note, here are ‘three questions to a young game code designer’:

1. How do you handle cut-scenes?
2. How do you switch scene?
3. Can you serialize game state?

If your game engine/framework supports you when you want to cleanly disable PC controls and substitute a 2D UI while a dedicated class orchestrates an animated sequence, momentarily taking controls of both the  PC and NPCs, you’re doing good.

If you can teardown a scene and replace it by another, quickly (ideally without loading times), then you’re also good.

These two design problems emphasize the need for modularity and clean memory management in our game code. It’s quite easy to get started with something great, only to realize way way down the line that we just wouldn’t know how to teardown/disable/replace the game UI, or that you find yourself unwilling to switch scenes because you don’t know which wire to cut first.

It would be mindless for me to suggest an answer to these questions. Every game programmer will find their answer  if they bother asking – point being, the more we delay asking these questions, the more we’re likely to have a hard time answering them.

Activities, said we? [edit, 25/02/2011]

This post used to include short guidance about how to write Actuators. Actuators are classes that provide a simple [AnActuator step:(int)millisecondsElapsed] method in charge of performing time based updates. They should only be used when necessary and, most of the time, Activities should be preferred. Activities are even driven controllers managing actuators over longer periods of time.

Both activities and actuators are central to clean game design. I removed the original explanation (which misleadingly confused them both) and hope to write a better, sturdier introduction to this topic quite soon

I read criticism suggesting that the iPhone storefront needed to change given the large amount of apps in-store. I disagree. I think the iPhone storefront gives ’stepped opportunities to progress an app’s visibility’ (1). In other words, it feels like apps get a fair chance to get noticed on the iPhone, especially combined with the iTunes storefront. The iPad storefront tells a different story.

You’ve made an iPad app. What does it take to gain visibility in the iPad storefront?

in iTunes, the iPad store is structured in the same way as the iPhone store – there is a button to switch between iPhone/iPad apps, right at the top when entering the iTunes app store.

on-device, the situation is different. The iPad has its own storefront. First off, the most obvious thing you might notice is that your app is… …not visible anywhere once it moved out of new releases. Yes, even if it’s moderately successful. This article explains why.

1. Storefront structure

Like the iPhone storefront the iPad store is divided into three categories:

  1. Featured apps. This seems to combine hand-picked products with high ranking products from the charts. I’m not covering this in detail here, as the mechanics behind featured apps are (from a marketers’ point of view) obscure.
  2. Charts. Yes. That’s just the best selling apps.
  3. Categories. We’ll come to that

Somewhat unfortunately, however, the similarity ends here.

2. Browsing by categories

If you pick a category, and you have a ‘moderately successful’ product, you’ll most likely try to select a sub-category (well, guess that’s what moderately successful means, right?). Alas, the iPad store has no sub-categories.

Here’s something even more interesting (or desperate). This is how the games category is organized:

  • Spotlight: 17 apps – 17 screenshots, beautifully showcased.
  • New and noteworthy: 48 apps
  • Mini showcase: 6 apps – 6 icons, clearly visible but somehow demoted towards the bottom of the screen.
  • What’s hot: 47 apps

What’s missing? There is no way that buyers can access the charts from this section! All of this is editorial stuff. I’d like to test the overlap between ‘editorial stuff’ and ‘best selling games’. But I’ll need to be doing it another time.

3. Browsing the charts

At first glance, it would appear that we can’t browse charts by category. It actually takes luck or perseverance to discover a small, gray on gray ‘categories’ button at the top left of the screen. Now, this is interesting. We have two category buttons in the layout, and one of these buttons allows browsing charts by category, but it’s not overly visible, so I’d safely assume that a reasonable percentage of iPad users will never notice it(!). Summarized…

  • (Maybe depending on bandwidth) a user can view either the top 20,40 or 60 products (I say ‘depending on bandwidth’ because it’s down to my luck how many times I can press the [more] button).
  • Users can get charts by categories (enter charts, then top left for categories) but this isn’t all too obvious.

Conclusion

Expect having a hard time with the iPad storefront, here’s an example:

  • Antistar ranked #3 in RPG/Adventure (both!) on iPad (Japan). This only lasted for a couple of days, but I’m not boasting, just illustrating a point :)
  • At this time, the RPG/Adventure sections of the iPad store (in iTunes, not on-device!) featured the product in ‘What’s hot’ and even ‘New and Noteworthy’.
  • The game was hardly visible on-device. You’d have had to open the charts, find the categories button, and press ‘more’ a couple of times to find the product somewhere at the bottom of the top games list. Not featured in games. No sub-categories to have a look into, nada!

Given the storefront allows nothing like a stepped progression, and the iPad market is at least 10-15 times smaller than the iPhone market at the time of this writing, I raise my hat to the courageous developers that make dedicated apps for the iPad. The device is nothing like an iPhone in terms of weight, size and on-screen real estate, so the iPad needs dedicated UI design. Even with moderate competition (~30k apps) newcomers may have a hard time getting their apps noticed.

(1) No. I’m not just saying that because I was featured in top-something recently. I was, but I’m not now – ‘hardly anywhere not, to the least’. I’m not saying the iPhone market is ‘easy’ either. I don’t really think it should be anyway. The market is hard enough that it takes luck or hard work to get apps in the charts, and that’s a sign we have a healthy app market!

Today I grabbed an iPhone4 – not quite at the price you get it in the US or the UK, and that gave me an immediate opportunity to judge the work I did on Antistar to support so called retina display.

For reminder, development started on an iPod 2nd gen. If you followed this blog on and off, you already know that getting the game to run at frame rate on the older iPods has been a constant struggle. Then I bought an iPad, and an iPhone 3GS along with it. The original plan was to do a separate version for the iPad, and performance tuning on the 3GS. The ‘iPad project’ sat in a cupboard for 8 to 12 weeks.

Optimizing for 3GS and iPod 3rd gen

On the 3GS, it became clear very quickly that there was spare processing time. Since I had already implemented depth of field (DoF) balancing (less details in the background when running out of processing time), this translated immediately into… more detailed images.

But I still felt I hadn’t reached the limits. So I figured a way I could introduce antialiasing without directly relying on the GL (remember multisampling is a late addition on iDevices), and that turned out to be rendering on canvas 1.5x as big as the screen, and letting the system resize and antialias the picture.

Well. That looked pretty good, and the game was still running very smoothly. Adding antialiasing did cause the DoF balancer to kick in at times, but nothing like the iPod 2nd gen.

The ‘Retina incident’

Now we get to the part that finally cost me nearly a $1000 (that’s what I got mine 4!) and somehow produced, as a collateral, a universal app running on all devices.

I postponed getting iOS4 on any of our devices. I also postponed getting the latest SDK. Seriously, if you’re about to release a game, what do you want? Do you want to fix all the bugs, then look into device / OS specific issues, or do you want to make a mess?

The first big surprise came from the iPhone4 simulator, and a short email clearly indicating that all iPhone games would run on the iPhone4 anyway.

Surely I did want to support the retina display (and the game does!). That still left me guessing what the performance of the device might be. With vague echos suggesting that the iPad and the iPhone4 ran pretty much the same hardware, the best way to have a try must be to run the game on an iPad. So I migrated the build to universal, and got to work.

At this stage, I was in for the second big surprise, and not a good one: given a bigger screen size, the iPad’s horsepower is worth something between the iPhone3GS and the iPod touch when it comes to 3D rendering (assuming you take away GPU optimizations, and I don’t have that running yet). Meaning…

…meaning that the DoF balancer kicked in much earlier on the iPad than it did on the 3GS. Kind of regrettable considering we have a much bigger screen, providing a more immersive experience, somewhat at the expense of having to handle a heavier, clumsier device.

And then what, well, this is what I did:

  • Disabled antialiasing on the iPad. the game looked beautiful in a different way, and surely ran smoother and better than on the 2nd gen iPodTouch. No great loss then (and no negative feedback from players).
  • Limited the canvas size to 1.5x iPhone – quite the same as the 3GS, but not rendered quite in the same way. Instead of antialiasing by blending pixels, we’re running somewhat under the maximum definition.

Where the user experience comes in…

Players reported that the iPhone 4 renders ‘just a little better than the iPhone’. If you’re comparing with an iPhone 3GS, this is necessarily true. We get a picture that’s just a little more crisp on the iPhone4. Other players asked me if the game really supported retina display. And it really does! But not quite in the way mip-mapped textures or a 2D game would look on your iPhone4.

I don’t feel my players on iPhone 4 are very happy. The truth is, they’d rather have less depth of field (and not know about it), than have less definition. Because increased definition is what they dropped the buck for.

So what’s left for me to do is drastically improve the engine performance. Because I don’t want anybody to feel they don’t get what they paid for.

Oh my. think about it, it’s a $3 title and it needs to run on a screen that’s 4 to 6 times as big as your PS3’s telly.

Hairlock - dev picUpdate: Antistar 3D: Rising is now available on the app store!

Why is a 13 year old dreaming of metal cities?
What lies in the dark forest beyond Klinnburg?

Anticipating the success of the Twin Star Saga,
Antistar 3D offers stylish anime action and adventure.

>> Watch the video
>> More screenshots

Join the buzz or check discussions on Touch-Arcade forums.

With an exciting title putting experienced and new players on fair ground, we’ve just proven that mobile entertainment owes nothing to game-boxes:

Hairlock - dev pic

  • Realtime, fullscreen interactive 3D
  • Unique mix of adventure and arcade
  • Unexpected allies and opponents
  • innovative ‘no grind’ gameplay
  • An original cast of haunting, magic creatures.

From the quaint emptiness of a marooned village to a mice gang’s lair, become a child without memories,
armed with only courage and a forward attitude to solving life’s little annoyances – not having a clue what’s going on, not having a chance against oversize wildlife and getting captured by really bad guys.

With procedural landscapes, three dimensional growth and beautifully detailed models,
Antistar 3D: Rising pushes the limits of 3D on mobile platforms and will seamlessly adapt to your device’s capabilities.

Main Contributors: T.E.A de Souza, Chan Zhang, Karen Xu; Music: Matt Hansen (Calpomatt), Justin R. Durban (Edgen), Mark. SFX: Mark E Buckland, Robert Gacek (FXProSound), Joel Carli, Sith Master, Starmanltd, The_lone1, T$_Technologies.

Antistar 3D: Rising will be distributed as a universal app taking advantage of all device’s capabilities:

  • Basic rendering optimized to run smoothly on iTouch
  • Antialiasing (iPhone 3GS)
  • Retina Display (x1.5 iTouch definition 3D view)
  • 1004×768 full-screen on iPad

Visit the product homepage for a quick description.

Summary:

  1. At the time of this writing I don’t believe there’s a pen worth buying for the iPad.
  2. Tablet PCs have been around for a while. If you want one that supports a decent pen, try the LS800
  3. Finger drawing is the future.
  4. Hopefully, one bright and beautiful monday morning, 3D artists will drop their mice and use their fingers instead.

You bet I didn’t really intend using my iPad when I got it.

After all, I’ve already got a beautiful S101 EeePC that I hardly use. Just for skyping, note taking and surfing in coffee-shops. And working on the go – you have to believe it: S101 has a full size keyboard.

Hardly before I was 10, my Dad miraculously suggested I learn 10 fingers blind typing. Worked out better than teaching me not to use the lot of them (fingers) to eat cheese and other tiny bites. Ironically, I learned on a Mac+, back in the time the desktop was still a revolution. Ain’t we getting old…

In short, I felt slightly embarrassed, at the outset, finding time consuming information and mass entertainment. In the meantime…

Maybe we don’t really need a pen

After reading a comprehensive review, I ordered a Dagi pen – what’s in ordering a pen that’s as big as my finger (I won’t name products I haven’t tested)? Then I finally got a drawing app, grabbed the mean weeny plastic thingy, had a go at it, altogether relieved my discomfort, first rubbing off, then correcting my work with… …a finger.

That’s when the magic happens. I can type pretty good with 10 fingers, and I really only draw 10 times worse than I type. Not significantly worse with a finger than with a pen.

When’s the 3D killer app?

I love vector graphics. Two finger gestures are perfect for zooming and rotating if anything. I didn’t expect finding anything like ‘just a digital notebook where you can draw, and turn the pages by pressing the screen corners’. Maybe there’s one (Adobe Ideas is too complex and too slow for me. I just tried).

If I can use my fingers to make 3D models and animate them, with whatever added ease this could bring on top of what a blender can do for us, well. I’ll throw a party.

OK… I can make my own drawing ‘pad-app’. I can even make a little utility for quickly modeling stuff. Nice to forget there’s no army of me backing random ideas.

Draw on the go, with a pen

If you’re into drawing on the go using suitable hardware, I might have read that the LS800 supports Wacom pens. Que veut le peuple?