Sponsored By

PEST Preemptive Stress Testing Is It A Good Idea?

I am a fan of Pre-emptive Stress Testing (PEST) my games.

There is nothing worse in game development than working on a game and as you add more levels and content the performance of your games system declines.

PEST is one way you can prevent this.

Allan Rowntree, Blogger

November 14, 2016

2 Min Read
Game Developer logo in a gray background | Game Developer

Space Invaders PEST style.

OK I'll admit I find optimising fun, it's a design challenge and a resource challenge at the same time.

My background is IT and then Independent games development mainly with Unity.

I am also in my 40's so it amazes me when a modern game engine and hardware appears to struggle to do what used to run on hardware thousands of times slower and smaller than our modern supercomputers we use for games.

Take my above example of Space Invaders running in WebGL (you can try it here), if you use the default components and approach that comes with a modern game engine like Unity.  Each of the invaders would start out as an object with a sprite, collider2d, rigidbody2d and have the ability to drop a bomb and respond to being hit by a bullet.

If like me you adopt Unity's component style of development, you end up with Health, Damage, Controller, Ship and Invader components.

Which is a great way to write games as you can divide and conquor your games design.  There are trade offs in coupling and cohesion where you are relying on events from the game engine to trigger explosions and removal of invaders or shields.

All very abstract and layered and a long way away from the actual hardware that is running the code and displaying the game.

Which is fine as long as we are dealing with the modern supercomputers we use for game platforms.

So why use PEST on Space Invaders, well another developer was showing their managed approach with Unity and using Space Invaders as an example.

He used Unity as little more than a display system, discarding the Object/component based approach I teneded to use.

His old school way of writing a game was alien to my OOD/component based way of doing things, it was also way more code.

So I challenged him on performance, my approach was leaner and faster to develope than his but could it run as fast.

Quite simply No, the inherent overheads of lots of invaders with physics moving around quickly ground to a halt when we upped the sizes of the invading fleet.

This triggered me to start optimising my version that resulted in giving his version a fun for it's money but it required big overhauls in the inherent design of the game.

Invaders could not be individual Units they had to be moved as a single wave of elements.  Pre-emptive caching of references was needed to reduce overheads.

The game you see above is much more perfomant than the original game and fundamentally different in how it is designed.  And this is a simple example of the impact of using a PEST driven development approach.

Do you PEST your games and do you think it would be a useful thing to do?

Read more about:

Blogs
Daily news, dev blogs, and stories from Game Developer straight to your inbox

You May Also Like