Projects

My Resume:
 

Navigation:


This page will serve as a brief introduction and launching point for the various projects on which I am working. For now, it's mainly a status page to show where I am with each of these. At some point, each project will get its own page, but for now I'll just basically stick notes in here.

Meta-JB Toolkit

Meta-JB is a MetaClass/MetaObject layer providing generic access to model implementations, decoupling application logic from underlying implementation details and allowing user interfaces (Swing, HTML, etc.) to be dynamically generated at runtime.

Checkout the Sourceforge Meta-JB project page for more information and a better introduction.

Neverwinter Nights Tools

Some tools and utilities for developing/customizing the Neverwinter Nights game.

Mahjongg Solitaire Game

I got addicted to this game when I used to do alot of OS/2 work. A version of this game came standard on the Warp operating systems and I killed many an hour clicking tiles away and creating new boards. One weekend I really began to miss this old game... a few hours later I had hacked up a tile set and was working on the board editor.

I classify the status of this one as alpha even though it's had extensive play-testing by my friends, family, and co-workers. There's a severe lack of documentation and the tile set isn't complete yet since I sort of fell down on drawing the flowers. I also need to make my own set of sound effects since right now I'm deferring to some of the Microsoft system sounds.

See the full Mahjongg Solitaire project page for more information and download links.

Mini-GIS (Geographic Information System)

This was started to support some other programs that I tinker with and is still in the prototyping and design phase, although a good deal of both have already been done. I've done work with terrain visualization and 3d rendering of height data before and I wanted a more robust framework upon which to work on those things. I also dabble a little with fractal terrain generation and wanted to incorporate that as well.

Generating random terrain for a whole planet is kind of an interesting problem and without doing some form of localized projection you end up with varying levels of detail with different latitudes. As you move north or south from the equator, a single degree of longitude covers a much smaller area of the planet. Many fractal terrain generation techniques are based on rectangular grids. My hope was to be able to leverage GIS projections to help the rectangle-based generation algorithms work on a planet's surface.

All of this led me to a design where data sets, terrain generators, and projectors can be layered to generate a final data set. Each layer is essentially an operator on the previous layer, taking in a set of gridded data and returning a set of gridded data. Together they form a pipeline where a raster of points goes in and a raster of points comes out. As the data goes through, the individual layers can composite additional data on as they pass it up, or completely transform the data into another form.

I'll try to put up some images when they are in a form that I'm willing to show off.

3D Software Renderer (Quake 1 level viewer)

This was a little program I threw together over a week between Christmas and New Years Eve 1998. I had worked on several software-based 3D engines in C before, so it was familiar territory. The main reason I wrote it was to see what kind of performance I could eek out of Java (this was circa 1.2.0) and primarily to goof around with the Quake 1 WAD file format. I hadn't expected anything better than to be able to capture still shots, but the performance surprised me.

At the time, my 200 mhz box was able to shoot out between 4-8 frames per second. Not spectacular, but certainly good enough to move around the maps. Today, the same code can reach upwards of 25 frames per second on a smoking 800 mhz box (note: smoking refers to the fact that this 800 mhz box was somewhat "souped up"... not that 800 mhz is "smoking" anymore). This just goes to show you what Java can do with a decent data structure.

I haven't really touched the code since 1998 so it needs a bit of reorganization. I'll also take the opportunity to add support for the full-screen mode of JDK 1.4. I really look forward to seeing what kind of performance I can get with some of the newer 1.4 stuff.

See the full JQMap project page for more information and download links.

News Service API

Under construction.

Telnet Chat - MUD

Under construction.

Asteroids Clone

Under construction.

Unless otherwise noted, all above material - Copyright (c) 2001,2002 Paul Speed