Projects

Some of my work can be found on my GitHub account, but my current academic work is generally kept more private until the class is complete. I can, however, discuss some of my current work.

Network Simulator
a graphical user interface

Network Simulator Interface

One current project that is near completion is a simulator of a home network that was done as a group project for a course in networks. The simulator tests home router bandwidth allocation algorithms by allowing users to customize the devices connected to their network, the speed of their network, any obstructions (walls, floors, etc.), and required bandwidth of applications being run on the connected devices.

The simulator was developed in Java to be platform independent (our group consists of members using Windows, Linux and Mac OS). It features a graphical user interface that can be used to create devices connected to the network and select which applications those devices are running. The settings of devices, applications, obstructions, and the network are read from a JSON (JavaScript Object Notation) file.

The simulator also allows users to set the connected devices to be key devices ensuring that they will always be prioritized to get enough bandwidth to function if it is possible. A real-world example of this is if you have a baby monitor connected to your wireless network. You would want this to always be working, even if you start streaming 4k videos on Netflix when you don’t have enough bandwidth to do both simultaneously.

Story Telling Engine

This is another current group project, but with a lot more work left to be finished. It is an engine made in in C++ that uses DirectX and is the equivalent of an undergraduate thesis project for those doing a minor in software engineering. The project is lead by Mike Katchabaw. The engine allows for the insertion of dialogue scenes into video games. The goal of this project is to take this existing engine and move it into Unity which would make using it for cross-platform games much simpler. It would also make it more extensible.

Below is an example from the game “Metal Gear Solid” of a scene our engine would like to be able to create:

A sub task of this project is to do away with the old XML (Extensible Markup Language) format that the framework reads in, and make it use JSON instead. This would simplify the files it reads and make them more modern since developers have turned to using JSON over XML on newer projects. There are also some features that we would like to add such as being able to play music or voice recordings.

We hope to get this framework into Unity’s asset store to help making story driven games easier for others.