Well, it’s been so long since my last post I figured I would let everyone know what is happening in Colony Defense land. We are now about halfway done with textures for all the planets and paths. There are 34 levels in total so this is a pretty big deal.
Also, we have changed up the way you advance through the campaign. At first we were giving the player access to every tower type in the game from the beginning. This had the side effect of making some of the earlier levels to easy for experienced players and also too confusing for players new to the genre. You now unlock tower types as you progress through the campaign and I think it plays out a lot better now.
I know I’ve said it before, but hopefully we can get a new video out soon to show off some of the amazing progress we’re making.
Until next time,
Dan
So I haven’t posted in a few days. There is a good reason, I assure you. Among about fifty other things, I’ve been laser focused on getting my planets looking good. The biggest problem I’ve come up with is how to compress the normal maps and have them still look good. For those who care, here is what I’m doing now.
Use a DTX5 compression / format for the surface format of the texture. I know, I know, this leaves artifacts galore. Now, change your normal mapping shaders to re-normalize the texture lookup values. I went from “your moms so ugly…” to “Wow.. she’s hot” in one line of shader code. Also, my file sizes went from 16 megs with NO mip maps to 5.4 megs WITH mip maps.
I think I’m happy.
Dan
I’ve have a banner weekend polishing up Colony Defense. Everything was smooth sailing except for one little thing. I could not get XACT to act the way I thought it should when trying to fade out a music track. As it turns out, the way I thought it would work was way off base. It’s really pretty simple and I’m posting this in hopes that someone else will get some use out of it. When you create a music category, limit it’s instance to 1. Set the fade in and out times to whatever you want. Now, in code, just play a piece of music any time you want. If a track is currently playing it will “automagically” fade out and the new music will fade in. Where I was getting tripped up was I kept stopping the current track before I played the next one. This gave the effect of an abrupt stop on the current track and an immediate, full volume start of the new track. Other than doing some RPC variable craziness, the way this works turns out to be a very nice way of not having to worry about whats currently playing. It “just works”.
Dan
The temperature is cool, and there is a light constant rain. Perfect “chill” weather. However, I’m not “chillin” at all. Instead, I’ve been coding menu and option screens for like a week now. This is about as much fun as having a wolverine eat your eyes out of your head. Sick? yeah, but also true. I may have to take a break and play some games before I snap
It’s been killing me not having a screen shot up of the game. I think I shall change that!

Game play screen shot
Seams. Damn filthy stinking seams. I have been beating my head against the wall trying to come up with different work flows that would help me get past having horrid seams on the UV breaks of my mesh. Somewhere I ran across an AWESOME program that makes short work of most of this. It’s called Xnormal and it rocks. If your having seams issues, give it a shot. It’s free so you have nothing to loose. It sure has saved me a ton of work.
If your at all interested in modern graphics programing, then there is no escaping the fact that you will need to have a solid foundation into the hows and whys of shaders. For me, it was one of the toughest aspects because at the time, I just couldn’t find the resources that stepped me through them. I came across a great site that has a bunch of tutorials (albeit hard to find) that I thought I would link to. This should make it a LOT easier for those of you who are interested to jump into shader programing. These were all created by Petri Wilhelmsen and his main site is located here. Enjoy!
Tutorial 1, Ambient light
Tutorial 2, Diffuse light
Tutorial 3, Specular light
Tutorial 4, Normal mapping
Tutorial 5, Deform shader
Tutorial 6, Shader demo
Tutorial 7, Toon shading
Tutorial 8, Gloss map
Tutorial 9, Post process wiggle
Tutorial 10, Post process Negative
Tutorial 11, Post process Grayscale
Tutorial 12, Post process Noise
Tutorial 13, Alpha mapping
Tutorial 14, Transmittance
Tutorial 15, Dynamic environment mapping
Tutorial 16, Refraction
There, no more excuses.
Dan mentioned our artist, Mark, and that he was “great”. Well my friends I’m here to tell you, great does not begin to express what we have here, Mark is a BAMF. I go into meetings with Mark like my son goes into Toys R Us, no idea what new, shiny object of lust I’ll be exposed to this go-round. Let me give you a taste, enjoy.


Don’t over-indulge, plenty more where that came from.
Heh… see what I did right there?
Seriously though, localization in games can be a killer if you don’t take it into account right from the start. Our approach on this game is to not actually localize it right off the bat, but instead keep all the string data we need out in an XML file with integer keys to look them up with. This way, it should just be a matter of updating the string resources file whenever a new language is requested. Now, I know that there is a lot more to major localization than this alone but, for our purposes, it seems to fit quite nicely.
The wheels of progress continue to roll. We have been fortunate enough to team up with a great local artist! Mark has teamed up with us and I just couldn’t be more excited to have him on board. Mark is an extremely talented digital artist and will provide us with 3D and 2D assets for our game. Here are a couple of concept sketches he has pumped out so far…


Yeah… we’re pretty pumped