Becoming an Indie

Well it’s been a while since I’ve written anything down on this blog. I’ve really got to stop doing that, but hopefully with the changes in my work and life that will probably change. Things have been pretty hectic this year: Forming a game design company, making an indie game, getting busy with other licensed games to work on. It’s mostly why c17:ep1 hasn’t seen release yet.

That’s the bad news: City17: Episode One probably won’t be coming out for a long time, and when I say long I mean like REALLY long. Probably more than a year. There are just way too many things that have taken over my time like not going broke. C17 however shall not fade away into the shadows in vain! We do plan to release it eventually but that’s going to be up in the air. We always intended on releasing c17 and it’s content to the public for use, this included shaders, particles, materials, models, etc. I am happy to report that is still going to happen, and sooner before the release of c17. So soon we’re talking next month December soon.

In other news we’ve just released Black Snow which you can grab here (I’ll be adding an official section in the tabs at the top of the page in RELEASES). It’s a base of sort for our upcoming indie project which at this point I can only confirm that it’s on Source and it will also most likely feature some open source stuff once it releases. Black snow was a small personal project of ours, mostly headed up by Kremator our lead designer. It’s a horror adventure games that focuses on narrative through the exploring and deep atmosphere. Give it a try and tell us what you think!

Next to that you’ll find all of our open source stuff on this site in the coming month. We’ll keep you guys posted and we’ll also be making the relevant posts onto moddb and interlopers and I guess everyone else we can fit it onto. There are some other developments but I’ll most likely post about those later in December along with the c17 content release. I should not that this content does not include any c17 specific content such as maps or vmf’s. Unfortunately it also does not include any c17 gameplay elements or specific programming systems. We’ve spent a great deal of time working with source 2007 only for it to end up sucking the big dick (it’s a terrible engine to work with) We’ve officially moved onto Alien Swarm and specifically deferred rendering which we’ll be making huge adjustments to within the coming few months that will be released officially on the Deferred Swarm SVN.

See you guys in December!


Big Change of Plans

It’s been a while since we’ve updated this site, or our moddb about City17. There’s been a ton of stuff happening lately that we’d like to talk about, but we’ll consolidate it for now. For news on c17, visit the moddb site. For everything else read on beyond the jump.


It has been a while

So now with the holidays being done, and also a ton of birthdays throughout, we are finally getting back to work (if dota 2 lets us). We’ll finally be finishing up city17 (yes seriously). Voice acitng is amoung the last of the things to do. We’re also polishing up any rough edges the mod may have throughout, and then doing heavy playtesting again. We’re considering doing a somewhat closed beta kinda thing, not entirely sure though. We’ll post more details about that later though.

We’ll be getting back into the groove of posting on the blog and moddb more now. I can’t say any exact release time frame outside of the fact when it reaches top quality and it more or less snuggles just right we’ll call it done. But I don’t see that going past the Summer of this year.

Development Blog: Level Design – Evolution of a Parking Garage

Above is a picture of the old version of map 03, the garage, from 2009. While that version of the map played alright, there was still a lot of room for improvement and it was too similar to the Episode 1 garage. In mid 2010 we decided to start a new version of the garage from scratch. Below is a picture of the first version of the new garage.

Instead of being a series of strung together small to medium semi-destroyed garages like the old version and like Episode 1’s garage, this version takes place nearly entirely in one large collapsed underground garage. The main floor area includes the expanded Antlion Guard fight while the rest of the garage is an upward explorable zombie adventure to the surface.
While this new garage was an improvement, the layout was still very rough and the art still left a lot of room for improvement. Nearly all of the debris and broken concrete slabs in the version pictured above were made from displacements or brushes and the entire garage used mostly stock Half-Life 2 content, which included the debris piles mentioned in a previous blog post. Over the next few weeks we set out to replace or edit most of the stock content used in the map and replace the brush/displacement placeholders with proper models.
We tried to keep all of the models very modular and tried to use the same textures as the remaining brushes in the garage to save on texture memory and keep a continuous look. On certain models separate damaged materials or modified normals were used to give the models a more damaged look compared to the remaining sections of the garage still somewhat intact. Along with the new models we refined the layout, lighting, and post process effects. The latest version of the garage uses nearly all custom content or modified stock content and came out much more unique and exciting than the previous garage. Below are a few shots of some of the modular models used in the environment and a screenshot of the near-finished garage.

We modified the stock Valve concrete wall textures in these models, desaturating them to fit the color theme and oldness of the garage a bit more. We wanted to make sure the Garage felt like it had been abandoned for quite some time, and antlions utilized it as their home. Later on during the art pass process we started talking about adding in foliage. This next shot is from an earlier version of the Garage, we’ve taken the vines out to convert them into fully animated models using a new shader we’re putting together we’ll talk about in a future blog post.

Why did we change it?

It was Ugly. Art wise we’ve been spending a lot of time transitioning from stock Hl2 content to fully custom generated content. This ranged from models, sprites, and even soundscapes. This was the first map were we fully went into the “entirely custom content” test, and went wild with it.

It was Dark. The previous map was super dark. Monotonously lit throughout. Early on we knew the entire lighting mood and theme had to change, so we went with the inverted of what Episode featured: Warm lighting, and mostly fire lit sections with occasional lights that still had power. This overall change added a lot of color variation throughout making the garage feel slightly more vibrant than previous. The next biggest change was the central light source. We put a big sink hole in the ceiling of the garage and redirected the sun to cast right down into the garage. For light bouncing we rigged up a couple of fake light entities with a fairly large constant. The Guard battle takes place on the lowest floor, where the majority of the sun light is hitting. This was an art choice we were very happy with, as the light not only acts as a vista or center piece for the environment, but also functions to light up enough of the gameplay areas, a problem we had with our previous garage.

Gameplay was boring. The guard battle was pretty disappointing in the older version of the garage. You killed him, the progressed through a  fairly empty layout gameplay wise. In a later version of the garage we created an entire side section to the main complex, where the guard battle would take place. This made the area funner than before, but was still not as great as it could have been. In the latest revision of the garage we spawn in antlions randomly throughout base floor. Also, because the ground is mostly debris and dirt, the Guard can now bark to summon antlions to aid in the fight. The battle instantly went up in scale.

Development Blog: Programming – FXAA

Today we wanted to talk about FXAA, what kinds of magic it brings to the table, and what kinds of magic it doesn’t.

First and foremost, what is FXAA? FXAA is an anti-aliasing method developed by Timothy Lottes over at Nvidia. During it’s developement, Timothy set three major goals to what FXAA should accomplish:

  1. SCALES – Full performance and quality scaling from the low to the high end. Use the same code on console and PC and it just works. Can adaptively adjust FXAA cost at run-time for adaptive frame-rate control.
  2. QUALITY – High-end quality of FXAA II is a tiny better than FXAA I, low-end quality is remarkably better.
  3. BETTER FXAA+MSAA – Attempting to provide better quality when mixing with MSAA or another AA method. For example 2xMSAA for better sub pixel features + FXAA for better edge gradients.

FXAA source can be found out in the wild now, as well as on Timothy’s blog spot.

Technical bits and bobs

So, getting on to the good stuff. FXAA is a pretty great anti-aliasing method. One of it’s biggest upsides is that it applies aliasing to not only polygonal edges, but also to textures (with alpha channels as well) and even post processing effects. More or less, it applies to everything on screen almost. FXAA costs nearly a twentieth of the cost of MSAA, it’s even lower then the lowest of MSAA methods such as 2x -4x MSAA while being able to provide a better quality than the two. We’ll be supporting FXAA in city17, and we suggest turning off normal AA, and turning on FXAA for the amazing frame boost. Before getting too ahead of ourselves though, let’s get a little more technical about our implementation of FXAA.

We didn’t really know how well FXAA was going to work when we ran into it, but we decided to give it a go, and implement it anyways. Magically it worked on the first compile.  FXAA offers some flexibility and customization right out of the box. Currently we are using FXAA implementation 3.11.

When we implemented FXAA we were quite amazed with the performance, however there were a few good and bad things we noticed:

  • Offers better quality than the lowest of MSAA methods out there, while being cheaper. Typical FXAA is about 2.0ms at 720p.
  • FXAA 3.11 has some bigger optimization: 2.2ms cost at 1080p, about 2.0ms on 720p still.
  • FXAA applies to not only polygonal edges, but also to translucent and alpha-tested textures. Big plus here for alpha-tested textures because of how horribly alpha testing rapes image quality.
  • FXAA can still be combined with MSAA methods. We ourselves currently use 4x MSAA and still are able to enjoy the benefits of both methods at once, while still retaining a better cost then jacking AA all the way up.
  • FXAA applies to post process shaders as well, such as our god rays.
  • Lastly, FXAA offers a nice amount of headroom for other bigger things we’d like to spend budget on.
  • Blurred the entire screen
  • Lost some detail in textures because of the way FXAA worked.

While two drawbacks pale in comparison to what FXAA brought to the table, those two issues were rather large and annoying.If we wanted to fully support FXAA we new we’d have to do something about the loss of quality in some high res details.

Frame counter on the top right of the image!




Using full screen Sharpen Filters to get details back

This is where our Unsharp shader came to the rescue. Our Unsharp shader is a feature we talked a while back in one of our updates.

Unsharp Mask is a high quality sharpening algorithm. In City 17, Unsharp Mask brings out texture detail that is normally hidden or lost.

For FXAA we modified our Unsharp shader so it uses specific settings when FXAA is turned on, and reverts back when FXAA is turned off, or normal MSAA/other AA methods are in use. Lets look at the previous images again:


Unsharp FXAA

Here are a few more comparisons of just FXAA and Unsharp FXAA:



Unsharp FXAA

As always a lot of this is heavily wip. We have a couple of other expensive shaders on at the moment so the overall frame rate is effected by these somewhat costly shaders! However AA perf in all the shots is still indicative of actual performance costs.

So in the end, Unsharp gets us some nice quality back with FXAA that we lost. We are applying Unsharp post FXAA when FXAA is on. The Unsharp settings however are longed to be tweaked, and we shall continue to do that to find the right middle ground of bringing detail back, but also not sharpening the fuck out of it. You can expect to see FXAA in a media release later this autumn, accompanied by a gameplay video.

Development Blog: Modeling – Triangle Counts to the Extreme -Updated

This sort of larger goal we’ve had with City17 is improving the visual quality as best we can. Taking advantage of what the Orange box version of Source shipped with, and more or less exploiting that to our needs and wants. The majority of those shipped features and enhancements has mainly contributed straight to either performance, lighting and shadowing, and shaders galore. One of the more mysterious pushes we’ve been working on lately is a combination of not only hardware advances in the past years since Orange Box shipped in 2007, but something the OB engine version also shipped with: Slightly better model rendering performance.

That budget isn’t going into new weapons, or higher poly npcs, but straight into the world where it really belongs. It’s a change we’ve made we’re really happy with. In terms of how much it’s pushed City17EP1 away from the flatness of the standard City17 art aesthetics, while maintaining a level of performance we’re also happy with. We’d like to think of it as a total conversion approach, without fully going total conversion. We’ve taken on the task of replacing a decent amount of stock content so we can not only get better rendering costs, but richer environments.

Some of the current additions:

Making things not as flat!

Some stats:

  • There are currently 8 skin variations of each window
  • There are three window models in total, one thats basic square, one that has fancy egdes, and one thats meant for tall thin panes, the more elegant windows you’d natrually find in the real world Sofia Bulgaria.
  • The window models sit between 20-40 Triangles.

One of the biggest things we’ve learned is that window models get expensive fast. For us that’s double the quick because we’re already rendering god rays. God rays redraw the world to understand whats opaque, and whats translucent. Sadly we can’t selectively draw certain parts of the world. If the sun is visible, so are our sun rays, and that means the world is being drawn a second time. You can consider it like doubling the cost of a single window model. In a type of example, its current triangle cost goes up from 20 to 40 instantly.

Thats not even the end of it yet. We also have projectedtextures, which are more commonly know as the flashlight. These entities cast real-time shadows, by (you guessed it) redrawing the scene again based on thier casting distance. So this isn’t as expensive as rays, but it does double the cost of what is within it’s casting range. Generally thats around 25x25x25 feet in front the player. So now we’re drawing the world twice now and then, AND thats STILL not even it yet. The player can turn on his own flashlight at any given time, re-rendering that same scene again.

What was once 40 triangles can now be considered 120. On average there are about 30 windows visible on a building’s face. Each one is decorated with a window prop. That’s generally about 400-600 triangles just on one single building face. This is added on top of the other scenery we’re already rendering, including NPCs. How do we handle such a cost?

One of the greatest advantages of having windows as models is that we no longer are constrained to the repetitive-ness building textures provide.

Without skins, but depth!

We’re still limited in terms of how many variables of windows we can have visually. We’d like to keep them light on overall texture memory.

Before, we would have to place walls, and cut them up every 128 units vertically if we wanted to have a different set of windows per each story of the building. This was still fairly cheap, but the largest cost went over to brush rendering. We still use a slight variation of the previous method to change the borders and trimming now and then, but because we can place windows anywhere we no longer have to worry about using the textures we did before. Now we can use versions of the building textures that are windowless and save on texture memory. Secondly because we can now place windows anywhere we don’t have to worry about splitting up brushes. Brush cost goes down and the cost transitions over to the GPU rather than the CPU which is always going to be faster for this kind of a job.

The triangle count is still fairly high per building face. City17 is all about the debris and destruction though. Where one triangle count is high; it’s likely it’s way higher somewhere else. Higher than it honestly needs to be. 600 triangles per building face seems like a lot, thats also 600 more per building than what valve maps shipped with. We’re still reaching a higher cost than general, but heres where that got better; Part of the “replacing stock content” goal came in the form of this little guy:

We changed the texture for those familiar with this model.

He’s 1411 triangles. Yes. 1411. We often had at least 5-6 of these guys rendering at once, much like valve did. But we had a few problems with this model:

  • It was really expensive for it’s size. It’s a debris pile with a radius of 256x256x32.
  • Because of its height it didn’t cover a large area and often we had sections that where beyond 512 units in length that would require multiple instances of this single model, resulting in a decent triangle count in that scene.

So we didn’t remodel it, and we still use it for variety now and then, but we sure did replace it:



The upright concrete slab thats lit up is not part of the model.

That pile is a single model, albeit a little larger (these areas are still WIP) but it’s tons cheaper than the previous model. How cheap? 578 triangles, yes thats right 578. Not only do they cover a wider area, but they are less than half the cost of the previous model mentioned. We can have two of these newer models in place of the older ones; end up having way more detail and still less cost than before. These ended up being so cheap we opened up a huge headroom in the overall budget we had, allowing us to afford more detail overall while still being able to afford sun rays and flashlights in the scene.


We fade out all the window models at certain distances, so that keeps rendering overall fairly cheap. One small cost we’ve been able to reduce is also moving ashes from client-side CPU handled effects to particle system based ones, which in turn brought particle cost way down, but thats a story for another day.

Morale of the story: Don’t use stock content Valve made back in 2003.

Next time we’ll talk about sun rays.

Developer Blog: Animation – Mocapping

This is gonna be a little bit of a short one, but today we wanted to talk about a form of animation we’re going to be heavily using called mocap. Using mocap we’ll be able to deliver some pretty fluid animations. We won’t be able to mocap everything, so we’ll still be hand animating some stuff.

Here are a few of the mocap tests just recently done:

Summer Update

Website changes

So, a few of you have noticed that we aren’t using our new website we put up a few months back. Long story short: It got raped nice and hard. We had so much tube clogging (bandwidth usage) from the Portal 2 contest that made our Web Hosting not very happy, and our wallets. Regardless, we press on! We’ll be back to our wordpress site now. THis means we lose fancy things like our forums and such, but we’ve implemented a few more things here to somewhat substitute for that.


Posts and comments allow ratings now. Feel free to rate our posts and others comments to tell them what you think!

A new Theme!

We did a lot of work to the theme we had on the website, but it can’t be used on the free wordpress here. However, we’ve gone out and found a really nice, clean theme. Hopefully it will be easy on the eyes of you late night readers.

City17: Episode One Progress!

City17 has been chugging along. We’ve just ended the smallest Summer break any of us have had, ever. That means we’ll be back on c17. It also means it’s going to be really, really hot, seeing as the majority of the team live in mega hot locales.

We’re planning on doing a pretty big media update soon, but until you guys are gonna have to hold on tight, like a stalagmite. In the meantime, here’s some small media:

Click me for larger image! Content is still WIP


However, as much as we hate to, we’d like to announce that the original release date of July/August is not going to happen. At this point I should probably do the team a favor and stop projecting release dates! So c17 is TBA on it’s release date. However I can’t help myself, so I’m going to go out on a whim and say that we are all working hard to make sure that the latest would be early next year.

Team Bloom and Gear Studios join forces!

Like Captain Planet, and the Planeteers. We’re still trying to figure out who on the team is Captain Planet now.

Gear Studios and Bloom have teamed up to form one huge katamari ball of awesome. Starting off, there’s no doubt we’ll finish City17 and any other projects we’ve been working on. What we can say is that we’ll be moving a lot of cool fancy shaders we’ve shown in media releases over the past months onto Canvas.

Be sure to check out Canvas if you haven’t already, it’s some pretty badass stuff!

City17 New Years Update Part 2

The Update Strikes Back

One of the largest design aspects of City 17 focuses around using the most out of the newest features the Orange Box engine brought online: Particles.

Orange box introduced a whole new Particle system brought out of programming and placed right into a friendlier, more effecient and less costly “on the fly” editable format. As we’ve mentioned in previous news updates we’ve been focusing on replacing a lot of the older code based Half Life 2 enviromental effects. Since then we’ve entirely replaced everything ranging from fire, impact effects, water, water splashes, dust, explosions, weather effects, and weapon effects such as muzzleflashes and tracers.

In older news updates we’ve always presented screenshots of them, but this time we feel a video is the only way we can do these new effects justice. Sadly we didn’t have the time to get them done in part 1 a few days ago, sorry for that!

Depth of Field

We’ve created both a simple and cheap Depth of Field effect for basic implementations such as iron-sighting and scenes.

We debated pretty hard on this one. It hurt our souls to commit even more map media and actual sections of gameplay then we had intended. “Wait, more than what we’ve shown on Day 1!?MADNESS!” shouted 1/4 Life as he slammed his head into the wall leaving a rather large hole behind, then storming off in pure rage.


1/4 is now off for the holiday, as his forehead slowly heals. That’s it for part two! Drop us your thoughts in the comments below, or feel free to send us an email at! This only marks part two of our Three-Part New Years update, come back later in the week for more!

The New Years Update

We’ve just finished up getting content ready for our huge New years update which will unfold across the tubes (hopefuly). You can stay updated on both Moddb, and our blog page here. We’re releasing in parts versus days, so expect a day or two at most in-between updates.

A New Media

We aren’t filling our “Endless Programming is more important than gameplay” quota nearly as well as our programmers would like. In the seemingly endless debt we’ve yet to fill comes quite a few newshaders we’ve been hard at work on in the passing months. Our Bean counters dictate this is quite enough to last us until City 17: Episode Three. (Projected Release date: 2048– 2018)

Crepuscular Rays (Sun Shafts)
Put your shades on, kiddies. This isn’t gonna be light on your corneas. That’s right, City 17 now features realtime light shafts cast from the Sun and other large sources of light. These are absolutely realtime and will cast rays around any object put in their way.

VignettingVignetting was a definate need early in development. We knew the lack of HEV hud elements would make the screen fairly bland. Vignetting allows us to dim the edges of the screen realtime, and change the intensity of that dim over many instances. City 17 will use Vignetting for scenes, firefights, iron sighting, and atmosphere enhancement. In fact, every single shot in this entire media release has Vignetting applied to it! Just look for it!

Unsharp Mask
Unsharp Mask is a high quality sharpening algorithm. In City 17, Unsharp Mask brings out texture detail that is normally hidden or lost.

No Post Processing.

Full Post Processing.

Unsharp Mask up close.

Chromatic Aberration
Chromatic Aberration is the splitting of light through a medium. In film (Where this is often reffered to as Chromatic Dispersion), this medium is the camera’a lens and it’s effects are usually undesirable. In the real world, Chromatic Aberration occurs anytime light has to pass through a medium. This includes pockets of warm and cool air (Fire), water, solids (Glass), and more. In City 17, we use Chromatic Aberration to further increase the player’s immersion and create a more believeable world. From improved fire and water shaders, to fullscreen pain effects, Chromatic Aberration powers it all!

Chromatic Aberration as a pain effect.

Chromatic Aberration applied to water refractions.

Chromatic Aberration applied to fire.

Phong & Texture Blending on World Textures
Brushes in City 17 now support phong lighting and texture blending. This means we’re able to create much better lighting for our brush work, and we’re able to do two texture blends without using displacements, giving us back precious frames!

Screenshots don’t do enough justice here, so we’ve made something special that we’re saving for Day 3. You’ll just have to wait! We’ve got a few more screenshots to hold you over, though!

Apparently our Bean counters were wrong. Contrary to the beliefs of our heads of public affairs here at the Gear Development Studio, people actually like seeing gameplay and not just pretty screenshots. This was absolutely shocking news to us at the time. We actually ceased developmentfor over 5 mont– a short while to discuss it!

Hot off the heels of this major development comes a redesign of an area thats been in the works for some time. As we’ve been drawing closer and closer to release we’ve been going over content, evaluating what we currently have and so forth. An area we developed quite some time ago and called “done” wasn’t as up to par as we had thought. A lot at that time had changed due to a increase of new content coming online and fixing a large majority of the mod’s pacing. We feel it’s a pretty good update on a fairly old area, though we’ll let you all be the judge via these comparison screenshots of “before and after”.

The old Garage Map.

The Garage’s new complete redesign.

Lastly all of the shader features in todays update can be turned off at any time via our custom options menu in case awesome gives you seizures. We’ve built in different rendering modes for the shaders as well for varying performance in systems. These include the standard: Low, Medium, High settings.

That’s it for “Day One”! Drop us your thoughts in the comments below, or feel free to send us an email at! This only marks day one of our Three-“Part” New Years update, come back later in the week for more!