Deep Linking in Mobile Unity Game
Total Page:16
File Type:pdf, Size:1020Kb
Deep linking in mobile Unity game Jeremias Kuitunen Bachelor’s thesis December 2017 School of Technology, Communication and Transport Degree Programme in Media Engineering Description Author(s) Type of publication Date Kuitunen, Jeremias Bachelor’s thesis 10.12.2017 Language of publication: English Number of pages Permission for web publi- 51 cation: x Title of publication Deep linking in mobile Unity game Degree programme Media Engineering Supervisor(s) Manninen, Pasi Assigned by Traplight Ltd. Abstract The thesis was assigned by Traplight ltd., a mobile game development company that fo- cuses on creating high Quality user-generated content games (UGC). Traplight strives for being the industry leader in free mobile games where users generate the game content. The goal of the thesis was to develop a deep linking solution and deploy it in a game called Big Bang Racing prior to its launch in July 2016. In Big Bang Racing, deep linking capabilities allow users to share user-created levels with web URLs outside the game boundaries in- cluding social media platforms. Opening a deep link takes the user to the shared content or to a platform specific app store page in case the application was not preinstalled. A deep linking plugin was created for Unity game engine, and it supports iOS and Android platforms. The Unity plugin consists of procedures that enable communication between platform native code and Unity code. This allows presenting deep linked content in the game and sharing of deep links with system native sharing dialog. Providing deep link metadata for web crawlers allows rich and user friendly posts to social media channels. The result was a working deep linking solution still in use with Big Bang Racing. The solu- tion offers basic deep linking functionality with a good foundation to be further developed to fit the reQuirements of a modern deep linked application. Keywords/tags (subjects) User-generated content, deep link, mobile game, plugin Miscellaneous Kuvailulehti Tekijä(t) Julkaisun laji Päivämäärä Kuitunen, Jeremias Opinnäytetyö, AMK 10.12.2017 Sivumäärä Julkaisun kieli 51 Englanti Verkkojulkaisulupa myönnetty: x Työn nimi Syvälinkitys Unity-mobiilipelissä Tutkinto-ohjelma Mediatekniikka Työn ohjaaja(t) Pasi Manninen Toimeksiantaja(t) Trapl ight Oy Tiivistelmä Mobiilipeliyhtiö Traplight keskittyy korkealaatuisten pelien tekemiseen. Traplight pyrkii olemaan edelläkävijä ilmaisissa mobiilipeleissä, joissa käyttäjät luovat pelin sisällön. Opinnäytetyön tavoitteena oli luoda ratkaisu, joka mahdollistaa syvälinkityksen pelin sisäl- töön. Syvälinkitysominaisuudet tuli olla Big Bang Racing -nimisessä pelissä ennen sen maa- ilmanlaajuista heinäkuun 2016 julkaisua. Big Bang Racingissa syvälinkitys antaa pelaajille mahdollisuuden jakaa käyttäjien luomia kenttiä pelin rajojen ulkopuolelle kuten sosiaali- seen mediaan. Kenttien jakaminen tapahtuu käyttäen web-osoitteita. Syvälinkin avaami- nen vie käyttäjän pelin sisälle jaettuun kenttään. Jos peliä ei ole valmiiksi asennettu, vie sy- välinkin avaaminen käyttäjän pelin alustakohtaiselle kauppasivulle. Syvälinkkiliitännäinen tehtiin Unity-pelimoottorille tukien Android ja iOS -alustoja. Liitän- näinen koostuu menetelmistä, jotka mahdollistavat kommunikoinnin alustojen natiivin ja Unity-koodin välillä. Tämän avulla voidaan käyttäjille tarjota syvälinkitetty sisältö, kun syvä- linkkiä on painettu. Liitännäinen mahdollistaa myös linkkien jakamisen käyttäen alustakoh- taista jakodialogia. Syvälinkkien sisällöstä palvelin tarjoaa hakuroboteille metatietoja, joi- den avulla sosiaalisen median alustat pystyvät luomaan syvälinkistä havainnollisen julkai- sun. Opinnäytetyön tuloksena saatiin toimiva syvälinkityskokonaisuus, joka on edelleen käy- tössä Big Bang Racing -pelissä. Toiminnallisuudeltaan ratkaisu tarjoaa perustavanlaatuisen pohjan syvälinkitysominaisuuksien hyödyntämiseen ja jatkokehittämiseen vastaavissa tuot- teissa. Avainsanat (asiasanat) Käyttäjien luoma sisältö, syvälinkki, mobiilipeli, liitännäinen Muut tiedot 1 Contents 1 Introduction .................................................................................................... 4 1.1 Background ................................................................................................. 4 1.2 Traplight Ltd. .............................................................................................. 4 1.3 Objectives ................................................................................................... 5 2 Big Bang Racing ............................................................................................... 5 2.1 Gameplay .................................................................................................... 5 2.2 User-generated content in Big Bang Racing ............................................... 6 3 Mobile deep linking ........................................................................................ 8 3.1 What is mobile deep linking? ..................................................................... 8 3.2 Deep linking features in a user-generated content game ........................ 10 3.3 The deep link solution for Big Bang Racing ............................................... 11 4 Implementing deep linking in a mobile game ................................................. 12 4.1 Client development .................................................................................. 12 4.1.1 Structure of the DeepLink plugin ......................................................... 12 4.1.2 Launching the application from a deep link ......................................... 13 4.1.3 Passing the URI to Unity ...................................................................... 16 4.1.4 Presenting the deep linked content in Unity ....................................... 19 4.1.5 Sharing a deep link ............................................................................... 20 4.2 Server development ................................................................................. 25 4.2.1 Why to have a deep link landing page? ............................................... 25 4.2.2 Deep link landing page ......................................................................... 27 4.2.3 Rich social media posts ........................................................................ 32 4.3 Facebook’s App Links for Android ............................................................ 35 4.4 GIF sharing with deep linking ................................................................... 36 2 5 Results and discussion ................................................................................... 40 5.1 Deep linking in Big Bang Racing ................................................................ 40 5.2 Further improvements for DeepLink solution .......................................... 43 5.3 Development of Unity plugins .................................................................. 47 5.4 Other deep linking solutions for Unity in 2017 ......................................... 47 5.5 Current state of mobile deep linking ........................................................ 48 References ............................................................................................................ 50 Figures Figure 1. Racing against others in Big Bang Racing ....................................................... 6 Figure 2. Level editor in Big Bang Racing ....................................................................... 7 Figure 3. Loading screen while loading a level from server .......................................... 8 Figure 4. Flow of opening a deep link ........................................................................... 9 Figure 5. iOS and Android specific sharing buttons on Imgur application .................... 9 Figure 6. Reasons mobile gamers share gameplay experiences (Mobile Gaming: Social Motivations 2014) ....................................................................................................... 10 Figure 7. DeepLink -plugin files in a Unity file hierarchy ............................................. 12 Figure 8. Opening a deep link with the game .............................................................. 13 Figure 9. Xcode entitlements ...................................................................................... 14 Figure 10. Visualization of how deep link plugin passes an URI to Unity .................... 16 Figure 11. Native Android sharing dialog for text ....................................................... 22 Figure 12. Native iOS text sharing dialog .................................................................... 23 Figure 13. A view after publishing a level .................................................................... 24 Figure 14. Level cards on iOS and Android .................................................................. 24 Figure 15. Deep link is opened in a webview and fails ................................................ 25 Figure 16. Deep link experience with a landing page through a webview .................. 26 Figure 17. Deep link flow with a landing page ............................................................ 27 3 Figure 18. Deep link landing page for a level .............................................................. 28 Figure 19. Deep link logic flow from server’s perspective ........................................... 31 Figure 20. Facebook constructed rich snippet of a post containing a deep link ......... 33 Figure 21. Twitter’s generated