Posts

Showing posts with the label gamedev

New HW for gamedev / Lost the spark

Image
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? 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).  Currently there are 500GB+1TB SSD drives working as a mass storage. Backups are taken to 4TB USB drive.  Display is still the same old 24" HD monitor, but I am planning to buy 32" 4K display in close future.  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 (drawi...

WestSloth Games 2021 wrap-up

Image
We entered to year 2022 for few days ago, so it is time to check what was achieved during last year.  On 2021 WestSloth Games released total of 4 casual or hyper-casual games: Reaction Training Game Speed Tapping Game Laser Dodger Tower Rescue Hero (still in beta) On top of released games we kept up developing our own hyper-casual development platform 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.   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.  5th version of platform is under planning, and th...

WestSloth Games year 2020 wrap up

Image
Hello All! For WestSloth Games 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.  Here are some highlights: Major update for Flamingo Tap Tap Run Android game was released in the very beginning of the year. Some statistics with download numbers and ad impressions/eCPM values is revealed in separate blog article .  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.  A new variant for our previous rocket game was released in June 2020. Rocket Orbit 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 rel...

Flamingo Game statistics update

Image
Our reasonably popular Flamingo Tap Tap Run 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.  Although the game has not been a real breakthrough, the number of new downloads has been fairly steady throughout the year. Advertising revenue 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 downloads are organic , since no paid advertising used. And yes, we have not included any in-app purchases in any of our games. 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 be...

Own Fan Product Store: Why?

Image
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. 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.). 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. Links to both...

How Many Downloads? (Real Data Included)

Image
I will now present a realistic summary how "Flamingo Tap Tap Run" 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. 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: 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. 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. ...

Flamingo Tap Tap Run

Image
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". :)  My game development journey continues with " Flamingo Tap Tap Run " Android game, with pretty simple visual outlook and simplified mechanics. Please download game for free from Google Play Store and have a try! 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. Game logic was created with Unity3D and C#. New tricks (or structures) for me were delegate...

Running multiple domains on one NGINX server

In addition to westsloth.com domain we have now registered westsloth.fi domain for our planned business in Finland (mostly HW/SW consulting and financial and office management services). 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. 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. Westsloth.com webserver is built using NGINX, Gunicorn and Django framework plus local MySQL database. Web page is built using Bootstrap front-end framework. Adding another domain to NGINX setup was done by following these instructions on applicable ...

We are officially a company!

Image
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! 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. 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! Transition to company control is ongoing and there will be some changes e.g. in WestSloth Games ...

Re-usable Unity3D scripts at GitHub!

Image
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. Now some of them are available for public at GitHub: https://github.com/jliias/CommonUnityScripts We have selected the ones that we think are most readable and understandable and also well (?) commented. New general purpose scripts will be added when there is something we think is worth publishing. Please have a look and see if there's something useful also for you! -Jussi

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

Image
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! 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 paralle...

ASO trial: Closing Words

Image
I started App Store Optimization trial  in the beginning of September for an Android game called "Del Gibbon's Mad Maths". Based on Google Analytics data, it seems that this trial was not successful at all (what a surprise!). Target of this trial was to improve the game visibility at app store and get more installations. Both targets failed miserably: there were just handful of new installations during the last 3 months. This was the first time I was trying to do any sort of keyword research and optimization, so I guess the result was expected. But what were the reasons for the failure? I guess it was a combined effect of my inexperience in ASO plus usage of related key word research tools. Also, the quality and attractiveness of published game was not too high. If your app is crap, then it is pretty difficult to market it. At least your supporting material, including thumbnails, screenshots and videos should be high quality. What I can do better next time? Pro...

Monty Hall Problem Simulator

Image
Have you ever heard abut Monty Hall Problem? Basically, it is kind of a brain teaser that has been named according to the host of the television game show called "Let's Make a Deal". The starting point for this matter is the situation where there are three closed doors in front of you. Behind one door is a grand prize (money, car, whatever), and behind other two doors there is something less desirable (nothing, goat, etc.). Anyways, you have to pick one door. After selection is done, one door (with less desirable content) is opened for you. Now you have to decide whether you want to stay in your original selection or switch to other door. There are conflicting opinions which choice is better, but but now you can try it yourselves using this free Android application: Monty Hall Problem Simulator.  EDIT: Monty Hall Problem Simulator by WestSloth Games was removed from Google Play Store because of outdated API level. This was a nice and relaxing weekend project for me...

Back to Unity3D

It's about two years since I last time tried to do something with Unity3D. At those days I did not have much gamedev experience. I just took some web based trainings and created couple of demos, but decided to use bit simpler tools for my first game projects. So far I have created several Flash games with Stencyl, and couple of Android games using Construct 2. Although these games are pretty simple and silly, I feel my level of gamedev knowledge has improved a lot by doing these games from the beginning to the end. Now I am trying to get familiar with latest Unity3D tool. I decided to start learning with  free Unity 2D tutorial from Udemy . Obviously there are plenty of other trainings available, but this seemed like a good intro for using the tool. My first impression is that there has been lots of improvements in Unity3D since the version 3 I was using last time. Somehow the tool seems to be easier to use now, or my skills have improved a lot in last two years. :) I hav...

Fledgling Gamedev's Guidelines

Here are some general guidelines that should help to get your first gamedev projects proceed, and even completed in a reasonable time. 0. Prepare to sacrifice your time and effort Ok, you have idea for a game. But are you ready to make the effort to implement it? If you want to get your ideas ready, most likely you got to do it yourself. No one else will do it for you. 1. Start with something small and simple.  If your first game project is large and complex, you probably won't finish it. 2. Select an engine that fits to your game.  There is no need to shoot birds with cannon. Try different engines and use the one that fits for your purposes. 3. Create lots of prototypes and small games.   Select the ones that work for further development. Gather experience on suspended and unfinished projects.  4. Test the mechanics in early phase.  Find out if game mechanics is working as soon as you have working prototype. Try to define game's "fun facto...

Detecting the input device (C2/HTML5)

Image
While getting familiar with the Construct 2, I started to wonder would it be possible somehow detect what kind of a device is used as an input device for HTML5 game. In principle, HTML5 will run on almost all platforms, so it would be very useful to see whether the player is using mouse or touch screen as a input device. I created a simple Breakout game clone to find out how the control method could be detected easily. Breakout clone Game is very simple one, and it has no extra features included. I also tried to add some comments to ease up understanding what has been done and why. I am not too sure if everything is done "correct" way, but anyways this example is working somehow with my own devices (Android tablet, Lumia phone, Linux and windows computers). Game events 2-4 are the most interesting ones from this article point of view. Please see the .capx or the picture below to see how detection was done in this case. Detect whether mouse or touc...

Construct 2: if-then-elseif-else statement

Image
Do you have an idea how to implement IF-THEN-ELSEIF-ELSE statement with Construct 2? At least I had to think for a while how to do it. It seems that this basic structure is not so straightforward to implement in C2. I was creating a very simple game where boxes were moving from left to right. See example below: The color of each box is chosen randomly, so it required the usage of random() function and if-then-else statement. There are probably several ways to do this, but I wanted to make this as simple as possible inside one single event and action box.  Normally I would create a if-then-elseif-else structure like this to select color for the box (pseudo-code just for an example): if randomNumber == 0       set colorOfBox = "red" else if randomNumber == 1       set colorOfBox = "yellow" else if randomNumber == 2       set colorOfBox = "green" else       set colorOfBox = "blue" end if But ...

Testing and polishing

Image
I've been bit busy with my daily work for last couple of weeks, so gamedev activities have got less attention than normally. But still there has been some progress since my last update. My original plan was to finish and release "Dualball" flash game in the end of September, but now it seems to take some more time. Game itself is in pretty good shape: the mechanics works, there are no detected major flaws currently, and 75% of planned levels are ready and tested quite well.  We have done thorough testing ourselves and a number of serious bugs have been found and corrected during the process. Gameplay tests have been run on both computer and touch-screen tablet to get some extra coverage. It has been interesting to see that some bugs are not easily visible on both platforms: E.g. "ball ground check" routine worked fine on computer, but on tablet there were strange malfunction with it. So I strongly recommend you to test your games on multiple platforms in...

Turbomole statistics update (part 2)

Image
I am sharing one more chart showing the daily " Turbomole Trial Run " views over last 61 days. So it's about 2 months since we released this flash game to Newgrounds. Total number of views is at the moment 46082, so there has been in average 755 views per day (source of data: Newgrounds Statistics). The number of daily views has varied between 35 and 3620. I am pretty happy to these figures, because two months ago we were expecting no more than 5000 views in total. Ad revenue has been very modest for "Turbomole". There is just one ad shown before title screen, and that's all. I didn't want to irritate players with large number of ads, so there are no between-scenes ads at all in this game. Also, the eCPM seems to be quite low for flash ads. Pre-roll ads would provide better eCPM, but the number of those has been disappointingly low... What makes the chart interesting is the recovery that has happened couple of times: The number of daily view...

"Dualball" the Game

Image
We have been working on two separate game projects in parallel. Now one of them is in quite mature condition and it is likely that it will be published in a couple of weeks. So it maybe is time to shortly introduce the game concept? Working title for the game is "Dualball". This is a platform game where player controls two balls at the same time with single click (or touch, depending on the device). The challenge comes from the parallel nature of this game: you must be able to do some multi-tasking and time your clicks correctly. Timely performance is rewarded with coins that are spread on the levels. Collecting all coins is not always straightforward, and you have to carefully think what kind of a sequence is required to clean up the level. We have been testing "Dualball" on flash and Android platforms, and it seems that the latter one is bit more convenient for this concept. However, game will be released in flash format first. Android version will follow ...