Make a list -- TCR for iOS game developers

Discussion in 'General Game Discussion and Questions' started by John Carmack, Sep 29, 2010.

  1. John Carmack

    John Carmack Gaming God

    Jul 24, 2009
    I used to have a rather disdainful opinion of TCRs (Technical Certification Requirements) for game platforms – we didn’t have to deal with that on the PC, and it seemed like they could arbitrarily rule out some technical solutions that might actually be superior, if unconventional, directions. I also had a somewhat muddled grouping of design requirements with technical requirements. Saying “no harming of cuddly animals in the game” is not the same as saying “pop up a dialog when a controller is unplugged”.

    I have come around almost 180 degrees on the value of TCRs. There is a lot of research that shows that experts in a field tend to loath having checklists imposed on them, even though they are demonstrably effective at avoiding mistakes, and I was probably in that camp. With lots of free and $0.99 apps it wouldn’t be reasonable for Apple to have a big list of harsh technical requirements, but it would be good to try to make an explicit list for games that are intended to be high production value apps.

    So, everyone chime in – what are the things that every self respecting ios app should handle correctly? What things do you commonly see apps screw up?

    Some obvious examples:

    Handle orientation changes.

    Support iPod music playback instead of game music.

    Auto save position on receiving a phone call or exiting with the home botton.

    Never display a black screen for more than 100 milliseconds, if at all.

    There are some “nice to have” features like external screen support that probably aren’t justifiable for most apps, but add some value.

    Make a list, and we’ll make a serious effort to adhere to it in Rage and our future products.

    John Carmack
    Id Software
  2. VeganTnT

    VeganTnT Moderator
    Staff Member Patreon Silver Patreon Gold Patreon Bronze

    Jul 19, 2008
    Freelance Entertainment Analyst
    Orlando, FL
    I originally wrote this on Oct. 20 2008:

    1. If I’m not able to resume my game after getting a call or text… DON’T PUT IT IN THE APPSTORE! Why should I pay for a game that I have to start over every time I have to deal with the real world??

    2. Please beta test your apps… Just go to any forum and look for people that seem reputable and ask if they will try your game or app out. I love beta testing and am willing to help however I can. Bug filled apps are not ok.

    3. Let me see my battery life or GTFO! This goes doubly when you are talking about games that involve the accelerometer or gps, they burn a lot of power and I need to be aware of my battery life. I can’t risk burning through my battery if I am going to be out all day

    4. Let me choose how I want to hold my device!
    In the counter clockwise landscape view:
    - the volume button is facing down
    - the volume button is flipped. pressing it left makes volume go up, pressing right makes it go down
    - the speaker is covered by my right hand
    - the headphone jack is covered by my left hand

    In the clockwise landscape view:
    - the volume button is on top of the device easily in reach
    - the volume button is orientated correctly. pressing it left makes the volume go down, pressing right makes it go up
    - the speaker is above my hand and uncovered
    - the headphone jack is uncovered incase I want to play with my headphones in.

    I prefer clockwise and it annoys me to no end that devs are refusing to put in the work to allow me to play their game COMFORTABLY
  3. karnakgames

    karnakgames Well-Known Member

    Jul 4, 2010
    Freelance Game Developer
    I think handling orientation changes and auto saving at any interruptions is the first priority for any iOS app, not only games.
  4. ^DJ_Link^

    ^DJ_Link^ Well-Known Member

    Aug 7, 2010
    First of all let me just tell you that I really admire your work. Your are like a programmer god.

    So here are a few things.

    - We should be able to store saved games and prefs on a cloud or something. Much like Steam Cloud. It has happened to me having to reset my device and although I can recover games, saves are lost. Never touch many of them again.

    - Save actual gaming position when exiting or something and ask to resume or restart to main menu when entering again. Like when you have to quickly exit.

    - Support the 2 landscape orientations. If the game is landscape it should support either at any time. Some games won't rotate when the keyboard is open, annoying. Also the volume orientation is facing the wrong direction is many games. IT should always be facing the user

    - Actually do menus for the resolution, don't just port tiny menus. I've seen many games with these tiny menus, like they just grabbed the code and assets and scaled.

    Well hope it helps
  5. kingmunchkin

    kingmunchkin Member

    Oct 27, 2009
    1. I think its really important that you can get into gameplay fast and that route is clean and clear. Say a maximum of 3 screens to pass through...

    I find myself playing the doodle jumps, angry birds and Robot Unicorn Attacks much much more than GTA or NHL because I only have 5 minutes to play and dont have 2-3 minutes to pass through game setup screens or intro animations.

    2. from my experience as developer and receiving feedback, definitely try to provide as much customization or option regarding control schemes as you can. Its really hard to please everybody with 1 setup so try to provide sliders that let players customise their controls - Tilt to Live is an awesome example to build from!
  6. Julio Gorgé

    Julio Gorgé Well-Known Member

    Aug 19, 2010
    Managing Director at Lemon Team
    #6 Julio Gorgé, Sep 29, 2010
    Last edited: Sep 29, 2010
    When a certain feature that requires internet connection is accessed, but the device does not have Wi-Fi nor 3G connectivity at that moment, a message box should pop up and warn the player about the need for internet connectivity. For instance, trying to check out the online leaderboards or do an In App purchase should bring up this sort of message box. Rationale: players should be aware that an internet connection is required to use a feature, otherwise they may be confused or think the game is bug-ridden.

    All texts in the game and user interface should be at least XX pixels in size. Rationale: text should be readable by players with less than perfect eyesight.

    BTW this thread should probably be moved to the developer subforums…not that I don't appreciate feedback from players though.
  7. HMage

    HMage New Member

    Sep 29, 2010
  8. OneSadCookie

    OneSadCookie New Member

    Sep 29, 2010
    * Do not make me wait more than a couple of seconds to begin playing. I'm playing in spare moments here and there, not hour-long dedicated sessions.

    * Do not make a sound if the mute switch is on! Any game that does that is instantly deleted.

    * Do not make sound an integral part of gameplay. I'm playing in public without headphones with the sound muted. Anything that needs my attention should include a visual cue.

    * Accelerometer controls nearly universally suck. Virtual controls, dpads and buttons nearly universally suck. Do anything you can to avoid both.
  9. Outkast1

    Outkast1 Well-Known Member

    Jul 23, 2009
    Maybe you should stick to Flight Control.

    -Please enable sound effects when playing your own iPod music.
  10. fusermarucs

    fusermarucs Well-Known Member

    Sep 29, 2010
    #10 fusermarucs, Sep 29, 2010
    Last edited: Sep 29, 2010
    To echo an above point - multiple screen orientation is a definite.
    To add an 'id software' specific point, bearing in mind your FPS pedigree, then aiming using the tilt sensors as in NOVA is an incredible help - the lack of buttons on the device make it difficult to turn, strafe and fire all at the same time (you have to press 3 things at once!). I still have problems controlling Doom Classic to my satisfaction, but NOVA is now a breeze..
  11. MrGando

    MrGando Well-Known Member

    Aug 11, 2010
    Lead Programmer
    Santiago, Chile
    Hey John,

    Before starting, I got to say I'm a huge fan of your work. And I love the idTech Engines ( have played a bit with Quake 1 , 2 and 3 source code ).

    My biggest issue with iPhone games today ( not only mine but from a lot of friends too ), is battery.

    There's A LOT of games out there that totally kill your iPhone battery, and hey, it's your phone, you need to be able to use it. So, from my friends comments I've noticed that games that drain your battery too fast are quickly dumped from iPhones.

    I've been making a bit of research about adaptive frame-rate to improve battery performance. According to my ( limited and amateur ) research, you can drastically improve a game battery usage by lowering the frame-rate dynamically on-demand.

    I would love to see polished technology to achieve this in Rage :)


    ( and I know it may not be a direct usability issue, but it's something that IMHO could be quite important )
  12. sheppy

    sheppy New Member

    Sep 29, 2010
    Ideally, games should have a way to quickly see the battery life remaining and the current time. Mobile devices are often used in situations where you're waiting around for something, and being able to quickly see the time is very helpful. If it can't be presented on the game screen (which really doesn't work for action games), present it when the user pauses the game or goes into game menu screens.
  13. Firestar

    Firestar Well-Known Member

    Apr 4, 2009
    Wellington, New Zealand
    My main things that have not been mentioned:

    When opening the game, if you have an opening movie only play it the first time the game is opened.

    Try to make the game easily controlled anywhere - if you're going to use the gyroscope for aiming, for example, add a touch option so people who don't want to have to move don't have to.
  14. Zincous

    Zincous Well-Known Member

    Dec 23, 2008
    Sacramento, CA
    Something I see asked about a lot from gamers after a game is released, is an option to flip the controls in games. For left handed people etc. Some like having the option to swap the fire button to the other side, or the controls to be reversed.
  15. arn

    arn Administrator
    Staff Member Patreon Silver Patreon Gold

    Apr 19, 2008
    the most common ones I've seen are (which basically echos what has been said already)

    - orientation issues (esp for iPod touch owners, since their headphone jack is on the other side)
    - doesn't save when a call/sms comes in, or you hit the home button
    - some people don't like acceleromter-only controls
    - ignoring mute button
    - requiring facebook as a login for high scores (people don't like this)
    - invert Y-axis for FPS

  16. ImNoSuperMan

    ImNoSuperMan Well-Known Member

    Jun 28, 2009
    #16 ImNoSuperMan, Sep 29, 2010
    Last edited: Sep 29, 2010
    - Multiple profiles/save slots please. Kids love these iDevices and my 4yr old loves to mess with my iPod and iPad all the time. I cant even tell you how many times I had to replay a game just coz my son decided he should try out the latest game too :eek:

    Everything else I wish apps will have like screen orientation, customizable controls, multiple control options, legible text instead of a tiny font, resume, ability to see battery level and time in pause menu etc have been listed here already.
  17. anexanhume

    anexanhume New Member

    Sep 29, 2010
    #17 anexanhume, Sep 29, 2010
    Last edited: Sep 29, 2010
    I have never seen an app elegantly handle touch controls such that they ensure the user is not obscuring part of the screen, which is detrimental to the playing experience. Assuming touch controls must be used, consider static controller positions carefully for a variety of hand sizes and preferred holding positions to ensure this impact is minimal. It is unfortunate that the gyroscope is restricted to the iphone 4, as I imagine that the combination of it and the accelerometer and compass would ensure that the device would give active feedback about the orientation the user is employing the device in.

    In console and PC FPSs, being able to turn quickly is essential to confronting enemies, finding cover, and preventing enemies from flanking you. Devise a quick direction change mechanism that allows for this. Perhaps you could do this via motion controls, but at the potential cost of limiting player awareness of on-screen events during this time period. I would suggest employing a directional arrow that is common in FPSs to show direction of enemy fire. Tapping on or near this would allow a player to perform a quick turn so as to preserve more of a visceral, time-sensitive FPS experience.

    In this vein, consider using gestures to allow common actions happen quickly. Opposed to having a cluttered HUD that obscures precious screen real estate, a customizable gesture may allow players to switch weapons (next weapon or specific weapon) or perform other specific actions quickly.

    I would also appreciate some kind of built-in pause period that immediately follows a push notification (or pause for that matter). As you might be aware, many iphone users regard this as one of the drawbacks of the system that is particularly intrusive. While games automatically pause to accommodate this, the return to play is often not graceful. Perhaps a few second pause where the player is allowed to evaluate all the on-screen events before returning to action might minimize any detrimental effects this disjointed experience may cause.

    As an industry leader, I also hope that you and others like yourself are considering the added value of adding physical buttons to the experience via some means. While there is a meager homebrew project in the makings ( ) that mainly shows hope for emulators, I feel that a dedicated peripheral has a place for the iPhone that allows it to be elevated to the hardcore experience that the DS and PSPs can provide with physical buttons. The rapid hardware iteration of the iPhone gives it the unique ability to stay on the forefront of graphical capabilities, which compounds the sadness I feel for lack of dedicated buttons. The future may well hold a buttonless experience for hardcore games, but game design is not there yet and the most immersive experiences are still found on devices with dedicated buttons.

    I must say that I greatly admire your technical expertise and fervor for your field. It always brings me joy to see the passion with which you speak about your products. I also admire your humility in soliciting the advice of random strangers. Looking forward to Rage on the 360 as well as the iPhone.
  18. n8o

    n8o Active Member

    Aug 23, 2010
    Founder, designer, developer, dad.
    #18 n8o, Sep 29, 2010
    Last edited: Sep 29, 2010
    I think any new game from now on should add game center support and only skip it after serious consideration. OpenFeint needs to release their GC-compatible version ASAP, imho.

    I haven't seen it mentioned yet (maybe I missed it) but fast switching support is a must. Same with Retina display support.

    Some apps have videos skipped by clicking anywhere on the screen, and then those videos can never be replayed (ala FF1). This sucks because it is so easy to accidentally touch some part of the screen, especially when something non-engaging is happening like video play. I'm not sure what the best practice is here, tbh.
  19. lordbron

    lordbron Member

    Mar 22, 2009
    Game Programmer
    Queen Creek, AZ
    Liking n8o's list

    I think those three sum up mine.

    I'd like to just add some emphasis on one of his items: Retina support.

    Let's face it, John. If anyone in the world can take the Retina display and the A4 chip to its furthest glorious limits, it's gonna be you. Don't waste the cycles (dev or CPU) having to support a non-Retina display. The demo was already pretty sweet, so push it as far as you can take it and inspire us to follow your lead.
  20. Zallman

    Zallman Well-Known Member

    Aug 2, 2009
    I don't think enough games/apps have the option to control the music/ sound effects. IE: on/off and a slider from 0 to 100% or whatever they want. But a way for the user to control the sound outside of turning the ipod/iphone volume up and down. Apples volume control leaves much to be desired in my view, it's just not fine enough..

    I'd also like for more apps to have an "non-networked" mode. I live in Alaska and sometimes I am out where there is no WIFI, there is no cellular signal and I get locked out of some of my favorite games. For no good reason.

    You rock Mr. Carmack, thanks for being there for the gamers!

Share This Page