Showing posts with label polish. Show all posts
Showing posts with label polish. Show all posts

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!

Sunday, March 18, 2012

Salvage Youth - Mad Rush Toward Beta

It's been an interesting couple of weeks in the development of Salvage Youth. Most of the team was out of town for an entire week during GDC and work ground to a halt, and it's been an uphill climb to get everyone back on track. We expected this delay, though, and accounted for it in our planning, so we're still on track to meet our goals. We just have a lot left to do, and not a lot of time left.

Our major milestones are coming back to back - we want to have a Beta build done this week, and the following week we'll be rushing to get everything ready for Career Day, our school's annual Job Fair where we'll be demoing the game for upwards of 30 different game studios who will tour through our campus and see our individual efforts.

To prepare for GDC, we got a lot of promotional materials created, including our website - SalvageYouth.com is live! It has a brief description of the game, gameplay video, concept art and screenshots and a complete list of credits for the game, including links to all of our respective blogs, portfolios and LinkedIn accounts. The game is really built as a portfolio piece, after all. We also put together a number of PDFs to highlight the game's features and development, and they were extremely well received by everyone we showed the game to. We're hoping to submit it to a number of contests and showcases once we release the Gold build in May. The gameplay video we brought to GDC is below, and already so much has changed from this version that I'm excited to make a new one.



As far as specific progress, we spent a lot of time tracking down bugs and polishing assets over the past few weeks. Just a huge amount of work. The biggest change is that we're finally able to upgrade the project to Unity 3.5, which has revolutionized our workflow. The ability to make changes to multiple objects, use the enhanced profiler to identify the source of specific bugs, the new particle system and the upgraded light mapping tool, as well as the more efficient engine itself, has really made our game and pipeline so much more efficient and effective. Just by installing the new version we gained over 30 frames per second, and are shaving hours off of our efforts in the engine. It's absolutely spectacular.

In terms of specifics, however, we've gotten so much back-end stuff done, it's great.


  • The dialog system is in and fully functional, with animated sprites per character. It pulls dialog directly from a database, allowing us to easily translate and localize the game into different languages. We'll be supporting English and French, and possibly others.
  • Jenny's "fixing" animation is now working, and it makes her interactions and "powers" make so much more sense.
  • Sound effects are in for footsteps, triggering on event, and changing according to materials they walk along.
  • Buzzbots now hold platforms above and below their heads, giving us thematic reasons for floating platforms. We can constrain them to one-time-use or looping iTween paths, giving us a lot more platforming gameplay.
  • Refined our level 1 "bus" puzzle over and over, with playtesting data, to get it as streamlined as possible. Still needs work, but it's a solid section of gameplay now.
  • We created an entire new platforming area after our initial Level 1 "bus" puzzle.
  • Re-lightmapped areas in the background to fix problems with shadows and other errors.
  • Added new utility buzzbots to the world.
  • The run, jump launch and jump landing animations for all the kids have events set up for them so they'll play at the correct speeds and have sound effects play correctly when their feed hit the ground.
  • Background music is added to the opening splash screens.
  • Added a more consistent check for whether or not the kids are standing on solid ground using ray casts.
  • Refactored jenny's fixing ability to be more consistent across the different objects she can interact with.
  • Adjusted how we're creating the dialog boxes so they're easier to move and manipulate around the screen.
We figured out how to create animated textures in the engine by sort of hacking the Particle System and making it do what we need. It's pretty great, though, because we can do cool stuff like this:

We've also got decals working in-engine now, giving us the ability to enhance a lot of the art in our game.





Alexei made some great new accessories for our yards to help fill up the world.

He also retextured the telephone pole.


...as well as our collectibles.


Zach and Stephanie worked on some new accessories, as well - toys to litter around the world and give the yards and neighborhoods a more lived-in feel.



Beau's been creating some great concept paintovers to guide our work - we're making a big push this coming week to polish how the garbage bags look in our game, making sure they read well. They're such a critical part of the look of our world, it's critical we get them just right.



We've been going over everything in our first level with a fine-toothed comb, looking for anything that can be polished and made more presentable, and making sure that it all gets the attention it needs. It's been a fun process, really polishing the game and the layout of the world itself, building little areas of story and composing the main gameplay areas for the camera. We're getting closer to our goal, and the game has come an astounding distance already. I played a build from January just a little while ago and it is hard to believe it is even the same project.

We're hitting the ground running this week, now that we've got our momentum built back up after the lag of GDC, and we should have lots of great stuff to share next time. See you then!

Thursday, July 14, 2011

Ninja Drop animation

I started taking a class in animating for physicality. The first piece I did was of a ninja dropping from the ceiling and then slinking away.

First step was to sketch out thumbnails based on my video reference.



I then took these and blocked in the key poses for the animation.



From there, I took the feedback from my class session and fixed some of the poses. I then I began splining the animation, first using linear and autoTangent and then finessing them a bit.



There was a number of issues, especially the "sticky" hand resulting in the IK/FK switching, which I hadn't done before. I fixed the issues I could and polished the splines, resulting in this rendered version of the animation, the final so far.

Tuesday, January 18, 2011

Ani300 Animations

Last semester I was lucky enough to take a great animation course from Suzanne Kaufman. In the class, I did a number of animations, including the following, posted in chronological order.

Blocking pass of Walk with Character:


Polish pass of Walk with Character:



Blocking Pass of "Mind the Gap":


Splines Pass of "Mind the Gap":


Final Polish Pass of "Mind the Gap":



Block Pass for "Valley Girl and Bomb":


Final Pass for "Valley Girl and Bomb":