Fork me on GitHub

2015 Shakedown

written on December 31, 2015

Another year passed and I didn't honor my promise about posting more on this blog.

Next year, I will try to post at least once every month and I feel like there will be plenty of things to talk about :)

Before we proceed any further, one of the first (NY) changes you'll notice, is that this blog has been moved over to mihail.co. It's just a better and less confusing domain with an easily pronounceable name. Everybody heard about Mihail Gorbachev after all.

If you are subscribed to the blog via RSS, the old "feed" should continue to work as expected and should require no changes, but those of you adventurous souls can subscribe to the new RSS.

On a totally different note, I did release quite a few interesting projects this year, but as always, not nearly enough to satisfy my ever growing hunger.

Without any further ado, down below, you can read about what kept my gray cells busy during the year.

Fz2D

Fz2D is a 2D game engine and framework I released last year.

This year it received quite a few updates and got to version 0.0.2, which means that it's still alpha but at the same time it reached a certain level of maturity, so to speak.

Deermas, Bricks of Babel and Snakr are all powered by Fz2D.

Deermas, for instance, was thrown together in one and a half days. Obviously I did not create the actual sprites and music, got them from opengameart.org, but still, it felt quite nice, just be able to fit the parts together and get a basic game up and running in practically no time at all.

The API is still not set in stone, but all in all it's quite consistent and doesn't try to do more than it is absolutely necessary.

Feel free to take a peek at the documentation available over here.

Deermas

A mini adventure game for Maral.

You can find out more about it over here. If you just want to play it, you can do so by clicking here.

Bricks of Babel

Bricks of Babel is a physics based tower building game. Initially built for Ludum Dare.

You can find out more about it over here. If you just want to play it, you can do so by clicking here.

3

Minimalist Breakout clone.

If you want to play it, you can do so by clicking here.

Simon8

Simon8 is a Chip 8 disassembler and emulator written in C.

This is something that I wanted to do for so long, but never really took the time to do it. Here it is, full blown suite of tools composed of a disassembler and an emulator for the Chip 8.

The tools follow the *nix principles and support pipes, as well as file arguments.

build/disasm roms/MAZE
cat roms/MAZE | build/disasm
0x200: LD    I, 0x21E
0x202: RND  V2, 0x01
0x204: SE   V2, 0x01
0x206: LD    I, 0x21A
0x208: DRW  V0, V1, 0x04
0x20A: ADD  V0, 0x04
0x20C: SE   V0, 0x40
0x20E: JP   0x200
0x210: LD   V0, 0x00
0x212: ADD  V1, 0x04
0x214: SE   V1, 0x20
0x216: JP   0x200
0x218: JP   0x218
0x21A: LD   V0, V4
0x21C: CALL 0x010
0x21E: CALL 0x040
0x220: LD   V0, V1

You can find out more about it over here.

Snakr

Snakr is a "Snake clone" with a twist. Initially built for Ludum Dare.

You can find out more about it over here. If you just want to play it, you can do so by clicking here.

ZeeCraft

ZeeCraft is a mini Minecraft clone in 588 lines of C.

This was one of those "because I can" projects more than anything else and indeed managed to do it in mere 588 lines.

Tech Details

The actual world size is 16x16x16 units (cubes) and there's no frustum culling, meaning that the whole world is drawn each time, but at this scale it really doesn't matter. It does have back-face culling though.

The various block types are compiled display lists.

To keep the amount of code within limits, it requires OpenGL 1.4 and relies on fixed function pipeline only.

SDL is used for window management and input handling.

As an added bonus, the world is automatically persisted and loaded between runs.

You can find out more about it over here.

Floppy Bird

Floppy Bird is one of my most popular projects and this year it got a minor update.

It is now possible to compile it into a DOS compatible .COM executable, which then can run in any DOS like environment.

You can find out more about it over here.

2dimagefilter

I forked 2dimagefilter and removed all exotic GUI crap, basically everything that wasn't implemented by Mono.

The command line interface is now usable on any platform where Mono is supported.

ImageResizer /load in.png /resize auto "XBR 4x(2,thresholds=0,vbounds=wrap)" /save out.png

You can find out more about it over here.

fastopen.vim

fastopen.vim is a quick "file opener" using "dmenu". It is my very first Vim plugin.

You can find out more about it over here.

Nexeh

Around a year ago, I had the idea of building an old-school first person shooter from scratch. Instead of jumping all in, I decided to build a tech-demo / prototype first, release it, iterate on it, and then potentially, use the same tech and create the full blown game I had in mind.

This is where Nexeh comes into play. Initially, I wanted to build it exclusively while streaming on Twitch which sort of didn't work out, but I do want rectify that next year and stream some game development more often.

This also gave me the chance to finally sit down and play around with emcripten, as you can see it in the screenshot above.

I ended up creating a nice custom shell which looks pretty decent, I have to say.

What do I mean, when I say old school first person shooter? Well, first of all the "world" is made of true 3D geomery, but everything else consists of 2D sprites, or billboards if you will and they always face in the player's view direction.

In addition to all this, you get attacked and potentially can get yourself killed within the first minute of the game. No hand holding, no regenerating health or manna.

Obviously, there's more to it than what I just said above, but I'll try to talk about specifics next year. Everything I described here should give you a sneak peek into what's about to come.

One thing that I really want to make clear, the art direction isn't going to be pixel artsy or cartoony. At any rate, it's too early to talk about specifics regarding this matter, but I just wanted to get that out there into the wilderness.

Also, for obvious reasons, Nexeh is going to have nothing in common in terms of story or setting (locations, characters, etc.), with the actual final game I wanna build. I choose to do this, in order to avoid false expectations and confusion.

My hopes are to procrastinate less and actually have something playable, sometime in Q1 of next year. Please keep in mind, this is a project that I work on in my spare time, it is not my full time job (ATM), therefore, a great many factors will influence the amount of progress that I can achieve.

Once there's something playable, I'll reach out to some of my artsy friends and we'll figure out the actual art direction, plus the general look and feel.

In the long term, the tech that I build for Nexeh is going to be extracted and then turned into a standalone general purpose "open source" game and engine framework, called Nixel, but more about that another time.

RU FLAG

In the wake up all the madness that went down this year, I put together this little page where one can drag a photo and the photo will get the colors of the Russian flag applied to it.

This is similar to the feature that exists within the realms of Facebook.

You can find out more about it over here. If you just want to play it, you can do so by clicking here.

RU

I also started learning the Russian Alphabet more seriously, but I still find it absolutely mind wrecking and therefore I did not make as much progress with it as I would have liked to.

p = r, c = s, .... gaaah, my gray cells are confused!

End

Well, pretty much that's it for this year. Tried to cover everything, important.

I am not really a new years resolutions kind of person and therefore I do not have a list, however, here are some things that I'd like to do, given that everything goes right in the coming year, without being complete, by any stretch of the imagination.

Until next time, as server said, END OF LINE.