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.
Development
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 on Vektor Prix stalled out due to a variety of reasons.