25. September 2016

Siriel 01 – Unity experiment

Long long time ago I wrote a game engine for arcade game with name Siriel. The main character was inspired by small plush toy which was small tomato with hat. The name originated from one English lesson at school where we learned the word Cereal. I liked the sound so I made phonetic transcription to Slovak language and the main character was born. The whole game was inspired by series of Dizzy games from Code Masters. for Didaktik M (compatible model with ZX Spectrum).

My vision was to create the game engine which people can use to create their own Dizzy-like games. The Siriel 1 for PC was written in Pascal and it has very simple graphics with resolution 320×200. That was the technological maximum that I was able to achieve on 486 machine. After learning some Pascal and playing with Assembler I was able to get far better graphics and I wrote Siriel 2. The second game had just one scenario and it took about 20 minutes to play it. The result was better, but I wanted something more.

I found some special Pascal and Assembler units which were able to create game in far better resolution 640×480. It was also necessary to add some memory management module which played with extended memory in DOS, so the whole application was able to use more than 512 KB RAM. That was the foundation for Siriel 3.5 engine. The version “3.5” was inspired by Dizzy 3.5. I wrote 3 datatiscs for the game engine. The problem was that I reached the technological limits of Pascal with Assembler. The game was running only in DOS.

During my studies at university I made several attempts to reboot the game engine project. The first one was based on Allegro and C++. Both technologies seemed promising, but I felt into problem known as “paralysis by analysis”. I had temptation to add all features at once to the new engine. The engine Siriel 4 was working even on Linux. I had feeling that something is wrong. It was very hard to add anything into growing engine. Sprite animation was cumbersome.

Then I found PyGame which has promise of using incredible powers of Python while keeping great performance of C++. I made attempt to wrote engine in Python. The result was quite ok, but creating packages for different platforms was hard.

I put the idea with Siriel on back burner for several years. I was fascinated by Flex technology introduced by Adobe and it seems that it might be even right combination to build the game in it. I used Flixel and you can play one of attempts as small game PF 2010.

Unfortunately even this was blind path. Adobe discontinued all activities with Flex in favor to HTML5. It took about 6 years to web technologies to reach the similar state. Sure HTML5 is now much more flexible than Flex was before.

I was trying to implement games using jQuery, Angular, KiwiJS. Games were working. The technology was quite ok. But stuff like animation required a lot of effort.

Recently I decided to experiment with Unity 5. I was surprised how mature the technology is. In very short time I was able to import assets from the game that I wrote nearly 20 years ago and in few minutes get animation running. What was even more surprising for me was that Unity was able to produce packages for Windows, Linux, Mac, Android, iOS and WebGL.

Here is the result of the first experiment :) There is just simple keyboard control. The main character is able to make at least some funny jumps.