11/27/13

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

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.

Scripting

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.

Shaders

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.

11/20/13

Well, I didn't get enough work done on Space Douchebag this week. I did, however, still get more than enough done to warrant a post. I started the week off by making a couple more enemies. First, there are flying turrets that aim directly at the player and move in erratic patterns. I also added bulkhead doors that must be destroyed before they crash into you. Finally, I made asteroids that randomly split when destroyed. Gotta have 'em in your shmup!

After that, I finally implemented the first boss. It's not quite complete, but it's close. It has several different attacks. First, it can charge at the player. It scoots back a little right beforehand, which is the cue to get out of there. It can also summon a number of enemies from the stage, and at half health it can fire a large beam. Finally, it has a continual attack thanks to its' many limbs. each limb moves independently and can occasionally fire an aimed shot at the player. At half health, these limbs fire 3 shots, and at 25% hp or lower they fire 5 and a homing missile.

Speaking of missiles, I decided that the player didn't really have enough incentive to actually kill the jumping worm enemies, and made them fire missiles from their tail. I've found that this works rather well, and makes the game a little more hectic.

Finally, I have a bit of good news: while all of this was happening, I finally finished AMAZE's animation system! I've been working on it bit-by-bit since, although I don't really have enough new content to make a post yet.

11/13/13

I can't believe how late I am, after such a nice few months of relative promptness too! Anyways, I'm temporarily going to shift my programming posts to Wednesdays because that's when my class meets, and it's also when my development targets are due.

So, what have I gotten done lately? Quite a bit!

For starters, the old stuff is all finished. Along with the original two enemies, I've added segmented mechanical 'Serpent' that will leap out of the sands of the first stage, and I also started on a floating gun turret.

Peter has made decent progress on the game's music, completing 2 tracks and starting a 3rd.

I've finished the first of 2(3 if I have time) weapons that can be chosen at the start: The spread blaster. As the name implies, this weapon fires in a cone rather than straight, with higher level versions also adding bullets to protect your sides.

I've implemented the two required powerups, both of which are fairly standard. One pumps up your speed, and another increases your weapon's level. If I have time, I'll be adding missile and shield powerups too.

Finally, I've added the hero's 3 fabled Douchebag Powers, of which you can choose one. They can be toggled at will, and drain energy which is replenished by killing enemies. To be more specific, they are:

Super Ego: Health Regen

Aggression: Temporary weapon level increase. This can power a weapon up beyond the game's normal limits.

'Can't Touch This!': The player cloaks, and no longer collides with enemies/bullets/other hazards.

As you can see, I haven't just been sitting around. I'll leave you with a screenshot of Stage 1, and the Serpent enemy. Note that this screenshot is a bit old, and there's a nice little UI in the newest version.

11/4/13

As I've said multiple times already, the semester is nearing its' end. This means that my workload has slowly begun to increase, and I've had less time to write blog posts. Here's the general state of various things:

The schedule seems to have been successful. I'm quite surprised, and slightly impressed that I actually managed to keep up with it. I may eventually add more posts if I can continue to keep this up. In the mean time, I still have yet to put up a schedule page. Be patient. It'll happen within the next week or two, hopefully.

Thanks to the schedule, I've made a good few Games I Play posts so far. I'm still not certain that I'll stick with the current formula, but I'm more comfortable with it than the previous ones. That said, I'm going to take a break for it until the end of the semester. This'll let me concentrate less on playing games, and more on making them. It may also let me set up a small buffer(no promises) that would ensure more punctual posts.

Until the end of the semester, My regular programming posts will be about Space Douchebag. Obviously, it'll be finished once the class ends but I might consider making a Monogame version that would run on Mac/Linux along with Windows, and maybe add some of the stretch goals that don't make it. Either way, I'm taking a break from it once classes are over.

I'm really sorry about AMAZE. From the looks of it, it won't be finished until well after the semester ends. I am making some slow progress on it during occasional down time, but it will still be a long time before I finish.

Last but not least, Singularity. You thought I'd forgotten, hadn't you? Nope, still working on it! I've started some basic work on version 2.0, although it's the absolute lowest priority right now. I still want to finish AMAZE before moving back to that, so I can't say when I'll be working much on it again.

Another thing to mention: I've been skipping out on a ton of Game Jams as of late. I feel really bad about it, and once I've finished a project or two with my engine it'll start to get better. For now, though, I'm afraid that's just how it is. I had an idea for the 0-hour game jam, but I became preoccupied with some personal stuff around the same time and missed it. The next jam that I do will probably end up either being Ludum Dare or the Global Game Jam. We'll see, it'll depend on how quickly I can finish AMAZE.

11/3/13

Sorry for the late post. I've been a bit preoccupied for the past couple of days, and I didn't get a chance to write my programming post on Friday.
Now that the semester has worn on for quite some time, the final project for graphics programming has begun. Of course, I'm going to try and finish Space Douchebag for this.
This first week is mostly just a matter of rewriting the engine. I've been just haphazardly slapping on new things each week, and the current engine has become rather difficult to expand easily. I've already remade most of it, and I ought to have it done by Wednesday. The new structure allows me to expand the the game's content much easier. I've also added a full menu system to the game, as the last version's menus were pretty terrible. I've also seriously improved the game's input handling, which will make input stuff easier to write and more reliable as well.
I am missing some stuff, though. Enemies haven't been added yet, and neither particles nor shaders have been implemented at this point. In addition, while the menus all work most of their entries do nothing right now.

I don't have much else to write at the moment, but this feels a bit short. I may write another post later this week, once more of the old stuff has been rewritten.