Newbie Coders Diary - Entry #0

Advice for Newbie Coders

Some Coding Techniques For Beginners

Some words about my source code style

Beginner's Guide to Modern PC Demo Coding

Beginner's Guide to Modern PC Demo Coding 2: Setting up the Palette

Creating Demos - Coder Tutorial 1

Creating Demos - Coder Tutorial 2

Creating Demos - Coder Tutorial 3

Creating Demos - Coder Tutorial 4

Creating Demos - Coder Tutorial 5

Creating Demos - Coder Tutorial 6

Creating Demos - Coder Tutorial 7


The Basics Of Functions

Matrix Operations

Fixed Point Maths

Sine Generation Tutorial

Matrix Operations

Approximating functions using Taylor polynoms

Minimax interpolating polynomials

Economic ways

A Linear Algebra Course

Sines and cosines for fun and profit

Numerical computation of derivative

Floating point numbers' bottlenecks

Blasting the Bounds of Standard Math-Ops

An Introduction to Logics

Information Theory

Information Theory: A 28k Crash Course

Data Structures

An Introduction to Linked Lists and Nodes

Stacks, Pipes and Circular Buffers

Trees Tutorial

Binary Search Trees

Dynamic Constants

Hash tables for physical based simulations


Quick Sort, A Fast Sorting Algorithm

Heap Sort

Merge Sort

Introduction to Sorting Algorithms

Fast Byte Sorting Algorithm

Bucket Sorting


Storing and Searching For Byte Sequences

Random Numbers

Rolling The Dice, in A Pseudo-Way - Some Random Words


Solve Adok's quiz and more with dynamic programming

Heuristic Optimization Techniques

Genetic Programming with OpenGL

Object-oriented Programming

Functions to Objects

Object-Orientated Code

Design Patterns

An Introduction to Design Patterns

Some Behavioural Design Patterns

Some Creational Design Patterns

Some Structural Design Patterns

Graphics 2D

The Crossfade

Cubic Spline Basics

2D-Animations In Pascal

Rotozoomer Tutorial

Splines and Quaternions

Anti-Aliasing in 256 Colours

Stretch Effect and Bounce

The S-Fire Implementation

Taking Advantage Of Virtual Screens

Interesting Cloud/Marble Effect


Blur Does Not Equal Antialiasing

2D Rotation and Why it Works

Alpha Blending

Realtime Radial Blur Filter

Parabolic Curves And Fake-G

Faster and Better RGB Palette Fades

The Basics Of Image Filtering

How To Code 16 Bit Color Graphics

How To Add Two 16 Bit RGB565 Pixels Together Nicely

32 Bpp Graphics Coding

Adding 16bpp Pixels

Drawing Triangles. Rasterization Tutorial

Adding 16 bit pixels

Adding 16bpp pixels using MMX

Generating textures for 64k intros

RGB565 saturated addition

Texture Generation For 64k Intros

Poor man's bilinear

Ector's Crash Course in 32-bit color Math


Lousy map/texture generator

Fast and dirty SIN/COS rotation

Line & circle drawing algorithms

Antialiased font rendering

Unreal Texture Filtration

Fractions, division and Bresenham lines

Polygon Drawing - Part 1

Polygon Drawing - Part 2

Triangle Drawing: Calculating the Deltas - Part 1

Triangle Drawing: Calculating the Deltas - Part 2

My mistakes in GUI design

On looking deeper into gm.dls, wtf

How to create a bump-mapped rotozoom

Computing the Convex Hull

Graphics 3D


How To Do Fast Realtime Vertexnormal Calculation


On-The-Fly Continuous Level Of Detail Generation For Polygonal Meshes

Fast Mipmap Level Of Detail Computation

About Texture Mapping


Free Direction Rendering

3D Clipping

The Definitive Guide To The Third Dimension (Part 1)

Back Face Culling

3D Coding TAT - Preface

3D Coding TAT - Introduction/Waffle

3D Coding TAT - Patchwork Landscapes

3D Coding TAT - Non-Linear (Curved) Landscapes

3D Coding TAT - 3D Coding TAT - Voxel Landscapes

3D Coding TAT - The "Planet" Method

3D Coding TAT - Sorting Out The Performance Problem

3D Coding TAT - Render Attribute Trees (Rats)

3D Coding TAT - "Noah" - Flood Fill Rendering

3D Coding TAT - The Missing Link? "Inlet" Rendering

3D Coding TAT - Volume Meshes (Distorted Cube Arrays)

3D Coding TAT - S-Buffer (Span Buffer Techniques)

3D Coding TAT - Line Clipping & Polygon Edge Clipping

3D Coding TAT - Polygon Drawing & Clipping

3D Coding TAT - Trapezoidal Decomposition

3D Coding TAT - Group Vertex Clipping

3D Coding TAT - Smooth Lines & Anti-Aliasing

3D Coding TAT - Plants, Trees And Forests

3D Coding TAT - Convex Polyhedra, Planes And Surface-Details

3D Coding TAT - Projections And Corrections

3D Coding TAT - Unfolding Polyhedra & Mapping Adjacent Faces

3D Coding TAT - Our 3D World Is Flat

3D Coding TAT - Distant Horizons

3D Coding TAT - Tips And Tricks

3D Coding TAT - Gallons Into Pint Pots

3D Coding TAT - Terminology & Incorrect Phrazes

3D Coding TAT - Final Words

Lightwave Bones

World Class 3D Clipping

Zbuffer And Other Sorting Topics

3D Clipping Addendum

Polygonizing Of Implicit Surfaces

Distorting 3d objects

3DS Rotation Track Interpolation

Marching Cubes

3D Visibility Pipeline for dynamic worlds

Marching Cubes Based Polygonisation

Faked Fog

Texture Mapping


Backface culling with just an AND operation

Real Time Ray Tracing

Texture mapping, part 2

Raytracing shapes

Metatorus and other iso

Skinned Mesh technique

Texture Mapping, part 3

Ray-triangle intersection tests for dummies

Extended faked fog

Behind the magic - Generating 3d worlds from scratch

Sphere Tessellation 101: The Art of Making Spheres out of Triangles

Force-driven particles

Implementing the implicit Euler method for mass-spring systems

Optimus' Basic Introduction to 3D - Why do the equations work

Min Max Occlusion Volumes

A 3D Iterated function system fractal editor

3D Model Loading

Diffusion-Limited Aggregation

On ray casting, ray tracing, ray marching


Soundcode in Jizz, Stash or Erratic

OpenCP Device-Development

Yehar's sound DSP tutorial for the braindead!

Recursive Synthesis of Triangle, Sawtooth and Square waves


Code Optimization


F***ing Learn To Code Again

Using Overlapping in Inner Loops

Some Size Optimization

P-mode Size Optimization

Rules of SIMD Optimisation

Hints for 4k Intro Coders

Basic cache optimisations

Caching textures and other data

SIMD-FP Optimisation Techniques Revised

Small Windows Executables

The Art of Optimising

Optimizing Refraction for Raytracing

Optimizing for SSE: A Case Study

Memory Managment that makes your code size smaller

Fast Alloc and Free

Even faster Alloc and Free


Technical Information on the archiver ACE V1.2

Image Compression: BTC (Block Truncation Code)

LZP Data Compression

Lzss Compression, or: How I Won Hugi Compo #2

The Burrows-Wheeler Transform

Optimizing The Putbits

LZ77, The Basics of Compression

Why BWT Works

Move To Front: A Transformation Algorithm

RLE: A Basic Data Compression Scheme

Optimizing "Putbits" Part II

Optimizing "Getbits" Part I

A Huffman, But No Tree?

Decoding a Tree-Less Huffman

LZT - A Variation on the LZP Algorithm

LZW - Some Patent Free Ideas For Improvement/Further Research

Some Thoughts about LZ Compression

Standard CRC 32

Faster Putbits

LZW Data Compression

Static Huffman

A Simple (And Very Fast) 2-D LZP Variation

LZP-S: Yet Another Idea For The LZP Algorithm

Optimizing "Putbits" Part III

Canonical Huffman

When Fibonacci And Huffman Met

Basic Audio Compression

Compression Editorial

Arithmetic Coding

Quasi Static model

Range coder

Finite Context Modelling

Terminology for data compression

Burrows-Wheeler Transform Theory

Compression Ramblings

An Introduction to PPM Encoders

Improved LZP

Cheap'n'nasty transfers

Arithmetic Coding

Optimizing 'Getbits' part 2

Optimizing 'Putbits' part IV

A neat 12-Byte translation method

The Smallest 'putbits' routine

A yet smaller 'putbit' routine

Unwanted Junk

Fractal compression in intros

Image Compression

Some thoughts about compression


Basics of Cryptology

File Formats

A Brief Look At File Format Design

Displaying 256 Colour PCX Pictures

Organica 1.0 File Format V0.8

An Introduction to CD Error Correction

A Simple, Flexible File Format Method

Yet Another Song Format

Texture file formats & saving textures

FIG - loading a GIF file

CAB dropping

Own Exporter plug-in for 3DS Max

Elbow-deep in bytes - extracting assets from demos


Creating a scripting engine

Writing a Scripting Engine


Smart Memory Leak Detector

Flexible Logging System with filters

Source Code Management

Setting up Concurrent Source Code Management using CVS


OpenGL in Demos

Introduction To OpenGL and to this tutorial series

OpenGL Tutorial #1

OpenGL Tutorial #2

OpenGL Tutorial #3

OpenGL Tutorial #4

OpenGL Tutorial #5

OpenGL Tutorial #6

OpenGL with Assembly in 4kb - Notes from the Field

Using OpenGL Extensions


DirectX Basics

Simple, Small and Lean Tutorial on DirectDraw

The DirectX 8 Pixel Shader

Introduction to Shaders


Optimizing For The Coprocessor

Using the Coprocessor

Advanced Topics of the FPU

MMX and Mixing Samples

Rawhed's Tutorial #5: MMX

3dNow! Tutorial

Reaction-Diffusion Texture Generation on GPU


Programming Graphics in Assembler

The CPUID Instruction

The Hidden Power of BCD Instructions

Win32 Assembler Tutorial Chapter 0.5

80x86 and 680x0 resources

IA-64 Overview

Win32 Assembler Tutorial Chapter 1.2beta

Win32 Assembler Tutorial Part 2.718

Ideal mode crash course

Win32 Assembler Tutorial Part 3.141

Win32 Assembler Tutorial Chapter 4k

Understanding Intel Instruction Sizes

Getting Started with Assembly Language Programming

Assembly Language - What Do All Those Instructions Do?

Assembly Language - Addressing

Assembly Language - 32-Bit Mode

Assembly Language - Floating Point

ASM Implementation of Blasting the Bounds of Standard Math-Ops

C / C++

Watcom's Name-Mangleing

C++ Tips-n-Tricks

Watcom is back

C# / XNA

XNA Game Studio Tutorial

Sound in XNA Game Studio


Java demo coding - Wrapping up an applet in a full screen window

Java demo coding - Threads and timing

Java demo coding - Drawing stuff

Java size optimization

Writing a 2D effect in Java



PHP for beginners

SQL for beginners

Demogroup homepage in PHP with MySQL

PHP v4.2.x and register_globals - Coding the new way

Basics of Templating in PHP


TAD's quick intro to JavaScript &emp; DOM

Writing correct and robust JavaScript


Flash 5 - part 1: Intro & Overview

Flash 5 - part 2: The User-Interface

Flash 5 - part 3: Basic drawing

Flash 5 - part 4: Timelines, Frames and Layers

Flash 5 - part 5: Buttons

Flash 5 - part 6: Basic Action-scripting

Flash 5 - part 7: Keyboard, Mouse &emp; Text Output

Flash 5 - part 8: Movie-Clips & GUI gadgets

Flash e-Diagrams

Redrawing old diagrams using Flash


What is Python?


The Ruby Language - A new player in the arena


Euphoria - A fast and simple interpreted programming language


An introduction to L.IN.OLEUM

Pascal / Delphi

4K Bump Mapping in Turbo Pascal

4k intros and Delphi


TAD's Quick ASP Database tut

TAD's Quick ASP Database tut 2

TAD's Quick ASP Database tut 3

TAD's Quick ASP Database tut 4

TAD's Quick ASP Database tut 5

ASP - security


Drawing ActiveX Control Into Memory Buffer


Demo Coding with Pure Basic 01

Demo Coding with Pure Basic 02

Demo Coding with Pure Basic 03


Creating Demos in XPL0

3D Rendering in XPL0


XNUMCAPS - a 48-byte TSR

Manipulating the BIOS Font

Line Drawing in Mode-X

Textmode Colors

Setting Vesa Video Modes


Windows Programming Master Class - Stage 1

Moving To Windows Part 0

Moving To Windows Part 1

Moving To Windows Part 2

Moving To Windows Part 3

Moving To Windows Part 4

Moving To Windows Part 5

Quick Introduction to 4k Intros under Windows

Time synchronization under Windows

Writing a 512b intro for Win32

WinAPI Wrapper Library

Creating a 4k Windows intro - Part 1

Creating a 4k Windows intro - Part 2

Understanding the Common Information Model

Linux / Unix

Linux Demo Coding

Using dynamically loadable objects under Linux

Unix shell for demo coders

Custom Operating System

A simple boot sector for a single disk/single OS

The Design and Structure of the Domainatrix Operating System


GameBoy coding tutorial


Flocking about with the Kinect

Demo Development

Hooray 4K Intro

The Making of Discloned

Making of fr-08: .the .product

Lapsuus on Amiga

Making of Panorama 2 for Linux

Making a 64k intro

OpenUDS: A demo-oriented crossplatform framework

The Making of Arcadia

Presenting DevLib, a multimedia framework

3DS MAX as 64K intro editor

Horizontal Text Scroller Demo with Music Player

Making of "nano"

The Making of Angelic Forum

Making of Malewitsch and Ferner

Plugin Architecture for Demo Systems

The Making of Turbulence

PandaCube: Making of PC-05 Flux

The Making of "We Come In Peace"

Game Development

Creating a simple action game

Text Processing

Topic Tracking and Detection: A project

Introducing Bonz's HUGI formatting system

Text editors &emp; Memory Management

Converting articles from Hugi 12 - 17 to Panorama

Reverse Engineering

An Introduction to Reverse Engineering

How to rip background pictures from diskmags


Polymorphic viruses (and out-of-date virus definitions)

Tape Loaders

How tape loaders work

Over-head Projectors

A collection of tips and tricks for OHP demomaking


Detecting Windows Version