• Main
  • Past Work
  • Blog
  • Food Blog
  • About
  • Contact

Nathan Bowhay

Game Programmer

  • Main
  • Past Work
  • Blog
  • Food Blog
  • About
  • Contact

Upper Valley Realty

I was tasked with updating a website for a realtor and decided to rewrite it using the Laravel framework. I rewrote the entire site in a couple weeks and added features and the framework for additional features.

Features include:

  • Extensive tagging system
  • User accounts with privileges and email verification
  • Listing watch-list/Saving (Account required)
  • Mobile support with backwards compatibility to IE 7
  • Contact us form (not live)
  • Map view of listings
  • Image upload system with order and renaming support
  • Auto-delist after sold and period of time selected
  • Google maps location picker with support for entering lat, long, address (with auto-complete), clicking on map or using the center of the map
  • Full form validation and field value saving if error.

Along with using the Laravel framework I used bootstrap 3, jquery ui, jquery, dropzone, raphael, select2, durationpicker, sweetalert, locationpicker, google maps API and several Laravel packages.

You can check out the entire website aside from the listings edit form and other admin/realtor systems at: http://www.uppervalleyrealty.net/

Pro Item Sets

Pro Item Sets is made up of a C# command line program and a site using JSON, CSS3/Flexboxes, HTML, and JavaScript. All the source for both can be found on Github.

The site is made up of item sets generated by pulling top tier player match information from the Riot Games API and figuring out at different points in their game what was most commonly purchased.

It was developed by Me and Kyle Schouviller for the Riot Games API Challenge 2.0 from August 10th to August 31st 2015.

Since the contest both of us have been working on it to improve it and add features.

Feel free to check out the site: http://probuilds.lolteamtools.com/

Interactive Film

Pre-flight Inspection

Interactive film all done inside Torque Game Engine (TGE). It was created to visualize how swarm technology could be used to inspect an airplane.

Systems:

  • 2D motion graphics were done using flash by integrating GameSWF into TGE.
  • Arc system was also developed much like the one in Final Fantasy XII to illustrate communication between vehicles as well as the control center.
  • Speech bubble system was made that moved GUI's relative to a 3D objects position.
  • A typing text GUI was created to slowly display information.
  • Full play/pause/stop support

I worked on integration of GameSWF, developed the Speech bubble system as well as the typing text GUI and design of the arc system, but the arc system render code was written mostly by someone else on our team.

View fullsize Arc System
View fullsize Real Time Motion Graphics
View fullsize

SimTool (Real time virtual environment)

This was software written in Torque Game Engine, Torque Game Engine Advanced, and Later Torque 3D. It was used to visualize units from the real world and/or simulated in a 3D environment of their choice. It allowed for playing out scenarios within the confines of a small room.

Swarm units positional and rotational data would be calculated using motion capture cameras. That information along with other information would be gathered and sent over the network using a system Boeing developed. We could then send data back over that network interface or display things inside our software using that information. There was also a simulated (in matlab) version that could be run over this same interface.

I developed most of this network interface along with one other coworker who wrote the early stages of it. It required we figure out where packets were coming in and a way of distinguishing our own UDP packets from the games. We also used Perl scripts to handle multicast packets, some data verification and parsing which was later used. There was a binary and none binary version of this.

TGE/TGEA version

This was the Earliest version of our software. It was written in Torque Game Engine using the RTS (Real Time Strategy) pack. Most of the controls were similar to an RTS game. It was then ported to Torque Game Engine Advanced with most features coming over and allowing for some shader support.

It included the following systems written by us:

  • Speech Bubble system - System that allowed for Gui's move relative to a 3D object.
  • Custom Network interface - Allowed for UDP packets to be sent to our software for unit position, rotation and other data and us to send command/way-points to the Boeing system. Units would be spawned/removed using a combination of this interface and user input.
  • First person/Third person/Top down viewport - This allowed for an addition camera view based on vehicle selection and locking
  • Full level editor - Allowed for easy intuitive placement of static objects (trees, buildings...). Users could choose from a gallery of objects all with thumbnails and visualize semi-transparent 3D objects before they were placed. Objects could snap to terrain position as well as angle and the position, rotation and scale could manually be adjusted using a custom gizmo much like any other 3D editor.
  • Frustum system - used to visualize a vehicles line of sight
  • Command & Control system - User would place connected way-points that a vehicle or group of vehicles could then be told to follow.
  • Fog of War system - Used to visualize where vehicle have/haven't been.
  • Mini-map - This was already in, but was tweaked by us and allowed for visualization of all vehicles in a top down view relative to the environment mission bounds.
  • Trajectory system - Logging position/rotation data and visualized as a line to see where the vehicles have actually been.
  • Object Inheritance - Objects could have an inheritance that would be used when positioning them. This would allow for a group of objects to be relative to an object they were under.
View fullsize Boing Lab.jpg
View fullsize Command and Control Overview.jpg
View fullsize Command and Control Software 2.jpg
View fullsize Command and Control Software.jpg
View fullsize urbanenvironment.jpg
View fullsize
View fullsize

Torque 3D (T3D) Verison

This was the final version of our software and was developed in Torque 3D a much more modern version of the engine. Most of the features from before were either re-written or ported. Editing was much more like the built in editor with some addition improvements, much of which were UI, so that it was easier for novice users to use.

Some of the major additions from previous versions where:

  • Full Geographic positioning support for 3D objects
  • A network interface to send limited data from T3D to Google Earth to allow for visualization at the actual Geographical location. This system used WebSockets and standard HTTP packets and included a simple Web-server written in Torque Script the engines scripting language. All of the Google Earth end of things was written in Javascript and utilized jquery, angular and require.js libraries. I also started writing a simple traffic simulation system to visualize sem-realistic driver behavior. It allowed for placement of vehicles that would follow a route and change speed and lanes in a similar way to actual driver behavior. The system was somewhat randomized and all behavior fully configurable.
  • Much more advanced viewport system - an infinite number of view-ports could be created, tied to vehicle cameras or cameras in the scene. Each viewport was set to  a profile which was the view data (rotation/position), control scheme, as well as other visual configurations like grid settings, hud and more.
  • Full XMLRPC support was added for another way of commanding groups of units.
  • Full timeline mission planner that allowed for placement of items on a timeline, dragging and dropping them around on different tracks.
  • Cutscene editor - Allowed for creating cameras and objects and moving them along a path, both interpolated and non-interpolated, all along a timeline. It could be paused, played from a sertain spot and stopped. They could be saved, and loaded as needed and tied to a level/mission.
  • Weather Editor - Allowed for setting weather fx like rain or snow, wind speed and direction, fog levels, and sky parameters as well as sounds. Direction could also be set using a compass and everything could be tied to a level/mission.
  • A system to move and interpolate bones of an object based on the position of other objects was written to visualize several objects carrying a metal object and possibly bending it.
  • Advanced color picker - A color picker more like the one found photoshop or other art programs
  • Invalid text field visual queue system - Allowed for a different visual style when a bad value was entered
  • Full type conversion system - this was used in any data value field and would allow a user to enter a unit and based on what the setting for the default units where it would automatically convert it. For example meters to ft and so on. It supported Time, Length, Angle, Temperature, Speed, Coordinate type (Local/Geo), Digital Storage.
  • Writing/reading from JSON.
View fullsize

Past Work

BioFields

This is an Unreal Tournament 2004 Mod I made for a UWB Interactive game Design. We were a group of 5 people for the class and had my friend do all the art for it:

  • Ryan Bergan
  • Nathan Bowhay
  • Aaron DeMarre
  • Zach Oglesby
  • Ethan Verrall
  • Greg Gardinier - Did all the art

Ryan Bergan and I did most of the work though.

BioFields combines the elements of a real-time strategy game into a first person shooter. At the core of gameplay, the user has a base that is used to grow the weapons they will be using in the game. The user must make many choices, what to build and where, when to assault another users base, and when to defend there own. Players can effect the growth rate of other BioFields by attacking them, or the growth rate of their own BioField by repairing it. The game is a last man standing type game, where the game is over when there is only one player and BioField left.

One of the super unique aspects of it is we used the vertex animation feature in UT2004 to make the plant actually look like it was growing. We were going to update it and work on it more in UT3, but they removed vertex animation support from the scripting language so it didn't get finished. We also attempted to rewrite it as a Source Engine Mod which we called Symbios, but because of limitations on time and features in source we were unable to replicate it.

We didn't have time to finish the network code though so the host is the only one that everything works for.

Mod Files


EtchASketch

Simple digital EtchASketch I made using Visual Studio and C#.

Works like your normal Etch A Sketch, use the arrow keys to draw and the knobs rotate.

Exe

Full Project


Scuba Dude

View fullsize Main View
View fullsize Diving
View fullsize Store Menu

This was a simple game I worked on as the final project with a partner for UWB CSS450 or computer graphics. Through out the class we worked on a simple 2D Engine and then the final project was a game using that engine. We had about 28 days to make the game. It isn't the most creative name or story and there are definitely some things we wish we could have gotten done and fixed, but it was fun learning to make an engine and game from scratch.

The basics of the game are you are a diver who has to collect gold coins under the water. You can only stay under so long and must avoid hitting sharks. You can then go to the boat at the top and sell the coins to buy items like weapons to kill the sharks and oxygen tank to stay under longer or the airplane ticket which you need to beat the game.

Also we had to write a Proposal and Report as well so figured I would post them.

EXE

Full Project


Conquer The Campus

View fullsize ctcScreen1.png
View fullsize ctcScreen2.png
View fullsize ctcScreen3.png
View fullsize ctcScreen4.png

I worked on this website/social game for the University of Washington Bothell. The idea behind it is you would check into a location and them play minigames for that location in order to gain points. If you had enough points you would be the conqueror of that location. I worked on some of the site, the facebook integration as well as the minigame UWB Match'em.

http://depts.washington.edu/csscts/ctc/index.php


Other

This is other random stuff I have worked on or done code wise:

  • Wrote my minecraft server webpage from scratch using php, css, html, and javascript. It also changes to fit mobile browsers. Some of the content may not work as the minecraft server as been brought down, so the minimap plugin doesn't work: foreveralonemc
  • Wrote a Site for scheduling and organizing league of legends ranked teams. It allows people to make an account (signup with Facebook) enter when they are available and every week it figures out when to meat to play based on the team members availability. It pulls from several league of legends APIs to show team and team member stats allowing the team to see who is preforming the best. www.lolteamtools.com
  • Check out my articles on CodeProject.
  • Check out my resources on GarageGames.
  • Check out what I've done on GitHub, primarily with Torque 3D and some of my work at ESAL.