# Markus Hofer > A Life in Projects Markus Hofer is an indie game developer and software engineer. This site contains writing on Unity game development, C#, React, Next.js, and independent game projects. ## Blog - [Turn SVGs into Fonts](https://markus.hofer.rocks/svg-to-font): If you can export SVGs, you can now make a font! - [How not to have your hard drive deleted by AI](https://markus.hofer.rocks/ai-container): You’ve probably all heard the stories: AI coding tools wreck havoc on users’ machines, delete entire hard drives, then apologise profoundly. - [Learn Katakana](https://markus.hofer.rocks/katakana-now): Added support for Katakana to my little Japanese character learning app - [Multi on iOS](https://markus.hofer.rocks/multi-ios): Multiplication is fun! - [AI Coding](https://markus.hofer.rocks/ai-coding-panic-when): I’m excited. I’m a little scared. I’m somewhat confused. - [AI Knowledge and Context](https://markus.hofer.rocks/ai-knowledge-and-context): Whatever discoveries you make on your AI coding adventures, the AI will remember none of it. - [Ok, before you say no…](https://markus.hofer.rocks/ok-before-you-say-no): A short story - [Handheld Gaming - Past Present and Future](https://markus.hofer.rocks/nzgdc24-video): A video recording of my talk at NZGDC 2024 - [NZGDC 2024 Talk](https://markus.hofer.rocks/nzgdc-2024): Handheld Gaming - Past, Present and Future - [Design vs Capitalism](https://markus.hofer.rocks/design-vs-capitalism): Don’t you see we’re doing it all wrong! - [Open-sourced a few Unity tools](https://markus.hofer.rocks/more-open-source): AnimationLayers and PLAX packages are now available under MIT license - [Solana Tools now Open Source](https://markus.hofer.rocks/solana-tools-mit): Progressive web app tools for working with the Solana blockchain. - [NexusOS](https://markus.hofer.rocks/nexusos): A fake operating system for a game idea. Work in progress. - [DIY Arduboy](https://markus.hofer.rocks/diy-arduboy): Here’s how I built my own Arduboy based on an Arduino Micro and a small OLED display. - [GPT-4o in Unity](https://markus.hofer.rocks/gpt4o-unity): How to use OpenAI’s GPT-4o model in Unity - [GPT-4o on an ESP32 MicroController](https://markus.hofer.rocks/gpt4o-microcontroller): A guide for how to use OpenAI’s GPT-4o model on a microcontroller - [Microcontroller vs Display](https://markus.hofer.rocks/microcontroller-vs-display): Everything you need to know to start attaching displays to your microcontrollers - [Death to all Advertising! (On my local network)](https://markus.hofer.rocks/pi-hole-pi-zero): How to set up network-wide ad blocking with pi-hole and a Raspberry Pi Zero W! - [Handheld Gaming](https://markus.hofer.rocks/handheld-gaming): Handheld gaming has always been special, but it has changed over the years. What have we gained? What have we lost? And where do we go from here? - [Meaningful Multiplayer](https://markus.hofer.rocks/boardgames-meaningful-multiplayer): What makes a boardgame a meaningful multiplayer experience? - [The Problem with Unity ](https://markus.hofer.rocks/the-problem-with-unity): Unity Technologies is suffering from an incurable illness that it brought upon itself. Let me explain… - [Unity is going down the drain](https://markus.hofer.rocks/oh-unity): Now we know what the new Unity is all about. And it’s not us. 😞 - [Automate the boring parts](https://markus.hofer.rocks/automate-the-boring-parts): A practical guide to building your own helpful tools in Unity (Write-up + Slides) - [Let’s take back the Web!](https://markus.hofer.rocks/take-back-the-web): What have we done?! We’ve signed up to all the convenient services. Now our lives are full of shitty ads and we’re being tracked wherever we go. - [NZGDC 2023 Talk](https://markus.hofer.rocks/nzgdc-2023): I’m giving a talk at NZGDC this year: Automate the boring parts - a practical guide to building your own helpful tools in Unity - [Granular Synthesis](https://markus.hofer.rocks/granular-synthesis): Split sound into tiny grains and play those back in interesting ways to create something new - [Elden Ring Song](https://markus.hofer.rocks/elden-ring-song): A little while back I wrote a song about Elden Ring. Enjoy… - [The Emperor’s new Art Collection](https://markus.hofer.rocks/the-emperors-new-art-collection): How can you ever truly own digital art? - [On the Value and Purpose of NFTs](https://markus.hofer.rocks/value-and-purpose-of-nfts): Is it all for nothing? Is it going to be idiotic shovelware from here on to eternity? - [The Dark Sides of XR](https://markus.hofer.rocks/dark-sides-of-xr): Oh the possibilities of Mixed Reality! And oh the dangers to our privacy and world views… - [The Dark Sides of VR](https://markus.hofer.rocks/dark-sides-of-vr): Virtual Reality is the future, let’s look at the dark sides that will come with it… ## Projects - [GlyphSmith](https://markus.hofer.rocks/glyphsmith): A lightweight macOS app for creating fonts from SVG files. - [Plankulator](https://markus.hofer.rocks/plankulator): Generate a cut list from an OBJ - [Mark-us-Down](https://markus.hofer.rocks/mark-us-down): A simple Markdown Editor for Mac, mostly. - [Crypto Tracker](https://markus.hofer.rocks/crypto-tracker): Track the current value of your crypto holdings across all chains - [Core Budget](https://markus.hofer.rocks/core-budget): A web app that helps you manage fixed expenses by categorizing them and calculating monthly set-asides. - [MQTT Plugin for Stream Deck ](https://markus.hofer.rocks/mqtt-stream-deck): Send MQTT signals from the Stream Deck - [Hiragana NOW!](https://markus.hofer.rocks/hiragana-now): A quick and easy way to practice Hiragana characters. - [PackagingBoxCreator](https://markus.hofer.rocks/packaging-box-creator): A quick little tool to design foldable boxes - [Plax](https://markus.hofer.rocks/plax): Parallax Character Animation - [HDR Pack](https://markus.hofer.rocks/hdr-pack): HDR spherical panoramas for use as lighting sources and for reflections - [GameAssets.net](https://markus.hofer.rocks/gameassets-net): A webstore for ready-made game assets, pre-dating the Unity AssetStore - [FileGroups](https://markus.hofer.rocks/file-groups): Open just the files needed for what you’re working on. - [SwipeControl, OrientationControl, GUIKit001, etc.](https://markus.hofer.rocks/swipecontrol-guikit001): A complete ready-to-use game interface for Unity 3. And other assets… - [Age of Conan UI](https://markus.hofer.rocks/age-of-conan-ui): A look back at my work as UI strike team lead. - [Synthspace Core (WIP)](https://markus.hofer.rocks/synthspace-core): Same underlying system as Synthspace, but visualised through a node-graph - [Age of Curling 2 (WIP)](https://markus.hofer.rocks/aoc2): Custom physics engine, shiny graphics. Someday… - [AnimationLayers](https://markus.hofer.rocks/animation-layers): Provides an easy way to blend multiple animations with controls for adjusting speed and weight of each animation - [ChannelFocus (Unity Editor Tool)](https://markus.hofer.rocks/channel-focus): Makes it easy to tweak values! All your focus on the task at hand! - [Screws and Bolts](https://markus.hofer.rocks/screws-and-bolts): All your needs for screws and bolts covered! - [Synthspace](https://markus.hofer.rocks/synthspace): VR Modular Synth - [VRTX](https://markus.hofer.rocks/vrtx-3d): Low polygon modelling in Virtual Reality - [Age of Curling](https://markus.hofer.rocks/age-of-curling): Curling through the ages. From a frozen castle’s moat to a modern stadium. - [New Orbit - Episode 1](https://markus.hofer.rocks/new-orbit-ep1): Lost in space. Realistic gravitation. Fully voiced story. - [SuperBudget](https://markus.hofer.rocks/super-budget): Keep track of expenses. - [New Orbit - Episode 2 (Failed)](https://markus.hofer.rocks/new-orbit-ep2): I wanted to take it to the next level, grow the team and raise funds on Kickstarter. And it almost worked… - [WorkTime (WIP) ⏱️](https://markus.hofer.rocks/work-time): Run timed focus sessions in a Unity EditorWindow. Just download the unitypackage, stick it into any project and open the Tools/WorkTime window. - [Multi](https://markus.hofer.rocks/multi): Multiplication * fun - [VR Ship Simulator](https://markus.hofer.rocks/vr-ship-simulator): Virtual Reality training for the maritime industry - [BatchProcessor](https://markus.hofer.rocks/batchprocessor): Automate the boring stuff - a Unity EditorWindow that lets you automate changing values, renaming objects, adding and removing components, positioning elements, etc. - [Gusts of Wind](https://markus.hofer.rocks/gusts-of-wind): Buy a historically important gust of wind as selected by the Anemoi - the greek gods of the four winds. A collection of NFTs that tests the limits of what an NFT can represent. - [INDX Tools](https://markus.hofer.rocks/indx): The year was 2022, I was as sick as anyone with the state of NFTs. But I wrote a set of tools for interacting with the Solana Blockchain anyway… 🤷‍♂️ ## Knowledge Base - [Arduboy Course - Part V: Level](https://markus.hofer.rocks/arduboy-5): Let’s take what we have and make a whole level! - [Arduboy Course - Part IV: Collision Detection](https://markus.hofer.rocks/arduboy-basics-4): Let’s collect coins and bump into platforms! - [Arduboy Course - Part III: Animated Sprites](https://markus.hofer.rocks/arduboy-basics-3): Let’s make some sprites and learn how to put them on the Arduboy! - [Arduboy Course - Part II: Movement](https://markus.hofer.rocks/arduboy-basics-2): Let’s make things move and work our way towards something we could call a “game”! - [Arduboy Course - Part I: Basics](https://markus.hofer.rocks/arduboy-basics): The basics of the Arduboy library. Draw shapes, draw text, get input, play sound! - [Arduino C++ by Example](https://markus.hofer.rocks/arduino-cpp-examples): Learn Arduino C++ by Example - [Arduino C++](https://markus.hofer.rocks/arduino-cpp): How to get started with C++ for Arduino - [Supporting Undo in Unity Editor scripts](https://markus.hofer.rocks/serializedobject): There’s 2 ways to do this: Via Serialization or via the Undo class. Let’s have a look at both! - [Unity’s “New Input System”](https://markus.hofer.rocks/new-input-system): How to get started with the new Input System in Unity. I read through the docs, built some stuff and condensed it all into this article. - [Run your own Unity Package Server (QNAP NAS)](https://markus.hofer.rocks/package-server-nas): How to set up a verdaccio npm package server in Virtualization Station on your QNAP NAS - [Solid](https://markus.hofer.rocks/solid): Solid is very similar to React, but much faster. It uses JSX, but has no virtual DOM. This is mostly a condensed version of the tutorial on the official site. - [Next.js](https://markus.hofer.rocks/nextjs): Get into Next.js, essentially a better React built by Vercel - [React](https://markus.hofer.rocks/react): All about React and React Router - [Node](https://markus.hofer.rocks/nodejs): Everything you need to know to install and use NodeJs (as well as Express.js) - [JavaScript](https://markus.hofer.rocks/javascript): The essence of everything you need to know about JavaScript (and TypeScript) - [Linux Console / Shell](https://markus.hofer.rocks/linux-console): All the most important things to find your way around any Linux Console (including MacOS’s Terminal) - [CSS](https://markus.hofer.rocks/css): A quick and simple guide to the basics of Cascading Style Sheets (CSS) - [Run your own Unity Package Server (Google Cloud)](https://markus.hofer.rocks/package-server-google-cloud): A full walkthrough of how to set up your own verdaccio npm package server on a Google Compute Engine instance - [Assembly Definitions in Unity](https://markus.hofer.rocks/assembly-definitions): How to create your own assembly definition files so not all of your code has to recompile at every change. ## Feeds - [Blog RSS](https://markus.hofer.rocks/feed): Latest blog posts - [Projects RSS](https://markus.hofer.rocks/feed-projects): Latest projects - [Knowledge Base RSS](https://markus.hofer.rocks/feed-knowledgebase): Latest knowledge base articles ## Contact - Email: markus@hofer.rocks - GitHub: https://github.com/col000r - Mastodon: https://mastodon.gamedev.place/@col000r