RSSAmplifier

Blog

Welcome on NCoT Tech

Recent content in Welcome on NCoT Tech

ncot.ukRSS feed ↗177 posts

Latest posts

From Triangles to Pixels the Magic Behind 3D Graphics

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…

Exploring Terrain Generation Algorithms

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.…

Triangle Rasterisation

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…

Obsidian file sync for free

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,…

Linux in the wild

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.

Re Discovering 3D Graphics the Way Early Games Did

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

Retro Gamedev Is Hard

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

Game Engine to Functional First Game the Hello World of Gamedev

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

Agon Light Joystick Interface - How Not to Program Hardware

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.

ECS Archetypes System

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.

Agon Light Joystick Interface

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.

Trying to Be More Organised

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.

Axis Aligned Bounding Boxes - Collision Detection Without Physics

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.

Creating an Entity Component System for My Retro Video Game Engine

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.

Agon Light Debug Printing

Here’s how to send text out the Agon Light’s USB port to an attached serial monitor, so it can be used for debug logging.

Agon Light C Development

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.

Ecs Entity Component System

Let’s make a game engine properly, rather than beating on it until something works. This time, I’m creating an entity component system.

State Machines - How to Engineer Better Software

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.

Chromebook Facial Control Is Cool

My #Chromebook just had another update, and it’s now gained the ability to be controlled using facial gestures. And it’s pretty cool.

The Reason You Quit Coding Projects and What to Do About It

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.

The Dark Art of DOS Audio: PC Speaker Tricks and PWM Madness

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

Writing a Roguelike in C Part 1

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.

Digital Graffiti - Programming 1990s PC Demoscene Effects

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

A Retro Game Made With 21st Century Thinking Gamedev the Hard Way

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.

My Game Engine Has a Fatal Flaw - Here's How I Found It : #Gamedev the Hard Way

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.

Stealing Ideas From Doom

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…

MS DOS Programming the Mode X Deviation

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.

Mode X Madness

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.

Can I Program VGA Graphics in MS DOS? (Watch Me Struggle!)

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

Davinci Resolve Proxy Files

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.

Retro MS DOS Coding - Recreating the Iconic Award BIOS Screen

Because why not, it looks simpler than it really is and we’ll get to fall down a rabbit hole trying to draw the Energy Star logo.

Davinci Resolve Collaboration

I’ve worked out how to work on the same Davinci Resolve project from two different computers, at the same time.

Borland C Dos Programming

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.

Fixing the PC BIOS Boot Screen Recreation

Thanks to @hobbified on YouTube, making the EPA logo look correct was quite straight forward…

About Me

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…

Support

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 
…

Let's recreate a 90's PC BIOS Boot Screen

Because why not, it looks simpler than it really is and we’ll get to fall down a rabbit hole trying to draw the Energy Star logo.

Nostalgic DOS Development Part 1 - FreeDOS, DJGPP, RHIDE and other madness.

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.

Nostalgic DOS Development Part 2 - Writing our first programs

This is part two, go read part 1 first .

Nostalgic DOS Development - Setting up the machine

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.

Forcing DOS onto an unwilling ThinkPad R60e

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?

Tilemap Game Engine Development - Agon Light C Programming

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.

Bring back physical buttons!

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.

Emulation Sucks

… because it’s so realistic you still have to put up with the same problems you had 30 years ago…

Dodgy DOS Development

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…

Writing a game the hard way - from scratch using C - Part 2

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.

Writing a game the hard way - from scratch using C - Part 1

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 I broke my PC… and its replacement (Part 1)

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…

Maximising the fun in Linux

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.

Making Computers Fun Again

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…