Vektor Prix

Vektor Prix supports singleplayer and online multiplayer, AI opponents with adjustable difficulty, a variety of weapons and levels, controller support, and gamemodes such as racing, deathmatch or team deathmatch.

Vektor Prix takes inspiration from some of my favorite games as a kid. The gameplay was inspired by Mario Kart and Twisted Metal. The artstyle was inspired by Battlezone, Star Wars (1983), and the general "futuristic-for-the-80's" aesthetic.



Vektor Prix started out as a simple 2D top-down racing game. The levels were originally sprite based, and the vehicles were drawn out of lines. The vector aesthetic of the vehicles were thought to be temporary at first, until I felt inspired by the Star Wars arcade game. The sprites in the prototype were switched out for lines, and after I had all lines being drawn in a single function, I realized how easy it would be to add filters and effects.

After creating a bunch of levels, I grew to dislike the blank barren areas outside the playfield. I attempted to draw 2D shapes for detail but everything felt out of place. Eventually I got ambitious and wrote a basic implementation for projecting 3D models on to the scene, and loved how it turned out. The ships and other small details were recreated in 3D, and I started on the long path to create enough models to detail every level.

The Windows 8 release deprecated functions that I was relying on to draw to the screen quickly enough to keep the FPS at 60. In order to get solid performance I had to rewrite all render code to support OpenGL instead. The performance gains from the switch were considerable, and I effectively doubled how many models appear in each level.

The first iteration of the multiplayer netcode was far too permissive. While it worked quite well when everyone was honest, it would have been trivial to cheat. I was forced to overhaul the netcode to be completely server authoritative, with the client only sending suggestions. This involved writing a system for the server to be able to rewind time, make changes, and fast forward as well.

Development of Vektor Prix has taken a long time, for a variety of reasons. First, I wanted to create everything from scratch instead of using established engines. Secondly, I wanted to make a game that I was truly satisfied with, and was too eager to add more features for far too long. Instead of planning out each feature in detail before I began, I iterated on the idea in every direction and refused to reign in the scope until recently. In addition, every time college starts back up I feel mentally exhausted, and lack the free time I once had. The game was accepted on Greenlight quite awhile ago, and I will release it. I just have a few more areas to finish up.