Spellcaster Studios

Make it happen…

Tag Archives: optimization

Optimization: Shader Cache

The shader system on “Cantrip” has some sophistication to it, and part of it is the fact that it generates the specific necessary shaders from a uber-shader (a big shader full of conditions) and a render environment that trims that uber-shader to smaller ones, depending on need… The problem with this approach is that everytime […]

More multithreading

And another day without a screenshot… Mostly work behind the scenes, but it’s going along nicely… Already can generate areas in the background and they work fine… It’s a lot of work, but most of it has been smooth sailing (which is a bit unexpected)… Need to deal with some crashes (to be expected) and […]


Today I started tackling one of the big optimizations: multithreaded area generation and management… Multithreaded code is always hard, since it demands a lot of care on how to build stuff, and since graphic APIs don’t like working multithreaded (at least D3D9 doesn’t), I need to work around that limitation as well… So started with […]

More bugs down!

Today was mostly a bug-hunting day, but I had time to do other stuff… First things first, I removed one of the big bugs in the game: a raycast issue that would sometimes cause the game to freeze… This was very hard to detect, but after I found a way to replicate it consistently, it […]

Optimization: failed!

Today I spent my evening trying to optimize the map generation (when the player lands on a planet) and the area generation (when the player changes areas). The map generation takes about 15 seconds on a normal map (this can be a bit more or less, but this is a good average), which is very […]


Today I worked on some bug fixing and optimization, namely on the voxel raycasting… I already suspected that my raycasting function was a bit iffy and missed some intersections, but today I got to confirm that and to fix it, while optimizing it a lot… So yesterday, while in debug mode, the game would drop […]

GLSL Optimizer

Today I integrated GLSL Optimizer to my shader code… It had some quirks: Doesn’t accept #line directives with name of the files, so I have to strip that when feeding it Doesn’t accept OpenGL 3.30 shaders   This last one isn’t that bad, although I was using 3.30 shaders (the tutorials I was using were […]


Let me tell you a story… As I said yesterday, I felt a real drop in performance with the pirate lair, and I couldn’t figure out what was the issue. The normal course of action (if you don’t have a decent profiler or are too lazy to find a free one) is to shut down […]

Light volumes…

In my test arena, I had some performance issues in same places, where about 9 lights were shinning in a greater or smaller degree… Considering that in a deferred renderer, the main issue is bandwidth (each shaded pixel needs at least 64 bytes of data to come in from texture memory – the G-Buffer), I […]