Archive for the ‘Code’ Category


Klattersynth TTS for Unity

Introducing Klattersynth TTS for Unity, now available in the Unity Asset Store.

It’s a really small and fully embedded speech synthesizer (a text-to-speech engine).

In contrast to some other speech assets, it does not need a network connection for generating speech using a 3rd party website, and it also does not use the speech synthesizer embedded in the Operating System (which differs based on what OS and what OS version you’re using).

Instead it’s fully embedded and runs probably on all platforms targeted by the Unity engine. It can generate and stream the speech real-time or it can pre-generate & cache clips and play them later. The audio clips are also played using a normal Unity AudioSource component, so they’ll also work with the 3D spatialization and reverb zones. Klattersynth TTS is contained in a ~100 KB “cross-platform” DLL file for Unity, which zip-compresses down to less than 30 KB!

You can try a WebGL demo build yourself in Klattersynth TTS website, or view showcase videos in YouTube.



frutos do mar

About 9 months after the release, I finally took a bit of time to add a page about this demo and also write a little bit about it. Frutos do mar was a demo for the Assembly 2014 demo competition.

Read more from its own page.

Or just watch it in YouTube if you’re not interested in details about it.


Internet Reachability Verifier for Unity

Introducing my third little thing for the Unity Asset Store:

Internet Reachability Verifier for Unity

It’s a simple thing, but there wasn’t other assets available doing exactly this. Since I needed to build something like this, I figured out I’ll polish it a bit and put to asset store as well.

So what does it do, since Unity API already has Application.internetReachability?

The Application.internetReachability has a bit misleading name – it actually tells if it is technically possible for you to try to use the network. So, on a desktop machine it will always tell you that you can. On a mobile device it’s nice for checking if you’re really offline, or if you can try to make a connection (and if it is going to use WiFi or carrier data).

However, with mobile devices, quite often you need to go through a login web page before the internet truly works. In such wireless network, any WWW request will actually give you the login page instead of the data you actually wanted. This is the situation why you want to use Internet Reachability Verifier – read more details from its own web page.

Here are also some other assets to check out:


Pixel-Perfect Text with Dynamic Fonts for Unity

Here’s my second addition to the Unity Asset Store:

Pixel-Perfect Dynamic Text for Unity

Here’s a “TL;DR” description of what’s it all about:
Pixel-perfect Dynamic Fonts for Unity! Dynamic Text is a component for displaying pixel-perfect camera-facing text. Size & position are defined in world units. Sharp like built-in GUIText, but part of the scene like TextMesh.

The Pixel-Perfect Dynamic Text page linked above has lots more info which I’m not going to repeat all here. But, shortly said, the page describes some common issues when working with text, and how the Pixel-Perfect Dynamic Text asset helps to solve them. There’s also a long list of features to convince you why it’s good. However, also the few trade-offs and caveats are listed. And, there’s a bunch of questions and answers listed and the version history.

But, don’t forget to check out the interactive demo (Unity Webplayer plugin needed), or a YouTube video of the demo. If you run the web player demo, remember to try changing the size of that browser window, so you see how the Pixel-Perfect Dynamic Text adapts to the new resolution.

There’s also a “Lorem Ipsum”-demo version, which lets you try the asset freely inside Unity. But it generates the text mesh using characters from the well known text instead of your string.

Here are also some other assets to check out:


Google Universal Analytics for Unity

Here’s my first addition to the Unity Asset Store:

Google Universal Analytics for Unity.

This is an unofficial helper for using the Google’s Universal Analytics. A new way to integrate state-of-the-art realtime analytics on any platform – as long as it is capable of standard http requests.



Old stuff to start with One Game A Month – IOCCC19 Billiards

IOCCC19 Billiards
A failed attempt at taking part in 19th IOCCC.

There’s a new “One Game A Month” project which has just started at January, with aim for developers to make game each month for a year (or more). Although it’s February already, there’s still time to start and submit for January as well, the first month being a special case where you can submit late entries.

I didn’t do anything new for the January and thought about skipping that month already, but then I decided I could just add some older thing for the January entry, and here it is…



22nd Ludum Dare contest was held late last year. Now that it’s going to be held 23rd time next weekend, I thought maybe it’s finally time to add a page and posting about my entry to the last one!

So, for the #22 theme was “Alone”, weirdly somewhat close to theme used for 20th LD48. I made a wannabe-artsy-moody game called LIFELONE which tries to convey feelings of loneliness. Or something. Check it out.



Back in October, we wanted to attend the forthcoming Alternative Party event. I think one could say it is a demoscene event, but with a broader or different scope or goals – for example, encouraging or embracing artistic expression with niche platforms (either niche by being rare, or niche by being so old).

So, we thought about taking part in the alternative demo competition. The platform is mostly free choice there, but the compo name itself directs you to think about something different. I thought that maybe it could be interesting to make a demo which would consist of only a single static line with changing colors, and try to take most of that limitation. That is, to make a “1-Dimensional Demo” (at least by my definition).


Better looking anti-aliased lines with simple trick

Here’s some notes about anti-aliased lines.
For these tests of rendering anti-aliased lines my goals were roughly as follows:

  • relatively high-quality anti-aliased lines (better than subsampling or postprocessing)
  • simple low-tech solution extendable to wide range of platforms (e.g. not relying on availability of shaders)
  • visually better consistency than what you get if you just ask graphics API to anti-alias lines for you, and you might not even get any if the hardware is lacking
  • try to solve issue of anti-aliased lines showing a “roping” effect
  • concentrate on case of single lines without yet going to additional complexities such as line caps or joins between multiple lines



LD20: Guinea Pig Warrior

20th Ludum Dare contest was held a few weeks ago. The given theme was “It’s Dangerous to go Alone! Take this!”. I created a little platformer where the player character has a temporal projection sidekick. Check out Guinea Pig Warrior.

3rd party advertisement:
(not chosen by me, picked by Google for you)