{"id":444,"date":"2016-11-03T14:34:44","date_gmt":"2016-11-03T13:34:44","guid":{"rendered":"http:\/\/davikingcode.com\/blog\/?p=444"},"modified":"2016-11-03T14:55:22","modified_gmt":"2016-11-03T13:55:22","slug":"go-marks-run","status":"publish","type":"post","link":"https:\/\/davikingcode.com\/blog\/go-marks-run\/","title":{"rendered":"Go Mark&#8217;s Run"},"content":{"rendered":"<p>Hi folks, we&#8217;re proud to share with you our latest game that we worked on as developers: Go Mark&#8217;s Run, for <a href=\"https:\/\/itunes.apple.com\/fr\/app\/go-marks-run\/id1156058207\" target=\"_blank\">iOS<\/a> and <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.gomarksrun.Scamark.ELeclerc\" target=\"_blank\">Android<\/a>. <a href=\"https:\/\/www.change.bz\/\" target=\"_blank\">Change Agency<\/a> was in charge of producing a game for the French hypermarket chain <a href=\"https:\/\/en.wikipedia.org\/wiki\/E.Leclerc\" target=\"_blank\">E.Leclerc<\/a> to promote their own brand <em>Marque Rep\u00e8re<\/em>. <a href=\"http:\/\/james-bang.com\/\" target=\"_blank\">James Bang<\/a> was the studio behind the game &amp; art design.<\/p>\n<p>The game mixes platformer and runner game genres. Through short levels, you have to collect as many coins as possible and stay alive. After <a href=\"http:\/\/davikingcode.com\/project\/a-blind-legend\" target=\"_blank\">A Blind Legend<\/a>, a big Unity game made without graphics, it was cool to have fancy things on screen!<br \/>\n<iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/cd1KpKAzdWw\" frameborder=\"0\" allowfullscreen><\/iframe><br \/>\n<!--more--><\/p>\n<p><strong>Rendering<\/strong><br \/>\nGo Mark&#8217;s Run is a 2D game using an <em>orthographic<\/em> camera. However the famous characters were designed in 3D, so we used FBX for them. Thanks to Unity&#8217;s sorting layers, and z-management we were able to mix 2D &amp; 3D without pain.<br \/>\nMaterials use a single custom shader for effects and custom lighting on top of a standard setup.<\/p>\n<p><strong>Corgi Engine<\/strong><br \/>\nWe worked a lot on an AS3 platformer engine, the <a href=\"http:\/\/citrusengine.com\/\" target=\"_blank\">Citrus Engine<\/a>. After many games we came to a simple conclusion using a physics engine is not always a good solution for a platformer game. Physics based platformer engine can really suck depending your level design: having curve is a big deal, fighting with no deterministic physics etc. The <a href=\"https:\/\/www.assetstore.unity3d.com\/en\/#!\/content\/26617\" target=\"_blank\">Corgi Engine<\/a> by using Raycasts makes the good choice, and there is still room to use physics in your game. Also it comes with many good features: pre-made prefabs, checkpoints management, input management, animation management, level management, camera &amp; parallax&#8230; Compared to the Citrus Engine, we see many benefits using Unity thanks to its editor than doing it in pure code, even more when you&#8217;re working with a team.<\/p>\n<p><strong>Services<\/strong><br \/>\nThe game uses several services: iCloud &amp; Game Center on iOS, Google Play Games for Android, <a href=\"https:\/\/onesignal.com\/\" target=\"_blank\">OneSignal<\/a> for push notifications, local notifications, and Facebook sharer. iCloud and Google Play Saved Games were really important for saving game progress across devices. Unfortunately it doesn&#8217;t work across OS, we chose to not used Google Play Games on iOS because iPhone&#8217;s users are not used to connect to Google when launching a game. Anyway it&#8217;s great to know that Google Play Games works fine on iOS, that would be the best option for making real time or turned based multiplayer game.<\/p>\n<p><strong>Must have plugins<\/strong><br \/>\nDebugging on device with Unity isn&#8217;t an handy task. You need to have Xcode (for iOS) or using Monitor\/ADB (for Android) and then filter messages. Hopefully, there is an elegant solution: <a href=\"https:\/\/www.assetstore.unity3d.com\/en\/#!\/content\/25559\" target=\"_blank\">TouchConsole Pro<\/a> plugin. You see errors on your device and you can easily send them to the dev team. You can also register command to save time when testing the project. A must have which sould be added into any new Unity project!<\/p>\n<p>We enjoyed working with Unity UI. Without writing a single line of layout code, we have a working multi-resolution animated menu! However it&#8217;s missing something so badly: we can&#8217;t use particles inside a UI canvas (at the moment)! There are solutions involving several cameras (basically render the 3D particle system to a texture with a camera), but depending on your UI it can be a nightmare. So we used <a href=\"https:\/\/www.assetstore.unity3d.com\/en\/#!\/content\/64134\" target=\"_blank\">Canvas Particle Emitter<\/a> plugin. Unfortunately it doesn&#8217;t use Unity particle system, but it&#8217;s easy to get started with and performances are good!<\/p>\n<p>Making screenshots for a game is always a long and tedious task. Hopefully <a href=\"https:\/\/www.assetstore.unity3d.com\/en\/#!\/content\/8682\" target=\"_blank\">Screenshot Creator<\/a> saves you lot of time \ud83d\ude09<\/p>\n<p>Go Mark&#8217;s Run was really a fun project, and we enjoyed working with the James Bang team! And to finish, they made a quick making of:<br \/>\n<iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/0l6M2gzg_Zc\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hi folks, we&#8217;re proud to share with you our latest game that we worked on as developers: Go Mark&#8217;s Run, for iOS and Android. Change Agency was in charge of producing a game for the French hypermarket chain E.Leclerc to promote their own brand Marque Rep\u00e8re. James Bang was the studio behind the game &amp; &hellip; <a href=\"https:\/\/davikingcode.com\/blog\/go-marks-run\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Go Mark&#8217;s Run<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_discordance_state":"","_discordance_checked":true},"categories":[4],"tags":[5],"_links":{"self":[{"href":"https:\/\/davikingcode.com\/blog\/wp-json\/wp\/v2\/posts\/444"}],"collection":[{"href":"https:\/\/davikingcode.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/davikingcode.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/davikingcode.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/davikingcode.com\/blog\/wp-json\/wp\/v2\/comments?post=444"}],"version-history":[{"count":13,"href":"https:\/\/davikingcode.com\/blog\/wp-json\/wp\/v2\/posts\/444\/revisions"}],"predecessor-version":[{"id":469,"href":"https:\/\/davikingcode.com\/blog\/wp-json\/wp\/v2\/posts\/444\/revisions\/469"}],"wp:attachment":[{"href":"https:\/\/davikingcode.com\/blog\/wp-json\/wp\/v2\/media?parent=444"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/davikingcode.com\/blog\/wp-json\/wp\/v2\/categories?post=444"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/davikingcode.com\/blog\/wp-json\/wp\/v2\/tags?post=444"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}