Texture-Less Text Rendering
How to draw text to a Vulkan renderpass without binding a single texture
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 2,925 posts.
How to draw text to a Vulkan renderpass without binding a single texture
I'm an EA FIFA enthusiast. More than that, I’ve played since 1994. Last year, I was talking with a friend about the game and he asked me if I was playing Career Mode. My first answer was: "That is boring ... I want to play the real game and not play as a manager". From that day, he decided to convince me to play…
I haven’t posted here much lately, and I admit, it’s because I’ve gotten sidetracked thinking about curves again. I did my PhD thesis on curves, so spent years thinking about them, then put that on hold for a while, aside from some work in crunching font file sizes down.
When I first started working on games, I used high level frameworks that would give you a Camera that just kind of worked. But as I learned more and wanted t...
How I built a Sega Mega Drive dev kit from scratch: reverse engineering the cartridge slot, a homemade logic analyzer, a RAM cartridge and boot firmware.
Just in time for the holidays, the final release of ScummVM 2.0 is here! This version adds support for 23 brand new old games, including almost all of the 32-bit Sierra adventures: Cranston Manor Full Pipe Gabriel Knight Gabriel Knight 2 King's Que…
Retronator Do It Yourself
During the last 3 months, I spent some of my time and tokens decompiling a popular first-person shooter. The goal was not to reach a simple proof-of-concept state. Instead, we really wanted an accurate, stable and feature-complete recreation of the game. The avid reader of my blog might have noticed that I had…
An explanation of how walking through walls would actually look like if you could move in 4D.
My personal website and blog
In the two years after publishing this, I worked on refining this algorithm to power a real-time world generator, called Generate Worlds, and it lets you des...
Drone Invaders - a space shootem up with retro graphics and modern gameplay
I managed to exploit the Nintendo DSi browser 15 years after it was released in Japan. This post will go over the journey and the technical details.
It turns out that a _very_ long HDMI cable, a Steam Controller 2 and Bazzite on a second drive was all I needed to get a comfortable couch gaming experience.
Analysis of the classic "dropping two eggs from a building" interview question
To learn how optimizing compilers are made, I built one targeting the 6502 architecture . In a bizarre twist, my compiler generates faster code than GCC, LLVM, and every other compiler I compared it to.
Today we are sharing Watchtower: an interactive film production management tool.
Experimental simulation of emergent complexity through graph-rewriting automata.
WebGPU is a new standards-compliant API that enables high-performance 3D graphics and general-purpose computations on the Web.
(File dated November 9, 1998) PREFACE: Another file from the same disk with the Nihilanth sketches, this one, if it is to believed, written the day after we shipped Half-Life. I do believe it because the file’s creation date is indeed November 9, 1998, and I am not l33t enough to know how to fake […]
gfx-rs is a project bringing efficient cross-platform graphics to rust. This blog supposedly hosts the major milestones, concepts, and recaps of the project.
I play World of Warcraft . Being a Linux user requires me to run this in Wine , a Windows API translation layer. While Wine is continuously improving, its performance in Direct3D games still leaves much to be desired.
For as long as I’ve been writing shaders, there’s been one specific shader I’ve always tried to write…
I think the biggest reason so many indie games “fail” is that teams enter into making huge, overly ambitious projects that take years to release before they are ready. Indie teams do not spend enough time making smaller (and less profitable) games first before transitioning to multi-year projects.
While teaching a web development class, I wanted to present some benchmarks that show the performance benefits of asm.js as well as WebAssembly. I was unfortunately not able to find a suitable reference. Therefore, I implemented a simplistic raytracer in JavaScript as well as in C++ with a similar code structure while…
Learn the optimal strategy for playing Hangman.
The sixtyforgan is a Commodore 64 equipped with a spring reverb, featuring the keyboard layout of a chromatic button accordion.