Monday, May 8, 2017

Cosmoteer 0.11.4 - A Universe of Particles!

Last week, I released version 0.11.4 of Cosmoteer. Despite only being a minor bump in version number, this release has lots of new stuff! The changelog lists all of the many improvements and bug fixes in this version, but the ones I want to talk about here are the greatly improved visual and particle effects.

In order to realize my vision for how I wanted the visual effects to look, I knew that I would first need to completely rewrite Cosmoteer's particle code, because the existing particle code was both slow and too inflexible. By using some very low-level C# code (utilizing some great new C# 7 features), I was able to create a new particle system that is not only more flexible than the previous version, but it is also much, much faster. The new particle system can handle about 100 times the number of particles as the old system while maintaining the same framerate.

The new particle system has allowed me to create much more interesting and exciting visual effects for weapons, thrusters, and explosions.

The first visual effect I upgraded was for the thrusters:

This is a pretty big improvement from the previous thrusters, which for performance reasons had far fewer particles. (The quality of these GIFs aren't great -- you should load up the latest version of Cosmoteer to check out all the new effects for yourself!)

Then, I upgraded the visual effects for when the various weapons fire:

It's hard to see in the above GIFs, but the appearance of the laser and bullet projectiles has also received a significant upgrade.

Lastly, I upgraded all the various weapon impact and part explosion effects:

(You may notice in that last GIF that, when the reactor is destroyed, the explosion also destroys much of the surrounding ship parts. This "collateral damage" is a new gameplay mechanic intended to make you think more carefully about where you place reactors, ammo factories, and cannons, all of which cause collateral damage when destroyed.)

If you're worried that your computer can't handle all the new particle effects, then fear not, I have a trick up my sleeve! Most of the particles you see above are actually "pre-rendered" as simple sprite frame animations. The sprite animation serves as the "core" of the effect, providing most of the visual punch. On top of the core sprite animation, extra particles (such as debris pieces and smoke clouds) are created to give it more visual interest and variety. But these extra particle are entirely optional and can be turned off by disabling the "Fancy Particles" option in the game settings. With this option turned off, Cosmoteer actually renders fewer particles than in previous versions while still looking significantly better.