C# Applications |
| Code |
Description |
 |
Quickie Hough Transformer
Language: C#
I wrote a quick program in C# to perform the Hough Line Transform
on various input images to solve a problem on my machine vision
homework. This transform is useful for finding and extracting lines
from a source image. I am mainly putting it here because it can
create pretty pictures.
- January 2006
|
 |
Adventures in the Infinite
Realm of Witherwyn
Language: C#, Managed DX9
Witherwyn is my attempt at a graphical roguelike game with an
easy to use interface. It is not yet a playable game, but I have
set up a project page for it. At the moment this page serves as
a distribution point for Witherwyn's C# source, which I believe
may be of some general interest. Witherwyn is undergoing active
development, so watch this space!
- August 2005
|
 |
Tetris Attack Demo
Language: C#, Managed DX9
I started a project a while ago to write a version of the SNES
game Tetris Attack that would be playable over a network and fix
several naggling issues from the original game. But then I came
to realize that internet latencies are way to high for a game of
split-second timing, like Tetris Attack and that the end product
would likely be unplayable. This demo represents a nearly finished
single player version of the game. It detects chains and combos,
but doesn't scroll the board up as you play. I am interested in
eventually adding an AI to this game, since the computer player
that comes with the original game is easily beaten.
- April 2004
|
 |
Generating Random Planets
with Perlin Noise
Language: C#, Managed DX9
One of the projects that I'm kicking around in the back of my mind
is to write a (massively) multiplayer space game. I thought it would
be neat to be able to randomly generate planet textures in realtime
as they are needed. This little demonstration is a proof of concept
testbed for generating procedural textures using Perlin noise. It
allows you to tweak a large number of parameters to create noise
fields, and can then map them onto a rotating sphere so that you
can get some idea of what they look like. This little feature was
added in so that I could learn how to use Managed DirectX 9 from
the .Net Framework. At the time, the MDX docs are spotty at best
(and that's being really generous), so it's a bit of an accomplishment.
DirectX issues aside, C# is fast becoming my favorite programming
language. Using C# it's possible to write a lot of code really quickly,
and unlike Java it compiles to native code behind the scenes without
any fuss.
- August 2003
|
C/C++
Windows Applications |
| Code |
Description |
 |
Ship Demo - 3D Accelerated
2D Grahpics
Language: C++, Win32, OpenGL
I'm currently tinkering around with the idea of making a massively
multiplayer space warfare/trading game. In the past, I've used sprites
and DirectDraw to do all my 2D game projects, but DirectDraw is
being phased out and was rather inconvienent (if you wanted a rotating
sprite, you'd have to get lots of pictures of the same object and
flip them). What a pain. Recently I've started messing around with
OpenGL (IMHO a much nicer API than DirectX) and I wrote this demo
to explore the orthographic projection, which can be used to do
2D graphics at 3D speed (ironically, this is often much faster).
Not that all the game objects have to be 2D, as the big rotating
planet in the background demonstrates.
- January 2003
|
 |
Shedletsky's So Real Surreal
Boogy Buggy
Language: C++, Win32, OpenGL
So, orginally I was planning on fleshing this thing out into a
fully functional network racing game where you would drive a little
buggy around, equipped with nerf cannons, trying to gather little
purple spheres and boxes. The basic premise is kind of surreal,
but I figured it would be kind of neat because the entire game uses
the ODE (Open Dynamics Engine) library for realistic game physics.
That kind of fizzled out when school started, and now if I were
going to go back to it, I would complete rewrite it anyway, but
I figured someone out there might find it useful, since there are
very very few game-related physics sim demos online.
- January 2003
|
 |
Random Dungeon Generation
Language: C++, Win32
At one point I was working on a rogue-like game in C for my TI-89
and I was experimenting with random dungeon generation techniques.
My TI C compiler has zero debug capability, so I developed the algorithm
in this Windows program and then cut and paste when it was working.
Just something to look at. Since the end platform was intended to
be a 12-Mhz calculator, it's a very simple approach to the problem.
Maybe some one can use it as a starting point for a game.
- June 2001
|
| Complete
Applications |
| Code |
Description |
 |
SpaceWar: A Fun Game to Play
Language: C++, Win32
SpaceWar is a simple program that I wrote in the September of my
senior year at high school to learn how to program for windows with
C++. It's basically your traditional game of space combat in beautifully
rendered vector graphics and played to brillaintly harmonious MIDI
masterpieces. SpaceWar provides support for up to four players at
once on the same computer and sports a variety of different modes
of play.
- August 2001
|
 |
ShedNet Checkers
Language: Visual Basic 6.0
ShedNet Checkers allows two people to play a game of checkers across
the Internet or LAN. ShedNet Checkers provides dual checkers program
and chat room functionality - allowing any number of clients to
log on to the main server to talk, watch, and play friendly games
of checkers.
- July 2001
|
 |
Fimbulwinter Computer Chess
Program
Language: C
Fimbulwinter is a Win32 chess engine written in C that is under
on-going development. Fimbulwinter can be played through its native
console "interface" (and I use the term loosely), or through
Tim Mann's WinBoard, which provides a very nice graphical user interface,
the ability to match two WinBoard-compatible programs against each
other, and the ability to run Fimbulwinter on online chess servers
such as ICC and FICS.
- July 2002
|
 |
Poor Man's PaintShop
Language: Java with SWING, Jini, and Xalan
Poor Man's Paintshop, or MiniDraw, as it was called in school was
a project that I did for my CS108 class freshman year. MiniDraw
is a Java MDI vector graphics creation program that allows the loading
of saving of images in XML and exports pictures to PGN format. As
a drawing program, it's one of the most typical inheritence projects
to do for a programming course. And as far as pathetic little Java
draw programs go, this one is on the top of the heap.
- August 2002
|
 |
Java Tetris with AI
Language: Java with SWING
This program will allow you to play a regular game
of tetris on any platform with a Java VM, pretty sweet, no? Maybe
it's not. Tetris is a quintessential programming project and every
hack out there has written his own copy. The difference between those
programs and this one is that my tetris game will play itself - it's
got built-in, and potentially extensible, AI that will play tetris.
For tetris buffs, it also has "Malice Mode" and "Happy
Mode" that, when enabled, will either try to screw you up by
giving you the worst possible blocks at the worst time, or will toss
you a bone every now and then when you need it. Give it a whirl.
- August 2002
|
 |
Project Notebook
Language: C#
Professional programmers in the industry use serious
project management software tools to coordinate development efforts.
This is not one of those tools. Of course, it won't put you back several
thousand dollars either. The main value to be had here is that Project
Notebook is an excellent demonstration of data-binding in C# (something
I was unable to find elsewhere). DataGrids, DataSets, Listboxes, Combo
Boxes, Edit controls are all wired up together with very little explicitely-written
code. Data is persisted as XML using a schema built in the .NET GUI.
While all this database-related stuff is kind of dull - this is exactly
the kind of thing that you would want to know about if you were writting
any editting tools for game development.
- June 2003
|
 |
The Perlin Device
Language: Client in C#, DLL in C++
This is an update of my original Perlin noise texture generator.
How is it different? In two significant ways. First, I have solved
the problem of texture warping caused by generating a flat texture
and mapping it on to a sphere. This was accomplished by generating
3d noise and sampling points on the surface of the sphere. This
generates a really good looking texture, with no polar distortions.
However, it is slower than generating 2d noise. To generate a
1024x1024 sphere-mapped texture took 30 seconds on my machine.
I thought this was too slow. So I translated all of my texture
generation code into C++ and encapsulated it in a dynamic link
library. The result is a super-fast texture generation function
that can be used from any language!
This code consists of two parts: the DLL written in C++, and
a sample client application, written in C#.
|
C/C++
Console Applications |
| Code |
Description |
 |
Printing Colored Text
Language: C++, Win32 Console
Here's a code snippet that will let you print colored text in a
Windows console program. I can't really imagine why you would want
to, but here it is. Maybe you'll write a clone of ZZT or Kroz. Those
were fun games...
- September 2000
|
 |
Playing a Sound File from
a Console Application
Language: C++, Win32 Console
Here's a code snippet that will let you play a .wav file from inside
of a console application. Your rockin' ASCII graphics game is going
to need some ambient music :-)
- September 2000
|
 |
Blackjack
Language: C, Win32 Console
Everyone's written a blackjack program in C. Here's mine.
- October 2000
|
 |
The Recursive Bubblesort
Algorithm from Hell!
Language: C, Win32 Console
This is just something I wrote for my own amusement. It was intended
to look befuddling, with #defs everywhere, monkeys running around,
and the best-named C function anywhere, "And_Then_A_Miracle_Happens".
But now it looks kind of amateur to me. I can write much more obfusticated
code these days...
- October 2000
|
High
Quality Programming Websites |
| www.gamedev.net |
Incredible game programming site - the best I've ever found.
Forums, articles, links, game news, demos, finished projects- it's got
it all. |
| nehe.gamedev.net |
NeHe has a very large (~40) collection of high quality OpenGL tutorials
and a bunch of other OpenGL - related demos and projects. |
| www.q12.org/ode |
Site of the Open Dynamics Engine (ODE) which allows you to add real-world
physics to your games without first needing a degree in mathematics. |
| www.gametutorials.com |
Has a large number of (mainly OpenGL based, but some DirectX) game programming
demos, some on topics that NeHe is yet to cover. |