Github

I published some of the utility code for Gamma Void on github under the MIT License. This is not intended to be a packaged library, but rather a collection of useful snippets that would have saved me a lot of time if I had found them in a github repository somewhere. The repository contains about 10k lines of code, about a fifth of the total Gamma Void source, and pretty much all the code that is not game-specific.

https://github.com/manylegged/outlaws-core

Highlights:

  • polygon intersections, interpolation, vector helpers, ternary digits, and more in Geometry.h
  • fast 2d spacial hash in SpacialHash.h
  • a class ‘lstring’ for fast symbol manipulation and easy to use string utils in Str.h
  • ‘copy_ptr’ and ‘watch_ptr’ smart pointers for managing sparse structs and automatically nulling object references on deletion, respectively, in stl_ext.h
  • C++ wrappers for OpenGL buffers and polygon drawing code in Graphics.h
  • Fast shader powered particle system in Particles.h
  • Color transformation utilities in RGB.h
  • mac/win/linux platform layer in Outlaws.h (implementations in ‘os’ directory)

 

Large ships

How large of ships can our engine support? Pretty large. One of my favorite things about game development (really just about computers) is seeing simple rules give rise to complex and beautiful phenomena.

Screen Shot 2014-02-04 at 2.59.02 AM

For example, making a huge grid of 2000 railguns and then firing them towards the center of the ship makes a really cool dragon starburst pattern. Each turret rotates to track the cursor, but at a limited speed, so the turrets make a cool rippling effect when the mouse is moved.

Screen Shot 2014-02-04 at 3.18.32 AM

Futher down the same ship engages a fleet of doomed red-orange ships. Presumably they are to busy trying to dodge do enjoy the nice sweeping pattern of the projectiles.