Blog
Painting normal maps, and other Krita tips
I'm a big fan of using software effectively and optimizing my workflows, so over my years using Krita I've spent quite a bit of time digging into its features. In this post I want to talk about how I use this wonderful piece of software and highlight some not-so-obvious bits that have made a difference in my process. I'll do general painting first, hopefully in a way that is useful to beginners, and then indulge in some nerding out about normal maps and how to make them.
A decade of digital art
The oldest digital drawing I have on my computer turns ten years old today. This post is a self-indulgent trip down memory lane, looking back at landmark pieces and lessons learned throughout the years.
Game graphics: the journey so far
The majority of my recent game development work has revolved around graphics — both workflows for making them and technology for rendering them. Many ideas have been had and many scrapped along the way, and the journey certainly isn't over yet, but I think I'm moving towards something pretty unique and cool. This is a devlog-style post where I meander through some of the more noteworthy moments so far without going very deep into technical details (but providing technical sources where relevant).
Rounding collider corners
Back in 2022 I entirely rewrote one of the most complicated parts of Starframe, the collision detection system. A notable feature of the new system is the ability to give any shape rounded corners. I also wrote most of this post back then, but things happened and it was left unfinished. Here it is now, more than two years later. Better late than never I suppose.
Stuff I liked in 2024
In recent years I've made a habit of posting a list of my favorite heavy metal releases of the year on Mastodon. This year I decided to list more than just music and do it in a more permanent place here on my website. So here are some metal albums, books, and games I enjoyed in 2024.
Ten formative games
Inspired by recent discussions in the Eggplant Show Discord community, here's a list of ten video games. Not my favorite games (though many of them are that too), but ones that had a notable influence on who I am today.
Starframe devlog: Rope physics
Starframe's rope physics is the first piece of physics code I've written that I designed entirely myself. This is a short story of that design process and the challenges and solutions found along the way.
Starframe devlog: Solving Constraints in Physics
The Starframe physics solver has gone through a few iterations recently as my understanding of the problem and knowledge of available methods have grown. In this post I attempt to explain what constraints are and detail a few game-engine-friendly ways of solving them. I'll try to make this understandable to someone with approximately the level of knowledge I had before starting this: decent linear algebra and calculus skills and a tiny bit of physics knowledge.
Starframe devlog: Architecture
I've spent a large portion of the past two years writing and rewriting the basic structures that describe a game and its content in Starframe (formerly known as MoleEngine). These are some notes on what I've done so far and what I've learned from it.
Starframe devlog: Introduction
Starframe is an ambitious hobby project, still early on in development, aiming to create a general-purpose 2D game engine suitable for rapid prototyping and game jams as well as more polished, hopefully commercial-quality products. This blog is meant to document the development and ideas behind it in a fair bit of detail - mostly to organize and revise my own thoughts, but with the hope that someone else might also find it interesting and/or helpful. In this first post I will outline what exactly I am trying to accomplish and why I am doing it.