A couple of years ago, while experimenting with my program Viplex, I have come across an optical phenomenon: When creating what could be best described as a rainbow tunnel, looking at its center, and zooming out the view continuously for a couple of seconds, I got the impression the colors of the rainbow vanished. Instead of colors the whole view was shades of grey!
Recent versions of Python allow optional type annotations to be added to the source code. In this short guide I show how the type checker mypy can be integrated into the programming environment using the dependency management utility Poetry to enable gradual static type enforcement of Python programs.
Many commands involve the use of the control key which most commonly (in the context of the terminal) is signified using a caret and a capital letter. But if you have used terminal programs for a non-trivial amount of time, then you know that not all control keys are made equal.
Taking notes in a single place can be a very useful tool to organize your ideas and concepts so they don't get forgotten. By writing down your ideas and problem solutions, you'll know where to look when you encounter similar use case. The notes can be best kept up-to-date and organized with a unified digital format. Here I present what a arrangement of tools for Markdown note taking can look like.
During the development of many (visual) applications and tools a simple ad-hoc GUI-library can be very useful to interactively experiment with different settings and inspect values for debugging. The Dear Imgui C++-library fits this niche perfectly.
Regular expressions are a powerful tool for searching (and replacing) text. Here we want to use them to interact with checkboxes when editing Markdown in Vim.
The SDL2 library can be used to create and manage an OpenGL environment, which then can be accessed directly using the OpenGL API. This is a quite comfortable alternative to the "common" ecosystem of add-ons and extension wranglers. But how exactly to setup the build, i.e. what headers to include and what libraries to link to, is quite hard to find out.
The command line tool rsync commonly found in many Linux distributions is a powerful tool for synchronizing files in directories. It is useful for keeping mirrors of directories up-to-date with minimal effort and data-transfer. This includes copies on remote machines and web servers.
Header files are an important part of programming in C. But they are a clunky, error-prone, and redundant nuisance. How did they come to be? What function do they have?
I have recently released a simple terminal based Mastermind game: Solvemind. It is available on Github. In this game you can step by step deduce the secret code to win the game. Additionally this implementation enables you to analyze the current situation and possible guesses.
This post is a shout-out to the great tool that is Pandoc. It is a really nice document converter! It enhances its Markdown with various extensions.
I have recently built a robot drawing on a whiteboard using a Raspberry Pi 3 and Lego-motors. I have made a video of me controlling it. Here is a presentation of the robot's setup and the way it is built.
Recently I decided to blow the dust off my old RPi 1B and buy a package of sensors and emitters: Sunfounder's Sensor Kit v. 1.0. This is a guide to its usage.
This website now features a new light colour theme.
My combat game (prototype) Fighters works over a network connection. I want to present some insights into its networking model. The main idea is the synchronized connection to a central server.
The prototype for a network-based combat game, called "fighters", is now finally available to download.
This is the follow-up to an article I have written before. This article expands on the ideas and explores the role of collectibles, checkpoints and lifes in platforming games and how this insight was incorporated into Blue Bug Bob.
Again and again I read at the D programming language forums that D cannot be really fast. Some people say that the slow conservative GC of the D runtime makes long-running real time application impossible to write in D. This does not at all fit my experience.
I again sum up the development of the past weeks of Blue Bug Bob. It has gone steadily and Blue Bug Bob is nearing its completion.
I have recently released a new demo of Blue Bug Bob on IndieDB. This included two recent changes to the game, and nobody complained about them so I call that a success. And also now I like them very much and think they are a big improvement: colour adjustments and …
Blue Bug Bob is a two-dimensional platformer with predefined levels. There level design is a central part of the game and contributes much to the feeling of the game. Therefore the level design needs much thought if the game is to be fun and successful. Here I elaborate my thoughts …
I have finally renewed my website presence. It is now available under marcelfischer.eu. With the move the came a change to a more mature design (and the switch of the main language to English). This new design is made possible by a change of workflow. The old page was …
Many people disregard the D programming language for gamedev because many of its abstractions rely on the GC. But carefully designed D programs can be as efficient as corresponding C/C++ programs while being more typesafe and better structured. I want to share my experience and some tricks I discovered.