X-Craft is a 2D, top down cooperative game where two players take control of a boat in order to defeat enemies. One player takes the role of the driver. Their job is to steer the boat and manage the ship's energy. The other player takes the roll of the gunner and manages all of the ships weapon systems. This game was created entirely in C++.
Technical Director
Graphics Programmer
Programmer
Seven
C++
OpenGL
Json
Git
Visual Studio
Designed and created 2 OpenGL graphics pipelines
Established a core engine architecture for managing a game engine and game objects
Formulated a space management system for rendering multiple game displays in a single frame
Developed a shader to render top down water to a screen
Gabe Miller - Producer, Programmer
Zach Dolph - Audio Programmer, Programmer
Calvin Hughes - Lead Artist, Game Director
Jonathan Williams - Level Designer
Lars Aarhus - Lead Sound Designer
Sukayana Ratanotayanon - Graphics Programmer
While working on this game, my primary contribution was the graphics pipeline I created to render the game. You may have noticed that I said I created two graphics pipelines in the table above. It's true, I actually did create two, but the first was so incredibly terrible that I needed to go back and refactor it from the ground up. Here, I will briefly describe the final results of the system and how they work under the hood.
- Currently Under Construction -
This project was the first project that I used custom shaders in. One of these was the water shader used in the game. Though it is not very complex, I worked on a few features in order to give the water a stylized look that can be changed with ease.
There were a few goals that I had to meet when creating this shader. It had to match the art style of the game fairly well, represent a water surface, and scroll across the screen to accurately represent the motion experienced by the player's ship
Below, there is a download link to the shader's source files and two links to gifs that show the results produced by the water shader. The bulk of the shader code is in water.frag. This file has also been fully commented to provide an in depth explanation of the shader and how it works.
I do not think that X-Craft turned out to be the best game that I had the pleasure of working on, but I am definitely proud of it. Before X-Craft, I had only made games in pre-built engines and Visual Basic. X-Craft, however, was the first game that I worked on from the ground up in C++ with seven other talented teammates. Before starting this project, I didn't know what glGenBuffers(1, &vbo) meant or what it was supposed to do. I had no idea why matrix transformations could move graphics on the screen. I wasn't even fully comfortable with typing and entering git push origin [branch_name]. Now I have that aliased because it was too many keystrokes. Unlike any other project, this is the project that took me from a noobie programmer to a decent computer scientist who isn't affraid to get messy with some code.