| | |
misc | More random stuff.
| 2016-08-28 |
raycar | A small tech demo, illustrating how to build car physics using
a box and four rays, using the ODE open source physics library.
Also implements a simple scene graph for DirectX.
| 2012-04-12 |
graphics | Miscellaneous articles about graphics-related stuff.
Most of them are very basic.
| 2009-09-28 |
carworld | A driveable car using ODE (the Open Dynamics Engine) for
rigid body simulation. Simple OpenGL graphics using 3dsmax
ASE files and TGA textures. Source included (MIT license!)
| 2009-06-24 |
aes-2001 | The presentation I gave of a paper I wrote for the
18th AES conference, on Internet Appliance Audio. It
details some of the issues we addressed in the BeIA
operating system when I worked for Be.
| 2009-06-23 |
vtune | How to profile your program using Intel's VTune profiler
| 2009-06-23 |
tcp-scalability | Some notes on the scalability of TCP-based multi-user game servers.
| 2009-06-23 |
thread-gotchas | Some things to look out for when developing with threads.
| 2009-06-23 |
marshaling | Some code showing how to easily marshal C++ structs to/from a stream
of bytes, using templates and visitors to break the NxM dependency
problem into a much better scalable N+M problem.
| 2009-06-23 |
time-offset | How to calculate a time offset to keep a networked game simulation time in sync between game clients and game servers.
| 2009-06-23 |
nat-punch | One way to punch through NAT firewalls using peer-to-peer networking.
| 2009-06-23 |
vst-response | A short note about mapping linear VST parameters in the range [0,1] to
something more musically useful; especially good inside setParameter()
and getParameter() for VST effects and synths.
| 2009-06-23 |
udp-vs-tcp | The difference between UDP and TCP explained, briefly.
| 2009-06-23 |
nat | An article about how NAT (Network Address Translation) works and
why it gets in the way of game servers.
| 2009-06-23 |
stream-messages | How to send separate message packets over a stream protocol such as TCP.
| 2009-06-23 |
networked-game | How to structure the main loop of a networked game client and server.
| 2009-06-23 |
ultra-edit-glsl | A WORDFILE.txt addition to make keyword highlighting
work in the UltraEdit editor for the GLSL high-level
graphics shading language.
| 2009-06-23 |
no-threads | Why threads are considered harmful, except in a
few special cases.
| 2009-06-23 |
xmlscan | XMLSCAN -- a simple, fast, in-place, non-copying
XML scanner and bare-bones DOM without schema
validation or entity handling.
| 2009-06-23 |
sleeping-to-save-cpu | Can I call Sleep() to give up the CPU,
yet still make my buffer-flipping deadline?
| 2009-06-23 |
pc-timers | Measuring elapsed time accurately on PC hardware is really hard.
| 2009-06-23 |
makesample | How to build a make system in GNU make, without
using recursive make. Recursive Make Considered Harmful!
| 2009-06-23 |
distributed-chunks | How to structure a coarse-grained distributed processing system.
| 2009-06-23 |
make-a-3d-game | A brief pointer at some resources on how to write a computer
game featuring 3D graphics.
| 2009-06-23 |
environment | Execution Environments: How to manage singletons when you
want to run more than one program instance in the same process.
| 2009-06-23 |
deled | Some information about the nice, low-cost game mesh modeler
DeleD (swell for static meshes, not for characters).
| 2009-06-23 |
ode | Notes about the Open Dynamics Engine
| 2009-06-23 |
rants | Random raving on various topics. When I add something here,
I'm venting steam, rather than presenting a well-thought-
through opinion, so don't take it too seriously.
| 2009-06-23 |
game-entities | A simple pattern for game entity storage and management, as well as an optimized entity allocator.
| 2009-06-23 |
C++-api | Some simple rules to follow if you want to deliver a C++ API
in part as a library, rather than forcing each user to compile
the API from source code.
| 2009-06-23 |
http-get | Some source that implements a simple HTTP GET wrapper, which
allows you to very simply get arbitrary web pages into your
Win32 C/C++ program.
| 2009-06-23 |
authentication | A brief paper suggesting how to implement
authentication and encryption for a client/server
game where the client is un-trusted, but the
server is trusted (such as in an MMORPG).
| 2009-06-23 |
libintroduce | A peer-to-peer NAT punch-through library, as
well as lobbying/match-making library.
| 2009-06-23 |
bandwidth | An article I wrote on music-dsp explaining a bit about optimizing for the memory subsystem to make programs run faster.
| 2009-06-23 |
copytest | Some NASM source code showing that for aligned transfers, it's not very
hard to beat the throughput of Microsoft "memcpy()". The copytext.txt
file contains output when run on my P-III/733 Via Apollo Pro 133 machine.
Note that if you increase the max block size to 4 MB or more, the
NASM version gets faster, while the MS version gets (or stays)
slower.
| 2009-06-23 |
libstats | A simple library making it possible to add stats for an RPG character
without having to re-compile the entire game. The library supports
looking up stat values by index, by name, or by (very efficient) static
accessors.
| 2009-06-23 |
carworld | A driveable car using ODE (the Open Dynamics Engine) for
rigid body simulation. Simple OpenGL graphics using 3dsmax
ASE files and TGA textures. Source included (MIT license!)
| 2009-06-23 |
interpolation | How to deal with sharp spikes in position updates
for a networked game.
| 2009-06-23 |
lag | I've worked in online games for many years now.
Sometimes I'm asked: "What causes lag?"
| 2009-06-23 |
easy-win32-program | How to draw a red block in a window in a Win32 program using MSVC 6.0, in 7 easy steps (Beginner Tutorial)
| 2009-06-23 |
pcm-dolby-digital | A small explanation of what the different digital audio standards for home
theaters, DVD players and receivers mean. Includes HDMI.
| 2009-06-23 |