The cheapest tablet and strange design choices

Amazon regularly sells its tablets at or below cost.
Right now, the Kindle Fire HD 8 tablet is on sale for just C$70.
A similar 8″ Samsung tablet costs double, and some iPad Mini costs at least 4 times more.

Seventy Canadian Dollars! Amazon Fire HD 8 tablet

Continue reading “The cheapest tablet and strange design choices”


This website uses cookies

“Me want cookie!”, says Cookie Monster

 
And that website uses cookies. And the website over there uses cookies.
The problem with this message is that probably 99% of websites use cookies.
Session cookies, analytics cookies, advertisement cookies, your personal settings cookies, and many, many other cookies.
Online games use something similar to cookies to save your game settings and progress.
This is normal!
Continue reading “This website uses cookies”


Streamlining Operations

Unfortunately, developing casual games for mobile platforms has become quite a hassle.
There are millions of games and apps available because basically anyone with minimal knowledge can make one, thus, developing a new game makes no sense, markets prioritize the most popular games and don’t really promote new titles unless you have a big fat budget for marketing.

At the same time, there are these stupid new regulations, like GDPR and CPRA. Marketplaces have their own rules, which they change from time to time, like the Google Play Store, which requires updating the app at least once every 2 years, otherwise, it will be automatically removed.
Plus, sometimes I need to update games to fix my own bugs and add new features.

Anyway, keeping numerous games in compliance with all the new rules and regulations is quite a soul-sucking task, so I’ve decided to remove most games from markets except for the two most popular and profitable.

All-in-One Solitaire and All-in-One Mahjong are both available for Android, iOS, Windows 10+ and online.
I will keep updating those games and add new features.

All other games, All-Peaks Solitaire, Shadow Solitaire, Rainbow Lines and Match Jong are only available online at the Pozirk Games website.

At the same time, there is some good news! 🙂
Old Flash games, that stopped working after Adobe stopped distributing Flash plugin, are slowly coming back to life!
Thanks to Ruffle, a Flash Player emulator.
It is still in beta, but several games are working just fine already.
Balloon Express – works!
Feed The Furry – works!
Instant Football – works!
Mad Tanks – works, but there are some bugs and game doesn’t save the progress.
Total Construction – almost works, but not yet.
Resistance Is Useless – not yet.
Space Age – not yet.
Dolly The Sheep – not yet.
Charlie Likes Strawberries – not yet.

Mad Tanks, Space Age and Resistance Is Useless are still my 3 most favorite games.



Javascript Adblock detector

As most part of my games’ revenue is coming from ads including website ads shown at Pozirk Games, I need to make sure those ads are actually working.
Ad-blockers cause some troubles for website owners like me, and even though I don’t like ads myself, there is nothing free in this world.
If it’s not advertisers who pay, then it should be me or players. I prefer advertisers to foot the bill.
I’ve searched and tried different ways to detect ad-blockers, but I couldn’t find an universal javascript snippet that works for any ad-blocker, so I’ve made my own. 🙂
Continue reading “Javascript Adblock detector”


Admob OpenFL extension v2

In 2015 I’ve made my first version of Admob OpenFL extension.
At that time it only supported Android, so I was happy to abandon it as soon as “official” extension with Android and iOS support became available: https://lib.haxe.org/p/extension-admob/.
Fast forward to 2021 and it was abandoned as well as no one really updated it for 4+ years…
It was working ok until recently when Apple introduced iOS14 and their App Tracking Transparency: https://developers.google.com/admob/ios/ios14?hl=en.

Well, as old saying goes: “If you want something done right, you have to do it yourself”.
So, here is my new version of Admob OpenFL extension, that supports both Android and iOS and has lots of cool features:
https://github.com/pozirk/extension-admob

It took me around a week to make it work. While Android part was quite easy and straightforward, with iOS part I wanted to climb the walls.
Biggest issue was the speed, or rather lack of it, as I was working on iOS part in virtual machine, and it was slooooow. Any small change required me to rebuild the extension and then rebuild my project to test the change.
On virtual machine this procedure could easily take 20-25 minutes and then if I need another small change, I have to repeat everything all over again.
Anyway, extension is out there and I hope to keep it up to date!


Real price of a smartphone

My old BLU Vivo Air test phone became too old, both physically and “mentally”.
The battery is playing tricks showing 40% in one moment and then dropping to 0% another and Android version is 5.0.2, which is soon will become unsupported even by my own games.
At the moment I still set minSdkVersion to 19 (Android 4.4 KitKat), but targetSdkVersion is already forced by Google to be 30.
Btw, in OpenFL it is done in project.xml file:

<config:android minimum-sdk-version="19" target-sdk-version="30"></config:android>

A neat list of all the Android/API versions can be found on Wikipedia: https://en.wikipedia.org/wiki/Android_version_history.

Continue reading “Real price of a smartphone”


Google License verification extension

I have completely forgot that I have developed and released a little extension for Haxe/OpenFL.
While in the end I’m not using this extension myself, it was working fine at the time of release and should work in the future, unless Google changes something dramatically, as usual.

Extension can be found at Github and installed through haxelib:
https://github.com/HaxeExtension/extension-lvl


Adobe will stop updating and distributing Flash in 2020

Today’s news: https://blogs.adobe.com/conversations/2017/07/adobe-flash-update.html
Era of Flash games is over. 🙁
I guess, it’s time to start converting all my games to HTML5.
From one side, it’s such a waste of time for me…
But from other side, I can see a good opportunity here, as lots of flash gaming portals will close and all their players can be mine! 😎


Admob OpenFL Extension

As I moved from Flash (Adobe Air) to OpenFL, the same I’m doing with extensions.
First extension, Admob OpenFL Extension could be installed with haxelib:

haxelib install admob-openfl

Full source code and usage instructions could be found on GitHub:
Admob OpenFL Extension

Unfortunately, extension supports only Android, so if anyone wants to add iOS support, please let me know!

з.ы.: Amazon Ads extension is coming soon… 🙂


Integrating Adsense for games into your OpenFL game

I have moved from CPMStar to Adsense for games a month ago and started to earn around 3-5 times more from the same number of clicks/impressions.
Although, it always depends on who plays your games, I suggest to try AFG, if you have such opportunity.

Here is a quick tutorial on how to use AFG with Haxe/OpenFL.

0. “AdSense for games allows you to earn money from your web-based games. AdSense for games uses Google’s Interactive Media Ads (IMA) SDK, the technology used to request ads from within your Flash-based game launcher.”
I have only tried AFG on Flash platform, but IMA SDK also available for iOS, Android and HTML5.

1. Download ima_lib_as3.swc file here: https://developers.google.com/interactive-media-ads/downloads

2. Place ima_lib_as3.swc file in assets folder and add the following line to your application.xml file:

<haxeflag name="-swf-lib assets/ima_lib_as3.swc" if="flash" />

3. Create your Ad Tag at Adsense Dashboard, you can test it here: https://developers.google.com/interactive-media-ads/docs/vastinspector_dual

4. Integrate AFG using this Quick Start Guide: https://developers.google.com/interactive-media-ads/docs/sdks/flash/v3/quickstart
Don’t forget to convert AS3 code to Haxe. 🙂

5. Most likely you won’t see any ads, when you test your game in standalone Flash player.
You have to integrate the game into the web page (and upload it to your website) and set the following flag:

allowScriptAccess="always"

6. If everything’s made correctly you will see ads like in my Rainbow Lines game.

P.S.: One of the requirements for using AFG is to “Have a high volume of games content, i.e., greater than 70% games content with over 2 million games impressions monthly.”
As Google has recently combined Adsense with Admob, your Admob impressions also count. (I suppose 🙂 )


Loading assets from .swf with OpenFL + font embedding

A small tutorial on how to load assets from .swf file with OpenFL.

First, make sure you have the latest version of Haxe and OpenFL.
You can also execute the following command to update your libs to the latest versions:

haxelib upgrade

Second, make sure you have SWF Library, execute:

haxelib install swf

Now, we need to create our SWF library with all the assets.
You can do it with any version Adobe Flash or any other software of your choice.
Creat new flash project, import your assets to the library and make sure that every asset, you want to use, has AS Linkage.

In my example, I have one image with “button” class name:
aslinkage
You should remember class names for all the assets, you will load.
Build .swf file.

Ok, start coding.
Create new Haxe/OpenFL project with FlashDevelop (or whatever you use).
Put your .swf file into assets folder.

Open application.xml file and add the following lines:
1. our SWF Library, so we can use it:

<haxelib name=”swf” />

2. Link to our .swf file:

<library path=”assets/graphics.swf” type=”swf” />

In my case, I have graphics.swf file.
You should remember its name, as you will use it late.

Now we need to load our assets, open your .hx file, where you will load your assets (in my example, it’s Main.hx) and add the following code:

Assets.loadLibrary("graphics", onSwfLoaded); //we load our .swf file by its name "graphics"

After .swf file successfully loaded, we can start using our assets:

private function onSwfLoaded(lib:AssetLibrary):Void
{
	var bmpd:BitmapData = null;
	bmpd = Assets.getBitmapData("graphics:button"); //syntax is [SWF_FILE_NAME]:[ASSETS_CLASS_NAME]
 
	var bmp:Bitmap = new Bitmap(bmpd, PixelSnapping.AUTO);
	bmp.x = 200;
	bmp.y = 100;
	addChild(bmp);
}

The same should work for MovieClips and Sounds.
Worth mentioning, SWF Library doesn’t work for HTML5 target yet.

In order to embed font to you project, we need to do the following steps:
1. Put all the font files into the folder within our project, for example, “assets/fonts/“;
2. Add the following line to application.xml:

<assets path=”assets/fonts” rename=”fonts” />

3. Load and use our font:

var font:Font = Assets.getFont("fonts/arial.ttf"); //load font
var format:TextFormat = new TextFormat(font.fontName, 20, 0xffffff); //create new TextFormat with our font
var text:TextField = new TextField();
text.defaultTextFormat = format;
text.embedFonts = true; //make sure we use our loaded font
text.width = 500;
text.text = "That was easy!";
text.x = 300;
text.y = 400;
addChild(text);

If you build and run sample project, you will see the following result:
result

Sample project source code:
OpenFL_SWF_Font

Have fun! 🙂


Amazon Mobile Ads ANE updated

I have updated Amazon Mobile Ads ANE with the latest version.
It now supports caching and showing of interstitial ads.
In August and September Amazon will provide “a Guaranteed $6 CPM on Interstitial Ads”.
More details here: https://developer.amazon.com/public/apis/earn/mobile-ads

ANE, including source code, could be found on GitHub:
Amazon Mobile Ads ANE

Good luck!


Indie tools

Here is a small list of tools, I’m using in development and in everyday life.
Some of them are well-known, while others are less popular.
Hope, it will be useful to someone.

PuTTY“SSH and telnet client.”
I use it a lot, when I need remotely connect to my VPS.

WinSCP“free SFTP, SCP and FTP client for Windows.”

FlashDevelop“free and open source code editor for every developer.”
One of the best IDEs for developing Flash and OpenFL projects.
And I have recently became a FlashDevelop “sponsor” by donating $100+. Woo-hoo!

HeidiSQL“useful and reliable tool designed for web developers using the popular MySQL server, and Microsoft SQL databases.”
Still has some bugs, but free and works great.

Notepad++“free (as in “free speech” and also as in “free beer”) source code editor and Notepad replacement that supports several languages.”

ShoeBox“free Adobe Air based app for Windows and Mac OSX with game and ui related tools.”
My primary use is to create spritesheets for the games.

Window Movie Maker – yeah, well, simple, easy to use, and free. Just right for me to quickly create game videos/trailers.

Format Factorymultifunctional media converter.

FastStone Image Viewer – similar to ACDSee, but free (for home users, though)

Double Commander“cross platform open source file manager with two panels side by side. It is inspired by Total Commander and features some new ideas.”
And unlike TC, it’s free!

Audacity“free, open source, cross-platform software for recording and editing sounds.”

Inkscape“professional quality vector graphics software which runs on Windows, Mac OS X and Linux.”
Free!

GIMP“GIMP is the GNU Image Manipulation Program. It is a freely distributed piece of software for such tasks as photo retouching, image composition and image authoring.”
Here is a nice article on how to make GIMP even more usable. (it’s in Russian, though)

Trillian“modern instant messaging for home and work that prioritizes chat interoperability and security.”
In case, you want to join #haxe or #openfl channels on IRC.

KeePass“free open source password manager.”
Keeps securing my passwords since 2006! 🙂



DISCLAIMER: The content in this blog represents the opinion of the author. No information here should be used for any purpose except for entertainment.