Laserface Jones: Best Overall Game at uDG 2008!

Laserface Jones has won big at uDevGames! It was given the following honors:

  • Best Gameplay
  • Best Graphics
  • Best Sound/Music
  • Best Presentation
  • 3rd place in Story
  • BEST OVERALL GAME!

I’m stoked about the results. Big thanks go out to Ben Coello for the character design and art, Dan Mazur for the gun sounds, and Bruce Morrison and Steve Tze for level content! And huge thanks go out to everyone who voted for Laserface Jones, and spread the word to their friends. I saw it reposted on MySpace, FaceBook, Twitter… you guys rock my world.

The full results for the contest (as well as the rest of the games) are here:
http://www.udevgames.com

Right now, I’m taking a well-earned rest (first in months) then going to whip up a postmortem that I will post here. Stay tuned!

P.S. Laserface Jones is already running on the iPhone.

Laserface Jones is released! Vote now!

GENTLEMEN. (AND LADIES TOO OH GOD DON’T HURT ME)

Laserface Jones vs. Doomsday Odious has gone gold and has been released to the world. You can grab it at this link, or by clicking on Laserface Jones over on the right.

Laserface Jones Version 1.1

Screenshot:

I think it came out spectacularly. I’ve got all of Ben’s art in there, and it looks wonderful. I’ve got Dan’s gun sounds in there, and they sound great. The levels look great thanks to Bruce, and Steve went through and cleaned up a few of my nastier assets and made them look wicked. The music is bangin, the action is savage, and the ending is fucking epic. So go play it already!

Once you’re done, make sure you VOTE FOR LASERFACE JONES! Voting is open to the public for the next week or thereabouts, so if you enjoy Laserface, make sure you VOTE! You can do so at this link:

VOTE for Laserface Jones! LASERFACE ‘09!

Most importantly, TELL YOUR FRIENDS about Laserface and get them to vote too! I want to get the word out as much as possible. Put it up on your blog, post it in your forums, get tattoos of Laserface Jones on your forehead, name your dog Laserface Jones. Anything you guys can do to get the word out will be greatly appreciated! LASERFACE NEEDS YOU!

Finally, there are 20 games entered into uDevGames 2008. You can check out all of them at the uDevGames game list page. Good luck to everyone who’s entered. I plan on giving everyone else’s final versions a whirl tonight and get all my voting done.

Laserface Jones: Feb 12 progress

Another quick post. I imagine these will all be short and to the point from now on.

- Added a few more enemy ships

- Tweaked the formations coming out of the spawners so that they look better and are more fun

- Tweaked the laser a bit. The plus to the laser is that it penetrates, meaning it is not removed from the game when it hits something. A side effect to this is that it can hit large objects many times as it passes through it. So now the laser only penetrates when it actually kills the object.

- Added a few new obstacles, courtesy of my buddy Bruce Morrison. One set to replace the rock zone obstacles in level 1, and one set that looks more meaty for the inside of Odious in level 2.

- Began working on a mechanism for bosses and minibosses. Basically, when encountered, the camera will stop and you will have to kill a specified enemy (or set of enemies) to proceed. If it’s a miniboss, the camera starts up again. If it’s a boss, then we go to the next level.

Laserface Jones: The Enemy Cometh

Quick post tonight, want to get to bed (relatively) early. And by early I mean 2 AM. Oy.

Got some ships today for the game, and they look great. They’re ships, but they’re very alien and organic, and they’ll fit just fine with the game. The ships I got are 3D models, so I took a similar approach to my blood cell- I put them into Cheetah 3D, rendered them out at the angles I need them at, and made an animated sprite out of it. This gives me the advantage of pre-rendering all the bump mapping and any diffuse lighting and stuff and just baking that into the sprite without having to render these things out. Sweet.

So now I have all the enemies I’ll need for level 1, minus the boss:

- The small amoeba, which you’ve seen

- A spinner enemy, which, like the amoeba is small and easy to kill, but it is fast and it returns fire.

- A medium sized gunship, meant to take a few shots before dying

- A large gunship, a major tank, functions as a sort of miniboss

- A turret, which is stationary, takes a few hits, and returns fire

- A ceiling version of the turret

- A spawning base, which spawn out a special formation every so often and can take a hell of a licking

- A ceiling version of the spawner

The blood cells will be moved to level 2, where they will be the fodder enemy. I also have a basic rendering of a vacuole for level 2, which is a large, slow moving enemy that contains many small amoebas and perhaps a few half-digested ships. They take a beating, and when they are killed they spray their contents everywhere. It’ll be wicked.

Meet the New Laserface Jones

Managed to both relax this weekend AND get a lot done, which is good. I can feel myself on the brink of exhaustion, so keeping spirits up and staying focused will be paramount for the next three weeks.

This weekend was mostly a weekend of art assets. Ben sent me the new Laserface Jones sprite, and it looks absolutely phenomenal. I had to up the size of the sprite on screen just so I can show it all off. I’ve made a video of the new character in action, and you can see it here:

http://www.justinfic.com/images/laserface/characterTest.mov

So in a nutshell, instead of 16 frames of an entire body rotated every 22.5 degrees, Jones is now many sprites pieced together. He’s made up of five pieces: Torso, Legs, Head, Rear arm, and Gun arm. The arms are positioned such that the gun aims at the cursor, the head turns to look, and the legs sway back and forth as you move Jones around the screen. Additionally, the position of the gun had to be attached to the skeleton also, so that the bullets spawn from the barrel of the gun and not the center of Jones. (Although I admit it WAS a little humorous to have him shoot lasers from his crotch.)

Also, I’m following through with my triage and I’ve cut the machinegun and blade. I’ve also differentiated the spread and laser a little more from the blaster. Different bullet shapes and colors, and working on getting different sounds for them as well. The laser still feels a little lame. The max level is a blast– if you’ve played any recent Castlevania, the max laser looks a lot like “1,000 blades.” It’s pretty sweet.

I’ve also upped the game’s resolution to 1024×768. Between the title sequence and the larger sprite, 800×600 was getting unbearably claustrophobic. I need to adjust a few UI interfaces, and this unfortunately makes the level look horrible (the previously off-screen spawns now happen in the middle of the screen, and the bottom of the level doesn’t match up anymore, either.) I was looking to redo the first level anyway, so this was a perfect time to do this.

Finally, I have the three levels stubbed in. There’s nothing in level 2 or 3 yet, but they’re there and they load. This week will be all about getting something into those levels.

There are three weeks left in the contest as of today. I’ve got them pretty mapped out, making sure I pad the schedule for a few days for unforeseen bugs and tweaks, as well as if I fall behind. It’s going to be a tight finish for sure, but if I can keep up with the schedule I will have something I feel I can submit as a final in 10 days, leaving the last 11 as padding.

Laserface Jones: Time is Short

Quick update tonight. If you notice, my last journal entry is timed at a little after 4 am. My schedule has been pretty grueling as of late- the normal day job, after which I get home typically between 8 and 8:30 PM, and I work until 4-5 am, then after 3 hours of sleep, repeat. Between Laserface and my day project at Freeverse (a major deadline of which is a few days before the uDG deadline, coincidentally) I am in very real danger of burning out, and burning out hard.

My efforts now are to get Laserface to the state where I can call it a completed game as quickly as possible. There are 24 days left in this contest, and they’re going fast. In its current state, the game is in a state of very high risk. That is, it’s not playable. There’s one level out of a planned three, and it’s not even totally done- it’s missing a boss, and a few classes of enemy types. And here I am trying to code obstacles that spin.

Tonight and tomorrow will be spent reprioritizing and doing a little project triage. For instance, difficulty levels have been cut. I’m also cutting two weapons from the game: the machinegun and the blade. The rationale for this is that these weapons are redundant. The machinegun is a weapon for penetrating through a horde of weaker enemies with a low area of coverage, which is exactly what the laser is for. And the blade is used for that one shot of high damage, which is the purpose of the Blaster overload. Plus there’s little done on these weapons. The blade especially is horrid at the moment. Also cut will be every type of enemy I can not currently support in the engine. So all that cool stuff about the tentacles is on hold.

Now, it doesn’t mean they’re gone for good- it means that I need to get this game to a state that I can call done, first and foremost. That means three levels, with obstacles, enemies, bosses, music, and an ending sequence. It means fully working menus. It means if the contest were to suddenly end (which it will) I can give you guys something you can play from start to finish. You can kill Doomsday Odious, and see the ending. Even if it has to be rough around the edges, and only be 20% of what I wanted it to be. As long as all the pieces are there.

Once that’s done, I can start taking that 20% and turning it into 40%. Add those tentacles, and add them to the enemies that use them. Then get to 60%, and add the enemies with the built-in obstacles. So on and so forth. Each step of the way, identifying which aspect of the game is the highest risk (or, the most glaring omission) and focusing on that.

So the plan this weekend is to stub in all of it. Stub in a boss for level 1, whip up two new curves for levels 2 and 3, stub in a boss for those two levels, and add a mechanic to proceed to the next level when the boss of the current one is killed. Stub in an ending. And add the rest of the menus. I’ve got plenty of experience with it, and my UI system lets me design this stuff pretty rapidly, so it shouldn’t be too bad. If I can do this, I will feel much, much better spending time on the eye candy.

Laserface Jones: Tinkering Under the Hood

Uh, again, it’s late, and I’m tired and almost delirious, but I promised you guys some awesome stuff. So I’ll just post a new build and you can play around with it for yourself:

Laserface Jones Universal Binary Development Build 3

Screenshot:

If you’re wondering what happened to #2, it was an attempt to fix a crash that occurs on many old macs. I didn’t post it because it didn’t work. So the game at this point is mostly the same, but enjoy the intro, and some awesome new art from Ben Coello :) This build also has music. Note that the pic of Doomsday Odious in the title is a nasty placeholder, and it will be replaced soon.

Speaking of which, I’ve been running into problems with the music playback. Some people have reported crashes, and their crash logs point to the music playing code, and when I play it, there’s a part of the level 1 BGM that gets screwed up and it sounds tinny. The music file itself plays fine, so it must be coming from the playback. I’m using SDL_mixer, which is a leftover from old projects, and can probably go at this point. I will look into replacing it with OpenAL.

The build also doesn’t seem to be a total fix for PPC macs- reports say that while it does run, it crashes soon into the game. Grrr. One of the niceties of developing for consoles like the Xbox 360 and iPhone is that you don’t have to worry about wildly different tech specs. It’s been awhile since I’ve deployed anything for Mac, and I’m kind of missing that console world about now. Oh well, I’m confident these will be ironed out.

Tonight, I went back to game logic to tackle some things missing from the game that have been bothering me lately. First I have added rotation to the obstacles. Now, this isn’t so the obstacles themselves can rotate (I’ll get into why in a sec) but it’s so I can attach obstacles to enemies, and have them rotate with the enemy. The reason I don’t use it for obstacles themselves is that it doesn’t really work. The way I’ve written my sliding code for an object versus a 4-point-poly, I assume that the OBB is stationary and the object is moving. Not the other way around. So you can stand still, and if the obstacle rotates over you it will not touch you. Real pain in the ass. The solution is simply to put the collision check in the frame of reference of the 4-point-poly, but with time dwindling, the night growing late, and patience running out, I opted for the one-line fix:

// TODO: FIX THIS LATER

So basically, I can get a yes/no on the collision with 100% accuracy, which is all I need at this point. When you collide with enemy obstacles, you’ll just get hurt anyway. Enemies can have a list of these obstacles, with their own offsets and the rotation seems to respect it. I’ll whip up an enemy that uses this soon.

Next up, I wrote an Enemy Spawning Behavior. Now, any enemy can use this behavior to spawn other enemies every so often. Naturally, this privilege will only go to a few key enemy types, but it should add a lot.

Finally, enemies now have a flag that, when set, causes the enemy to track down the player instead of following its normal flight path. Just something cool I wanted to experiment with that ended up being real fast to do.

Laserface Jones: Adding an Intro / Main Menu

Took a much needed break over the weekend. Between working on Days of Thunder for Freeverse which we just sent off to Apple last Friday (WOOT) and coming home at night to work on Laserface until around 3-4 AM, I’ve been completely exhausted. Went back to it tonight with a different angle of attack, and got a lot done.

I did however grab a hold of some more music over the weekend. With the deadline looming ever closer and much of the game still to be filled in, I had to make a bit of a creative sacrifice and license some music. The tracks however sound great, and they fit really well with the sequences I plan to use them for. And most pleasantly surprising, my own tracks aren’t THAT out of place next to them. I now have a total of four tracks in the game: two original, two licensed. The half-track I was working on for the intro is no longer being used. It sucked anyway. I have however been jamming around on the Kaossilator and came up with a really moody track for the final stage. It sounded nice and creepy when I recorded it but I am worried it won’t hold up after a few listens.

So tonight I took a break from gameplay to flesh out some of the menus and user interfaces. They’ve been absent for too long. I have a lot of experience now with UI systems from my commercial projects, and it’s culminated in the FUI system I’m using here. It is structured very similarly to Hypercard, which is where I got my start programming and the stack/card/button/field system is one I’m very comfortable with. Sadly, no GUI editor for it, I have to lay everything out in XML, but it’s still very nice.

What’s done in the menus so far is an intro sequence, and a half-finished main menu. The intro sequence is completely set to the music I have, and it came out phenomenal. I spent my subway rides to and from work today listening to the track, and identifying events in the intro that needed to be set to the music. I identified times in the track that felt like good times for these events to happen, and then put them together in code once I got home. The intro sequence starts with a shot of Earth as the music starts, and the logos crawl by. When the logos are done, Earth pans down to reveal Doomsday Odious looming over it, coming over the horizon like a slimy sunrise. It undulates as it rises higher, and when it peaks (and the music goes into a crescendo) the title fades in. I’m really happy with how it came out. You guys will love it.

When you go to the main menu, the titles and stuff slide around as Laserface Jones comes in, looking utterly bad-ass, and you get the typical list of menu choices.

When laying this out, I also decided to let go of difficulty levels for Laserface. Again, time is short, and instead of laying out enemy spawns for every difficulty, I’ve opted for different game modes. So you start off with the basic mission. There’s only one difficulty level, which is excessive right off the bat. I’m trying something a little different for Laserface, which is to give the player unlimited continues. So anyone can beat the game. Blasphemy? Maybe. But you lose half your score each time you continue. And when you beat the game, you unlock the Hardcore mission. In Hardcore, you have to go through the game with only one life. And when you beat Hardcore, you unlock the Savage mission, in which you have only one life, and one hit kills you instead of the normal 8. So in a nutshell, in Hardcore, you lose if you die, and in Savage, you lose if you even take a single hit. I think that covers all skill levels :)

Anyway, I’m completely wiped, but tomorrow I will post some eye candy for you guys, including some more wicked awesome art from Ben. See you tomorrow!

Laserface Jones: Hello, my name is

I’m psyched as hell to announce that Ben Coello is on board now as an artist. Ben will be handling the character of Laserface Jones himself, and is working on redrawing the sprite, as well as any other places the character would make an appearance.

To whet your appetite, some high res sprite concept art from Ben:

Laserface Jones Concept by Ben Coello

Laserface Jones Concept by Ben Coello

I hope you’re excited, because I know I am.

Laserface Jones: Plugging along…

Code wise, not a very productive day. I have been trying to track down the reason my UB isn’t working for some people, with absolutely no luck. The result is very little progress.

I have, however, added a full level progression for the Blaster weapon. While it starts off very basic, it levels up quickly and grows into your main straight-ahead power weapon:

I’ve also stubbed in a progression for the laser. It’s still not very interesting, but at least it gets stronger as it levels up, which is better than where it was at before.

Finally, I’ve got a couple of spinner-type enemies added. These guys are more mechanical in nature, and would be good candidates for shooting and taking a few hits.

Design wise however I’ve been working out a lot of cool stuff. Thank god for long, boring subway commutes. I’ve got designs for enough enemies for the first two levels:

- The peons you’ve been shooting so far

- Small semi-peons that can take a few hits and will return fire (the spinners)

- Mid size gunships that take quite a few hits and will fire more intricate bullet patterns

- Large size mothership miniboss that has obstacles built into it, and you must attack a weakpoint to do damage to it

- Mounted guns for the walls, floor and ceiling

- Enemy bases that spawn streams of peons

- A generic tentacle. I’m excited about the design for this- basically it will be a string of polygons that is updated as the tentacle slides around. It can be destroyed either by straight damage to the body, or by destroying a set of weak points along the stalk. Smaller tentacles won’t have weak points, just blast them.

- Pseudopod: This is basically the giant tentacle above, with a set of weak points on both sides. You have to either make your way around it to kill all points, or use the laser.

- A type of creature I’m calling a “shoggoth“: it’s a mid-to-large sized shell with many small tentacles sprouting from the front of it, all writhing toward Laserface Jones. The tentacles must all be killed to reveal a weak point underneath, which when killed will kill the shoggoth. This might make a good miniboss.

- The Outer Membrane, which is the level 1 boss. A gelatinous mass at the end of the vertical tunnel in level 1. Goo covers the ground and set in the center is a giant eye that opens and closes. Also, every so often pseudopods will grow from the goo and attack the player. Killing a pseudopod causes the eye to open for a moment, leaving the membrane open for attack. When killed, the eyeball is blown out to reveal a tunnel inside Doomsday Odious.

As you can see, I’m excited about the tentacles and plan to overuse them as much as possible. I’m hoping I can get the tentacles as well as the enemy spawning behavior in by Monday. I’ve been moving slower than I would like.

That’s all for now. Also, I have something totally awesome I want to show you tomorrow. Stay tuned… :)