Monday, March 26, 2012

Salvage Youth - Beta and Beyond

It's been another fun week working on Salvage Youth, and the team seems to have recovered from the post-GDC exhaustion and various flus that went around following the conference. We met last night with DigiPen instructor Rachel Rutherford for a Team on One last night, which gave us an excellent chance to do some team diagnostics, see where everyone's concerns lay with the game and with real-world outside stuff, and discuss a number of mutual concerns we had about the current state of the game. I'll get into specifics in a bit.

In terms of progress, we've been hitting on all cylinders again. Tons of new assets added to the game, with a major focus on polishing the scenes - in particular, we're laser focused on getting the first section of Level 1 as perfect as possible for our upcoming Career Day on Friday, and we're very very close. We are hoping to have this version of the game, with the limited content, ready for both the Career Day event and for releasing to a number of places for public testing. We are very excited about both.

One of the biggest issues we've encountered, in terms of the visuals, is that the garbage bags we had in the world never really felt like garbage bags, especially the large tiled meshes - they sort of looked like purple rocks, and confused a lot of players.

Alexei stepped up to the challenge and, working with our Lead Artist Beau Bateman, revised the textures for the single bags and created some fantastic optimized multi-bag tilesets we could use to really remedy the issue, and the results have been fantastic.




Using these pieces, we've been able to replace some of the big piles throughout our game, as well as add them to some of the larger tiled meshes to really help them read.


Using this system, we've also redone the first major prop players see in this section of the game - the Trash Mountain cave Jenny and Stu emerge from to find Dustin stuck in the tree after the failed rocket launch.


This awesome little section got a lot of attention as we covered it in bits of litter, grass growing out of the bags to indicate age, other pieces of junk sticking out and a bunch of signs that Alexei made to help give it the feeling that kids had really made a fort out of the cave.


The response to this setpiece has been fantastic, and really nailed the feeling we wanted for the start of this level.

We also got a lot of new and old assets imported into the engine and placed throughout the level to help tell the story of the world. This has been a big part of my job for the last couple of weeks, and it has been a ton of fun.



We even got the car crashed into the roof that was in a much older test build of the game back in - a favorite prop of a lot of the testers we had playing the game.


Little touches like this, without a ton of other exposition, give the players a chance to tell their own version of the story of how they happened. We'll be adding decals to this section and others like it soon to help blend them into the environment seamlessly, but already it adds a lot of fun and whimsy to the game world. This part, in particular, also helps explain why we had an invisible wall there, preventing players from moving into areas they should be.

One issue we've been having lately with testing involves our dialog and scripted sequences - we have to take away character control and input from the player for these moments, but never really indicated well when they were occurring. To communicate this more clearly to the player we ended up using a rather elegant little solution - letterboxing.


By adding black bars to the top and bottom of the screen, we create a more cinematic frame composition, communicate to the player that this is a section for exposition or storytelling, and we get the added benefit of nice, clean areas for adding the dialog. This last point is a particular boon for us, as the dynamically resizing text boxes for character speech were problematic, creating all sorts of headaches and issues and we were short on time and manpower to fix them. Using a system like this fixed a number of problems all at once - a huge win for us.

The other big issue we started discussing this week, and that we brought to the Team on One meeting to nail down, was one that had been bothering us for a while. Simply put, Dustin is by far the most fun character to play. He can sprint, do double-jumps and get all sorts of interesting places the others can't. Stu can lift heavy objects and throw them around, and that's fun, too. That leaves Jenny, our smart little hacker girl. She's a great character, but she isn't particularly fun to play. She can basically walk up to a few select Buzzbots, whack them a couple times with her wrench and they fly off to a new location based on pre-scripted events created by us. She doesn't have the autonomy of choice the other characters have, and she doesn't have an awesome super power like they do.

We spent a lot of time defining the exact nature of the problem, and we came up with the following:
  • There's just not enough interesting gameplay for Jenny.
  • Players don't have enough control over what her powers or abilities can do or how they can be used.
  • There's not enough feedback for when she can use her abilities.
  • Short term, we get a lot of positive feedback, but she has no lasting appeal.
  • She has no super powers the way the boys do.
  • The things she's fixing don't look broken.
  • When she fixes something, there's nothing the player can do with it afterward.
We really looked at these issues and came up with a number of things we can do, both in the short term and in the future, to remedy the situation.
  • We have a particle system already created to add to the event when she fixes things, making it look a lot more exciting.
  • Create a UI object, like an icon of a wrench, that will pop up above a buzzbot or other object, whenever she gets near, indicating to the player that you can use her powers here.
  • Create a dotted-line UI that will indicate what she is "reprogramming" the buzzbot to do.
  • Create a small mini-game for the players to give them a sense of achievement for successfully fixing a robot. We've got a number of ideas for these, ranging from simple and (hopefully) satisfying to some with increasing complexity. We're going to get the simplest version in as soon as we can to start testing, then look at other options either for the end of the semester, if time allows, or over the summer.
  • If you do particularly well in the minigame (hit the "sweet spot" on a meter, like in golf/sports games) you get an additional shower of sparkly particles as a reward.
  • Make the robots look disassembled, then allow Jenny to initiate a scripted sequence where they "pop" together, similar to how the pieces are built in the Lego games (Lego Star Wars, Batman, etc). Fun animations like this are a great reward for the player, and Jermz is super excited to get to make some.
  • Give Jenny the ability to transform or combine objects found in the environment.
  • Give Jenny the ability to "overpower" objects in the environment. We already have plans to do this with an air conditioner unit, creating a "Jump Boost" area.
These, along with a number of other ideas, are solutions to a problem we've all kind of known for a while now. We're excited about getting them in for testing, and have a solid road map for what we can do immediately, what we can do by the end of the semester and what we'd like to get in for the final build at the end of the summer. Having Rachel there to act as a moderator for this discussion was invaluable - we've talked about these things a bit before, but having a safe place to really give the whole team a chance to give feedback and ideas with Rachel there to record everything was terrific, and we made a huge jump in terms of progress thanks to her help.

We spent a lot of attention on the foreground and background of the scene this week, too. We added in some of the telephone poles to the foreground, creating a great sense of parallax and depth. We were initially concerned that they would obscure the player or gameplay sections, but having them so close to the camera, they go past so quickly that they don't create a problem.


We made sure to add in other objects in the foreground and in the streets, creating more story areas and filling the world with interesting content.



We also made a big, yet simple, change to the tutorial. Players were initially confused because we basically have the characters going from right to left in order to advance - a huge no-no in a platformer, especially right at the start. Simply flipping the content around fixed a lot of the problem. We've got the layout of the level pretty well nailed down now, and will be moving forward on replacing all the placeholder art for this section of the game with final assets next week.


We've been going over the Level 1 section with a fine-toothed comb, and we have been fixing all sorts of small things that really help the cohesion of the game world.

For example, since updating the texture of the fences in the foreground, the background fences really needed a new color pass to make them match.

Before:


After:


We also fixed the texture for the road in the background. The old one is on the right of the intersection, the new one is on the left.


Other fixes we've done this week:
  • Shadows in the background at the start of level 1 looked like they were flickering, because they were cast by the propeller of a Buzzbot up in the air. We fixed this by turning on the shadow casting of the tree canopy in front of the yard and carefully arranging some of the geometry of the tree to obscure the issue.
  • The texture of the grass/ground in the background looked neon (see the picture above for an example). This was fixed.
  • The smoke coming from the first rocket part in the scene was "popping" in. This was fixed.
  • The scaffold pole for the platforming area by the bus puzzle was clipping through the roof of the house it was built adjacent to. We tweaked it a little to fix the problem.
  • The character outlines were too thick and were breaking in places. We went through and standardized them to a very thin outline, and it is working much better now.
  • Issues with the old trash piles textures being stretched and ugly were fixed by simply replacing them with versions of the new trash piles.
We also have been fighting with a big problem with the character controllers, off and on, for weeks. Whenever they'd walk down a slope their "falling" animation would be triggered, making it look like they were stumbling or floating down ramps, and they were unable to jump. Bobby Simpson, our gameplay programmer, implemented a terrific solution to this problem and the characters now control much, much better.

Since we had our big team-on-one yesterday we are foregoing our usual Monday team meeting and all getting together to get a team work session tonight. We have a long list of other fixes, tweaks and assets that need to be made, but we're working in rare form at the moment and are excited to get the build ready for Career Fair. More then that, we can't wait to get a build ready for public testing - there's a lot of people who have already been expressing excitement to try the game, and this will be a wonderful way to give them access to at least a taste of Salvage Youth, while getting a lot of fantastic gameplay testing feedback and data. Our Lumos metrics plugin we implemented a few weeks ago tracks a lot of how the game is played, and we're really looking forward to seeing how well that data helps our design process once we get it out to a wider audience then we can get through DigiPen's playtesting club.

All in all, it's been a heck of a week, and we're all set to have another great one. Thanks for checking out the Development Journal this week, and we'll see you next time!