Projects
Over the years, I have been and still am working on a multitude of programming related projects, from scripts, to applications, to websites. I love to create or facilitate things in any context. Not rarely that context is a gaming related one. I want to introduce you to some of my work here. Please note that this only a small glimpse into everything I have done since programming is pretty much a daily part of my life where I constantly solve problems or realize solutions in a way that gives me joy and/or allows me to learn new things.
Technologies
Before I go into some examples, let me list a selection of the programming languages I am familiar with and have worked with in the past.
Programming Languages
C, C++, C++/CLI, C#, CSS, HTML, Lua, Java, JavaScript, Python, Ruby, SQL, TypeScript
My personal favorites are underlined. This means I have a preference to choose them when starting a project of my own because they are particularly fun to work with. However, I consider myself very flexible and open to learn new things, so the above list should not be seen as a fixed pool. I sometimes like to say “if you know one programming language, you know them all”. I am aware that this is an exaggeration and the particular quirks and specialties of different languages are also an important thing to pick up with experience. Nevertheless, I strongly believe that programming is not about a particular language but rather about a general mindset and approach to solving problems. When somebody has mastered this kind of thinking, picking up any language is just a secondary step on the way. There may also be more languages that I did not think of specifically or consider not worth to include in a list, like dabbling with BASIC as a kid.
Here is also a small selection of technologies and frameworks.
Technologies and Frameworks
CMake, Git, Linux Servers, .NET, NodeJS/NPM, Ruby on Rails, Unreal Engine, Spreadsheets (Excel and Google), SQL Databases (MySQL/Maria/Postgres/Oracle/SQLite), Subversion, Svelte / SvelteKit, Tailwind, Qt, Visual Studio and VS Code
The same disclaimer as for programming languages applies. I consider all of these tools as part of the bigger picture and I will practically use whatever I think will help me achieve a result in a way that seems all fitting for the context, fun, a good choice, and the right mix between effort and gain.
World of Warcraft
Since around 2016, I have been diving deep into the Theorycrafting scene for the Rogue class in World of Warcraft. Understanding how simulations work to model combat situations and analyze “optimal” gameplay and gearing strategies has been a fascination and I started to create or contribute to a number of projects. I have been a part of the Ravenholdt community ever since and often represented the following projects - including on some livestreams and podcasts like the one during the Shadowlands Beta with Slootbag which had around 4000 concurrent live viewers.
ShadowCraft
At first, I joined the ShadowCraft team. While discontinued by now, ShadowCraft was a webapp for the Rogue class that used formulations (in Python) to calculate approximate damage numbers and build gear scores for items. Due to the advanced complexity of the game compared to its early years, the formulation approach has proven too inaccurate though.
SimulationCraft
Simulations have a lot of advantages and better predictions over formulations, so I then joined the team for SimulationCraft. For SimC, I have been working mostly on the C++ Rogue class module (as well as some occasional generic/core work or maintenance) to make sure the class has always proper implementations and up-to-date support. I have been on the forefront of alpha and beta testing multiple WoW expansions, analysing game mechanics, and understanding spell data - all to make sure I can implement it to the best of my abilities in the simulator.
HeroDamage
Alongside SimC, I have been learning a lot and used my skills in other areas as well. Early on, I started writing my own scripts (in Ruby) to automate some simulations that I do regularly and share with the community to give everyone a better idea on what kind of builds look strong. Based on these scripts, I became a co-founder of the HeroDamage website, which displays a lot of simulated results in tables and charts for all classes in World of Warcraft. While a friend handled the management and modern frontend aspects, I focused on my simulation scripts and data generation.
Noteworthy mention: For April Fool’s 2020, I created a special thing for HeroDamage: an actual game in the Unreal Engine. I always had an interest in game design with all of its aspects, so I wanted to have some fun and see if I can make a little adventure-like game with 2D graphics. Aside from some free artwork that I took, I did all of the work myself: programming and scripting in UE4, animations, writing, and the soundtrack. The game is still available here - or you can watch my playthrough with developer commentary on YouTube here.
Guide Writing for Wowhead
From 2018 to 2021, I was also the official guide writer for all three specializations of the Rogue class for the well-known fansite Wowhead. Since all my work around Theorycrafting gave me a decent amount of knowledge around the class and what kind of recommendations to give to new players, I enjoyed sharing this as part of guides. Writing for Wowhead has been a great experience and my guides were always received very positively. Ultimately, I decided to pass it on to fresh blood though because I started to lose some motivations and all of the short-term guide crunches before new WoW Patches distracted me from other things like SimC implementations and thorough testing that I enjoyed more. Besides, doing three specs was always a lot of work and Patch 9.1 burned me out quite a bit, so I looked into handing each spec over to a single new writer.
Addons and WeakAuras
When playing the game, something that I always enjoyed is the support for Addons. World of Warcraft can be customized with extensions written in LUA - something that has always allowed me to design my user interface to look and behave in a way that makes sense to me and supports my gameplay to the best. Alongside using addons to tinker with my own user interface, I also worked on some addons myself and did not shy away from coding my own solutions whenever necessary.
One popular addon is called WeakAuras which allows setting up easy trackers for game mechanics and customize them with a GUI as well as code. I always built my own WeakAuras for the Rogue class and shared them on Wago.
Alongside some personal addon work, I also contributed to the HeroRotation addon, which brings the APL (Action Priority List), that determines what the simulation does in SimulationCraft, over to the game. I found this helpful, not just for gameplay but also to see what the simulation would do and compare this to my own gameplay and find out which side needs improvement.
Elite Dangerous
Space and science fiction have always been fascinating to me. This is why, at some point, I picked up the game Elite Dangerous and have been staying close to it ever since. While usually just playing it casually, I also joined the Prismatic Imperium player group. As part of that as well as the wider community, I did never hesitate to use my skills for some things as well. E.g. I took over the programming of the linked website after I joined and wrote a lot of new features (and rewrote some old ones).
My contributions to Elite Dangerous communities go beyond just the Prismatic Imperium group and include things like programming various tools, leadership/diplomacy, writing in the roleplay narrative, and even hosting a podcast for a while.
Myst Online / URU
I have always been a fan of adventure games and grew up with the MYST series. As part of that community I contributed to a number of things over the years, mainly during my teens. This included working on some fan servers (The Open Cave) and in the modding community, especially after Myst Online went Open Source.
Being around the developers of the H’uru Plasma Engine for a while initially tought me a lot about C++ and other programming approaches in my early teens. I helped with some testing and a few implementations like supporting the Opus audio codec myself.
Most of this happened before I moved on to newer challenges in the WoW and Elite communities. Nevertheless, it has been a great time to learn things and just have fun with some modding, back in the day.
More recently, I helped a friend and wrote some music for a memorial age.
I am also still running an experimental testing server for developers called DestinyURU.
Other Private Projects
There are probably a lot of small and minor projects I did for the purpose of learning and experimentation over the years. I cannot remember or list everything here, so I will stick to a few.
When looking into the Ruby on Rails framework (yeah, I really love Ruby), I created my own minimalistic note system called Grummle.
Based on seeing it in a TV show one day a long time ago, I created Musec. It is a little game to test if you can recognize your own music from just one second.
I also created my own custom watch face when I got myself an Android Wear LG G Watch R.
Since 2023, I have been getting into the Tabletop RPG scene around the Pathfinder Second Edition system and the Foundry Virtual Tabletop software. While being a Game Master for several tables, I have also gathered experience in customizing Foundry for my own needs by programming macros and contributing to several public modules.
Spreadsheets are also something I use regularly. To name just one example, I have set up a combination of Ruby script and Excel Spreadsheet that allows me to use statistical data to predict the scores and outcomes of any soccer national team game, which I use for a family prediction game whenever there is another FIFA World Cup or UEFA Euros.
University Projects
At first, I got my Bachelor’s degree in Applied Computer Science at the TU Bergakademie Freiberg. As my project, I wrote a plugin for the Unreal Engine 4 that allows us to run custom Unreal projects in our CAVE.
In a later project, we experimented with multiple ways to visualize mines. For that we used the Unreal Engine and my plugin as the framework to create a demonstration. We also made a video introducing that demo.
As part of a Robotics project, I worked on another concept based on the Unreal Engine. We integrated a robot with a mounted 360 degree camera. With a HTC VIVE head-mounted display, you can see the world from that cameras perspective and control the TurtleBot using the VIVE controllers. Furthermore, you can take snapshots and navigate through those in a way similar to Google Street View.
In 2021, I received my Master’s degree. My project around it was a cooperation with the LKA (Police) in Munich about using the Unreal Engine 4 to create a “tech demo” that can be used to visualize crime scenes in 3D and making it possible to explore them together through Virtual Reality. In my case, I was working with a Oculus Rift S. The demo included a number of features for cooperative play in a virtual location. Different ways of navigation, support for Virtual Reality as well as classical desktop usage, user roles, switching views, and tools for people in the virtual location were among the things I looked into.