Every frame of a 3D game you’ve ever seen ultimately reduces to pixels written into memory. No matter how fast the GPU or how impressive the graphics, it all comes down to plotting pixels on the screen.
Today we’re taking a short look at how triangles get turned into pixels. It seems easy enough, but this is something early software 3D had to do by hand, and something modern GPUs…
I’m exploring #programming a bunch of #terraingeneration #algorithm, to see how they work and which ones look nice. So far I’ve tried out the Midpoint Displacement and Diamond Square algorithms… 
 The Midpoint Displacement algorithm is pretty simple, but also kind of terrible. It makes some interesting 1D images though, and that’s probably the best use for it.…
These are some notes on how to manually draw triangles in code. Possibly useful if you’re trying to write your own software renderer, or are just curious how it works. 
 There’s two ways to do this. One is quite CPU intensive, the other is mathematical and less CPU intensive. The CPU intensive version scales well if run on something with multiple cores, like a GPU. So there’s…
I use Obsidian as my central note storing system. Here’s how I sync all my files between my phone, laptop and desktop machines. For free. 
 Intro 
 First, Obsidian is actually a piece of software worth paying for. I used to simply store a bunch of text files in a folder and edit them with any old random text editor. Obsidian makes this easier. Linking between pages, the tree view,…
While shopping I find a self service checkout that’s having a bad day. 
 Someone call IT support, the HDD in this one has died. Still, it’s nice to see penguins out in the wild. 









 
 
 
 
 This post is showing some sort of bug in my blog template. There is supposed to be an image up there, but it’s not showing.
This video is my journey through learning how early games drew 3D graphics before 3D APIs and modern GPUs existed. In fact, before old 3D APIs like OpenGL and old GPUs existed, too.
#3dmodeling #3dgames #programming #retro #cprogramming #gamedev #gamedevelopment
Welcome to the next edition of Gamedev The Hard Way, my attempt at writing a game from scratch for the Agon Light, using nothing but C. This time I create a tilemap system.
#agonlight #programming #retro #cprogramming #gamedev #gamedevelopment #retrocomputer
Welcome to the next edition of Gamedev The Hard Way, my attempt at writing a game from scratch for the Agon Light, using nothing but C. This time I actually make a game! For once I actually finish something. 
 #agonlight #programming #retro #cprogramming #gamedev #gamedevelopment #retrocomputer
Welcome to the next edition of Gamedev The Hard Way, my attempt at writing a game from scratch for the Agon Light, using nothing but C. This time I make a joystick work by building a joystick interface for the Agon Light. Then I program it to add it to my game.
I’m creating a game engine from scratch. Last time I wrote about the entity component system and how that works. This time I want to explain how the entities get created.
I’ve built a joystick interface for my Agon Light, using a PCB I found online. This is an improvement on the last time I did this and just stuck wires in the GPIO ports.
There’s loads of blog posts and YouTube videos explaining how to be more organised, how to stop procrastinating, and how to generally be more productive. None of them seem to be written for people who are busy, rather than trying to avoid work.
Welcome to the next edition of Gamedev The Hard Way, my attempt at writing a game from scratch for the Agon Light, using nothing but C. This time I get thoroughly distracted and accidentally make a Pong style game idea while figuring out how to add collision detection to my game engine. I implement the AABB Axis Aligned Bounding Box algorithm.
Welcome to the next edition of Gamedev The Hard Way, my attempt at #programming a game from scratch for the #AgonLight, using nothing but C. This time I throw away a ton of code and replace it with a shiny new Entity Component System.
How to write code for the Agon Light (and Console8 ) using C instead of BASIC, under Linux. It might work with WSL2 in Windows, and it might work on a Mac.
Welcome to the next edition of Gamedev The Hard Way, my attempt at writing a game from scratch for the Agon Light, using nothing but C. This time I attempt to put the “engineering” back in “software engineer”. Instead of blindly hacking away at my code and hoping for the best, I am now more thoughtfully designing a system.
In this video, I dive headfirst into coding a tilemap engine for my game — no plan, just pure momentum. Everything seems to go great… until I slam into a brick wall: I have no idea how to actually integrate it into my game.
Think the old PC speaker was only good for making awful beeps? Yeah, me too—until I started digging into how it actually works. 
 #MSDOS #BorlandCPP #RetroCoding #DOSDev #chiptune
Let’s try to write a Roguelike game in C for the #AgonLight. This is the first video. I explore how the original Rogue and similar games like Nethack generate their own dungeons, then adapt code that draws mazes so my dungeons are a bit more interesting to explore.
Step back into the golden age of the #demoscene as I dive into some of the most iconic visual effects from 1990s PC demos, all recreated under #MSDOS using Borland #C++.
#programming
In this abridged video, I walk you through the process of building a text adventure game from scratch on the #AgonLight. Rather than a deep dive into every line of code, this video focuses on explaining the overall structure and design choices behind the project.
Welcome to the next edition of Gamedev The Hard Way. This time I’m #programming some basic enemy behaviours to test out my game’s entity handling code. Things don’t go to plan however and I discover some quite major problems with the physics and tilemap code.
Part of the fun of making a game from scratch is desinging the systems that run in the background. This time I accidentally try to program a cooperative multitasking operating system. But it’s OK, this is how you do this sort of thing…
After learning about Mode 13h last time, I’ve been digging about in the ancient tomes of wisdom and discovered Mode-X. Let’s make a PC’s VGA card do odd things it was never designed for.
After learning about Mode 13h last time, I’ve been digging about in the ancient tomes of wisdom and discovered Mode-X. Let’s make a PC’s VGA card do odd things it was never designed for.
Let’s move into the 1990s and draw some graphics! I’ve got a whole 320x200 pixel screen, 256 colours and direct access to the video card. No APIs, no helper functions. Just me and the video RAM. #programming #msdos
It turns out making proxy files is quite important when editing video across your LAN. Don’t edit video across your LAN, it ends in tears and frustration.
I ditched DJGPP for now and am using Borland C++ 3.1 that I found on some abandonware website. I even sent the user manual to an online document printer to get it bound into a real book.
Hi, I’m James. 
 I enjoy programming, especially low-level programming. I like to understand how computers work and what my code is doing at the most fundamental level. Modern systems have become too complex for us to grasp every detail, so I prefer working with retro computers, where things are simple enough to fully comprehend. 
 Beyond retro computing, I also experiment with…
I create videos and projects exploring retro programming, low-level coding, and old-school game development. If you enjoy my content and want to see more, your support can help me dedicate more time to making in-depth videos, writing detailed blog posts, and working on new projects. 
 If you’d like to support what I do, there are a couple of ways to help: 
 Join me on Patreon 
…
Come back to a time when 640k was enough, and when a 486 DX2/66 was considered a fast computer. None of this modern multi-core rubbish or branch predicting exploitable nonsense here. Just you, me, DOS and a C compiler.
The modern world is far too complex. Software has become piles of APIs stacked on top of each other, running on virtual machines inside browsers. Even the CPUs themselves are too complex for anyone to understand.
I decide that doing DOS development means I need a real computer, rather than an emulator. I have an old laptop, surely making it run DOS can’t be that hard, right?
In this video, I’ll show you how I built a tilemap system from scratch in C for the Agon Light, and integrated it into my existing game engine. Getting the physics engine to handle collisions with the tilemap was no easy task, but I’ll walk you through how I made it work. On top of that, I explore some game design, sketching out ideas for where the game is heading.
At least polling a physical button can be done with electronics that don’t require running code, meaning you can always program one of the buttons to be a “reset” switch if needed.
From the mind that brought you “let’s try to write games using just pure C” I have a new idea for making my life difficult. 
 Let’s write DOS software using period correct tools…
Join me on a journey as I attempt to write a game for my Agon Light using nothing but raw C programming. In this second episode I figure out how to make a very basic 2D rigid body physics system work.
Join me on a journey as I attempt to write a game for my Agon Light using nothing but raw C programming. In this first episode I figure out what kind of game to make, look at some shareware games of the past and get a basic game engine working, using nothing but C code – no external game engines or modern development tools.
So my main PC that I do all my video editing, programming and anything more complex than talking rubbish on Discord died. Totally dead. How it died is a story for this video and involved me, a new NVMe SSD and a screwdriver. 
 It wasn’t too bad because I’d been looking for an excuse to buy a new machine anyway. My PC was originally created in 2017 to play VR games with a Rift CV1 headset, and…
Or in other words, I ditch NixOS because it’s awkward and weird, and I install Arch because it’s awkward and weird, but in a different way. And here’s my opinion.
It’s nearly midnight, I’m supposed to be going to sleep but downstairs my Surface Pro 7+ is busy compiling a Linux kernel while installing NixOS. Getting that far required a lot of fussing about and a desk fan. And it’s great fun. I’ve not had this much entertainment from my computers since they looked like this…