Coresolution

CoresolutionCoresolution is an ASP.NET MVC web application for travel & expenses and time & attendances (ERP system) which I developed in a team of four during my studies and thereafter at Coredat Business Solutions. It was planned and developed by my colleagues and me from scratch using the MVC pattern and the server side programming language C#. On client side it is built on HTML, Javascript and the DHTMLX UI library. The database server is a MS SQL Server and therefore we used Entity Framework as an OR-Mapper. With the help of this comprehensive application it is possible to enter your travels and vouchers and the per diems are calculated automatically. Further it is possible to manage your working times and absence requests with an individual configurable approval workflow.

Vegetation Rendering

Vegetation RenderingThis is my master thesis and therefore it was the last step to reach my degree as a Master of Science in Engineering. In the paper I showed how to use DirectX 10 and 11 techniques for rendering vegetation. Primary I used the capabilities of the Geometry Shader (DX10) and Tessellation (DX11). Because it has to be guaranteed that games work in real-time, even in big environments with a wide view, the thesis also dealt with optimization methods, such as different levels of detail and culling techniques. I always tried to give a reference to out-of-core problems which are caused by big scenes not fitting into main memory. For this problem structures for efficient data management and algorithms for loading data out of external memory exist.

The application was written in C++ and the source code can be found on GitHub. The master thesis can also be downloaded in German.

Lucky Leprechauns

Lucky LeprechaunsLucky Leprechauns is the result of a two person project during my studies. One semester we created a game design and the second we developed the game from scratch. It is a network multiplayer action game with tactical elements, where the players are able to control a Leprechaun. It takes place in a magic world with huge living mushrooms and a gold pot at the end of a rainbow. The Leprechauns are meant for fighting against each other with three different attacks and the help of various items, which can be found all across the world. The goal is to reach the gold pot to win the game.

The client is divided into the self-made game engine and the game itself. It is written in C++ with DirectX 9, for the GUI the libRocket framework was used and the 3d models were imported with the FBXSDK. For model design and animation Maya was used. The server was developed with C# and XNA and was responsible for collision detection and the communication between the clients. The source code can be found on GitHub.

Shader Programming Part 2

Shader Programming Part 2This project is another graphics demo for shaders and can be seen as an extension to the first one. I used the same scene again, but developed other shaders and new techniques. It is possible to activate various effects to compare the results. Two features are normal mapping and displacement mapping, where you can observe the second one as more realistic. Shadow mapping was also included again, but this time I extended it by using a 3×3 PCF map and a blur function to have soft shadows. A rotating light source can be activated to have a more impressive effect of the shadows. Another new feature is the implementation of a particle system. To activate it, a raycast is done by pressing a key and then an eventual hit point on an object will be determined. At this point the particle system will be casted, which is visualized as an explosion, like it can be seen in the picture.

This graphic demo was developed with C# and XNA. The source code can be found on GitHub.

Pac-Man

Pac-ManOne of the classic games was simply redeveloped with the familiar mechanics: The player controls the yellow figure called Pac-Man and the four ghosts (Shadow, Speedy, Bashful and Pokey) are the enemies. The goal is to collect all yellow points on the map without running into one of the ghosts. The focus here was to implement the behavior of the ghosts and as an extension an artificial intelligence for Pac-Man was also built in. Therefore it is possible to switch between a manual control and the automatic game play. Each of the ghosts has another strategy to catch Pac-Man, which is related to their names.

The game was developed with C++ and the game SDK ClanLib. The source code can be found on GitHub.

Breakout

BreakoutThis project was part of the Game Engine Design classes, where I was confronted with several Game Engines like the CryEngine. But this classic Breakout game was developed with Unity3D and C#. The exercise was to create the game in 3D with three levels. The goal is to destroy all rectangular blocks in a level by directing the bouncing ball onto them. The player controls the panel on the bottom by moving the mouse left or right. When the ball passes by the panel and goes out of the screen on the bottom, then the player looses one life and the ball is reset again.

KD Tree

KD TreeThe KD Tree belongs to the topic algorithms and data structures. In this demo it is used to split the graphic scene into several parts and the objects, visualized as colored cubes, are stored in the leaves of the tree. With the help of this data structure it is possible to solve the nearest pair problem, which might be useful to find the nearest enemy or player in a computer game. But in the sample application here, the KD-Tree serves for something else, namely for collision detection. By pressing the Enter-Key it is possible to cast a ray (red) and then the nodes of the tree are searched for intersections. Finally only the objects in the leave nodes with intersections have to be checked for collisions with the ray. The hidden triangles are rendered in black. The same principle can be used for determining the visibility of objects.

The demo was developed with C# and XNA. The source code can be found on GitHub.

A* Search

A* SearchThis application shows, how to find the optimal path from one point to another with the help of the A* search. In doing so, the type of territory and the enemies moving on a two dimensional map are taken into consideration by calculating way costs for each field. On the picture you find the white point as start and the violet point as the target position. The big red points are visualizing enemies with their range as small red points. The hexagonal fields of the mapped are colored, for showing different types of territory: light green = grass, dark green = wood, blue = water and brown = mountain. Finally the orange points show the best possible solution for reaching the target and avoiding enemies.

It was developed with C++ and the game SDK ClanLib. The source code can be found on GitHub.

Four Connected

Four ConnectedThe classic four connected game: the player (red color) and a computer controlled enemy (white color) throw alternately tokens into the different columns of the game. The first one with four tokens in a row (vertical, horizontal or diagonal) wins the game. The difficulty here was to build an artificial intelligence combining three techniques: Negamax search, Alpha-beta pruning and a heuristic evaluation.

Four Connected was developed with C++ and the game SDK ClanLib. The source code can be found on GitHub.

Shader Programming

Shadow MappingThe second bachelor thesis showed the advantages and use cases for Shader programs. In the first part the reader gets the definition of a Shader, how it operates on hardware level and what different types exist. Later the thesis tells about the history and how the shading language evolved. For giving an introduction how to implement one, there is a presentation of the various languages and what IDEs can be used for developing and debugging. For the main part of the paper, I developed several interesting effects myself, to show how Shaders can be used and how they are applied in the industry. In the picture here, there is an example for the shadow mapping technique, where the Shader is used to determine whether a pixel lies in shadow or not.

The Shader samples were developed with C#, XNA and HLSL. The bachelor thesis can be downloaded in German.

Tower Defense

Tower DefenseThis is a classic 2D tower defense game and was created by a study colleague and me at the end of my bachelor studies. There are several waves with various enemies running over the map on a static given path. With the help of financial resources the player is able to buy towers of different types and place them on strategic positions next to the enemy path. The towers are shooting at the enemies and have to prevent them reaching the other end of the map, otherwise the player looses one life. Therefore the goal is to survive all enemy waves to win the game.

This game was developed with the programming language C++ and the game SDK ClanLib. The source code can be found on GitHub.

FIFA

My first bachelor thesis had to deal with a famous video game, which we were allowed to choose. I decided to examine the FIFA soccer series developed by Electronic Arts because I really like the game and also soccer as a sport. I analyzed and described the technical progress of the game series always referring to the main attributes Gameplay, graphics and sound. The thesis also told the history of the manufacturer and I compared it to other famous soccer game titles.

The bachelor thesis can be downloaded in German.