Wednesday, June 21, 2017

Unity3D: Stuck with Play Game Services plugin

Bananamarine game project has been progressing quite smoothly most of the time. But yesterday I ran into situation where Unity got stuck when I tried to add Google Play Game Services plugin to my project. I want to have at least leaderboard to my game, so leaving game services out was not an option.

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.



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.

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.

After some more searching I found this thread from Github: https://github.com/playgameservices/play-games-plugin-for-unity/issues/1529

Discussion was pointing out that some of the required SDKs were not necessarily installed by default with Android Studio setup, and updating SDK tools e.g. with SDK manager would be worth trying.

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.

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!


I spent about 12 hours of time for exploring this issue, because I thought my setup was ok.

And what did I learn from this exercise? At least this: Keep your Android SDKs up-to-date, you moron! :)

-Jussi


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: https://forum.unity3d.com/threads/unity3d-5-5-0fx-unable-to-list-target-platforms-error.446096/
I guess this same problem has been with Unity3D, Android Studio and Eclipse, to mention some.

Monday, June 19, 2017

Bananamarine update

Hello, guys!

Bananamarine project has progressed almost as planned, and release day is close. From gameplay point of view everything is roughtly done, only some polishing and finetuning is still on To-Do list. I guess most work still to be done is on UI and Google Play Store integration. Then we should be ready for launch. And yes, lots of intensive playtesting is required still.



Lots of work has also been done on side activities: We opened yesterday Bananamarine landing page, and Facebook page has also been active for several weeks.

There is also new playtesting video available at Youtube (embedded below). Please check it to see how game looks today.


I don't want to fix exact release day just right now, because this work is done on hobby basis. But current guess is the week after Midsummer (26th-30th June 2017). So please wait one more week for release. :)

-Jussi.

Saturday, June 3, 2017

Bananamarine

Hi for a long time!

Despite the silence WestSloth Games is alive and kickin'. :) I have been working on our next title for couple months, and now it seems that full release can be done within couple of weeks.

The name of the game is Bananamarine and currently we have plan to publish it only for Android devices. This will be our first game developed with Unity3D and C#.

Player will control small yellow submarine called "Bananamarine". There will be pearls to be collected and mines to be dodged. Also, a mixed selection of very special marine organisms are swimming in this game.

If interested, please check attached video from Bananamarine playtest. Basic functionality is working pretty fine and some features are still to be added. All graphics is drawn by me (unfortunately), so please don't mind so-called "coder-art". :)


That's all from us at the moment. Be prepared for full launch within June 2017!

-Jussi

Thursday, November 24, 2016

Rocket Santa 2016: Season's Greetings!

We have been creating Christmas themed game for last couple years. For 2014 it was "Turbomole Xmas run" (flash), and for 2015 "Rocket Santa" (android).

This year WestSloth Games proudly presents: "Rocket Santa 2016" (android).


The story in the game is simple: mischievous aliens have stolen gift boxes from Santa, and he is trying to get back as many as he can. Santa can fly by using mysterious gas powered butt rocket. The amount of "rocket fuel" is limited and it can be gathered up more by catching ginger breads or gift boxes. So you have to help Santa to collect stuff and at the same time dodge nasty aliens!

For this game we took base mechanics from "Flying Dachshund" Android-game, where player controlled little sausage dog by tapping the screen.

Dachshund graphics were replaced with the graphics from original Rocket Santa. Also, some new graphics was introduced. So in priciple this game is kind of a "asset flip". :)

Check game introduction from Youtube:


In any case, this is our (WestSloth Games) way to wish You happy holidays!

Get game from Google Play and get into the mood!

-Jussi.

Tuesday, November 15, 2016

My first Unity3D app is ready!

After long period of hesitating I started to work on my first Unity3D app. To get things going, I selected very small and simple concept to work with.  

Basically, Task Timer is a simple tool to track time used for different tasks. Main features:
  • 3 independent timers that will run also on background and when display is turned off
  • Minimal design: no bells and whistles included. Just the necessary functions!
  • Fully-customizable task names (no limitations)
  • Possibility to export timer data to email template (in csv format)
  • Measurement accuracy: 1 second
You can use Littlest Helper: Task Timer for your everyday time tracking tasks. And it is fully up to you how to use the data generated by the tool: Exported csv data can be taken directly e.g. to Excel (or equivalent) and processed as you wish.


I think this app would be a good tool for everyone who is should measure time used for different tasks (project workers, consultants, etc.). 

-Jussi

Wednesday, November 2, 2016

Unity3D: Convert Seconds to hh:mm:ss Format

I have gradually started to use Unity3D for game development. So far I have been doing very small and simple test codes just to learn how certain things should be done with Unity.

But now I have an example that might be of interest for other wannabe-Unity3D users, at least those who are struggling with converting seconds to HH:MM:SS format. :) So lets begin with this example.

First of all, start Unity3D and create new project. This example uses the console only for outputting result, so project can be either 2D or 3D. Whichever you prefer.

Create empty object to your scene (ctrl+shift+N), or use pulldown menu (GameObject->Create Empty).

Select empty object and rename it e.g. to "Timer". Add new C# script component to empty object and name it as "TimerActions" (Add Component->New Script->write name and select Csharp as script type):


Open TimerActions script to your favorite editor (double click "TimerActions" thumbnail in Assets folder). I am using Monodevelop for editing Unity scripts, but I guess any other decent editor will also do fine.

Write C# script as follows (or download it here):


The basic idea of script is to measure time using so called deltaTime, that is time taken to complete the last frame. Execution time between consecutive frames may differ significanty depending on what kind of processing your app is doing. So using deltaTime makes ýour app to run precisely, no matter what framerate is.

TimeCounter variable contains the time in seconds. To extract hours, minutes and seconds information from that we have to do some calculations:

  • Hours are calculated by dividing seconds with 3600, and then rounding the result down to the closest integer. 
  • Minutes are basically the remainder of TimeCounter / 3600 divided by 60 (also, round down)
  • Seconds are simply the remainder of TimeCounter / 60 (also, round down)
After calculations we still have to do some formatting for the output. This is done with string.format() function, as seen in the C# example script. Formatted string is written out to console using Debug.Log() function. 


After writing (or copying) the script you can go back to Unity. Select "Console" tab, hit "Clear" and "Collapse" buttons, and then run your scene. Now you should see Debug.Log messages showing the content of TimeCounter, formatted to HH:MM:SS.



If you want to speed up testing, you can go back to Monodevelop and tweak line containing "Time.deltaTime" a bit:

TimeCounter += Time.deltaTime * 30;

This makes counter to run 30 times faster and you should still to be able to get 1 second increments to your Debug.Log messages.

Although this very simple and short example, I am sure someone might find this useful. 

-Jussi