Programming For Fun

A 3D Engine

I wrote an entire 3D engine. This includes textures, lightning, gravity, memory management to allow the loading of worlds that are far too large to load into memory, movement, user interaction, events happening without user interaction, loading a few of the simplier 3D model formats, and so on. In particular, I have focused on the creation of functionally defined content, such as generating random terrian, and objects for a 3D world that looks realistic within the confines of the narrative of the world. I have a lot of interest in the generation of content through algorithms. This includes both the layout of worlds, the generation of specific objects in a world, and even the plot and language of characters in a world. Nevertheless, this is strictly a labor of love, not something I have much interest in doing research in, at least at the moment.

A 2D Tile Based Engine

Similar to the above, this is an implementation of a standard 2D game engine. It supports numerous geometries, from hex, to square, to diamond, and etc. It also supports the random generation of terrian, as well as multiple 2D layers, such as for air units and land units. It can automatically produce minimaps for the generated worlds using one of 3 algorithms. Someday, I will have to get around to added sound support.

A Trade Game

I implemented an entire trade game, set in space. The game included fairly challenging AI, market predictions, savings and loan accounts, insurance, goods to trade, about a dozen ports of call, a bidding system for rare goods that the NPC merchants would occasionally auction, random events, and various types of facilities available for construction or purchase in the various ports of call. In addition, players had to manage overhead costs such as fuel and crew costs.

Programming For Work

Remote Control for Lasers from Cellphones

I wrote software to allow cellphones to "call" the lasers produced my client, and issue various commands to alter the laser's behavior, such as the inclination of the beam, the pulse rate, and so forth. In particular, I learned that very little is required to be qualified as a certified JVM, and to address this short coming, I was forced to write many JNIs to implement features, such as networking functionality, that were not implemented in the certified JVM.

Point of Sale Systems

I wrote, with another programmer, a system to process contracts and orders for the million plus customers of the client. This included eventually encrypting all the stored customer information, so that it would only ever be decrypted in memory. Further, it required that even if key for a single record was compromised, that this would not allow an attacker to read any other record, aside from the one that they compromised.

Tax Sale System

I wrote, with two other programmers, a system for the processing of delinquent property taxes. The main challenges of this project included learning the entire taxation for process for property taxes, and ensuring that the system met the strict guidelines set out by the legislature for reporting, timing of sales, when properties could be redeemed, when taxes could be paid with what penalties, and so on.