Magic ForgeBrick BreakerZenZagMinesweeperCard War

Magic Forge

TECHNOLOGY: Unity 3D: C#
DESCRIPTION: I have created this project based on new techniques, mainly blend shapes, that I have learnt in Animation Course for Unity. I wanted to create a mini-game which would be my original idea and design, and to create a project from scratch and to finish it (even if “finish” means just a working prototype).

Brick Breaker

TECHNOLOGY: C# IDE: Unity 3D
DESCRIPTION: My first real game, an arkanoid-style game. I had lot of fun making this one and learned tons of things. It's full of animations, particle effects and has nasty boss at the end. But I hope that it's mainly fun to play. For me it is :) It is available on Google play, or you can play it online in your browser.

ZenZag

TECHNOLOGY: C# + Unity 3D
DESCRIPTION: Originally, this was a project from the course Unity 3D for Android. I thought it was pretty simple in the course, so I made some upgrades and refactored code, because the original code did not felt good. It was just 2-weeks-along-the-course project, but it was fun to step into 3D realm and Android specifics. Also, it was a good feeling to see something I created (because in the end there was not much left from the original course code) on my mobile phone.

Minesweeper

TECHNOLOGY: C++ IDE: C++ Builder 6.0
DESCRIPTION: My version of Minesweeper game. It has all functions and functionality of the classic Windows Minesweeper game, with some additions.

If you know this game:

1) Maybe you have experienced moments when it is simply impossible to know where a mine is. For such cases I added to my version "1 of 2" function where you mark 2 squares and if there is 1 bomb in those 2 squares, the right one is marked and other one showed. The cost is a small time penalty.

2) "Bet" function: you can bet on 1 field which is surrounded by unexplored fields and at the end of the game those fields are evaluated. If there was a bomb, you receive a time bonus. If there wasn’t, you get a time penalty.

What I'm proud of about this project: Mainly bringing this project to its successful end. It‘s fun to play and it removes the frustration from discovering the whole field and then being blown up on last 2 squares :P. Coding-wise I'm proud of creating a working model which is very flexible and solid. Inner system of handling playing field allows you to edit custom "maps" to save and load them. I'm also proud of bomb filling algorithm. I'm not a mathematical genius, therefore it was a challenge to create an algorithm which fills a custom sized field with a custom number of bombs in a random manner.

Known bugs: I did my best in optimization, but when the custom field is set to too big, the game crashes (f.ex. 50x50 field with 300 bombs in it). It‘s a bug on the graphics side, when the app times out during field creation phase and crashes.

Card War

TECHNOLOGY: C# .NET IDE: Visual Studio
DESCRIPTION: This project started as a challenge in basic C# coding and ended up as my most complex and most OOP project so far. The card game called "war" is very simple. Basically, the players have zero chance to influence the outcome of the game (except for cheating of course). So this game is fully automated and ends either when one player has all cards on his/her stack, or after a set number of rounds.

What I'm proud of: classes designed for this app are not tailored only for this game, but for any card game and they offer many ways to deal with cards and card deck designs. Each Deck contains List of card classes and those cards are individual objects which just change deck and position. That means, with classes used in this app it is possible to easily set any kind of card game, The user of those classes just needs to program the game logic. The movement of cards and the visual interpretation of cards in general are handled by classes (Card Deck and Card). Class Card itself is descendant of Item class (of my design), which handles this visual interpretation and movement, offers rotation and allows more ways to manage moving objects.

What could be done better: speed and rendering of cards and movement. This is something I want to look into soon. Fortunately, classes used here take into account various ways of manifesting images, so it's easy to change the rendering to a different way.