Romulan Attack!

By Zachary Griffith


This project was inspired by the Star Trek episode, “Balance of Terror,” miniatures games Starfleet Battles and Federation Commander, and the Starfleet Command video game series.

In Romulan Attack!, you play a Romulan Warbird that flies in a star system in early formation, blasting away asteroids and enemy ships.

All objects move in 2-dimensions. Your Warbird is able to speed up, slow down, and even reverse. The Warbird banks gracefully as it turns.

Your only weapon is an advanced plasma torpedo. It is slow moving, but deals devastating damage to asteroids and enemy ships. However, it has a slow recharge time, five seconds, before you can shoot another one, unless you destroy an asteroid or ship.

The plasma torpedo uses Perlin noise generated texture to give it a plasma feel.


Your mission, defend yourself from the asteroids in this newly formed star system and drive out the Tholian intruders!


W: Speed up

S: Slow down/reverse

A: Bank left

D: Bank right

Space: Fire plasma torpedo


There were a handful of problems encountered when creating this project. First, when I had downloaded the Romulan Warbird model, I found that the texture that came with did not work with OpenGL. However, I remembered that I had a copy of Starfleet Command II: Empires at War; I found a piece of a texture for a Romulan ship in that game, and used it for the full texture for the Warbird.

Next, I noticed that, for the yaw motion of the Warbird, if I used the yaw as the rotation angle of the Warbird, the Warbird would rotate slower than it would turn. Thus, I had to modify the rotation of the Warbird to match the turn.

Next, my initial goal was to have the Star Trek: The Original Series era USS Enterprise serve as the target ship(s) to shoot at, and thus more closely match the episode “Balance of Terror”. However, every model I found of the USS Enterprise would not render properly in OpenGL as, while still being .obj files, they were designed for other Graphics Rendering programs. Thus, I had to improvise and use a model for a Tholian Destroyer, another classic Star Trek ship, as a target instead.

The biggest challenge, however, was time. There were a lot of features that I wanted to implement in this game that I simply did not have time to. My solution was to focus on the important aspects of the project and what made it a game, and then move on to what other goals I had time to complete.



Some of what is discussed here was used in implementing the camera follow:!Getting-started/Camera


This C# pseudo code helped a lot with making my camera follow the Warbird:


Romulan Warbird OBJ file by Jonathan Rich, distributed by Madison Bruffy.

Romulans and any other Star Trek item or reference are owned and copyrighted by CBS Studios and Paramount Pictures.


Romulan Warbird texture used from Star Fleet Command II: Empires at War.

All Star Trek references and items owned and copyrighted by CBS Studios and Paramount Pictures.


Tholian model by Kenney Mitchel, distributed by Madison Bruffy.

Tholians and any other Star Trek item or reference are owned and copyrighted by CBS Studios and Paramount Pictures.


Texture used for Tholian ship:


Asteroid texture designed by Chris Laurel*.

*Author unknown, assumed by website of download.


Initial codebase for this and all CPE 471 code developed and owned by Sinjiro Sueda and Zoe Wood, Cal Poly University.