Wiley.Games.on.Symbian.OS.A.Handbook.for.Mobile.Development.Apr.2008 (779888), страница 77
Текст из файла (страница 77)
Inthis case, the implementation is modified by the specialist developerfor that platform within Ideaworks3D, and the workaround is appliedas generically as possible and either enabled automatically (if it ispossible to detect the fault within code) or via a configuration optionwithin the device profile.Ideaworks3D maintains a formal process for ‘certifying’ handsets beingsupported by the solution. This process involves running a large set ofunit tests, followed by system testing our previously released titles.
Anyrequired device profile changes or workarounds can then be made andtested. Once this is complete, an updated SDK is released with officialsupport for the handset. In practice however, for a platform that hasa relatively mature (>5 devices certified) implementation, the handsetsusually can be certified without modification, or, at the least, require datadriven rather than code changes to Airplay System. Given that the deviceprofile script can be edited by users of the SDK, in these cases, deploymentto new handsets can take place independently of Ideaworks3D.Figure A.1 outlines the processes for adding support for new devicesand platforms to the solution.Note: OpenKODEIdeaworks3D has been a very active member of the Khronos working group defining the OpenKODE API, and Airplay will fully supportOpenKODE when ratified.
The OpenKODE group has recognized thatIdeaworks3D has a vast amount of experience both in designing andimplementing platform abstraction APIs and in building mobile gamesUnit andSystem testsexecutedeither bypublisher orIdeaworks3D.Any identifiedIssues fixedvia DeviceProfile or CodeFixHandsetCertifiedNew Game Development ProjectsNewHandsetsHandsetCertificationNew PlatformsDeploymentFigure A.1 Airplay DeploymentInternal or External GameStudios develop new titles.These are certified forhandoff to deploymentDevelopment EnvironmentGameCertifiedDeployment Team deployall certified games to allcertified handsets withoutrebuilding gamesDeployment EnvironmentPlatform(Referencehandset) CertifiedIdeaworks3D team completesinitial platformimplementation and certifiesthe platform and referencehandset(s)Platform SupportMobile LinuxWindows MobileSymbian OSBREWAIRPLAY349350AIRPLAYusing such APIs.
Many key issues have been raised by Ideaworks3Dand embraced by the OpenKODE specification team. Therefore, gamesdeveloped for OpenKODE and those developed using other Khronos APIsare seamlessly supported within the solution and can take advantage ofall the features of both the development and deployment environments.Index2D graphics 11–12, 31–2, 111,121, 227–32, 253, 282–9accelerated drawing operations121games platform comparisons11–12, 31–2, 111N-Gage 2532.5G networks 4–5, 9, 11–12, 393D audio 152, 1553D graphics 11–12, 14–15, 30,31–2, 61–3, 66, 105, 111,152, 200–8, 231–4, 268–74,316–183D motion sensors 178, 179–80,198–207API overview 203–4concepts 198–207key classes 203–5Symbian OS 203–7types 2033G networks 8, 11–12, 39, 159,189A-GPS see assisted GPSAAC see advanced audio codingAardman Animation 65–6abort/restart sequence, DSA76–8, 82–3, 88–90AbortNow 75–8, 82–3, 88–90accelerated codecs, hardware115–16, 121, 125–8, 224–6,231–4accelerometer, Wii 199–207,318ActionScript, Flash Lite 322–3,324–31, 332–5ActionScript Virtual Machine(AVM) 322–3, 324–9ActivateL 47–9active objects 43–60, 77–90see also eventsgame loops 43–60, 77–83pre-emption restrictions 48–9active scheduler 46–9, 77–90see also RunLgame loops 46–9, 77–83ADD 236AddDataListener 206–7AddForegroundObserverL76–8addSnapEventListener 293ADF see application descriptor fileAdobesee also Flash LiteBridge 331–2Creative Suite 321, 327–8,329–33Device Central 331–2Flash Professional CS3 321,327–8, 329–33Adobe Integrated Runtime (AIR)322–3advanced audio coding (AAC)125–8, 148–9, 153advertising space 26AI see artificial intelligenceAI-takeover technique, multiplayerconnection drops 158AIR see Adobe Integrated RuntimeAirplay 14, 37, 165–71, 226,237, 341–50art development costs 343,346–7binary format 343–4business challenges 343–50certification issues 348–9components 165–6, 341–2cost reductions 37, 342–50debugging costs 343, 345–6deployment costs 343, 347–8development costs 343,344–5, 346–7OpenKODE 226–7porting costs 237, 343–4Airplay Online 165–71, 342background 165–71, 342custom services 166, 170–1,342352Airplay Online (continued )login services 166–7, 169–70polling style 167–9servers 166–70service builder 170–1standard services 165–7, 342transport protocol 166,167–70, 342Airplay Studio 14, 341–2, 346–7Airplay System 37, 341–2, 344AIX 218AknIconUtils 106–7AllFiles 219–20Alltel 21alternative reality, concepts 175,177–8ALWAYS BUILD AS ARM 236AMR format 125–8, 153AMS see Application ManagementSystemanimations 65–6, 98–9, 104anti-tearing techniquessee also tearing problemsAPI overview 87–8, 111concepts 62, 84, 86–90, 111key classes 87mechanism 87–8Apache 173APIs 12, 28–9, 30–2, 35–6,61–121, 182, 203–4, 209,224–7, 249–55, 265–71,303–13, 317, 343–4, 348–503D motion sensors 203–4anti-tearing APIs 62, 86–90,111camera overview 182drawing overview 70–1,110–11DSA overview 75–6, 110–11i-mode extension APIs 303–13ICL overview 100Java ME 265–71, 317less useful APIs 121location overview 193N-Gage 249–55OpenKODE 224–7, 348–50rendering overview 112RGA APIs 249–54vibration overview 209INDEXvideo player utility overview116appendix 341–50Apple 7, 61, 218, 333application areasee also APIsdefinition 71application descriptor file (ADF)300–10, 315Application Management System(AMS) 273–89see also MIDletsapplication services layer, SymbianOS 3–4AppUi 108Arena system architecture, N-Gage172–3, 241–2, 243–4,260–1, 290ARM processors 29, 60, 226,236, 343–6see also CPUsart development costs, Airplay343, 346–7artificial intelligence (AI) 158,177–8, 189, 223ASR 236ASSERT macro 48assisted GPS (A-GPS) 190–1Asteroids 44–5, 63Attack of the Killer Virus 179attract mode, concepts 55–7audio 39, 44–6, 47–9, 116,123–55, 228–30, 253, 275–6see also sound effects3D audio 152, 155background music 142–50best practices 150–1buffers 133–42clip player 128–34codecs 124–34, 148–50,228–9concepts 123–55, 228–30,253controller plug-ins 124–8design considerations 125–6,133, 275–6DevSound 124–8, 135, 136,138–42digitized music streaming147–8error cases 127–8, 130–4formats 125–8, 136–8future prospects 39game loops 44–6, 47–9graphics ascendancy 123Helix DNA 153interruption models 133Khronos Group 153–5latency problems 128, 133,135–8, 140–2MIDI 123–4, 142–7, 152–3,229–30, 253MMF 116, 124–55MobileBAE 152–3multiple effects 133–8N-Gage 253OpenMAX...
153–5, 228–9OpenSL ES 153–4, 155,229–30priorities 127–8, 132–3ringtones 6, 23, 25, 123–4,127, 143–4S60 126–8, 151–2software mixer 133–8, 146–8standards 151–5, 228–30streaming 135–8, 147–8, 253tone player 128, 134–5UI platforms 126–8UIQ 126–8augmented reality, concepts 175,177, 179average revenue per user (ARPU)9AVM see ActionScript VirtualMachineB2B see business-to-businessB2C see business-to-consumerBack Buffer API, N-Gage 251back buffers see off-screen bitmapsbackground musicsee also audioconcepts 142–50backlights 54–5, 56–7‘backwards’ transactions 168–9bar codes 180, 191–3, 298INDEXbase services layersee also fileserverSymbian OS 3–4bass boost 152batteries 12, 38, 44, 54–5, 67,72, 77, 115–16battleships games 191Beatnik Inc.
152–3Begin 96–7BeginDraw 88–90BeginUpdate 88–90Beijing 2008 318Berkley DB 222–3best practices, audio 150–1bi-directional rendering, concepts111, 114–15bi-directional video streaming62–121billingsee also pricesN-Gage 258user experiences 26–7, 174binary format, Airplay 343–4BitBlit 92BitBlt 103–4BitBltMasked 94bitmap server 94–7bitmapssee also images; pixelsconcepts 73–83, 84–104,183–7, 251–2data access 94–7drawing performance 92–4heaps 94–5off-screen bitmaps 84–90,92–4, 110–11, 251–2range 91–2Bitmap API, N-Gage 252Blackberry 270–2blit processes 85, 92–4, 112, 252Blowfish 221Bluejacking 214–15Bluetooth 5, 11–12, 22, 37, 150,158–62, 172, 174, 178, 191,193–8, 203, 223, 240,254–5, 301, 325–6concepts 159–62, 178, 191,193–8, 203, 254–5, 301DoJa 301GPRS contrasts 160, 162Java ME 269–74local multiplayer games159–60, 172location information 191,193–8multiplayer games 158–60,162, 172proximity/presence uses214–15blur effects, animation 66board games 14Bonney, Bill see N-Gage‘Boo Hoo For You’ video 298books, resources 35, 337, 339Botfighter 189Botfighter2 189boxes, rendered text 113–14BREW 29–30, 174, 226, 317,323, 342, 345, 349Bridge 14broadband access 39brushes 73, 114BSD sockets 225–6buffersaudio 133–42cameras 183–7concepts 62–3, 67–8, 82,83–90, 138–42, 148,169–70, 183–7DevSound 138–42double buffering 83–90, 138,270–1frame buffers 62–3, 67–8, 82,87–90, 110–11schemes 84triple buffering 90BufferToBeFilled 141–2BUILD AS ARM 236built-in games, background 25business challenges, mobile games64, 342–50business-to-business (B2B) 24business-to-consumer (B2C) 24C++ 6, 23, 30–2, 41, 60, 170,173, 177, 199, 217–37, 264,319, 334, 341–50353background 30–2, 41, 60,170, 173, 177, 199,217–37, 264Java ME 270–1standards support 217–37Symbian OS 23, 30–2, 41, 60,217–37, 264, 319, 334C 6, 30–2, 217–37C programmers 223C/C++ SDK 222, 248–9, 341–50CActive 88–90, 101–2,129–47, 195–8CActiveScheduler 77–8,101–2CAF see content access frameworkCAknAppUi::SetKeyBlockMode 51–2calendars 12, 43–4, 240, 301cameras 5, 11–12, 36–7, 177,178–87, 253–4, 304API overview 182buffers 183–7concepts 177, 178–87, 253–4key classes 180–2mobile games 178–87, 253–4movement-detection games178, 179–80, 198–207N-Gage API 253–4Symbian OS 180–7CamerasAvailable 182–7Campbell, Iain 174Canalys 2–3, 6–7Cancel 83Canvas 310–13Canvas.hideNotify 277Canvas.showNotify 277capabilities 139–42, 219–20Capcom 263Carbide.c++ 43, 60, 70, 106,220–1, 255, 272, 338,345Carbide.j 272carriers see network operatorsCars (movie) 1–2cartoon sequences 98–9Cartwright, Sam 318–19casual games, concepts 13–14,26, 41catch 287–8354CBitmapContextsee also graphics contextconcepts 73–6, 79–83, 94CBufferedImageDecoder100–4CCamera 180–8CCameraAdvancedSettings181–7CCoeAppUI::AddToStackL49–50CCoeControl...
68–74,85–6, 102–3, 109, 117–18,120–1, 212see also control conceptsCCoeControl::FocusChanged54CCoeControl::HandlePointerEventL 52–3CCoeControl::OfferKeyEventL 49–50CCoeEnv::AddForegroundObserverL 76–8CCoeFontProvider 115CCoeTextDrawerBase112–15CColorTrackerAppView184–7CD ROMs 25CDC see Connected DeviceConfigurationCDirectScreenAccesssee also direct screen accessconcepts 75–83, 84–90, 111CDirectScreenBitmap84–90CDMA 29, 39cdsb.h 87CEikonEnv 99–100cell IDs, location information188–90, 250certification issuesAirplay 348–9N-Gage 248CFbsBitGc 73–4, 77–8, 88–90see also graphics contextCFbsBitmap 85–6, 94–7,99–107CFbsScreenDevice 77–8,88–90, 110–11INDEXCFindMeActive 195–8CFindMeAppView 197–8CFont 115CGfx...
62, 77–83, 88–90,101–4CGraphicsContext 70, 73–4,86, 114–15see also graphics contextchangesscreen orientations 107–9windows 82–3character code, concepts 50–2charitable works, OneBigGame20CHeartBeat 48–9Chehimi, Fadi 175–216chess 45China 7, 17, 30CHWRMVibra 209–14CImageDecoder 100–4CImageDisplay 121CInactivityTimer... 55–6Cingular network operator 20‘Civil Disorder’ technique,multiplayer connection drops158Clarke, Leon 157–74, 226–7CLDC see Connected LimitedDevice Configurationcleanup stack 223–4Clear 71, 73, 103Clickgamer 22clip player, audio 128–34Close 146–7, 195–8closed feature phones 6, 298–9CMdaAudioOutputStream135–8, 141CMdaAudioPlayerUtility128, 129–34, 143–4CMdaAudioToneUtility 128,134–5CMidiClientUtility 143–7CMMFBuffer 141–2CMMFDevSound 139–42see also DevSoundCMyControl 115codecs 115–21, 124–34,148–50, 228–9see also audio...; video...CodeWarrier 220–1coecntrl.h 70–1coetextdrawer.h 112Coffey, Michael 157–74COLLADA 224collisions 270–1, 287–8Colorcodes 192see also bar codescolors 79–83, 90–7, 113–14concepts 90–7, 113–14pixel color representations90–7space concepts 91–7ColourTracker 181–7ColorTrackerView...183–7communications programming174community resources, Flash 335com.nokia.sm...