My name is Kirill Poletaev and here are some things I made:

Hypnorain - a bullet hell vertical shooter game, available on Steam.
Haxecoder - Haxe programming tutorials. Learn to create cross-platform games and apps.


Follow @kircode on Twitter.

Contact me.


To start off, I wrote and published a new Haxe tutorial this week on Haxecoder - Fast 2D rendering using Tilemap in OpenFL 4. Haxecoder is my website where I author Haxe tutorials, specifically related to game development.

The updates in Speebot this week include new menu sounds and special UI effects. The buttons now gloss and fade and generally have a more polished feel. The logo in the main menu is animated as well.

Another important addition is the key remapping feature. Players can now bind different keys to actions in case they don't feel comfortable with the default settings.

All of this can be seen in this week's development video:

You can check out all the development videos of Speebot by viewing the full playlist on YouTube.

My Yume engine uses a custom model and animation file format, which I also improved this week. The details are too technical to be interesting, but Speebot now dances when he reaches the end of the level.
231 views | 0 comments | permalink | rss | tweet | fb | g+
This week I've been improving the new sound engine in Speebot, as well as synthesizing some sounds for the game. All the sounds are created using SunVox, which is also the tool that I used for composing music for Hypnorain.

I've also made a level progression system, which lets me define a sequence of levels to play. From now on when the player completes a stage, he is taken to the next one in the sequence.

Also got around to creating a main menu (right now the background of it is just water, but that's temporary) and a transition system that handles all transitioning animations when the player moves from state to state (such as from main menu to the game screen).

I've also worked on some actual levels this week. Check it all out in this video:

If you'd like to see more, you can check out all the development videos of Speebot by viewing the full playlist on YouTube.
560 views | 0 comments | permalink | rss | tweet | fb | g+
This week I've been working on four things: props for the game, updated entity models, improved texture rendering, and a 3D sound system.

The props system was in place for a few weeks now, and it's about time I started adding some actual assets into the game.

Some of the new props in the game. This map is not an actual level!
Some of the new props in the game. This map is not an actual level!

These props are static objects that are part of the map, and while they can't be animated, they can be collided with. This way, for example, I can jump on crates and fences.

Props are different from entities that can be interacted with, such as jumping platforms and collectibles, which I've also updated this week. Instead of the collectible coin there's now a spinning crystal, and the appearance of vertical and horizontal boost platforms has been redone too. Instead of a finish flag there's now a platform with a spinning checkerboard pattern. The general look of the game is gradually moving towards what I have in mind, but the details on the setting and storyline are yet to be revealed!

I've improved the rendering of the textures and have given the player an additional option in the settings menu to change the texture smoothing. Currently supported smoothing techniques are Nearest, Bilinear and Trilinear. Combined with Anisotropic filtering this heavily reduces the amount of visual artifacts and flickering.

The engine supports anti aliasing (FxAA) which can be toggled in the options menu, but personally - I prefer the aliased look. I'm thinking about adding another different anti aliasing technique.

And last but not least - the engine now supports 3D (and 2D) sounds! This is my first time working with OpenAL, and although I'm not a reliable source on how a 3D audio system is supposed to sound like - I think it's pretty good.

The sound system is fairly basic right now, but perhaps that's all I need for this game.

As always, you can check out all the development videos of Speebot by viewing the full playlist on YouTube.
851 views | 1 comments | permalink | rss | tweet | fb | g+
Right off the bat - I've (pretty much) decided on the name of the 3d platformer game I'm working on.

Speebot logo, possibly not the final version.
Speebot logo, possibly not the final version.

The name Speebot is a portmanteau of the words "speed" and "bot", and is so far my favorite name out of all that have been suggested. This is now also the name of the main character of the game.

Last week I've been working mainly on one big feature of the game - water. Instead of falling into a boring abyss, the player can now dive into a big blue ocean (and drown in it).

The engine required a handful of improvements before this could be implemented. The renderer now supports reflections, distortions and distance clipping. This resulted in a quite pretty reflective water surface:

You can find all the development videos in this playlist.

This effect comes at a slight performance hit, which should not really be a problem - the game still runs at a stable 250 FPS for me (slight dips when I turn on the screen recorder), but I added an option to switch reflections on and off in the graphics menu, just in case.

There is another new setting, which lets the player control the particle count in the game. This option was added after implementing the water splash effect, which uses approximately 150 particles at a time. This also was never a problem for me, but the option is there to significantly reduce the particle count in all effects, in the case that some computers can't handle it well.

That is all for now. There is still a lot of work ahead, but so far I'm happy with how the game is turning out. The next things on the agenda are new props, tiles and gameplay elements.

What do you think of the name Speebot? Tell me in the comments.
1172 views | 2 comments | permalink | rss | tweet | fb | g+
Making steady progress on my 3d game engine, which is codenamed Yume (夢, meaning "dream" in Japanese).

Among minor technical fixes there are a few major additions, including Gamepad support.

Thanks to Lime, I can easily read input from any DirectInput or XInput device. I did something similar for Hypnorain and some players reported that the game works fine even with these things, which I've never even seen in real life.

The only problem I had with gamepad input is that controllers' analog sticks loosen up over time, and some degrade faster than others. This leads to what is known as "stick drifting", when the game controller sends input even when nothing is touched.

I fixed this in Hypnorain by adding a slider for adjusting deadzone, and implemented the same thing in Yume engine's options menu.

The video below demonstrates how the control mode can be switched from keyboard to gamepad, the deadzone of the analog sticks adjusted, and the player moved using the controller.

I've made the menu system a while ago, but until now the settings were lost after closing the game window. This week I've implemented actual saving of the settings into a local file.

In the process, to make things easier for myself, I used Metadata identifiers - a Haxe feature that I've never used before, but can be somewhat comparable to annotations in Java. I marked some fields in my Settings class with appropriate metadata to determine which fields will be serialized from and into the save file.

And finally, I made some new graphics and added trails to enemies and moving platforms.

More things have particles now. Yay, particles.
More things have particles now. Yay, particles.

The next thing on the ToDo list is adding new enemies, props and gameplay features.

You can find all the development videos of the game in this playlist.
1440 views | 0 comments | permalink | rss | tweet | fb | g+
All posts »