Gaming Horror      
... it's a Game Dev's Life ...

about: Computer & Video Games, Game Programming, Scrum & Agile Development, Indie Games and the occasional horrors of life by Steffen Itterheim

The iPad can’t run multiple applications at the same time – so what?

February 9th, 2010

It occured to me while reading the Wikipedia iPad page that the iPad doesn’t need multitasking, in other words it doesn’t need to be able run multiple applications at the same time. Actually, it shouldn’t even be able to do so. Moreso, the criticism it received for the lack of that feature from tech experts even state as an argument that costumers have come to expect multitasking. But … come on, they don’t!

Many of them will come from an iPhone / iPod background, if any tech background at all, so their expectation certainly isn’t multitasking nor would i expect it to be a major concern for them. However, the techies and gadget geeks who are writing the most at this time about the device and discuss it at length, they of course have that expectation. But i don’t see them as the target audience in the same way that gamers are not the primary target audience for the Wii. Sure, they buy it but they won’t be as satisfied with it as the costumers who belong to the target audience.

What really brings down the argument about the lack of multitasking for the iPad are the developers themselves and how easy it has proven to be to develop apps for the iPhone / iPod. This is in large part because of – you guessed it – the (almost) complete absence of multitasking. Now consider if all those developers suddenly would have to share their app’s resources with theoretically any other app that which the user could now all run simultaneously. How much of a problem that is you’ll realize when you look at the current, most annoying thing about the iPhone for developers: memory leaks. If other apps leak memory and that isn’t available to the system anymore even after the app was closed, what happens is that over time fewer and fewer memory is available for every app. Soon, some apps will start behaving unresponsive or simply crash. The only solution is to somehow advice or even instruct the user to reboot his fricking device for god’s sake. But wait a second … it’s not the user’s fault at all! He will never see it that way – unless he’s one of the aforementioned techie or gadget geek. Numerous negative reviews have been posted because some people’s devices were unfortunately alarmingly low on system resources – but they didn’t know any better than to blame the app itself. And even to this day i expect a large portion of users to be unaware of this connection, or even how to “reboot” one’s device.

In a multitasking environment hell would break lose upon developers and users to the point that it would have a detrimental effect on the iPad’s and eventually Apple’s image. The ease to develop apps and the technical issues of multitasking, but most of all giving the user full control over which apps are running in parallel, would spell doom for a system like the iPad. Consider Windows machines. Consider what kind of apps are constantly running on yours. Consider what other user’s have running on their systems. Virus scanners, instant messaging, control panels for all sorts of devices and tools, news tickers, anti-cheat and friend-finder tools for games, download utilities, firewalls, another virus scanner because some people need two, or three, tools for notes, tasks, getting organized, and let’s not forget about all the unnecessary-ware regular software installs like speed launchers, document finders, auto-updaters, phone-home-ers, ad-loaders and the occasional trojan horse. And guess what? Everyone agrees that re-installing your Windows system is the easiest way to get back to a stable, responsive system. And so the cycle starts anew. Oh, don’t tell me iPad users wouldn’t start running all kinds of apps in parallel with each other just because they can. They most certainly would, even more so if it were advertised as a “shiny new feature”. Even worse would be if developers figured out how to install their app as a permanent system service. But no matter what, most users won’t understand what kinds of issues multitasking can cause. Most of them never make that connection with running multiple apps in parallel and one app constantly crashing – but only on their device of course. They might even turn the device in for a repair.

What i’m saying is, i can only give credit to Apple for making such unpopular decisions regarding the iPad. They do understand their users, their user’s behavior and they are fully aware that certain limitations are necessary to ensure greater satisfaction with the iPad. And the users aren’t stupid – that’s not what i’m saying. I’m saying they need not and should not have to understand all of this. There, i said it. We’re one step closer to a ubiquitous computing device that everyone can use. Thanks, Apple!

You can call me a fanboy now but that wouldn’t be true. I’m merely trying to understand Apple’s decisions and so far, it all makes sense to me. And that’s what i find fascinating about the iPad and Apple. But unless i’m paid to work for an iPad app i won’t get one myself. I use my iPhone rarely enough, so why should i get me an iPad?

Share this article:
  • email
  • Facebook
  • Google Bookmarks
  • TwitThis
  • RSS
Related Posts:

History repeats itself – the game industry’s “spouse” letters

February 8th, 2010

I would like to start the week by referring to a couple dramatic articles about the worst side of the game industry. The kind of stories that actually force companies to back down and turn around how work is done. As far as i know, things have changed for the better for EA. If the same is going to happen with Rockstar is still out in the open, first reports tell no immediate positive effect other than the promise of an extended time-off after production.

Back in the days when EA spouse was a hot topic it was quickly followed by the even more interesting report of events by Joe Straitiff as he experienced them while working for EA. Since then, it is said that EA has made major concessions and leaps forward to secure employees are treated fairly and crunch times are very limited. I can not really confirm or deny this, since i’ve been working in an EA studio that was bought in 2006. It was promised to us that we’ll continue working as we’ve always done. However things did change of course, there’s no way a big corporate entity who bought a small development shop is not going to have no or just a little effect on the team and how it’s working. Some things changed for the better, for example we finally got air conditioning, upped our server farm, hired a full-time system administrator and got access to a huge knowledge base and useful tools. Others changed for the worse, for example i’ve already mentioned how much i hated the employee rating system. It felt way too corporate and formal for our tastes. Overall i can just confirm what everyone who has ever worked for a big company already knows: how you feel about your work and how your work / life balance turns out to be like is highly dependent on the studio or department you work in, and of course the team and how they work together (or not).

A month after the EA spouse letter, Noel Llopis wrote his 2-part article “All work and no play makes Jack a dull game developer” which is by far the best summary of issues, myths and recommendations anyone has ever written on the subject. Make sure you read both part one and part two. I do, however, disagree with him that sleep deprivation might actually help for design and art, as they “have some of that touchy-feely creative mystique” as he puts it. It does not hold true as it is not creative art or design that is forged but often art is developed with certain technical and gameplay constraints, tools need to be used efficiently and numbers juggled. The same goes for designers who regularly juggle with numbers, navigate excel sheets of varying complexity, and always have to keep side-effects in mind with whatever they’re planning to do. So it’s not typically a touchy-feely kind of work that you perform as artist or designer and is subject to the same issues a programmer feels. Besides, even programmers have and need those intuitive, creative moments so they’re not all number crunchers and byte eaters either.

These issues were unfortunately debated again just recently, as Rockstar spouses made similar accusations about the working conditions at Red Dead Redemption developer Rockstar San Diego. The article itself was terribly written and received numerous bashings because of it. And i would say mostly because people feel it’s such a big issue and worry that the terrible writing could have a detrimental effect on the cause. If you read the Gamasutra article, don’t forget to concentrate on the comments. It currently ends with a statement from self-proclaimed Rockstar San Diego programmer Code Monkey after Rockstar apparently has promised employees an extended time-off after production is completed. He says:

“My apologies go to Rockstar for not anticipating that anything I said here could possibly have a negative impact of some kind.”

I can’t shake the feeling that that’s not the end of the story.

Share this article:
  • email
  • Facebook
  • Google Bookmarks
  • TwitThis
  • RSS
Related Posts:

The iPad doesn’t need Flash! Period. End of discussion.

February 7th, 2010

I got into an argument with my colleagues about how much it sucks that the iPad doesn’t have flash. The argument was that most of the web – or at least 50% of the web already relies on Flash. The point being: who would buy that iPad thing if it doesn’t provide a good web browsing experience?

I say, the iPad doesn’t need Flash! And neither does any other mobile device! Only very rarely do i come across a webpage that doesn’t render on my iPhone and yes, typically in these cases it’s because of Flash content. But for some people, especially developers themselves, Flash has become something like ubiquitous for web browsing – but only in their mind aka their limited view of the web and because they know the technology when they see it. So they see, expect and even demand Flash everywhere even though it is far from everywhere on the web and not everything that looks like Flash, is actually Flash (say hello to good old animated GIFs). Besides, what purpose does Flash really serve on webpages anyway?

From my point of view: games, humorous and playful entertainment art, graphic designer homepages, marketing firm websites and flashy (pun intended) advertising product pages cover almost all Flash use. Rarely if ever is one of these sites of daily use, most don’t even encourage nor expect recurring visits. They’re novelties. About the only useful application of Flash on a popular website i can think of is its use on Youtube to play videos, or any streaming video service for that matter. Some websites use it to create polls or an image slideshow, so not the kind of content you can’t go without, it’s barely a nice to have item. I agree that missing out on Youtube’s content would be a major pain in the rear and not something i’d like to do without. But hey, as coincidence (really? not!) would have it there’s the “Youtube” app for the iPhone! Great. And easier to use than the website, too! And if you think about the games, even though at first sight it might be cool to have these on the iPad, most just wouldn’t work. They expect and rely on keyboard and mouse, so with the exception of simple point & click games most games would be useless and it would be a very frustrating experience for an iPad user to find the games that actually work on his device. In contrast, over time specific iPad Flash games would surely be developed but in a similar manner their experience would then be less compelling for a user with mouse and keyboard.

Keep in mind, it’s the website creators who provide the web browsing experience – not the technology used on the web to accomplish that. Which is why i appeal to all website creators (they blatantly refer to themselves as “designers”): it’s your effing business to provide a great web browsing experience! And that goes for mobile devices as well – if you do care for them. If your target audience doesn’t use these devices, then be all flashy and what not, i won’t care. But i suppose even your target audience might sometimes prefer a standard HTML version of your webpage rather than the slow, awkward flash site your designers came up with, right? And since that one already exists, why not make that the default for mobile devices. Oh, it is, already? How neat!

Anyhow: it’s not the device’s fault that it doesn’t do Flash, nor does it matter – it’s the website creator’s fault if they don’t provide a Flash-free website version of whatever content they offer. In the long run it’s them who will lose out, not the iPad user. And let’s be honest: since the dawn of the iPhone, how many websites that you frequently visit on your iDevice has at some point in time started showing you an iPhone optimized or even dedicated version over the last two years? Many. And many more are to come. And i rejoice because it’s time Flash gets that significant counterweight so that web designers use Flash only where it makes absolute sense instead of being an abomination of web designer’s power over web browsing standards (and privacy, for that matter).

To experience what a web without Flash would be like, i’ve installed FlashBlock for the browser of my choice, which is Opera. I’m curious to know how many websites that i use really make use of Flash. I wouldn’t be surprised if it’ll be much less than 5%. In addition, check out the web’s 500 most popular websites, and tell me which of those make use of Flash that you can not go without. You’d be hard pressed to find any besides the occassional streaming video. Why? Simply because they know how to create websites that perform well, meet user’s expectations and needs, provide the content in digestible pieces and in a way that supports all platforms. And that way is still plain, good old HTML. So if Flash were to suddenly disappear from the world, once the initial shock has passed we could all live without it remarkably well.

To partially prove my point, i googled for the “most popular flash sites”. Surprisingly there was just one article in the google search what i was looking for, it is listing the Top 10 Best Flash Websites of 2010 – none of which i’ve ever heard of. And after having looked at each of them, i can proclaim: i don’t need any nor do i wanted to see most of these. Not even on my computer. Don’t get me wrong: they’re all excellent quality and have pretty amazing visuals but they’re just not the kind of experience i typically look for on the web. They’re worth the occassional distraction but unless a Flash site captivates me at first sight, i’m out. Probably just two of these Top 10 Websites would have caught my (short) attention. And the functional websites of these are all but that – at one site i didn’t know what to do or what i was able to do, at two sites what i wanted to do didn’t work (content not loading or no user feedback that content is loading), and one site even got stuck in the loading screen the first two attempts leaving me to guess whether it’ll ever finish loading. Those are just some of the problems of Flash as a web design tool – on an iDevice it would even be worse. If the performance of Flash sites on my Mac Mini is any indication, the iPad let alone the iPhone/iPod wouldn’t handle Flash very well – i suspect many Flash sites would simply be unusable on an iDevice simply due to performance issues.

And so, we should view the iPad in a different light and try to understand it better instead of pointing out irrelevant flaws. Like, for example, Noel Llopis speculating about who the users will be and how they are likely to use the iPad. That is so inspiring! And without even mentioning Flash Ben Patterson expects the iPad will be a killer Web browsing device. From this post it becomes apparent that Apple understands its users better than the users themselves. And once the skeptical but rationalizing gadget geeks (aka early adopters) like him are on board, the rest will follow suit over time.

Btw, i would like to ask the readers to point out Flash websites that are visited regularly, or which are very popular, and use Flash to render significant portions of their content. Between my searches and the people i asked, only the Disney website was a “pure” Flash website. Apparently a 37+ billion $ company doesn’t need mobile users visiting their website, nor do they care enough to at least build a stub site, as you can see from the screenshot. All other websites i visited are using Flash content mostly for ads, streaming movies (again: mostly ads), slideshows (ads), polls (with embedded ads) and a little bit of interactive content (including ads). Ads being so prevalent that complaining about the lack of Flash support for the iPad is almost as if people were complaining that the iPad won’t show all those beautiful ads.

Share this article:
  • email
  • Facebook
  • Google Bookmarks
  • TwitThis
  • RSS
Related Posts:

cocos2d LayoutHelper – touch & drag sprites to ease your game’s visual layout

February 6th, 2010


51 Japanese Characters

Today’s cocos2d code sample is a class i wrote to ease the layout of the visual elements in the 51 Japanese Characters app i helped create.

The problem i needed to solve was that i got a 320×480 PNG image from the artist which showed the final layout of one of the japanese characters. But my images were of course 51 seperate head, body and leg images and i needed to position each of the 3 body parts to correctly overlap with the sample character in the layout image. After trying a few times getting the correct coordinates by doing a simple build, check, change coordinates cycle with the layout image as temporary background image i knew i needed something better and more efficient. I was going to have to do this for the buttons as well, so that would have taken a loooong time to figure out each sprite’s and button’s correct image positions.

But before i go on describing the code, here’s one important step that may also be very helpful for your application if you need pixel-perfect placement of anything. Open up cocos2d’s ccConfig.h file and find these lines so they look like this:

/** If enabled, the CocosNode objects (Sprite,Label,etc) will be able
to render in subpixels. If disabled, integer pixels will be used. */
#define CC_COCOSNODE_RENDER_SUBPIXEL  0

/** If enabled, the Sprites rendered with the SpriteSheet will be able
to render in subpixels.  If disabled, integer pixels will be used. */
#define CC_SPRITESHEET_RENDER_SUBPIXEL  0

This will turn off subpixel rendering of sprites and is important because otherwise you will not get a perfect match with the visual element in the background image (which for me was my layout guide). Without these changes what happened was that no matter which coordinates i used, either plus or minus one more towards left/right or up/down the images simply did not seem to align perfectly. This was caused by subpixel rendering and after i turned it off, the images aligned perfectly. If you don’t need pixel perfect alignment, you don’t need to turn it off. Actually, only turn it off if you know you’ll need it, at least that’s what’s been recommended.

Anyhow, way too much text already. So in short the LayoutHelper class simply takes a sprite and (usually) the CCLayer the sprite resides in as “parent” and that allows you to simply touch that sprite and drag it around. Conveniently, it will display the coordinates for that sprite as you move it around, plus it’ll be transparent while dragging so that you can see if it matches with the background. If you don’t drag it, and this is optional, it’ll start blinking to both indicate that it is a draggable sprite in “layout mode” and to help you see if it really aligns perfectly with the background. All you need to make the Sprite draggable is to add this line with “sprite” being the sprite you want to layout by touch & drag and “self” being the CCNode you want the “sprite” to be added to for layouting:

[LayoutHelper helperWithSprite:sprite parent:self];

Go ahead and try it, it’s free: LayoutHelper class for cocos2d

Share this article:
  • email
  • Facebook
  • Google Bookmarks
  • TwitThis
  • RSS
Related Posts:

So, how is life as freelancer?

February 5th, 2010

It’s quite remarkable.

I probably made more new contacts in the last 6 months than i did in the last 6 years. This opened up new business opportunities but not only that, it gave me insights into many different aspects of business – from financing and investments to marketing and PR to visionary thinking and believing in what you do.

Before, i didn’t care too much about contacts, or just keeping in touch with people, or basically anything that seemed like a distraction from either work or my free time. Now that has changed since with every contact come new perspectives, sometimes opportunities and almost always fresh new ideas and points of view. So i enjoy meeting people either online or in person a lot more simply because i have not only the freedom to do so but it kind of feels like this is what i should do and actually want to do.

Another awesome thing is the freedom to go about my work not only in the way i want to but most of all: when i want to. Sometimes i work in the morning till noon, then i’m done for the day. Maybe i come back late at night. Maybe i just start late at night. Maybe i work from breakfast to dinner almost uninterrupted. Maybe i don’t work at all that day – even though i will probably do a lot of other things. Filling out paper work for bank accounts, taxes, insurances and what not. Or simply hanging out in forums, reading articles, posting comments or – lo and behold – actually writing blog posts not just more frequently but also with better content – i hope. The moral of the story being: i do my work whenever my life allows me to fit in work, instead of having a life whenever work leaves me time for that – which for most people means: evenings and weekends. This is a simple yet very crucial difference that abso-fricking-lutely improved my attitude towards my work as well as the enjoyment it brings with it. I wouldn’t mind doing a 9 to 5 job again, don’t get me wrong. I just wouldn’t ever do that again on a regular basis.

Then there’s no one telling me to do this that way and having this and that finished till then. You know, the boss kind of thing. It might not even have to be your boss, just simply the poor person who relays what was decided higher above both of you. That poor soul gets all the grievance. Still, he or she has to have me do that work. That sucks for both of us. And i just have to execute, to work, to function. Well, my current work relationships function much differently, more on a collaborative level. I enjoy that a lot since this is actually one of the things i was really looking forward to when i left Phenomic. Actually collaborating, working towards a common goal with shared interests is what brings out the best in people. Even though i personally still feel i want to make this one game all on my own, deep inside i know it’ll work out much better if i had one or two people working with me, sharing responsibilities and each bringing in their own individual skills. But only if we all want absolutely the same. And that’s hard to come by. But i’ll keep looking, or eventually just go ahead and do it all by myself.

Anyhow, yet another great thing is working from home. I can’t tell you how much money i save by not going to lunch regularly and not driving or using public transportation every day. But that’s just a minor thing, really. The bigger thing is that i can spend quality time with my girlfriend whenever she’s available. Since her schedule is totally wacky and changes sometimes on a daily basis, that made it hard for us to actually find some time together. Now i can almost always make time for her instead. If only i could get her to work from home as well …

Next up: how it feels to actually make money from what i do. I’m looking forward to sending out my first invoice and receiving my first income. I already suspect it’ll be a lot different to get money for actual work done rather than receiving a regular paycheck at the end of each month, regardless of what i may or may not have done. I think that is actually a very unfair, and unproductive way to pay off employees. If i ever start my own company, remind me to give my employees monthly bonus payment options which depend on how they performed that month. And if no performance review takes place, they’ll just get the full bonus as reimbursement for their boss’s failure to communicate.

Over and out.

Share this article:
  • email
  • Facebook
  • Google Bookmarks
  • TwitThis
  • RSS
Related Posts: