tag:blogger.com,1999:blog-86674564878987738882024-03-16T03:09:19.798+02:00Fledgling Videogame DeveloperI am part-time game developer from Finland. My target is to do every new game project better than the previous one!Jussihttp://www.blogger.com/profile/17026418633570830841noreply@blogger.comBlogger97125tag:blogger.com,1999:blog-8667456487898773888.post-10794914155904062152022-05-09T23:52:00.001+03:002022-05-09T23:52:31.396+03:00New HW for gamedev / Lost the spark<p>This spring has been pretty quiet for me from gamedev point of view. There has simply been no energy and motivation to start anything new. I've done fixes for some previously released games and tried to draft one new mobile game concept, but that's all. Maybe I have lost my spark?</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTXp68OMBrpppFc3tbEevAZ0SRYy5otR3KIyjHe3JKCJ-VnHbVQp8MsmdcigqzurKqgy8sd-bojU_rTul1VNeugxi7z59wPVaesth1hlSQBOJ4Ztqq0OBNJlU7uCPUOernmL1EKCHg-_LT4RiFQYvm-MhyMmuDaK6LM2wP8u2NP5jwyEo6oG_H_IT35g/s4640/IMG_20220509_210631_HDR.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="3472" data-original-width="4640" height="239" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTXp68OMBrpppFc3tbEevAZ0SRYy5otR3KIyjHe3JKCJ-VnHbVQp8MsmdcigqzurKqgy8sd-bojU_rTul1VNeugxi7z59wPVaesth1hlSQBOJ4Ztqq0OBNJlU7uCPUOernmL1EKCHg-_LT4RiFQYvm-MhyMmuDaK6LM2wP8u2NP5jwyEo6oG_H_IT35g/s320/IMG_20220509_210631_HDR.jpg" width="320" /></a></div>However, decided to upgrade my gamedev hardware last week and bought Lenovo Legion T5 gaming desktop with pretty ok display controller (RTX3060), 16GB RAM and Intel i5 CPU. This is not a true high-end computer, but the price was reasonable and the performance is enough for my use (mobile game development). <p></p><p>Currently there are 500GB+1TB SSD drives working as a mass storage. Backups are taken to 4TB USB drive. </p><p>Display is still the same old 24" HD monitor, but I am planning to buy 32" 4K display in close future. </p><p>My previous Lenovo Legion laptop has served well for last 4+ years as my main tool for Unity development. But now it is time for it to retire and move to my daughter's use (drawing and animation purposes mainly). </p><p>I am hoping this new gear serves at least as well as the previous one. Fingers crossed. </p><p>-Jussi.</p><p>PS. If someone has seen my gamedev spark, please let me know! :)</p><p><br /></p><p><br /></p>Jussihttp://www.blogger.com/profile/17026418633570830841noreply@blogger.com0tag:blogger.com,1999:blog-8667456487898773888.post-61028336669959005282022-01-03T15:07:00.004+02:002022-01-04T01:04:14.280+02:00WestSloth Games 2021 wrap-upWe entered to year 2022 for few days ago, so it is time to check what was achieved during last year. <div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://lh3.googleusercontent.com/-DrqGcoTlx2M/YdLzfQJkWeI/AAAAAAAALKA/b28mFcfuUUM9RZWxC8o-8fPzR-LqN0b8wCNcBGAsYHQ/thumb_512px.png" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img alt="" data-original-height="512" data-original-width="512" height="200" src="https://lh3.googleusercontent.com/-DrqGcoTlx2M/YdLzfQJkWeI/AAAAAAAALKA/b28mFcfuUUM9RZWxC8o-8fPzR-LqN0b8wCNcBGAsYHQ/w200-h200/thumb_512px.png" width="200" /></a></div><div>On 2021 WestSloth Games released total of 4 casual or hyper-casual games:</div><div><ul style="text-align: left;"><li><a href="https://play.google.com/store/apps/details?id=com.westsloth.reaction.training.game" target="_blank"><span style="color: #2b00fe;"><b>Reaction Training Game</b></span></a></li><li><a href="https://play.google.com/store/apps/details?id=com.westsloth.speed.tapping.game" target="_blank"><span style="color: #2b00fe;"><b>Speed Tapping Game</b></span></a></li><li><a href="https://play.google.com/store/apps/details?id=com.WestSloth.Laser.Dodger" target="_blank"><span style="color: #2b00fe;"><b>Laser Dodger</b></span></a></li><li><a href="https://play.google.com/store/apps/details?id=com.WestSloth.Tower.Rescue" target="_blank"><span style="color: #2b00fe;"><b>Tower Rescue Hero</b></span></a> (still in beta)</li></ul>On top of released games we kept up developing our own <b>hyper-casual development platform</b> on top of Unity3D game engine. It simplifies and speeds up our game development cycle enabling us to concentrate on game mechanics. Platform handles boring tasks like scene management, main state machine, ads and game services integration. Also, it takes care of consent dialog and management nowadays. </div><div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://lh3.googleusercontent.com/-bcTPe7groag/YdLwKnPA3JI/AAAAAAAALJ4/A77tejefG3ISpT6UnjtyehmFw4MC_HmsQCNcBGAsYHQ/image.png" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="379" data-original-width="669" height="181" src="https://lh3.googleusercontent.com/-bcTPe7groag/YdLwKnPA3JI/AAAAAAAALJ4/A77tejefG3ISpT6UnjtyehmFw4MC_HmsQCNcBGAsYHQ/w320-h181/image.png" width="320" /></a></div></div><div>In fact, all four games listed above are using some version of platform to implement scene management, main state machine(s) and advertisements. Also, Tower Rescue Hero is also using consent management feature that was introduced in the the 4th version of the platform. </div><div><br /></div><div>5th version of platform is under planning, and that should streamline the usage and configuration for any new game project. </div><div><br /></div><div>In addition to the Unity3D projects we delivered one small React.js game project for one of our customers. That was more or less an update for a previous browser based game we created for the same customer, so amount of work was not too large. But project itself was pretty interesting and kept our React and Javascript skills alive.</div><div><br /></div><div><b>And what are our plans for 2022?</b> There are now total of 3 game projects/concepts under planning, and it is still too early to say which of them we will be finished next. We have been considering to develop bit more complex game e.g. for PC, but let's see if we have time and resources to do such a move during 2022. </div><div><br /></div><div>Game development is not my main job (at least now), so I can use only the time that is left after my day job and other responsibilities. So sometimes things are progressing painfully slowly, even if all our published games have been relatively simple and straight-forward so far. </div><div><div><br /></div><div>Wishing You all prosperous year 2022!</div><div>-Jussi</div><div><br /></div></div></div>Jussihttp://www.blogger.com/profile/17026418633570830841noreply@blogger.com0tag:blogger.com,1999:blog-8667456487898773888.post-73080918493566684042021-08-15T16:07:00.005+03:002021-08-17T23:13:02.137+03:00Hyper-casual Game Development Platform and Prototyping Service<p><span color="rgba(0, 0, 0, 0.9)" style="background-color: white; font-size: 14px;"><span style="font-family: verdana;">Fourth version of our hyper-casual game development platform is alive! It simplifies and speeds up our game development cycle enabling us to concentrate on game core mechanics. Platform handles boring tasks like scene management, main state machine, Ads and game services integration, and it also takes care of consent dialog and management.</span></span></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-lDMq5HuCtpk/YRj0u4f3U3I/AAAAAAAAKcI/VqrlLF_dqjYw_AYqB-ImFPou9iuGHbNIwCLcBGAsYHQ/s669/WSG_casual_platform_v4.png" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><span style="font-family: verdana;"><img border="0" data-original-height="379" data-original-width="669" height="181" src="https://1.bp.blogspot.com/-lDMq5HuCtpk/YRj0u4f3U3I/AAAAAAAAKcI/VqrlLF_dqjYw_AYqB-ImFPou9iuGHbNIwCLcBGAsYHQ/s320/WSG_casual_platform_v4.png" width="320" /></span></a></div><span color="rgba(0, 0, 0, 0.9)" style="background-color: white; font-size: 14px;"><span style="font-family: verdana;">Our hyper-casual platform forms up on Unity package that can be imported basically on any Unity3D project at almost any design stage. At the moment package supports Android development only since we have not yet done any development for iOS. Also, Admob is the only supported ad network in current version, but we are planning to add others later. </span></span><p></p><p><span style="font-family: verdana;">There are certain steps to be done to get hyper-casual platform to use: </span></p><p></p><ol style="text-align: left;"><li><span style="font-family: verdana;">Create new Unity project (or load existing one)</span></li><li><span style="font-family: verdana;">Ensure that target platform is "Android"</span></li><li><span style="font-family: verdana;">Import hyper-casual package</span></li><li><span style="font-family: verdana;">Select which services you want to use: consent, ads, Google Play Game Services</span></li><li><span style="font-family: verdana;">Set up selected services</span></li></ol><p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-WNVyIweEVlA/YRj5vw2JImI/AAAAAAAAKcQ/D4ydxdpWAY4wt3gvI6Q48HmFw5aqrjwJACLcBGAsYHQ/s1024/splash_image.png" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><span style="font-family: verdana;"><img alt="Laser Dodger Android Game" border="0" data-original-height="512" data-original-width="1024" height="160" src="https://1.bp.blogspot.com/-WNVyIweEVlA/YRj5vw2JImI/AAAAAAAAKcQ/D4ydxdpWAY4wt3gvI6Q48HmFw5aqrjwJACLcBGAsYHQ/w320-h160/splash_image.png" title="Laser Dodger Android Game" width="320" /></span></a></div><span color="rgba(0, 0, 0, 0.9)" style="background-color: white; font-size: 14px;"><span style="font-family: verdana;">We are also planning to launch cost effective hyper-casual game prototyping service for external customers. It will take advantage of our new platform to make development cycle and costs more predictable. Pipe-cleaning project is already ongoing and we would expect open beta release pretty soon. In fact, our most recently published hyper-casual games are all build on top of the previous version of this platform. </span></span><p></p><p><span color="rgba(0, 0, 0, 0.9)" style="background-color: white; font-size: 14px;"><span style="font-family: verdana;">Example apps in Google Play Store: <br /></span></span></p><ul style="text-align: left;"><li><span color="rgba(0, 0, 0, 0.9)" style="background-color: white; font-size: 14px;"><a href="https://play.google.com/store/apps/details?id=com.WestSloth.Laser.Dodger" target="_blank"><b><span style="font-family: verdana;">Laser Dodger</span></b></a></span></li><li><span color="rgba(0, 0, 0, 0.9)" style="background-color: white; font-size: 14px;"><a href="https://play.google.com/store/apps/details?id=com.westsloth.speed.tapping.game" target="_blank"><b><span style="font-family: verdana;">Speed Tapping Game</span></b></a></span></li><li><span color="rgba(0, 0, 0, 0.9)" style="background-color: white; font-size: 14px;"><a href="https://play.google.com/store/apps/details?id=com.westsloth.reaction.training.game" target="_blank"><b><span style="font-family: verdana;">Reaction Training Game</span></b></a></span></li></ul><p></p><p><span style="font-family: verdana;">This is not fully decided yet, but standard prototype delivery for a customer might include:<br /></span></p><p></p><ul style="text-align: left;"><li><span style="font-family: verdana;">Fully-functional hyper-casual 2D game prototype</span></li><li><span style="font-family: verdana;">Required scenes: initialization, consent screen, menu screen, game screen (no multiple levels)</span></li><li><span style="font-family: verdana;">Prototyping/placeholder graphics: simple shapes or characters (no complex animations)</span></li><li><span style="font-family: verdana;">Basic sound effects like bounce, hit, splash, jump, explode, burn, collect items, etc.</span></li><li><span style="font-family: verdana;">Basic UI using some publicly available font</span></li><li><span style="font-family: verdana;">Simple consent screen for Ads or Analytics</span></li><li><span style="font-family: verdana;">Admob integration: banner, interstitial, rewarded ads</span></li><li><span style="font-family: verdana;">Google Play Services integration: Leaderboards, achievements, etc.</span></li><li><span style="font-family: verdana;">Full Unity3D project, including all assets, codes, etc.</span></li></ul><div><span style="font-family: verdana;">In case you are interested on our services and would like to get more information, please drop an email to <b>contact@westsloth.com</b>. We are happy to tell more! <br /></span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;"><i style="background-color: white; color: #050505; font-size: 15px;"><a href="http://www.westsloth.fi/" target="_blank"><b>Westsloth Oy</b></a><b> (Finnish trade register ID: </b></i><span face="-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"" style="background-color: white; color: #212529; font-size: 16px; font-weight: bold;">3012425-8</span><i style="background-color: white; color: #050505; font-size: 15px; font-weight: bold;">) is a small <a href="http://westsloth.com/" target="_blank">game studio</a> dedicated to building our own games. Besides that we provide Unity3D and web app development services plus office and financial management services. </i></span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;">-Jussi</span></div><div><br /></div>Jussihttp://www.blogger.com/profile/17026418633570830841noreply@blogger.com537830 Viiala, Finland61.210649599999989 23.767200143.73540806607555 -11.3890499 78.685891133924429 58.9234501tag:blogger.com,1999:blog-8667456487898773888.post-16507522985509686352021-01-26T13:35:00.007+02:002022-01-06T02:23:35.344+02:00Unity3D mirror using camera and RenderTexture<p><span style="font-family: verdana;">There are several ways to create mirror in Unity3D. Some of them require more scripting than others, but I will now present an easy way using just one extra camera and RenderTexture. </span></p><p><span style="font-family: verdana;">In this solution you will use RenderTexture on an object and place camera behind that object. This is easy option that does not require scripting. Alternatively you can use reflective shader, but it requires some more work.</span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-1aZQu6Jjg3E/YA_-HlBZoDI/AAAAAAAAJUw/ckU2BIdil4cw7i9TSatoDWO3qLN9evpwQCLcBGAsYHQ/s1145/8-FinalVersion.png" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: verdana;"><img border="0" data-original-height="675" data-original-width="1145" src="https://1.bp.blogspot.com/-1aZQu6Jjg3E/YA_-HlBZoDI/AAAAAAAAJUw/ckU2BIdil4cw7i9TSatoDWO3qLN9evpwQCLcBGAsYHQ/s320/8-FinalVersion.png" width="320" /></span></a></div><p><span style="font-family: verdana;">Seven small steps to create object with mirror RenderTexture:</span></p><p></p><ol style="text-align: left;"><li><span style="font-family: verdana;">Create new Unity project. It is recommended to use latest LTS version (Long Term Support).I was using Unity 2020.1.3f1 version for this example. </span><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-bqsKHF307L8/YA_rFl3rSOI/AAAAAAAAJTc/1r2d8i1esWwI4C-Onk15nHDr4fiJ1TrkgCLcBGAsYHQ/s1081/1-CreateNewProject.png" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: verdana;"><img border="0" data-original-height="713" data-original-width="1081" height="264" src="https://1.bp.blogspot.com/-bqsKHF307L8/YA_rFl3rSOI/AAAAAAAAJTc/1r2d8i1esWwI4C-Onk15nHDr4fiJ1TrkgCLcBGAsYHQ/w400-h264/1-CreateNewProject.png" width="400" /></span></a></div><span style="font-family: verdana;"><br /></span></li><li><span style="font-family: verdana;">Create plane object for ground and Cube for the mirror object. Scale both objects to match your needs. </span><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-Oml-neKLBME/YA_r6cfpcHI/AAAAAAAAJTw/-vpIerXrUd0snP5n4z7f2G5CP-mFBnDKQCLcBGAsYHQ/s758/3-CreateCubeForMirror.png" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: verdana;"><img border="0" data-original-height="758" data-original-width="509" height="320" src="https://1.bp.blogspot.com/-Oml-neKLBME/YA_r6cfpcHI/AAAAAAAAJTw/-vpIerXrUd0snP5n4z7f2G5CP-mFBnDKQCLcBGAsYHQ/s320/3-CreateCubeForMirror.png" /></span></a></div><span style="font-family: verdana;"><br /></span><div class="separator" style="clear: both; text-align: center;"><span style="font-family: verdana;"><br /></span></div><span style="font-family: verdana;"><br /></span></li><li><span style="font-family: verdana;">Create new camera for attaching the RenderTexture. Position it inside recently created cube and adjust direction so that it is pointing out to the direction where mirror should be reflecting the image. </span><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-sS-tGItWMSU/YA_sW27Wt3I/AAAAAAAAJT8/NDl7v_BnA0k-eEdpLHZCiBZdL8hYaroaACLcBGAsYHQ/s687/4-CreateNewCamera.png" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: verdana;"><img border="0" data-original-height="687" data-original-width="620" height="320" src="https://1.bp.blogspot.com/-sS-tGItWMSU/YA_sW27Wt3I/AAAAAAAAJT8/NDl7v_BnA0k-eEdpLHZCiBZdL8hYaroaACLcBGAsYHQ/s320/4-CreateNewCamera.png" /></span></a></div><span style="font-family: verdana;"><br /></span></li><li><span style="font-family: verdana;">Create RenderTexture. Name it as you wish. No need to modify any other settings at this point. </span><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-iS332T0TG6s/YA_s1J3aICI/AAAAAAAAJUM/GHq0eYHeGlcB_wb_wUYk7UyeDsdteLryACLcBGAsYHQ/s720/5-CreateRenderTexture.png" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: verdana;"><img border="0" data-original-height="720" data-original-width="711" height="320" src="https://1.bp.blogspot.com/-iS332T0TG6s/YA_s1J3aICI/AAAAAAAAJUM/GHq0eYHeGlcB_wb_wUYk7UyeDsdteLryACLcBGAsYHQ/s320/5-CreateRenderTexture.png" /></span></a></div><span style="font-family: verdana;"><br /></span></li><li><span style="font-family: verdana;">Attach RenderTexture to the camera you are going to use for mirror</span><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-PEZkyuHRPxE/YA_57bVVe7I/AAAAAAAAJUY/tXlacDYBNswK2SRO-wjnxiXT7Ig-jOPTgCLcBGAsYHQ/s700/6-AssignRenderTextureToCamera2.png" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: verdana;"><img border="0" data-original-height="700" data-original-width="597" height="320" src="https://1.bp.blogspot.com/-PEZkyuHRPxE/YA_57bVVe7I/AAAAAAAAJUY/tXlacDYBNswK2SRO-wjnxiXT7Ig-jOPTgCLcBGAsYHQ/s320/6-AssignRenderTextureToCamera2.png" /></span></a></div><span style="font-family: verdana;"><br /></span></li><li><span style="font-family: verdana;">Add freshly created RenderTexture to the Cube object. Adjust cube rotation, if needed. At least I had to rotate it 180 degrees over the y-axis to get picture correct. Also, you probably need to scale cube x-axis by -1 in order to match horizontal directions. </span><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-NZH029P7c-I/YA_7nl6ZPqI/AAAAAAAAJUk/I8HhzsH06JALaly-qa8t5039AoWplTKiwCLcBGAsYHQ/s595/7-MirrorCubeSettings.png" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: verdana;"><img border="0" data-original-height="555" data-original-width="595" src="https://1.bp.blogspot.com/-NZH029P7c-I/YA_7nl6ZPqI/AAAAAAAAJUk/I8HhzsH06JALaly-qa8t5039AoWplTKiwCLcBGAsYHQ/s320/7-MirrorCubeSettings.png" width="320" /></span></a></div><span style="font-family: verdana;"><br /></span></li><li><span style="font-family: verdana;">If you are seeing a mirror image of skybox, everything has probably gone well. Now you can add some other gameobjects to the scene and see if you can get them visible in your mirror correct way. </span></li></ol><div><span style="font-family: verdana;">Pro Tip: To quickly make your scene colors and lighting look better, just do these steps:</span></div><div><ol style="text-align: left;"><li><span style="font-family: verdana;"><b>Edit -> Project Settings -> Player -> Color Space</b>: Change "Gamma" to "Linear"</span></li><li><span style="font-family: verdana;"><b>Window -> Rendering -> Lighting Settings</b> : Select "Realtime Global Illumination" and then click "Generate Lighting" </span></li></ol></div><p><span style="font-family: verdana;">For details, check <a href="https://github.com/jliias/MirrorTest" target="_blank">demo project in GitHub</a> and <a href="https://youtu.be/2k-QGs1QZPY" target="_blank">YouTube video</a>. </span></p><p><span style="font-family: verdana;">-Jussi.</span></p><p><br /></p>Jussihttp://www.blogger.com/profile/17026418633570830841noreply@blogger.com21tag:blogger.com,1999:blog-8667456487898773888.post-21634357629708779192020-12-31T16:56:00.006+02:002021-08-17T22:54:02.914+03:00WestSloth Games year 2020 wrap up<p><span style="font-family: verdana;">Hello All!</span></p><p></p><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-_Lz9KLa0EgQ/X-3oAjJzg9I/AAAAAAAAJI8/gVgxaF5pWFMVPeD3Kcnj2H16ead5JSdRgCLcBGAsYHQ/s729/wrapup_2020_thumb.png" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><span style="font-family: verdana;"><img border="0" data-original-height="729" data-original-width="716" height="157" src="https://1.bp.blogspot.com/-_Lz9KLa0EgQ/X-3oAjJzg9I/AAAAAAAAJI8/gVgxaF5pWFMVPeD3Kcnj2H16ead5JSdRgCLcBGAsYHQ/w154-h157/wrapup_2020_thumb.png" width="154" /></span></a></div></div><span style="font-family: verdana;">For <a href="http://www.westsloth.com/" target="_blank"><b><span style="color: #2b00fe;">WestSloth Games</span></b></a> year 2020 was mostly business as usual. We were still working part-time on game development within the time that was available. Sometimes there was no time at all and sometimes there was some spare time for gamedev. I any case, we accomplished and learned a lot during this year. <br /></span><p></p><p><span style="font-family: verdana;">Here are some highlights:</span></p><p></p><ul style="text-align: left;"><li><span style="font-family: verdana;">Major update for <a href="https://play.google.com/store/apps/details?id=com.westsloth.flamingo.run" target="_blank"><b><span style="color: #2b00fe;">Flamingo Tap Tap Run</span></b></a> Android game was released in the very beginning of the year. Some statistics with download numbers and ad impressions/eCPM values is revealed in <a href="https://fledgling-game-develop.blogspot.com/2020/12/flamingo-game-statistics-update.html" target="_blank"><b><span style="color: #2b00fe;">separate blog article</span></b></a>. </span></li><li><span style="font-family: verdana;">Couple of updates were done for Flamingo game. These included couple of bug fixes and API level updates. Biggest update introduced embedded minigame to get more shrimps. </span></li><li><span style="font-family: verdana;">A new variant for our previous rocket game was released in June 2020. <a href="https://play.google.com/store/apps/details?id=com.gamaan.rocket.orbit" target="_blank"><b><span style="color: #2b00fe;">Rocket Orbit</span></b></a> can still be found from Google Play Store, although the number of downloads has so far been bit disappointing. In interested in details, please check separate blog article on releasing "<a href="https://fledgling-game-develop.blogspot.com/2020/06/rocket-orbit-android-game.html" target="_blank"><b><span style="color: #2b00fe;">Rocket Orbit Android Game</span></b></a>".</span></li><li><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-a5L4nl1FFus/XrXSho9xPvI/AAAAAAAAHaM/J6B1fA0O-Yk2GEDv1SkwbvxANTxt8JaIgCPcBGAYYCw/s575/gothic_mug.png" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><span style="font-family: verdana;"><img border="0" data-original-height="487" data-original-width="575" height="169" src="https://1.bp.blogspot.com/-a5L4nl1FFus/XrXSho9xPvI/AAAAAAAAHaM/J6B1fA0O-Yk2GEDv1SkwbvxANTxt8JaIgCPcBGAYYCw/w200-h169/gothic_mug.png" width="200" /></span></a></div><span style="font-family: verdana;">We also opened a <a href="https://shop.spreadshirt.fi/westsloth-games/" target="_blank"><b><span style="color: #2b00fe;">Fan Product Store</span></b></a> for selling different apparels with images from Flamingo game. Not a great success yet, but it might improve our visibility on long-term. <br /></span></li><li><span style="font-family: verdana;">At autumn time I have been mostly working on couple of new game concepts and also learning new skills on different areas in game development and front-end design. </span></li><li><span style="font-family: verdana;">In end end of year 2020 <a href="http://www.westsloth.fi/" target="_blank"><b><span style="color: #2b00fe;">WestSloth Oy</span></b></a> started first customer/subcontracting project to develop a small browser game using <a href="https://reactjs.org/" target="_blank"><b><span style="color: #2b00fe;">React.js framework</span></b></a>. Final version of game was delivered to happy customer in the beginning of December and it will be taken into production use in upcoming months. </span><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-jpviUscqkuE/X-3kQBRUtjI/AAAAAAAAJIw/SvEclYUK4BYmnQguqvDlAT3k-AvJZZ2sACLcBGAsYHQ/s327/Unity3D_Logo.jpg" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><span style="font-family: verdana;"><img border="0" data-original-height="180" data-original-width="327" height="79" src="https://1.bp.blogspot.com/-jpviUscqkuE/X-3kQBRUtjI/AAAAAAAAJIw/SvEclYUK4BYmnQguqvDlAT3k-AvJZZ2sACLcBGAsYHQ/w145-h79/Unity3D_Logo.jpg" width="145" /></span></a></div></li></ul><div><span style="font-family: verdana;">So all in all, interesting year with new learned skills and game launches. Also, it is now proven that we are able to act as an subcontractor e.g. for Unity game or web app development. So don't hesitate to ask if you need help in your own projects!</span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-1ul5n8JwfRU/X-3j2R_MJMI/AAAAAAAAJIo/4a6icAvqh6k65YDoIkaPygICQEmItPefgCLcBGAsYHQ/s1024/react-logo.png" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><span style="font-family: verdana;"><img border="0" data-original-height="482" data-original-width="1024" height="71" src="https://1.bp.blogspot.com/-1ul5n8JwfRU/X-3j2R_MJMI/AAAAAAAAJIo/4a6icAvqh6k65YDoIkaPygICQEmItPefgCLcBGAsYHQ/w151-h71/react-logo.png" width="151" /></span></a></div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;">We are curiously looking forward to what will happen on 2021!</span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;">-Jussi</span></div><div><div class="separator" style="clear: both; text-align: center;"><span style="font-family: verdana;"><br /></span></div><span style="font-family: verdana;"><br /><br /></span></div><br /><p></p>Jussihttp://www.blogger.com/profile/17026418633570830841noreply@blogger.com1tag:blogger.com,1999:blog-8667456487898773888.post-44061094877673137252020-12-31T14:59:00.003+02:002021-08-17T22:54:28.091+03:00Flamingo Game statistics update<p><span style="font-family: verdana;">Our reasonably popular <a href="https://play.google.com/store/apps/details?id=com.westsloth.flamingo.run" target="_blank"><b><span style="color: #2b00fe;">Flamingo Tap Tap Run</span></b></a> Android game is celebrating 1-year anniversary after a major update in the beginning of January 2020. In this update we introduced several playable Flamingo characters and did some improvements and fixes to gameplay. </span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-Map0E5XqNVA/X-3JkMCtC6I/AAAAAAAAJIY/iYIaTpoLCEs1azChKMKrafVm97MP6MnBACLcBGAsYHQ/s512/flamingo_thumb_3.jpg" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><span style="font-family: verdana;"><img border="0" data-original-height="512" data-original-width="512" height="320" src="https://1.bp.blogspot.com/-Map0E5XqNVA/X-3JkMCtC6I/AAAAAAAAJIY/iYIaTpoLCEs1azChKMKrafVm97MP6MnBACLcBGAsYHQ/s320/flamingo_thumb_3.jpg" /></span></a></div><p></p><p><span style="font-family: verdana;">Although the game has not been a real breakthrough, the number of <b>new downloads</b> has been fairly steady throughout the year. <b>Advertising revenue</b> has also been steady, and even increased towards the end of the year. We are still talking about less than 10 Euros per month, but with current investment and effort it is just ok. All Flamingo game <b>downloads are organic</b>, since no paid advertising used. And yes, we have not included any in-app purchases in any of our games.</span></p><p><span style="font-family: verdana;">I collected couple of graphs showing how the total number of installations and number of new installations (28 days moving average) has developed since the very first launch date in September 2019. Major update was done in the beginning of 2020 and that has been marked to both graphs. </span></p><span style="font-family: verdana;"><br /></span><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody><tr><td style="text-align: center;"><a href="https://1.bp.blogspot.com/-iRqI3eD2KDI/X-28R3Sl2oI/AAAAAAAAJH4/stRE9S3VVbc-9xsT5ktvVIDgSXZ0iKR1gCLcBGAsYHQ/s996/flamingo_1yr_total_downloads.png" style="margin-left: auto; margin-right: auto;"><span style="font-family: verdana;"><img border="0" data-original-height="673" data-original-width="996" height="287" src="https://1.bp.blogspot.com/-iRqI3eD2KDI/X-28R3Sl2oI/AAAAAAAAJH4/stRE9S3VVbc-9xsT5ktvVIDgSXZ0iKR1gCLcBGAsYHQ/w425-h287/flamingo_1yr_total_downloads.png" width="425" /></span></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><span style="font-family: verdana;">Flamingo game: total downloads since launch in Sept 2019</span></td></tr></tbody></table><span style="font-family: verdana;"><br /></span><p><span style="font-family: verdana;"><br /></span></p><p><span style="font-family: verdana;"><br /></span></p><p><span style="font-family: verdana;"><br /></span></p><p><span style="font-family: verdana;"><br /></span></p><p><span style="font-family: verdana;"><br /></span></p><p></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody><tr><td style="text-align: center;"><a href="https://1.bp.blogspot.com/-faOFUz7g8LQ/X-28R5J_biI/AAAAAAAAJH8/TjFVE5IeLiExWGf4r85fgdLpR1rJeb6NACLcBGAsYHQ/s1097/flamingo_1yr_28d_average.png" style="margin-left: auto; margin-right: auto;"><span style="font-family: verdana;"><img border="0" data-original-height="758" data-original-width="1097" height="273" src="https://1.bp.blogspot.com/-faOFUz7g8LQ/X-28R5J_biI/AAAAAAAAJH8/TjFVE5IeLiExWGf4r85fgdLpR1rJeb6NACLcBGAsYHQ/w441-h273/flamingo_1yr_28d_average.png" width="441" /></span></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><span style="font-family: verdana;">Flamingo game: 28 days moving average for new downloads</span></td></tr></tbody></table><span style="font-family: verdana;"><br /></span><p></p><p><span style="font-family: verdana;"><br /></span></p><p><span style="font-family: verdana;"><br /></span></p><p><span style="font-family: verdana;"><br /></span></p><p><span style="font-family: verdana;"><br /></span></p><p><span style="font-family: verdana;"><br /></span></p><p><span style="font-family: verdana;"><br /></span></p><p><span style="font-family: verdana;"><br /></span></p><p><span style="font-family: verdana;"><br /></span></p><p><span style="font-family: verdana;"><br /></span></p><p><span style="font-family: verdana;"><br /></span></p><p><span style="font-family: verdana;"><br /></span></p><p><span style="font-family: verdana;">If you are interested in advertisement related statistics, I can tell following numbers:</span></p><p></p><ul style="text-align: left;"><li><span style="font-family: verdana;">Admob network requests have varied between 2k-10k / month</span></li><li><span style="font-family: verdana;">Impressions between 1.2k-2.4k / month</span></li><li><span style="font-family: verdana;">eCPM between 1.2€-3.8€ on monthly level</span></li></ul><span style="font-family: verdana;">With numbers above I would say that scaling up the downloads would also bring more income. But then the big question is how to do that, especially since we have no intention to go for paid user acquisition? :) </span><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;">Don't forget to check our <a href="https://shop.spreadshirt.fi/westsloth-games/" target="_blank"><b><span style="color: #2b00fe;">Fan Product shop</span></b></a> in case you are big fan of our Flamingo characters!</span></div><div><p></p><p><span style="font-family: verdana;">-Jussi</span></p><p><br /></p></div>Jussihttp://www.blogger.com/profile/17026418633570830841noreply@blogger.com2tag:blogger.com,1999:blog-8667456487898773888.post-30266997784745711842020-06-09T10:26:00.002+03:002021-08-17T22:54:56.428+03:00Rocket Orbit Android Game<div><span style="font-family: verdana;"> </span></div><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px;"><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px;"><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px;"><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px;"><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px;"><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px;"><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-YAPptmt764w/Xt6e5P5CSqI/AAAAAAAAHts/J3JYR8HLn9Mkn2hNvb-IIvwvSy7FnQ3HQCK4BGAsYHg/s865/Rocket.png" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><span style="font-family: verdana;"><img border="0" data-original-height="551" data-original-width="865" src="https://1.bp.blogspot.com/-YAPptmt764w/Xt6e5P5CSqI/AAAAAAAAHts/J3JYR8HLn9Mkn2hNvb-IIvwvSy7FnQ3HQCK4BGAsYHg/s320/Rocket.png" width="320" /></span></a></div></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><div><span style="font-family: verdana;">Today we published new hyper-casual game to Google Play Store (beta version, still). </span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;">Game is called <a href="https://play.google.com/store/apps/details/?id=com.gamaan.rocket.orbit" target="_blank">"Rocket Orbit"</a> and it is some kind of a facelift for "Rocket to Uranus" game that was published about two years ago. </span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;">Biggest modifications were done in visual outlook where original multi-colored UI with (almost) all possible colors is now replaced with restrained set of colors. Main theme consists of different shades of blue. We also added a UFO to bring some randomness to the game. </span><div><div style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><span style="font-family: verdana;"><br /></span><div style="text-align: left;"><span style="font-family: verdana;"><br /></span></div><div style="text-align: left;"><span style="font-family: verdana;"><br /></span><div><span style="font-family: verdana;"><br /></span><div><span style="font-family: verdana;"><br /></span></div></div></div></div><span style="font-family: verdana;"><br /></span></div></div><div><div><span style="font-family: verdana;">Playing Rocket Orbit game is simple: You are controlling small blue rocket that is jumping between the planets from one orbit to the second orbit. You need to schedule the tap accurately so your rocket can get to next planet orbit safely. </span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;">🚀 Rocket Orbit game features: </span></div><div><span style="font-family: verdana;">✔️ Easy to play hyper-casual game mechanism</span></div><div><span style="font-family: verdana;">✔️ Yet challenging and hard to master</span></div><div><span style="font-family: verdana;">✔️ Annoying UFO disturbing your perfect game</span></div><div><span style="font-family: verdana;">✔️ Google Play Services Leaderboard</span></div><div><span style="font-family: verdana;">✔️ No levels, just endless space in front of you</span></div></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;">How many planets can you conquer in Rocket Orbit game?</span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;">-Jussi</span></div><div><br /></div>Jussihttp://www.blogger.com/profile/17026418633570830841noreply@blogger.com3tag:blogger.com,1999:blog-8667456487898773888.post-63052351705454448802020-05-09T00:53:00.001+03:002021-08-17T22:55:13.531+03:00Own Fan Product Store: Why?<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-8aPI4TFE5cg/XrXS9s2VADI/AAAAAAAAHaQ/QD76Gn_0HGMTu80RASvPVhIfv1fVkhFcwCLcBGAsYHQ/s1600/ping_flamingo_shirt.png" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><span style="font-family: inherit;"></span></a></div>
<a href="https://1.bp.blogspot.com/-a5L4nl1FFus/XrXSho9xPvI/AAAAAAAAHaI/ofHLg2KxzYsFmx_T7nDzKGOc7o9n2BaUACLcBGAsYHQ/s1600/gothic_mug.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><span style="font-family: verdana;"><img border="0" data-original-height="487" data-original-width="575" height="169" src="https://1.bp.blogspot.com/-a5L4nl1FFus/XrXSho9xPvI/AAAAAAAAHaI/ofHLg2KxzYsFmx_T7nDzKGOc7o9n2BaUACLcBGAsYHQ/s200/gothic_mug.png" width="200" /></span></a><span style="font-family: verdana;"><span>We got couple of weeks ago new idea: We ordered a few t-shirts with our own designs from one large European print-by-demand service, and started thinking if we could also sell clothes with our own designs for larger audience.</span><br />
</span><a href="https://1.bp.blogspot.com/-8aPI4TFE5cg/XrXS9s2VADI/AAAAAAAAHaQ/QD76Gn_0HGMTu80RASvPVhIfv1fVkhFcwCLcBGAsYHQ/s1600/ping_flamingo_shirt.png" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><span style="font-family: verdana;"><img border="0" data-original-height="609" data-original-width="479" height="200" src="https://1.bp.blogspot.com/-8aPI4TFE5cg/XrXS9s2VADI/AAAAAAAAHaQ/QD76Gn_0HGMTu80RASvPVhIfv1fVkhFcwCLcBGAsYHQ/s200/ping_flamingo_shirt.png" width="156" /></span></a><span style="font-family: verdana;"><span><br /></span>
<span><br /></span>
</span><a href="https://1.bp.blogspot.com/-a5L4nl1FFus/XrXSho9xPvI/AAAAAAAAHaI/ofHLg2KxzYsFmx_T7nDzKGOc7o9n2BaUACLcBGAsYHQ/s1600/gothic_mug.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><span style="font-family: verdana;"></span></a><span style="font-family: verdana;"><span>We thought that by buying products, our fans (I guess we have some?) could support our operations and at the same time these unique products would act as advertisements for our games. After familiarization to the topic we came to the conclusion that it is worth at least trying it. The risk is quite small because there is no own warehouse and the on-demand vendor takes care of all practical matters (orders, payments, printing, logistics, etc.).</span><br />
<span><br /></span>
<span>It took me approx one evening to set up the account for WestSloth Games, create some initial designs (Flamingos, mostly), and then decide the appearance of the online shop. After that we were ready to go and now we have Fan Product shops up and running world-wide. One shop in EU and one shop at US.</span><br />
<span><br /></span>
</span><div class="separator" style="clear: both; text-align: center;">
</div>
<a href="https://1.bp.blogspot.com/-jGUPrAqc940/XrXUUe2EN1I/AAAAAAAAHac/U7amRDqiHLsh6y0wNer_EdoI0XVRhP1jwCLcBGAsYHQ/s1600/ws_hoodie.png" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><span style="font-family: verdana;"><img border="0" data-original-height="456" data-original-width="453" height="200" src="https://1.bp.blogspot.com/-jGUPrAqc940/XrXUUe2EN1I/AAAAAAAAHac/U7amRDqiHLsh6y0wNer_EdoI0XVRhP1jwCLcBGAsYHQ/s200/ws_hoodie.png" width="198" /></span></a><a href="https://1.bp.blogspot.com/-jGUPrAqc940/XrXUUe2EN1I/AAAAAAAAHac/U7amRDqiHLsh6y0wNer_EdoI0XVRhP1jwCLcBGAsYHQ/s1600/ws_hoodie.png" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><span style="font-family: verdana;"></span></a><span style="font-family: verdana;"><span>Links to both stores:</span><br />
<a href="https://shop.spreadshirt.fi/westsloth-games/" target="_blank"><b><span style="color: blue;">WestSloth Games EU shop</span></b></a><br />
<a href="https://shop.spreadshirt.com/westsloth-games/" target="_blank"><b><span style="color: blue;">WestSloth Games US shop</span></b></a><br />
<span><br /></span>
<span>There are small differences in the selections available designs between the stores, but overall the range is quite similar. Go and check what is available!</span><br />
<span><br /></span>
<span>-Jussi.</span><br /></span>
<br />Jussihttp://www.blogger.com/profile/17026418633570830841noreply@blogger.com0tag:blogger.com,1999:blog-8667456487898773888.post-74040285773399297872020-03-01T20:21:00.003+02:002021-08-17T22:55:31.216+03:00How Many Downloads? (Real Data Included)<a href="https://1.bp.blogspot.com/-GBrZfPYMnr8/Xlv0UEX7LMI/AAAAAAAAG3A/TKpfKxsYnkIGb18bJAbaWoXiyCWzNRCkQCLcBGAsYHQ/s1600/flamingo_dl_moving_average_30d.png" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><span style="font-family: verdana;"><img border="0" data-original-height="633" data-original-width="1069" height="236" src="https://1.bp.blogspot.com/-GBrZfPYMnr8/Xlv0UEX7LMI/AAAAAAAAG3A/TKpfKxsYnkIGb18bJAbaWoXiyCWzNRCkQCLcBGAsYHQ/s400/flamingo_dl_moving_average_30d.png" width="400" /></span></a><span style="font-family: verdana;">I will now present a realistic summary how <a href="https://play.google.com/store/apps/details?id=com.westsloth.flamingo.run" target="_blank"><b><span style="color: blue;">"Flamingo Tap Tap Run"</span></b></a> Android game did over the first 6 months. For that I created a graph that shows moving 30 days average for new downloads. It should give a good idea how the number of downloads has evolved after the updates.<br />
<br />
Graph looks great (really steep slope after major update) as long you don't look the scale on the left hand side. But here come the details:<br />
<br />
First major version of Flamingo game was available on 3rd of September 2019. It had just one flamingo character and there was no use for collected shrimps. This version got around 50 downloads per month, that has been pretty typical for most of our released little games.<br />
<br />
Second major version with large update was released on 3rd of January 2020. This one had total of 8 playable flamingo characters which player could buy using the collected shrimps. This update increased the number of monthly downloads to 200+ and it can also be seen from the attached graph. For us this trial proved that it really is beneficial to update the game with features that will make players return and encourage them to share application download link for others.<br />
<br />
In short, Flamingo has now bit over 700 downloads. The number does not sound too large, but compared to our earlier games this has done relatively well. All downloads are organic, so no paid installations or even paid advertising in social media. And yes, based on the data it seems that number of monthly installs is still growing.<br />
<br />
With current download volumes the income from advertisements is so small that no-one can earn his living with that (some Euros/Dollars per month). I quickly calculated that good level of income might be achieved with 1000x number of downloads, assuming that CPM will stay about the same. Luckily I am not doing this for living (at least yet)! :)<br />
<br />
At the moment we have no plans to do further updates for Flamingo game. But we are monitoring the situation and any good improvement ideas are welcome! :)<br />
<br />
-Jussi<br /></span>
<br />Jussihttp://www.blogger.com/profile/17026418633570830841noreply@blogger.com0tag:blogger.com,1999:blog-8667456487898773888.post-55990651518754021262019-12-27T02:56:00.001+02:002021-08-17T22:56:02.981+03:00Unity3D JSON Serialization (save game data)<span style="font-family: verdana;">Let's keep this short:<br />
My BoxingDay activity was to create a small Unity3d project utilizing JSON serialization for saving game data. Basically, this sample project shows how to save and load game data in one serializable class.<br />
<br />
Whole project is available at Github:<br />
<b><span style="color: blue;"><a href="https://github.com/jliias/SaveData" target="_blank">https://github.com/jliias/SaveData</a></span></b><br />
(I believe it should work as such)<br />
<br />
<br />
</span><div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-adJtRM9kCf4/XgVVzjwVC9I/AAAAAAAAGlM/PqgH_xl-X8QqKIszH4t5cgnm1ZU7WznKwCLcBGAsYHQ/s1600/savedata_pic.png" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: verdana;"><img border="0" data-original-height="810" data-original-width="1071" height="302" src="https://1.bp.blogspot.com/-adJtRM9kCf4/XgVVzjwVC9I/AAAAAAAAGlM/PqgH_xl-X8QqKIszH4t5cgnm1ZU7WznKwCLcBGAsYHQ/s400/savedata_pic.png" width="400" /></span></a></div>
<span style="font-family: verdana;"><br />
In this sample project I will serialize GameData class, that contains following variables:<br />
<span>bool adsEnabled</span><br />
<span>int coinsCollected</span><br />
<span>int highScore</span><br />
<br />
These variables are packed and unpacked to text format using <a href="https://docs.unity3d.com/Manual/JSONSerialization.html" target="_blank"><b><span style="color: blue;">JsonUtility</span></b></a> API that can be used to convert Unity objects to and from JSON format. Basically, it is possible to pack and unpack simple objects to text format by using this API (e.g. collections or arrays are not supported).<br />
<br />
Serializing to JSON is done using <span>ToJson</span> method, and and deserializing using <span>FromJson</span> method.<br />
<br />
It is important to add <span>[Serializable]</span> to the top of class that will be serialized.<br />
<br />
This is very simple solution and as far as know this should be pretty easy to modify for your own purposes. I am going to use this for example in upcoming <a href="https://play.google.com/store/apps/details?id=com.westsloth.flamingo.run" target="_blank"><b><span style="color: blue;">"Flamingo Tap Tap Run"</span></b></a> game update, that is planned to be released in Jan 2020.<br />
<br />
-Jussi<br /></span>
<b><br /></b>Jussihttp://www.blogger.com/profile/17026418633570830841noreply@blogger.com2tag:blogger.com,1999:blog-8667456487898773888.post-60618261448763158682019-12-04T19:24:00.001+02:002021-08-17T22:56:23.485+03:00Using Unity3D LWRP and shader graphs in real game<a href="https://1.bp.blogspot.com/-qYD2OJ3kqAU/XefpvXMo7II/AAAAAAAAGaI/_00jK1myB8QUv8o96NVGRg08_Yf7ip5CgCLcBGAsYHQ/s1600/feature_1024x500px_lwrp.png" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><span style="font-family: verdana;"><img border="0" data-original-height="500" data-original-width="1024" height="156" src="https://1.bp.blogspot.com/-qYD2OJ3kqAU/XefpvXMo7II/AAAAAAAAGaI/_00jK1myB8QUv8o96NVGRg08_Yf7ip5CgCLcBGAsYHQ/s320/feature_1024x500px_lwrp.png" width="320" /></span></a><span style="font-family: verdana;"><span><span class="ember-view" id="ember2000" style="background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; font-size: 14px; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"><span style="background: transparent; border: 0px; box-sizing: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">My previous Unity3D post was demonstrating my trials with scriptable render pipeline and shader graphs. Now I have gone one step further and combined these techniques with one of my previously released game.
<b><span style="color: blue;"><a href="https://play.google.com/store/apps/details?id=com.gamaan.ball.twist" target="_blank">"Ball Twister"</a> </span></b>was originally released about an year ago. I did not advertise it too much because of boring outlook and bit simple gameplay. However, now I have found this game perfect for testing scriptable render pipeline and shader graphs in real 3D environment.
Attached video shows how different new version of Ball Twister looks compared to the original one. Original version (on left) is using standard Unity render pipeline and shaders. Enhanced version (on right) is using LWRP (or URP) and shader graphs. </span></span></span><br />
<span><span class="ember-view" style="background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; font-size: 14px; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"><span style="background: transparent; border: 0px; box-sizing: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><br /></span></span></span>
<br />
</span><div class="separator" style="clear: both; text-align: center;">
<span style="font-family: verdana;"><iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/OykAm8UTil8/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/OykAm8UTil8?feature=player_embedded" width="320"></iframe></span></div>
<span style="font-family: verdana;"><span><span class="ember-view" style="background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; font-size: 14px; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"><span style="background: transparent; border: 0px; box-sizing: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><br /></span></span></span><span><span class="ember-view" style="background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; font-size: 14px; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"><span style="background: transparent; border: 0px; box-sizing: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">
In enhanced version, rolling checker board texture, swirling sky and obstacle materials are all using shader graphs to create a sense of movement just by tweaking textures. Basically, only objects that are really moved are black obstacles and coins. Everything else stands still.
The resulting game is still more or less playable demo, but you can download Ball Twister from Google Play Store:
</span></span><b><span style="color: blue;"><a href="https://play.google.com/store/apps/details?id=com.gamaan.ball.twist" target="_blank">https://play.google.com/store/apps/details?id=com.gamaan.ball.twist</a></span></b></span><br />
<span><b><br /></b></span>-Jussi<br /></span>
<br />Jussihttp://www.blogger.com/profile/17026418633570830841noreply@blogger.com0tag:blogger.com,1999:blog-8667456487898773888.post-90047038624453887162019-11-29T00:07:00.001+02:002021-08-17T22:57:08.568+03:00New logo for WestSloth Games<span style="font-family: verdana;">The original logo of WestSloth Games was created by me for several years ago. Basically, it was a hanging sloth that was built using voxels. I guess MagicaVoxel was the tool used to create it.</span><br />
<br /><span style="font-family: verdana;">
In the beginning logo looked pretty ok. But over time it started to look confusing and not so good anymore. So there was a clear need to draw a new logo.</span><br />
<br /><span style="font-family: verdana;">
But what kind of a logo is good one? Some views can be found for example from this </span><a href="https://www.smashingmagazine.com/2009/08/vital-tips-for-effective-logo-design/" style="font-family: verdana;" target="_blank"><b><span style="color: blue;">article concerning logo design</span></b></a><span style="font-family: verdana;">:</span><br />
<br />
<span style="color: #20124d; font-family: helvetica; font-size: large;"><i>"<span style="background-color: white;">A good logo is distinctive, appropriate, practical, graphic and simple in form, and it conveys the owner’s intended message.</span><span style="background-color: white;"> </span>"</i></span><br />
<span style="font-family: verdana;"><br /></span>
<span style="font-family: verdana;">So yes, logo must be at least appropriate, practical and simple. Those were the words I thought I understood. </span><br />
<span style="font-family: verdana;"><br /></span>
<span style="font-family: verdana;">Additionally, there was also a short list of characteristics of good logo:</span><br />
<b style="font-family: verdana;"><span style="color: #20124d;"><span>1. Simple</span><br /><span>2. Memorable</span><br /><span>3. Timeless</span><br /><span>4. Versatile</span><br /><span>5. Appropriate</span></span></b><br />
<br />
<div><span style="font-family: verdana;">
So, I tried to follow these guidelines and started drawing with Inkscape. After 30 minutes of fiddling logo looked like this:</span></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div style="text-align: left;">
<a href="https://1.bp.blogspot.com/-XecOS9agP_4/XeBCuMVrI9I/AAAAAAAAGXw/jkXue4khCsEpYvgtmut3RX6nlSOcbFTzACLcBGAsYHQ/s1600/westsloth_logo_red-yellow_512.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><span style="font-family: verdana;"><img border="0" data-original-height="512" data-original-width="512" height="320" src="https://1.bp.blogspot.com/-XecOS9agP_4/XeBCuMVrI9I/AAAAAAAAGXw/jkXue4khCsEpYvgtmut3RX6nlSOcbFTzACLcBGAsYHQ/s320/westsloth_logo_red-yellow_512.png" width="320" /></span></a></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<span style="font-family: verdana;"><br />
<span><br /></span>
<span><br /></span>
<span><br /></span>
<span><br /></span>
<span><br /></span>
<span><br /></span>
<span><br /></span>
<span><br /></span>
<span><br /></span>
<span><br /></span>
<span><br /></span>
<span><br /></span>
<span><br /></span>
<span><br /></span>
<span><br /></span><br />
<span>How does it look? Does it meet all the characteristics listed above? </span><br />
<span><br /></span>
<span>As I am not an artist it is bit difficult for me to judge if I really succeeded with this assignment. But in any case we are now using this logo in all WestSloth Games's marketing and social media. </span><br />
<span><br /></span>
<span>-Jussi.</span><br /></span>
<span style="font-family: inherit;"><br /></span>Jussihttp://www.blogger.com/profile/17026418633570830841noreply@blogger.com0tag:blogger.com,1999:blog-8667456487898773888.post-68244346806029621682019-11-20T23:48:00.001+02:002021-08-17T22:57:27.559+03:00Unity3D LWRP Shader Graph demo (rolling checker board)<a href="https://1.bp.blogspot.com/-2W8dxEJaL7I/XdWvjyjBk3I/AAAAAAAAGWM/Tjwh-NhKLjsHiZq-TkNA86DzBLtprMiiwCLcBGAsYHQ/s1600/unity_shadergraph.png" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><span style="font-family: verdana;"><img border="0" data-original-height="826" data-original-width="1478" height="178" src="https://1.bp.blogspot.com/-2W8dxEJaL7I/XdWvjyjBk3I/AAAAAAAAGWM/Tjwh-NhKLjsHiZq-TkNA86DzBLtprMiiwCLcBGAsYHQ/s320/unity_shadergraph.png" width="320" /></span></a><span style="font-family: verdana;">I started getting familiar with Unity render pipeline usage, because I had plans to utilize that in my upcoming game project. As a by-product I recorded a short video how to create a rolling material (or texture) using Unity3D shader graph.<br />
<br />
Shader graph is a way to build shaders visually by creating and connecting different nodes. I would think it is simple enough even for beginners after you understand how to setup and use it.<br />
<br />
My shader graph demo recording is available on <a href="https://youtu.be/IUolb3lX_CU" target="_blank"><b><span style="color: blue;">WestSloth's Youtube channel</span></b></a>. There is no speech included, but I hope it gives at least some idea how Unity3D shader graphs can be utilized.<br />
</span><div class="separator" style="clear: both; text-align: center;">
<span style="font-family: verdana;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: verdana;"><iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/IUolb3lX_CU/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/IUolb3lX_CU?feature=player_embedded" width="320"></iframe></span></div>
<span style="font-family: verdana;"><br />
I was using Unity 2019.2.13f1 and created a new project with LWRP template, that automatically brings in required packages needed in this demo.<br />
<br />
<b>Edit:</b> I added <a href="https://youtu.be/glcvWWniaWI" target="_blank"><b><span style="color: blue;">another Unity3D shader graph video to Youtube</span></b></a>.<br />
<br />
</span><div class="separator" style="clear: both; text-align: center;">
<span style="font-family: verdana;"><iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/glcvWWniaWI/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/glcvWWniaWI?feature=player_embedded" width="320"></iframe></span></div>
<span style="font-family: verdana;"><br />
-Jussi.</span>Jussihttp://www.blogger.com/profile/17026418633570830841noreply@blogger.com1tag:blogger.com,1999:blog-8667456487898773888.post-81215802084569539352019-11-17T18:46:00.001+02:002021-08-17T22:58:15.508+03:00Unity3D events, delegates and Action<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-ChKgztrTL6U/XdGasupQVgI/AAAAAAAAGVY/4gwlaXK9EB8d3rcX9B4YShV3R9TVyluwgCLcBGAsYHQ/s1600/event_diagram.png" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><span style="font-family: verdana;"><img border="0" data-original-height="620" data-original-width="1273" height="155" src="https://1.bp.blogspot.com/-ChKgztrTL6U/XdGasupQVgI/AAAAAAAAGVY/4gwlaXK9EB8d3rcX9B4YShV3R9TVyluwgCLcBGAsYHQ/s320/event_diagram.png" width="320" /></span></a></div><span style="font-family: verdana;">
Delegates and events are very powerful features of C#. With them you can write clean and efficient code also in Unity.</span><br />
<br /><span style="font-family: verdana;">
However, I have found delegates bit confusing to understand. Most of the examples I have seen are not so easy to understand, especially if you are a self-taught coder like me. :)</span><br />
<br /><span style="font-family: verdana;">
Most of the examples I have found are using both delegate and event definitions. Something like this:</span><br />
<span style="font-family: courier;"><span style="color: blue;">public delegate void PlayerHit(int damage); </span><br />
<span style="color: blue;">public event PlayerHit onPlayerHit; </span></span><br />
<br /><span style="font-family: verdana;">
But personally, I like using Action<> type instead. It allows you to replace two lines with one and it will make your C# code simpler. It also removes some confusing buzz around delegate definition. Here's an example:</span><br />
<span style="color: blue; font-family: courier;">public static event Action<int> PlayerHit;</span><br />
<br /><span style="font-family: verdana;">
So, at least for me this looks more understandable.</span><br />
<br /><span style="font-family: verdana;">
Please find below two very simple code snippets from </span><a href="https://github.com/jliias/CommonUnityScripts/tree/master/EventExample" style="font-family: verdana;" target="_blank">my GitHub repository</a><span style="font-family: verdana;"> to see a real life example using Action in defining delegate. In this example event passes one integer, but you can have multiple parameters to an Action (just list your parameter types comma separated between <> characters).</span><br />
<br /><span style="font-family: verdana;">
TestPlayer class:</span><br />
<span style="font-family: verdana;"><script src="https://gist.github.com/jliias/023ba39226f552f82594d230d1f289fd.js"></script></span>
<br /><span style="font-family: verdana;">
Manager class:</span><br />
<span style="font-family: verdana;"><script src="https://gist.github.com/jliias/744e78daed03855bbc7de8a8d437921b.js"></script>
-Jussi
</span>Jussihttp://www.blogger.com/profile/17026418633570830841noreply@blogger.com0tag:blogger.com,1999:blog-8667456487898773888.post-8867167915414531642019-09-08T18:51:00.002+03:002021-08-17T22:58:44.673+03:00Flamingo Tap Tap Run<span style="font-family: verdana;"><i>Edit 9.9.2019: It seems that Flamingo Tap Tap Run is our most downloaded game after one week from publishing. However, I have to admit that few tens of downloads is enough for this "achievement". :) </i><br />
<br />
My game development journey continues with "<a href="https://play.google.com/store/apps/details?id=com.westsloth.flamingo.run" target="_blank"><b><span style="color: blue;">Flamingo Tap Tap Run</span></b></a>" Android game, with pretty simple visual outlook and simplified mechanics. Please download game for free from <a href="https://play.google.com/store/apps/details?id=com.westsloth.flamingo.run" target="_blank"><b><span style="color: blue;">Google Play Store</span></b></a> and have a try!<br />
<br />
My emphasis with this project was on character animation because my previous games have been using animations for maximum of 4 frames per move. Therefore, this was first time I used Spriter tool for creating and extracting complex animation spritesheets for Flamingo movements. For example, I was using 64 frames for walk animation. After all messing and fumbling result looks pretty ok and at least character animations are lot smoother than in my previous projects.<br />
<br />
</span><div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-fy04USjntAs/XXUiczU0t9I/AAAAAAAAFvs/awGRelrU6l0Lahfg7mB3lV8gpVXmCVlPgCLcBGAs/s1600/flamingo_banner.png" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: verdana;"><img border="0" data-original-height="379" data-original-width="660" height="228" src="https://1.bp.blogspot.com/-fy04USjntAs/XXUiczU0t9I/AAAAAAAAFvs/awGRelrU6l0Lahfg7mB3lV8gpVXmCVlPgCLcBGAs/s400/flamingo_banner.png" width="400" /></span></a></div>
<span style="font-family: verdana;"><br />
Game logic was created with Unity3D and C#. New tricks (or structures) for me were delegates, that were used to handle status information between GameManager and Player. The overall quality of the code is again improved compared to my previous games, but I think there's still something to do better. :)<br />
<br />
There were some challenges during the process, and the toughest one was migrating to latest Unity during the development phase. Some plugins were conflicting with each other and I had manually clean up data caches and temp directories under project folder. It just took some time to know what to do. More about this topic can be found from my <a href="https://fledgling-game-develop.blogspot.com/2019/08/unity3d-found-plugins-with-same-names.html" target="_blank"><b><span style="color: blue;">previous blog article</span></b></a>.<br />
<br />
This game is also the first one where I was using Android App Bundle (AAB) instead of APK package. At least the download size is bit smaller and there is no need to deliver separate APKs for each target platform anymore (ARMv7, ARM64, x86). Also, scripting backend was changed to IL2CPP to get 64bit Android support working. Build time with this setup seems to be clearly longer than before, but it is tolerable when building small game like this.<br />
<br />
-Jussi<br /></span>
<br />Jussihttp://www.blogger.com/profile/17026418633570830841noreply@blogger.com0tag:blogger.com,1999:blog-8667456487898773888.post-11972877300022055482019-08-12T01:20:00.001+03:002021-08-17T22:59:21.016+03:00Issue with Unity3D: "Found plugins with same names, and ."<div>
<span style="color: red; font-family: verdana;">*** IMPORTANT ***</span></div>
<div>
<span style="color: red; font-family: verdana;">Following contains my approach for fixing duplicated plugins error in Unity3D. I have no idea if it is a correct way to do this, but it worked in my case. </span></div>
<div>
<span style="color: red; font-family: verdana; font-size: large;"><br /></span></div>
<div>
<span style="color: red; font-family: verdana; font-size: large;">BACK UP YOUR PROJECT BEFORE TRYING THIS APPROACH! </span></div>
<div>
<span style="color: red; font-family: verdana; font-size: large;"><br /></span></div>
<div>
<span style="color: red; font-family: verdana;">*** IMPORTANT ***</span></div>
<div>
<br /></div>
<div><span style="font-family: verdana;">
So. let's start. </span></div>
<div>
<span style="font-family: verdana;"><br /></span></div><span style="font-family: verdana;">
I decided to try using Android App Bundle (AAP) instead of regular APK because I got an understanding that it might make game download and installation size smaller. However, I was using bit too old version of Unity3D so I downloaded latest version from their site and converted my exising game project for that.<br />
</span><div>
<span style="font-family: verdana;"><br /></span></div>
<div><span style="font-family: verdana;">
Game conversion from Unity 2018.2.13f1 to 2019.2.0f1 was running smoothly with no errors. But when I tried to compile my little game for Android, I got bit strange error message: </span></div>
<div>
<span face=""verdana" , sans-serif" style="background-color: #cccccc; font-family: verdana;">"<span style="color: red;"><i>Found plugins with same name, and . Delete the one of the duplicate plugins</i></span>"</span></div>
<div><span style="font-family: verdana;">
(please note the empty spaces around 'and' word). </span></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-i_RanosRoIc/XVCNahwGSBI/AAAAAAAAFfE/nAGN8qWW8wsVnfF7eRc1n5ai5xiDxiwxACLcBGAs/s1600/convert3.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><span style="font-family: verdana;"><img border="0" data-original-height="408" data-original-width="1211" height="212" src="https://1.bp.blogspot.com/-i_RanosRoIc/XVCNahwGSBI/AAAAAAAAFfE/nAGN8qWW8wsVnfF7eRc1n5ai5xiDxiwxACLcBGAs/s640/convert3.png" width="640" /></span></a></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div><span style="font-family: verdana;">
I have seen something like this earlier when struggling with different plugins, but duplicated plugins names have been reported clearly in the error message. This time was different and I did not have any idea what to look for. I tried search and destroy some plugins from caches but no success. I also tried to delete all files under "PlayerDataCache", "ShaderCache" and "FacebookSDK" directories, just to see what happens. But no success. </span></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div><span style="font-family: verdana;">
I decided to return to the starting point by removing converted project and copying original project from backup to get a fresh start. After that I went under project "Library" directory and removed following subdirectories:</span></div>
<div><span style="font-family: verdana;">
- PlayerDataCache</span></div>
<div><span style="font-family: verdana;">
- ShaderCache</span></div>
<div><span style="font-family: verdana;">
- FacebookSDK <span style="font-size: x-small;">(I have no idea why it was there, since I had not used any FB stuff in project)</span></span></div>
<div><span style="font-family: verdana;">
- il2cpp_android_* directories</span></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-QeGHAlD-KOI/XVCQjlpbZ7I/AAAAAAAAFfQ/r9Xe-vZNgU8p4uddzqVgvHLJCWDKYnm4ACLcBGAs/s1600/convert4.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><span style="font-family: verdana;"><img border="0" data-original-height="297" data-original-width="637" height="298" src="https://1.bp.blogspot.com/-QeGHAlD-KOI/XVCQjlpbZ7I/AAAAAAAAFfQ/r9Xe-vZNgU8p4uddzqVgvHLJCWDKYnm4ACLcBGAs/s640/convert4.png" width="640" /></span></a></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div><span style="font-family: verdana;">
After removing these directories I did 2018.2.13f1 to 2019.2.0f1 conversion again and started Android compilation with Android App Bundle build enabled. This time everything was working fine and I got AAB compiled successfully! So it seems that there were something really wrong in caches.</span></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div><span style="font-family: verdana;">
And yes, I have had similar issue with two projects I have converted from Unity 2018 to 2019: First one had old Data Privacy Plug-In from Asset Store so I suspected it somehow conflicted with the latest Analytics DataPrivacy API (comes with Unity 2019). But second project had no Data Privacy plugin installed, so I guess it can't be the root cause for duplicate plugin issue. </span></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div><span style="font-family: verdana;">
And as stated in the beginning, I have no idea if my approach is acceptable in all cases. For me it worked, but <u>I don't take any responsibility if you break your project with this approach</u>. <b>SO, MAKE BACKUP BEFORE DOING ANYTHING ELSE!</b></span></div>
<div>
<span style="font-family: verdana;"><br /></span></div>
<div><span style="font-family: verdana;">
-Jussi.</span></div>
<div>
<br /></div>
Jussihttp://www.blogger.com/profile/17026418633570830841noreply@blogger.com0tag:blogger.com,1999:blog-8667456487898773888.post-20398415545400554292019-07-29T23:48:00.002+03:002021-08-17T23:00:34.160+03:00Running multiple domains on one NGINX server<span style="font-family: verdana;">In addition to </span><a href="http://westsloth.com/" style="font-family: verdana;" target="_blank"><b><span style="color: blue;">westsloth.com</span></b></a><span style="font-family: verdana;"> domain we have now registered </span><a href="http://westsloth.fi/" style="font-family: verdana;" target="_blank"><b><span style="color: blue;">westsloth.fi</span></b></a><span style="font-family: verdana;"> domain for our planned business in Finland (mostly HW/SW consulting and financial and office management services).</span><br />
<br /><span style="font-family: verdana;">
As we are doing this part-time, we want to keep web hosting costs in control. Therefore we wanted to run the web pages of both domains on same server.</span><br />
<br /><span style="font-family: verdana;">
The original homepage of WestSloth Games (westsloth.com) has been running on single AWS Lightsail instance. In this solution, the monthly expenses are well-know in advance. But on the other hand server capacity is limited to some level. Anyways, the load for westsloth.com has not been too large for the Lightsail instance to handle it. So we thought we can easily run westsloth.fi on same server too.</span><br />
<br /><span style="font-family: verdana;">
Westsloth.com webserver is built using NGINX, Gunicorn and Django framework plus local MySQL database. Web page is built using Bootstrap front-end framework.</span><br />
<br /><span style="font-family: verdana;">
Adding another domain to NGINX setup was done by following these instructions on applicable part:</span><br />
<a href="https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-server-blocks-virtual-hosts-on-ubuntu-16-04" style="font-family: verdana;" target="_blank"><span style="color: blue;"><b>https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-server-blocks-virtual-hosts-on-ubuntu-16-04</b></span></a><br />
<br /><span style="font-family: verdana;">
First step that was required to get two separate domains running on same server was to divide original document root (</span><span style="font-family: courier;">/var/www/html</span><span style="font-family: verdana;">) to two separate document roots (</span><span style="font-family: courier;">/var/www/ws.com/html</span><span style="font-family: verdana;"> and </span><span style="font-family: courier;">/var/www/ws.fi/html</span><span style="font-family: verdana;">).</span><br />
<br /><span style="font-family: verdana;">
Second step was to create new pages for westsloth.fi, and that was basically copying westsloth.com Bootstrap template and remove all unnecessary parts there. This was placed under </span><span style="font-family: verdana;">ws.fi</span><span style="font-family: verdana;"> document root. Common static files like </span><span style="font-family: verdana;">robots.txt</span><span style="font-family: verdana;"> were placed under </span><span style="font-family: verdana;">ws.com</span><span style="font-family: verdana;"> document root.</span><br />
<br /><span style="font-family: verdana;">
In third step, original westsloth.com NGINX server block was duplicated (under </span><span style="font-family: verdana;">nginx/sites-available</span><span style="font-family: verdana;">). Westsloth.com part was left mostly unmodified, because only changes were related to static file locations. Westsloth.fi server block was configured to listen port 80 and westsloth.fi and www.westsloth.fi server names. Also, document root and index was defined here.</span><br />
<br /><span style="font-family: verdana;">
Last step was to enable server blocks by creating symbolic links of </span><span style="font-family: verdana;">nginx/sites-available</span><span style="font-family: verdana;"> to </span><span style="font-family: verdana;">nginx/sites-enabled</span><span style="font-family: verdana;"> directory. NGINX will read these during the startup.</span><br />
<br /><span style="font-family: verdana;">
After restarting NGINX everything seemed to be working as expected. So now we can concentrate on editing the content of both web pages!</span><br />
<br /><span style="font-family: verdana;">
-Jussi.</span><br />
<br />Jussihttp://www.blogger.com/profile/17026418633570830841noreply@blogger.com0tag:blogger.com,1999:blog-8667456487898773888.post-41178110959061887052019-07-25T00:48:00.001+03:002021-08-17T23:00:56.259+03:00We are officially a company!<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-0Mdiptm79Zk/XTjIzy5rMhI/AAAAAAAAFc4/5CBZyLBR1xU1iERtZjGX7mcy2GB7HamxQCLcBGAs/s1600/feature_1024x500_2.png" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: verdana;"><img border="0" data-original-height="500" data-original-width="1024" height="312" src="https://1.bp.blogspot.com/-0Mdiptm79Zk/XTjIzy5rMhI/AAAAAAAAFc4/5CBZyLBR1xU1iERtZjGX7mcy2GB7HamxQCLcBGAs/s640/feature_1024x500_2.png" width="640" /></span></a></div>
<span style="font-family: verdana;"><br />
After 6+ years of existence and hobby-based game development, WestSloth Games is now part of a freshly registered company called Westsloth Oy! My family member needed to set up a company for invoicing occasional work, and we decided it's time to make Westsloth a real game company!<br />
<br />
To secure company's finances our main businesses are computer hardware and software consultancy plus office and financial management services. But game and app development stays as an essential part of Westsloth and we hope games will start generating revenue in the future.<br />
<br />
This change does not have much impact the way we develop games: At the moment I am doing development on a part-time basis (my day job has priority). But of course things can change. And as before, we know we are still ramping up our game development competence and our target is to do every new game better than the previous one!<br />
<br />
Transition to company control is ongoing and there will be some changes e.g. in WestSloth Games social media channels.<br />
<br />
Check our latest published games from Google Play Store:<br />
<a href="https://play.google.com/store/apps/dev?id=5608008400672115508"><b><span style="color: blue;">https://play.google.com/store/apps/dev?id=5608008400672115508</span></b></a><br />
<br />
Follow us on:<br />
<a href="http://www.westsloth.com/"><b><span style="color: blue;">http://www.westsloth.com/</span></b></a><br />
<a href="https://twitter.com/WestSlothGames"><b><span style="color: blue;">https://twitter.com/WestSlothGames</span></b></a><br />
<br />
<br />
<br />
<i><b>Summary in Finnish: </b></i><br />
<i>Olemme kehittäneet sivutoimisesti pelejä viimeiset 6+ vuotta. Toimimme nykyään osana Westsloth Oy:tä , jonka toimialoiksi on merkattu kaupparekisteriin ATK-laitteisto- ja ohjelmistokonsultointi, toimisto- ja taloushallinnon palvelut ja kaikki muu laillinen liiketoiminta (y-tunnus: 3012425-8). </i><br />
<i><br /></i>
<i>Meiltä löytyy saman katon alta osaamista tilitoimistopalveluista, tietokoneista (Windows/Linux/cloud) sekä pelien ja applikaatioiden kehittämisestä! </i><br />
<i><br /></i>
<i><br /></i>
-Jussi<br /></span>
<i><br /></i>Jussihttp://www.blogger.com/profile/17026418633570830841noreply@blogger.com0tag:blogger.com,1999:blog-8667456487898773888.post-72257048332398308982019-03-06T00:38:00.001+02:002021-08-17T23:01:22.920+03:00WestSloth Games: New website with brand-new domain!<span style="font-family: verdana;">In addition to game development hobby I have improved my web development skills by creating and developing websites for my own purposes.<br />
<br />
Now I have taken a step towards cloud services and web backend by releasing brand-new landing page for our released games:<br />
<a href="http://www.westsloth.com/" target="_blank"><b><span style="color: blue;">http://www.westsloth.com/</span></b></a><br />
<br />
Page features:<br />
- Single-page, album-style design<br />
- Responsive, scales for all screen sizes<br />
- Admin console with login for adding/removing/modifying games entries easily<br />
<br />
Under the hood:<br />
- Django web framework<br />
- Bootstrap front-end component library<br />
- Local MySQL database. Option to use Postgresql e.g. from Amazon RDS<br />
- Gunicorn Python WSGI HTTP server<br />
- NGINX web server<br />
- Runs on single Amazon Lightsail instance (AWS EC2, in practice)<br />
- Amazon Route 53 for domain hosting and DNS<br />
<br />
</span><div class="separator" style="clear: both; text-align: center;">
<a href="https://c1.staticflickr.com/4/3595/3475465970_7044242629.jpg" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><span style="font-family: verdana;"><img alt="Kuvahaun tulos haulle django logo" border="0" height="91" src="https://c1.staticflickr.com/4/3595/3475465970_7044242629.jpg" width="200" /></span></a></div><span style="font-family: verdana;">
Basically, building simple landing page using Django was surprisingly easy: There are plenty of good tutorials available all over the web and almost all issues were solved by googling error messages. It took me approx 2 hours to get first version up and running on my PC using test server.<br />
<br />
But then the hard part was to get same project running on VPS (AWS in my case). I tried two different Django setups: the first one was running on EC2 with Apache2 web server, and the second one was set up to Amazon Lightsail using Gunicorn and Nginx. For me the latter one was easier to get running, mainly because I had solved most of the issues when trying to get wsgi setup file to work with Apache server. :)<br />
<br />
So, if you have issues setting up Django based apps on AWS using Gunicorn and Nginx (or Apache), I might be able to help. I have already gone the hard way with them. :)<br />
<br />
Django project files (excluding local settings) are available on my Github:<br />
<a href="https://github.com/jliias/westsloth-project"><b><span style="color: blue;">https://github.com/jliias/westsloth-project</span></b></a><br />
Please note, that this is not exactly the same version that is running on westsloth homepage. Some setup changes are required to get things running on different environments.<br />
<br />
-Jussi<br />
<br /></span>
<br />Jussihttp://www.blogger.com/profile/17026418633570830841noreply@blogger.com0tag:blogger.com,1999:blog-8667456487898773888.post-28824537875511268142018-10-09T00:15:00.001+03:002021-08-17T23:01:37.556+03:00Re-usable Unity3D scripts at GitHub!<span style="font-family: verdana;">During last couple of years we have created some generic Unity3D C# scripts. These scripts have been design to be re-used at least to some extent, to ease up new game project creation.<br />
<br />
Now some of them are available for public at GitHub:<br />
</span><a href="https://4.bp.blogspot.com/-kzC6YVOPPOc/W7vH14NHe7I/AAAAAAAAEbA/SgvAg55-ISk8EcJAlmEhZj43JyZpTYZ0gCLcBGAs/s1600/Octocat.jpg" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><span style="font-family: verdana;"><img border="0" data-original-height="665" data-original-width="800" height="166" src="https://4.bp.blogspot.com/-kzC6YVOPPOc/W7vH14NHe7I/AAAAAAAAEbA/SgvAg55-ISk8EcJAlmEhZj43JyZpTYZ0gCLcBGAs/s200/Octocat.jpg" width="200" /></span></a><span style="font-family: verdana;"><a href="https://github.com/jliias/CommonUnityScripts"><b><span style="color: blue;">https://github.com/jliias/CommonUnityScripts</span></b></a><br />
<br />
We have selected the ones that we think are most readable and understandable and also well (?) commented.<br />
<br />
New general purpose scripts will be added when there is something we think is worth publishing.<br />
<br />
Please have a look and see if there's something useful also for you!<br />
<br />
-Jussi<br /></span>
<br />Jussihttp://www.blogger.com/profile/17026418633570830841noreply@blogger.com4tag:blogger.com,1999:blog-8667456487898773888.post-4846956886987182022018-08-13T23:47:00.000+03:002018-08-19T01:38:46.072+03:00Going hyper-casual (or die trying)For some reason, hyper-casual games seem to be one of the hottest thing in mobile gaming at the moment. Just do some googling and you will notice that they really are trending.<br />
<div>
<br /></div>
<div>
<div>
This weekend my target was to do fast-paced game development, starting from a concept and resulting to a published game. And goal was achieved, even though there is still lot of room for improvement. Anyways, my coding skills got some practical exercise, what was the purpose of this project.</div>
<div>
<br /></div>
<div>
"Rocket to Uranus" is so-called hyper-casual game for Android. It is available <b><span style="color: blue;"><a href="https://play.google.com/store/apps/details?id=com.gamaan.gasrocket" target="_blank">at Google Play Store</a>.</span></b> </div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /><iframe width="320" height="266" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/AYc-umsuaFM/0.jpg" src="https://www.youtube.com/embed/AYc-umsuaFM?feature=player_embedded" frameborder="0" allowfullscreen></iframe></div>
<div>
<br />
Some statistics:</div>
<div>
- Total of 15 hours of time (3 evenings)</div>
<div>
- Approx. 400 lines of new C# code written + ~100 lines of re-used code</div>
<div>
- 10+ art assets drawn with Inkscape</div>
<div>
- 2 Unity scenes created</div>
<div>
- Lots of testing, debugging and bug fixing</div>
<div>
<br /></div>
<div>
-Jussi</div>
</div>
<div>
<br /></div>
Jussihttp://www.blogger.com/profile/17026418633570830841noreply@blogger.com1tag:blogger.com,1999:blog-8667456487898773888.post-14428947989572170312017-12-06T23:39:00.000+02:002018-10-09T00:31:04.307+03:00Unity3D: Camera Shake Effect with C# ExampleOne of my unfinished Unity3D game projects required camera shaking function, so I wrote one from scratch.<br />
<br />
I just needed a script that shakes camera for a certain time and magnitude, and can be called from other script. Also, sometimes it would be useful to trigger this from UI button using OnClick().<br />
<br />
<i>Added 9.10.2018: This script is now available also at GitHub:</i><br />
<a href="https://github.com/jliias/CommonUnityScripts/blob/master/CameraScripts/ShakeCamera.cs"><b><span style="color: blue;">https://github.com/jliias/CommonUnityScripts/blob/master/CameraScripts/ShakeCamera.cs</span></b></a><br />
<br />
Please find script below:<br />
<br />
<script src="https://gist.github.com/anonymous/443b154c6be32924f7f75f2e6129b4f7.js"></script>
Script is added as a script component to the Camera type object and then it should be ready for use. You just have to figure out how and when to trigger it in your own game.<br />
<br />
I hope that someone will find this script snippet useful!<br />
<br />
-Jussi<br />
<br />Jussihttp://www.blogger.com/profile/17026418633570830841noreply@blogger.com2tag:blogger.com,1999:blog-8667456487898773888.post-34631237639533042322017-08-06T17:06:00.000+03:002017-08-06T17:06:02.320+03:00Conference Call BingoDoes your job contain lots of conference calls with customers, co-workers and/or subconstractors? If so, I bet you have also noticed that same phrases and unintentional voice effects are repeated in almost every conf call. <div>
<br /></div>
<div>
In addition to the engineering work my job contains lots of conference calls. And same soundtrack from one call to another. So I decided to make a small game like application which makes use of these commonly heard phrases and other sounds. </div>
<div>
<br /></div>
<div>
Today I uploaded first version of <a href="https://play.google.com/store/apps/details?id=com.gamaan.confcall.bingo" target="_blank"><b><span style="color: blue;">"Conference Call Bingo"</span></b></a> to Google Play Store. It is currently marked as beta release, because I still have some improvements in my mind. But the core functionality should be working pretty well already in this release. </div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://3.bp.blogspot.com/-LryIQ_qV1Uk/WYchYlfY2GI/AAAAAAAAEHc/aXbjvCiZOpQ9qv9cbc5PCDga8ql7oW5WQCLcBGAs/s1600/feature_1024x500.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="500" data-original-width="1024" height="156" src="https://3.bp.blogspot.com/-LryIQ_qV1Uk/WYchYlfY2GI/AAAAAAAAEHc/aXbjvCiZOpQ9qv9cbc5PCDga8ql7oW5WQCLcBGAs/s320/feature_1024x500.png" width="320" /></a></div>
<div>
<br /></div>
<div>
Please <a href="https://play.google.com/store/apps/details?id=com.gamaan.confcall.bingo" target="_blank"><b><span style="color: blue;">download the app</span></b></a> and give it a try. I am pretty sure that most of you will find the phrases very familiar, especially if you are having regular meetings with people all over the world. :) </div>
<div>
<br /></div>
<div>
-Jussi.</div>
<div>
<br /></div>
Jussihttp://www.blogger.com/profile/17026418633570830841noreply@blogger.com0tag:blogger.com,1999:blog-8667456487898773888.post-4217488089931066522017-07-13T00:56:00.000+03:002017-12-13T19:34:25.882+02:00Indie Game Marketing TrialAs you might have noticed, our first Unity3D game <a href="https://play.google.com/store/apps/details?id=com.gamaan.bananamarine" target="_blank"><b><span style="color: blue;">"Bananamarine: Endless Submarine Tap Adventure"</span></b></a> was released for couple of weeks ago. This time we decided to put some more effort on game marketing than we have done before: We even had a marketing budget of some tens of Euros (or Dollars), instead of the normal flat-zero budget for our previous games. :)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://4.bp.blogspot.com/-lGjBPetDVaw/WWiRG0njeFI/AAAAAAAAEFw/j_NjMLDmoRYIBnPKxNCpMaoPFSzk4rpgwCLcBGAs/s1600/bananamarine_gp.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="342" data-original-width="900" height="152" src="https://4.bp.blogspot.com/-lGjBPetDVaw/WWiRG0njeFI/AAAAAAAAEFw/j_NjMLDmoRYIBnPKxNCpMaoPFSzk4rpgwCLcBGAs/s400/bananamarine_gp.png" width="400" /></a></div>
<br />
Our target for this trial was to get some experience how game visibility and number of downloads could be increased. Our expectations are not too high, but we just want to see if something really can be done to get things going better.<br />
<br />
<br />
First we started testing how easy it is to increase number of followers for <a href="https://www.facebook.com/bananamarine" target="_blank"><b><span style="color: blue;">Bananamarine Facebook page</span></b></a> with paid advertising. After 10 days and less than 10 Euros spent we had over 350 followers. But we must admit that advertising was targeted to very low cost countries. Anyways, now our simple FB page looks more street-credible than before the campaign. :)<br />
<br />
We also did some "few days and few dollars" -style campaigns at Facebook for single updates on FB page. Generally it seems that you can get easily few dozen of "likes" for your update with very small stake, especially if target audience is well-chosen.<br />
<br />
Our biggest single investment to improve game visibility was related to ASO (App Store Optimization). Based on several articles it seems that very large number of consumers will find their apps using search engine. So we decided to invest another 10 Euros to the professionally written and ASO optimized app description to see how it could improve Bananamarine visibility in Google Play Store. A suitable writer was selected from <a href="https://www.fiverr.com/" target="_blank"><b><span style="color: blue;">fiverr.com</span></b></a>, and he delivered incredibly good app description and title within couple of days. If you do not believe, then look at the <a href="https://play.google.com/store/apps/details?id=com.gamaan.bananamarine" target="_blank"><b><span style="color: blue;">Bananamarine page at Play Store</span></b></a>.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://2.bp.blogspot.com/-hdJ3ICBWBco/WWaZsx9RJOI/AAAAAAAAEFg/qLNS8FLvA6IcIzLxZJ_9XIpZ5Iq-9-i6ACLcBGAs/s1600/icon_512x512.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="512" data-original-width="512" height="320" src="https://2.bp.blogspot.com/-hdJ3ICBWBco/WWaZsx9RJOI/AAAAAAAAEFg/qLNS8FLvA6IcIzLxZJ_9XIpZ5Iq-9-i6ACLcBGAs/s320/icon_512x512.png" width="320" /></a></div>
To support this great app description we also bought game icon from fiverr.com from another skilled professional for $5. For me the resulting icon looks a lot better than my own drawing we were using in the beginning.<br />
<br />
So, summa summarum, we have used around 30 dollars for Bananamarine indie game marketing efforts. Now we just wait and see how things are going in the next weeks (or months).<br />
<br />
-Jussi<br />
<br />
<br />
<br />
<br />
<br />
<br />Jussihttp://www.blogger.com/profile/17026418633570830841noreply@blogger.com0tag:blogger.com,1999:blog-8667456487898773888.post-43811330922384508742017-06-21T13:20:00.000+03:002020-05-20T00:19:05.861+03:00Unity3D: Stuck with Play Game Services plugin<a href="https://play.google.com/store/apps/details?id=com.gamaan.bananamarine" target="_blank"><b><span style="color: blue;">Bananamarine game project</span></b></a> has been progressing quite smoothly most of the time. But yesterday I ran into situation where Unity got stuck when I tried to add <a href="https://github.com/playgameservices/play-games-plugin-for-unity" target="_blank"><b><span style="color: blue;">Google Play Game Services plugin</span></b></a> to my project. I want to have at least leaderboard to my game, so leaving game services out was not an option.<br />
<br />
Basically, plugin installation was successful, but after that all I got was a dialog window telling: "Getting list of installed Android packages". And tool was not responding anymore, even if I waited couple of hours.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://2.bp.blogspot.com/-9QrC_wtzafA/WUpFAVZjK7I/AAAAAAAAEBQ/PQlArtQZTIQnli7zRauIcVKJqR4ChEOBQCLcBGAs/s1600/play_game_services_stucked.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="797" data-original-width="852" height="373" src="https://2.bp.blogspot.com/-9QrC_wtzafA/WUpFAVZjK7I/AAAAAAAAEBQ/PQlArtQZTIQnli7zRauIcVKJqR4ChEOBQCLcBGAs/s400/play_game_services_stucked.png" width="400" /></a></div>
<br />
<br />
I tried to search help for this problem using google, but there were not many hits to help me forward with this issue. Somehow I figured out that this was something related to the Android SDK version(s), so I decided to update my Android Studio installation first. <br />
<br />
After Android Studio update I removed game services stuff from Unity project, updated SDK path to preferences, and tried to re-install plugin. But result was still the same: I got a dialog telling that Unity is collecting list of installed Android packages, and tool got stuck.<br />
<br />
After some more searching I found this thread from Github: <b><span style="color: blue;"><a href="https://github.com/playgameservices/play-games-plugin-for-unity/issues/1529" target="_blank">https://github.com/playgameservices/play-games-plugin-for-unity/issues/1529</a></span></b><br />
<b><br /></b>
Discussion was pointing out that some of the required SDKs were not necessarily installed by default with Android Studio setup, and <a href="https://developer.android.com/studio/intro/update.html#sdk-manager" target="_blank"><b><span style="color: blue;">updating SDK tools e.g. with SDK manager</span></b></a> would be worth trying.<br />
<br />
So I started Android Studio and tried what can be found there. And yes, at least Google Play Services SDK tools were totally missing from the installation. I selected it and some more SDK Platforms, and started update round.<br />
<br />
When SDKs were updated I returned to Unity and removed game services plugin once again. Then I went to preferences and double-checked that SDK path is pointíng to the updated one. Now it was time to try plugin installation once more. And guess what: Now it seems to work perfectly!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://4.bp.blogspot.com/-sZIPS8yrKeU/WUpGk-mLJTI/AAAAAAAAEBc/Dh9R12xN5wsFyp4THL2_hg_e27s1JYSTACLcBGAs/s1600/play_game_services_working.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="519" data-original-width="987" height="210" src="https://4.bp.blogspot.com/-sZIPS8yrKeU/WUpGk-mLJTI/AAAAAAAAEBc/Dh9R12xN5wsFyp4THL2_hg_e27s1JYSTACLcBGAs/s400/play_game_services_working.png" width="400" /></a></div>
<br />
I spent about 12 hours of time for exploring this issue, because I thought my setup was ok.<br />
<br />
And what did I learn from this exercise? At least this: Keep your Android SDKs up-to-date, you moron! :)<br />
<br />
-Jussi<br />
<br />
<span style="font-family: "georgia" , "times new roman" , serif;"><i><br /></i></span>
<span style="font-family: "georgia" , "times new roman" , serif;"><i>Edit: It seems that after updating SDK I started to get "Unable to list target platforms" error messages, when trying to compile project to Android. The solution seems to be downgrading SDK Tools to version r25.2.3, as explained here: <span style="color: blue;"><a href="https://forum.unity3d.com/threads/unity3d-5-5-0fx-unable-to-list-target-platforms-error.446096/">https://forum.unity3d.com/threads/unity3d-5-5-0fx-unable-to-list-target-platforms-error.446096/</a></span></i></span><br />
<span style="font-family: "georgia" , "times new roman" , serif;"><i>I guess this same problem has been with Unity3D, Android Studio and Eclipse, to mention some.</i></span><br />
<br />Jussihttp://www.blogger.com/profile/17026418633570830841noreply@blogger.com1