This page showcases some projects, that I have completed and that I thought would be worth mentioning. Click on an project to get more informations.
FGE (2020)
FGE is a game engine that I develop. The goal is to create a general-purpose 3D game engine that can be used for all types of games and Real-Time 3D applications (similar to UnrealEngine, CryEngine, or Unity).
The engine is written in C++17 and OpenGL is used for 3D rendering. I implemented various features:
A scene can be organized with Actors and Components. The approach is similar to the approach of UnrealEngine.
Read more ...
SplitBills (2019)
SplitBills is an Android app, which lets you split and organize your expenses with friends. Expenses can be organized into groups. A unique feature of SplitBills is that it works offline. Expenses can be synced over devices via XML files. Another advantage of this approach is that no central server is needed. The app can be found on GooglePlay and F-Droid. Below are some screenshots from the app:
With the project, I gained a deeper understanding of the Java and Android ecosystem.
Read more ...
MBDA Working Student (2019)
In 2019 I worked at MBDA Systems in Germany as a working student. During this job, I worked in a small team on a Software-Agent-System. My job was to develop a system that enables non-programmers to configure scenes and agents. I implemented an XML based solution for that. The Software-Agent-System was programmed in C++. In addition to that, I planned and implemented a graphical interface for the Software-Agent-System, that showed how the agents interact with each other.
Read more ...
Splitbills Server (2019)
I develop a server for my SplitBills app. With this server, it will be possible that users can sync their expenses with friends online. The server is written in Python with the Flask web framework. It consists of an REST api.
On this project, I learned a lot about web development:
How RESTful services work and how to implement one with the Flask framework. Unit and functional testing with pytest Continuous integration with GitHub Actions.
Read more ...
Breakthrough (2020)
This is a version of the famous arcade game Breakout. The graphical part of the game was implemented with OpenGL. The game also features audio that was implemented with the help of OpenAL. The game was created with the help of a tutorial. However, I used a different architecture for my implementation. Another difference is that I used OpenAL instead of IrrKlang for audio.
Highlights of the implementation are:
2D Sprite Renderer Particle System Post-Processing effects Collision Detection Audio Text Rendering Below are some screenshots from the game:
Read more ...
Tiger-Compiler (2017)
Tiger-Compiler is a compiler that translates the functional programming language Tiger into x86 assembler. The Tiger language features functions, nested functions, record values, implicit pointers, integers and string variables, and a few simple structured control constructs. I programmed the compiler with the help of the book “Modern Compiler Implementation in C”. However, the author does just give source code snippets and never the full code.
This is a small sample program written in the Tiger language that prints the numbers from 1 to 10:
Read more ...
Tedit (2017)
Tedit is a text-editor for the terminal. The editor is written in C++. The only third-party library that is used is ncurses. ncurses is needed for writing to the terminal in a platform-independent way.
The source code with compile instructions, can be found on Github.
Read more ...
Calculator (2016)
Calculator is a simple command-line calculator. I have programmed the calculator to better understand how parsers work. The program is written in C and without any third-party libraries.
It can handle the following operations:
Pi Pi number e Euler’s number sqrt() Square root cos() Cosine sin() Sine tan() Tangent lg() Decimal logarithm ln() Natural logarithm () Brackets || Absolute value ! Factorial Unary minus ^ Exponent % Modulus divide *, / Multiply, Divide +, - Add, Subtract The source code and build instructions can be found on GitHub.
Read more ...
mutt-mode (2019)
I created a major mode for the email client Mutt for my favorite text editor Emacs. Emacs can be extended with the Lisp dialect Emacs-Lisp.
The mode does syntax highlighting for the configuration files of Mutt.
The mode was released to Melpa. The source code can be found on GitLab.
Read more ...