Cody Luitjens

Projects

Curves

Details

This project has the following 6 curve algorithms implemented:

  • Bezier Curve - Nested Linear Interpolation
  • Bezier Curve - Bernstein Polynomials
  • Bezier Curve - Midpoint Subdivision
  • Interpolation - Polynomial Interpolation
  • Interpolation - Cubic Splines
  • B-Splines - DeBoor Algorithm

All curves are able to be edited and control points moved in real-time.

Screenshots

DOWNLOAD

BSP Tree

Details

This project required the implementation of a Binary Space Partitioning Tree on a given scene.

Root selection was done by pre-computing the polygon which will cause the least number of polygon splits throughout the scene.

The framework was provided by the professor.

Screenshots

DOWNLOAD

Bump Mapping

Details

This project was a culmination of the 300-Level graphics course. The following is functionality this project includes:

  • Software Scanline Rasterizer
  • Phong Lighting
  • Mip-Mapping
  • Bump Mapping

The framework was provided by the professor.

Screenshots

DOWNLOAD

Shadows

Details

This project was a culmination of the 200-Level graphics course. The following is functionality this project includes:

  • Rotation, Scale, Transform Matrices
  • Viewing and Perspective Transforms
  • Triangle Rasterization
  • Object Culling and Clipping
  • First-Person Camera Control using Spherical Coordinates
  • 3D Object Picking
  • Shadows

The framework was provided by the professor.

Screenshots

DOWNLOAD

A* Pathfinding

Details

This project required the implementation of the A* search algorithm. It was required to compute one step of the algorithm at a time so as to be flexible in its integration into projects.

There is the option to change the heuristic weight on the search which can help or hurt the efficiency of the search. If it is set to 0.0, the search is basically doing a Dijkstra search.

The framework was provided by the professor.

Screenshots

DOWNLOAD

State Machine

Details

This project required the implementation of the Macro-Based State Machine Language.

One agent is selected as "it" and they randomly check pre-set hiding spots in an attempt to find the other "hiding" agents. Every "hiding" agent randomly chooses a hiding spot and hides there until they sense the "it" person is near. At that time they attempt to run to another safe zone.

The framework was provided by the professor.

Screenshots

DOWNLOAD

Player Emotion

Details

This was a research project based on the importance of assets on game Artificial Intelligence.

Fuzzy logic is used to calculate happiness and scared values based on the player's location in relation to other objects. These values determine what audio clip is to be played next, which audibly represents what the player avatar is feeling.

Screenshots

DOWNLOAD

Audio Tool

Details

This was part of a large team project for an audio class to make a low level audio engine, high level audio engine, and a tool. Two classmates and myself were in charge of the tool.

The tool had no specific requirements except that it had to be able to interface with the high level engine. This tool has the following features:

  • Create Events
  • Create Global Variables
  • Edit Pan, Volume, Pitch, and Reverb
  • Set the order and time in which sounds within an event are played
  • Pitch Shifting
  • Looping
  • Streaming

Screenshots

DOWNLOAD

Gameboy Advance

Details

This was a Nintendo Gameboy Advance game demo made using C with the HAM Library. This project required the following

  • Multiple Screens
  • Background Fading
  • Viewport Scrolling
  • Player Movement
  • Player Animations
  • Object Collision
  • Rotations

Roids is an asteroid dodging game. The goal is to move your ship up and down, avoiding the spinning asteroids as your ship soars through the asteroid field.

Screenshots

DOWNLOAD

Gameboy Color

Details

This was a Nintendo Gameboy Color game demo made using Assembly and the NO$GMB simulator. This project required the following:

  • Multiple Screens
  • HUD
  • Bounding Box Viewport Scrolling
  • Player Movement
  • Jumping
  • Player Animations
  • Object Collision
  • Tile Sets (Level, Enemy, Player, Letters, Numbers)

The game, DigiBoy, is a platformer where the objective is to reach the key at the end of the level. Use the platforms above to move DigiBoy over the Panda-Guard, dodging his fireballs, and reach the key on the other side.

Screenshots

DOWNLOAD