4 Hugues Ross - Blog: Space Douchebag - 8 - Level One, Complete!
Hugues Ross


Space Douchebag - 8 - Level One, Complete!

Well, I've gotten quite a bit done this week! I started out by adding graphics settings, so that people on less powerful machines could get a good framerate. In addition, if the game detects that it's running slowly, it automatically lowers the settings a bit. The main reason for for adding all this, though, is that I'm home on break thanks to Thanksgiving. Obviously, I can't just drop an entire week of potential work time, so I need to make the game run smoothly on the old family computer. Alternatively, I could use my(significantly better) laptop, but that would require installing my dreaded enemy, Microsoft Visual Studio, on it. If you know me, you know that I'm the type of dev who writes his own makefiles and programs on in a terminal window. I'm not letting Visual Studio anywhere near my laptop.

Obviously, I've added more than that. I finished implementing a new enemy, which tries to avoid being in front of the player. I also added some nice area transitions. At the start of each area, the player flies in from the side as the screen fades in from black. At the end, he zooms out the other end as the screen returns to black. It's a nice little effect, and I think it makes the game feel more polished. I added additional details to some of the backgrounds, and gave the first boss their own area. While I was at it, I added many new sound effects that had been previously missing, and fixed a bug that had been causing an issue similar to z-fighting amongst a number of sprites.

All of that's tiny, though, compared to the major additions that I made this week:
Focus, Scripting, and Shaders!


Focus is the final ability in Space Douchebag's arsenal. When activated, everything slows down to a fraction of its' normal speed. You continue to fire at a normal rate, however. This ability doesn't last long and charges slowly, but it makes aiming and dodging much easier.


The first level is just about finished, and the enemy spawns aren't as random anymore. I'm using the term 'scripting' here pretty loosely, to be honest. Still, I can now define how the levels play, something that I've wanted to do from the start. It isn't a very elegant system, but it does the job rather well. The important thing is that I can now write up a text file that defines when specific enemies spawn, how the camera moves, and where the level begins and ends.


In order to get those level transitions working, I had to write a shader system. The transition fades themselves are governed by a pixel(fragment) shader, and I can now define specific shaders by to be applied on an area-by-area basis.(by the way, for those of you who don't know what shaders are, just think of them as filters from a graphics program. It's the same general idea.)

So, that's a nice bunch of work!
I don't have many interesting things to screenshot, I'm afraid, so I'll leave them for next week. I'm also considering continuing this project after the end of the semester, although I don't have any kind of timeframe on when I'll do it.

No comments: