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

Tuesday, October 25, 2016

Construct2: Simple 2D Starfield Effect (top-down)

It's been a long time since I was inspired to write a tutorial. But now I am able to provide you one more idea for Construct2 use.

There are probably several ways to implement top-down 2D starfield effect in Construct2, but I think this is one of the easiest ones. By using this method, you will need only two particle objects to implement very simple starfield in no time!

Check Starfield HTML5 version (opens in new tab).

You can get the example .capx here.

From events point of view you will need only "on start of layout" event, like this:










This example was build for window size of 480x640 pixels, but the layout itself is twice as high (480x1280px). The reason for this is that particle object generates particles from single point only. User can define the size and direction of the cone, but it is not possible to change the width of the creation point. So all generated stars are not moving exactly to the same direction (motion is not parallel). You can get rough idea of layout view from the figure below.



To make stars moving as parallel as possible, I decided to create both particle objects on top of layout (coord 240,0). Camera is positioned to the center of lower half of the layout (coord 240, 640*1.5). One particle object is creating stars of 1px, and the second one particles of 3px (plus some variation in size). There is also some opacity randomization added to particle_small object to make some blinking effect. The setups for both particle objects are visible below:


Another noteworthy thing is the lack of so-called "prewarm" function in C2 particle object. This means it takes some time for C2 to fill whole screen with stars, especially when particle object is far away from the visible part of layout. My solution to this was to use kind of an layout mask combined with initialization time: In the beginning of layout layoutMask object was set to "visible" and system time scale was increased to 30 (meaning that time runs 30x faster). After bit over one second ("wait 35 seconds" in example) layoutMask was set invisible and time scale was set back to 1. Now we have fille whole screen with moving stars. I guess this is poor man's version of Unity3D's "particle prewarm" behavior. :)

If you want to have several types (or colors) of particles, then you will need more particle objects. One particle object can create only one kind of a particles. However, the size of particles can vary in one particle object. But as always, it is fully up to you how to continue forward with this! :)

-Jussi


Tuesday, October 4, 2016

Flying Dachshund

Do you find dachshunds (sausage dogs, wiener dogs) adorable? If so, then this game is for you:
https://play.google.com/store/apps/details?id=com.gamaan.sausage.dog

Dogs Games: Flying Dachshund is a simple and funny game for kids. Make dachshund puppy to fly by tapping screen and try to catch as many sausages you can.


Your dachshund gets flying energy by eating sausages. Golden sausage fills the energy meter, and flying consumes energy. And if this sounds too easy, bear in mind that evil cats and flying turkeys are trying to stop you. So be careful out there when playing Dogs Games: Flying Dachshund!

Features:
- Easy to play game mechanics
- Energy meter
- Give flying dachshund any name you want
- Google Play Leaderboard

Game was developed using Construct2, and Android conversion was done with Intel XDK (Crosswalk). Game background music is Spazzmatica Polka by Kevin MacLeod (incompetech.com).

Happy flying with Dogs Games: Flying Dachshund!

-Jussi

PS. All graphics are drawn by by 11 years old daughter. :)

Wednesday, August 17, 2016

Shapecalypse: Cosmic Impact (Android)

"Shapecalypse: Cosmic Impact" is a fast-paced space battle game with unique twist. Attention and quick reflexes are required to be successful in this galactic war.

Get Shapecalypse from Google Play Store. 

Features:
- Google Play leaderboard
- Local highscore will be saved too
- Geometrical aliens have 4 different attack styles (will be mixed)
- Compelling background music
- Easy to learn but hard to master

Facitious story:
Mankind decided to set up a colony on distant asteroid zone. Unfortunately, that part of the space was already inhabited by geometric alien race. So serious consequences will be expected! (what a surprise)

Your task:
Your mission is to defend the surface of distant astral body as long as possible. Geometric aliens will send geometrically shaped meteorites to crush the base, and you are the only one between them and rest of the colony.


How?
Geometrical alien shapes are coming from the sky in different formations. The only way to stop each wave is to catch one of the shapes with your own vessel. Catched shape must match the current shape of your own vessel, otherwise your will lose. And remember: your vessel will change it's shape randomly.

Controls:
Just tap left or right side of the screen to move your vessel horizontally over the astral body. Arrows on the bottom are just to visualize what's going on.

Good to know:
When aliens will change their attack style, the event is called "Shapecalypse". That means that either their form or approaching style (or both) will change, and you probably are in more trouble than before.

Shapecalypse is created with Construct 2. Android version was build with Crosswalk (Intel XDK).

-Jussi

Tuesday, July 26, 2016

Fly Assault! HTML5 version

Fly Assault! for Android was released couple of weeks ago, and there has been little interest on it. Now we decided to put HTML5 version of Fly Assault! to public distribution.

If interested to test how game feels and looks, please try HTML5 version on our server.

In principle, this HTML5 version should run on all devices. But it is always possible that someone finds a browser and device combination where game does not run smoothly...:) And if you like HTML5 version, please try native Android version too.













-Jussi

Tuesday, July 12, 2016

Introducing Fly Assault! game

Edit 16.7.2016: Fly Assault! game for Android was released on Google Play Store couple of days ago. So go and get your own free copy by using this link


After releasing Battlecards Android game, we started working on a game concept that was invented couple of years ago. At that times, I created quick&dirty prototype for testing basic game mechanics. Also, main characters were also drawn then. But for some reason we did not continue to work on it.

The working title of this game has been "Fly Attack". But after some not-so-careful thinking we decived to rename it to "Fly Assault!". At least there are not too many games with same name in Google Play. :)

Game itself is very simple and easy to play: There are flies coming from top of the screen and player tries to catch them before flies get in touch to muffins in the bottom of the screen. There are couple of special "weapons" available to boost killing the files: Fly poison and Frog.

Please watch attached video clip from Youtube to get understanding of this game:

Fly Assault! will be available at Google Play Store in July 2016.

-Jussi

Saturday, July 2, 2016

Corrupted Android keystore file

Last week I ran into situation where I noticed that my Android Keystore file used for signing e.g. Battlecards game was somehow corrupted. Obviously, I had  not done any backups of my keystore file, so there was no way to fix it. So I decided to generate new keystore and compile my app again with cocoon.io.

But that was not so easy: After cocoon.io compilation was finished, I was not able to load new .apk to my testing device. Tablet complained that previous version of app has been signed using different key and refused to install new version. So I removed old version of Battlecards from tablet, and realized that I had to do same for all my test accounts that were created to that tablet. Only then I was able to install new version (signed with new key).

After some struggling I was able to install new version generated with new keystore file and started the app. But then I noticed that all Google Play Game Services, including leaderboards, achievements, etc. were not working at all with new .apk. Now I understood that I was not able to publish updates for Battlecards with the new keystore. Great.

Needless to say, I tried to find some solution for this situation desperately. But I soon came into conclusion that only feasible way for me was to publish Battlecards as a new application and use new keystore for further updates. So I created new application to Google Play, filled all required fields, uploaded new .apk (signed with new keystore), and finally created new application entry to Google Play Game Services. This took about 1 hour for me, so after all it was not so big task. It was mostly copy&paste from old app entries.

You have also keep in mind that same package name can't be used for two apps, because they must to be unique. For example, Battlecards original package name (old keystore) was "com.gamaan.battlecards", and the new package name is "com.gamaan.battlecard". So there is just the difference of one character in package names.

Luckily, there were not yet too many downloads for Battlecards, so informing existing players was not too big problem. But if there were thousands (or millions) of active players for a game, then it would be wise to find a way to tell them to download new version.

And what was the root cause for keystore corruption? I can not say for sure, but I suspect it had something to do with the Android Studio version update I did some time ago. I googled this a bit, and found out that there are some other people whose keystore were broken after updating to newer Android Studio or JDK version. So maybe that is the reason?

Anyways, I strongly suggest you to have a backup or two of your Android keystore file. That might help resolving this kind of a situation. :)

-Jussi

PS. If you run into similar situation and want try to recover your corrupted keystore, this article might be a good startpoint to get deeper understanding what is going on.

Tuesday, June 21, 2016

Alternative promotion video for Battlecards

We decided to try an alternative promotion video for Battlecards Android game. Target was to create not-so-serious gameplay video using the properties we already had in place. So, best idea we got was to record short live gameplay of "War" (that is the model for Battlecards).

Video was recorded using mobile phone, and both "actors" are amateurs. So, here is the result:


Not perfect and probably not exactly what we planned, but at least we got it done. :)

-Jussi

Thursday, June 16, 2016

Battlecards Android game

Hello Friends! Now it is time to present you the latest Android game from WestSloth Games. Game is called "Battlecards", and it is a digital version of ancient card game "War". There are several variations of this game, and our version is probably one of the simplest ones.


Gameplay is as simple as it can get: The deck is shuffled and divided evenly among the players. On each round both players reveal the top card of their deck, and the player with the higher card takes both of the cards played and moves them to the bottom of his stack. Aces are high, and suits are ignored. If the two cards played are of equal value, then there is a "battle". Both players place the next card of their pile to the table. If topmost cards are still equal, battle continues with another set of cards. Battle will continue as long as either player has higher topmost card than the other one (or player runs out of cards on his/her deck). Winner gets all the cards that were on the table.

Game has been developed using Construct2 tool and exported as HTML5 (Cordova). Android build was done using cocoon.io service. This was first time we were trying cocoon.io, so there were several things to be learnt before fully functioning .apk was written out. But anyways the size of final .apk was ~6MB, that is pretty small compared to Intel XDK/Crosswalk build (usually 25-30MB). I am not yet fully aware what are the drawbacks from smaller installation packet size, but I bet there will be some.

If you are interested to test this game, please get if from Google Play Store (follow the link). Game has been tested on couple of tablets and phones so far, and there are already few know open issues. For example, x86 based Tab3 has performance issues, but Arm based tabs and phones are running game pretty well. Also, there seems to be some problem using inappbrowser plugin with cocoon.io build, and I have not yet figured out what is the root cause.

I am planning to do some updates over the next few weeks, so any feedback is appreciated!

-Jussi

Wednesday, March 9, 2016

Voxel art avatar for WestSloth Games

I have been playing for couple of days with a voxel editor called MagicaVoxel. Based on my trials I have found it quite interesting and easy-to-use tool for creating some kind of a 3D pixel art. Naturally, there are plenty of other voxel editors available, but so far this is enough for me. 

Today I drafted a new avatar for WestSloth Games, the marketing label for the games I have published:
We have now updated WestSloth Games social media profiles with this picture, so I really hope this looks like a sloth... :) 

If you are interested so see more voxel art from me, please visit WestSloth Youtube channel. I have created there few videos showing how to draw e.g. Minecraft style pig, or Crossy Road style car in very quick and easy way. 

I have also exported object files from MagicaVoxel to Unity3D just to see that I have full flow up and running. Now I just need to draft a good game idea to make use of voxel art...

-Jussi

Tuesday, February 9, 2016

Game Prototype Testing Area: gamaan.com

Very small percentage of our game ideas are completed and published. Most of projects are suspended (or even killed) during the early phases of game development, and only few are really published in form or another. But what happens to the ones which are not completed? In the past we have just left them to the corner of a hard disk, but now we decided to give them a second change.
So we decided to create a site called gamaan.com, that is filled with unpublished game prototypes by WestSloth Games. We wanted to give wide audience an opportunity to play and test these immature pieces of digital art and provide feedback about them.
The maturity level of games varies a lot: some prototypes are in quite finished condition, but some of them can be very rough mechanics trials.
We are collecting feedback on some parameters of game. If you like something, please let us know. And if not, please let us know that too.
Please select a game from the “recent posts” list on right hand side of the screen and have a try!
Have fun!
PS. Don’t forget to try our published Android games at Google Play or Flash games at Newgrounds.com.