This is a list of some of the personal projects I have worked on. They include some interesting tools and implementations. Additionally, you can take a look at my GitHub repositories.


PlaneSmith

C# | GDI+

PlaneSmith is a level editor for 2D games. It allows you to define the different elements that appear in your game and to design all of its levels and sections.

A typical PlaneSmith project consists of a single dictionary and multiple levels. Dictionary is a collection of definitions – these are the types of elements that appear in your game. A Level is compromised of Objects – each object knows its definition and presents an actual instance of it within a Level. While there is complete support for grid-based levels, you aren’t limited to grids and tiles and can place your objects freely at any 2D coordinates.

One of the main advantages of PlaneSmith is that it allows you to specify the format of the output of your levels. You are free to configure your output to be in the form of an XML or JSON, or a simple text file, or perhaps you want actual code that you’ll paste in your project.

Requires .NET framework to run.

Download PlaneSmith
GitHub repository


Stateorio

Unity Engine | C#

When I was working in Unity, I needed an implementation of Finite State Machines. Having browsed through the asset store, I saw that none of the existing solutions fitted my requirements. So, I decided to make my own FSMs and to share them with other Unity developers.

Stateorio is a tool for designing FSMs. It is very open ended and closely follows Unity’s component based philosophy. All states and state-transition conditions are components of their own, connected via a component representing the FSM as a whole.

The asset includes a demo scene as a stealth game prototype, letting you better understand how to use Stateorio in your own project. The code is nicely documented so you never feel lost in the implementation.

Finally, it is completely free of charge.

Unity Asset Store page


3D Terrain Model Based on GPS Data

Android Studio | C++ | R | Unity Engine

This was my Master’s degreeĀ graduation project. It is a system of different applications which serve to gather user’s GPS data and attempt to recreate the terrain as a 3D mesh. My goal was to research whether this was possible and how best to go about implementing it.

While the idea might seem simple, there were some complexities. First, GPS is not always very precise, especially when it comes to measuring elevation. Also, in practice it is often impossible to get a complete scan of a terrain. There will be holes, and I implemented algorithms to predict elevation at those areas and fill them out.

Overall, the system was successful and I am happy with how it turned out. Since it is mostly a proof of concept, there are ways it can be improved, but it is already usable.

Download paper (in Serbian)


Sokoban

C#

Sokoban is a Japanese video-game from 1982. It is a puzzle-game in which you try to push boxes into determined areas. The catch is that you can only push a single box at a time and you cannot pull them.

Since it is a logical game, I implemented a level solving algorithm. Not only is it capable of solving existing levels, you can also design your own and ask the program to solve them for you.

This was my high school graduation project. It was listed as one of the best graduation projects in my generation.

Download paper (in Serbian)