Showing posts with label assets. Show all posts
Showing posts with label assets. Show all posts

Monday, February 20, 2012

Salvage Youth - Inches from Alpha

With Alpha due Wednesday night, the majority of the team spent all three days of our holiday weekend working together to get the as much done as possible. It was great having everyone together, solving problems, working on features and polishing assets and layout. We didn't get every single thing done we'd like, but we still have a couple of days before Alpha itself is due.

We had a number of specific goals we wanted to really target as we got started.

  • Focus on polishing the first puzzle area after the tutorial
  • Get the character controllers working and feeling good to move around, jump and explore
  • Get the GUI system in and functional, including animated textures for status animations and our dialog popups to guide the player
  • Build and implement a system to control the camera for cinematic animations between puzzles to help guide the player
  • Fill the world with interesting scenes using the dozens of props we have implemented in the engine
  • Polish textures, lighting, tiling and level layout
  • Build any new assets needed to get the first section of level 1 working really well
Given this list, we got to work. We had a number of specific goals to address, and managed to get a ton of them done. By Friday of this week, we had a huge number of new assets, scripts and plans ready to go for our marathon work session.

One of the first things we did this week was address the lighting - we had only sort of blocked it in prior, and it needed work. We wanted to lighten up the assets and really focus on getting the feeling of warm sunlight and cool shadows. To do this, we tweaked the ambient light system to give us a cool baseline blue to work from, then used the directional light in Unity to get a nice warm yellow light, with a purple directional facing the opposite way to provide an additional fill. In the pictures below, the image on the left is our original settings, the image on the right is our new light system.



The clarity and enhancement it provides is remarkable. It makes a huge difference in how the game levels feel. We're going to try for an opposite approach for our tutorial section, which takes place in a sort of "bat cave" inside a mountain of trash bags, so the light will be a cooler night-time blue with a few god-ray shafts of sunlight peaking through holes in the mountain. It should provide a nice contrast and a great feeling of exploration to go from the first short sequence to a drastically different "main" world.

We also started looking for ways to really break up our environment more, and Beau created this paintover on how we can add streets receeding into the distance to create more of a feeling of distance and place. Before our level was a single long strip, and as you went up you could tell all the roads were just long parallel lines. This helps break that up and make the exploration feel like you're crossing from block to block.


He also created some new concepts for some plants and shrubs to help add more variety to the grasses that are overgrowing our neglected world of trash.


Alexi, naturally, whipped these into full 3d models in no time.

Alexi has been on an absolute roll this week. He re-styled the textures for the backyard fence and the rooftop planks to match the style we had on the pallet and crates.



He also created basic flood fills for our collectibles.


And as if that wasn't enough, he finished the texture for the rocket, which looks awesome.


He also made sure that we had access to all the bits and pieces from the rocket to use as extra trash throughout the game.

 

The rocket is the first major setpiece for our game and helps introduce the world and story to the player, and then takes us into our first in-game cutscene and introduces our crisis that the players spend the rest of the game solving - as you would expect, having been made by little kids, it doesn't work so hot. I grabbed the rocket model early this week and applied some very basic animations to make sure we could get the cut scene working in-game, and then gave it over to Jermz to work his magic on.


This, combined with a camera shake, textures, lighting and particle effects, looks so good in the game.

We got the new rocket model placed into the tutorial area and added a lighting system to help draw the eye to the goal - getting Dustin into the cockpit.


Visual cues like this, along with our camera animation system and dialog, are going to fix the biggest issue we've had in playtesting - our players don't know where they're supposed to be going or what their goal is. 

Knowing this, we spent a ton of time working with the iTween plugin and got a great camera animation system in and functioning well. Already we are guiding the player, using cinematic pauses in the game, to show them where to go next.

We put a ton of attention into getting our dialog system up and running, which was a pretty complex job. To get it fully functional we want it to:
  • Utilize the GUI system to float in front of the screen in a predictable location.
  • Pause gameplay during dialog systems.
  • Allow for pauses in dialog for camera animation.
  • Pull all dialog as strings from a database, to allow for localization into multiple languages and much easier editing.
  • Have animated images of the characters talking next to the dialog.
  • Have "typewriter" style text so that the letters appear rapidly one character at a time.
  • Allow the player to skip through the dialog at the press of a button.
All of this required a lot of systems to work together well. We didn't get all of it in yet, but we've got the GUI in and pulling from the database, we've got the script set up for the entire tutorial and all of the first two puzzles converted into the database, we have animated textures for the dialog rendered off of each character, we have the ability to show and hide the GUI at a key press, we can pause input for the scenes and we already have our camera animation system in. We have the basic tech in place to allow for triggers to occur to start the next sequence of dialog, there's just a lot of under the hood wiring that needs to take place to get it all working together, and we're working today and tomorrow to get as much of it in as possible before compiling the Alpha build.

To create the animated talking head textures, I got the character rig files and set up a light and camera rig, setting up the scene to hand over to Jermz to animate. Zach went through and made sure we had a suite of textures to apply to the characters, and using this system we would create a whole batch of PNG sequences rendered from the camera, with a transparent background, that we could pick and choose from to make our character appear to be talking. I set up the camera in each scene and created a three-point lighting rig, customized for each character.


With these, we can create the final marqueed images.


I was setting up the camera rig and testing a batch render for Stu when I accidently rendered from the wrong camera. The result, however, was so adorable I couldn't help but fall in love.

Look at him go! Awwwww.

Anyway.

A lot of my time this week was spent using the existing assets we had in the game and making new setpieces or background elements out of them, like this rickety-looking treehouse we have hidden off in the background.


I also modelled a whole bunch of new trash piles, using our tiling trash bag system, and created a ramp of trash to put next to our schoolbus, a setpiece for one of our puzzles. Once I had it in engine, I absolutely covered it in trash and other assets, trying to reach the level of "fullness" we wanted for our game. This is the first spot we have in that really feels polished and to the level of visual storytelling and neglect we want to convey our world.


We came up with a rather brilliant way of scattering lots of objects around in our world quickly - a system I like to call the AutoLitterer. Essentially we take a bunch of small objects, like the fast food bags and soda cans, add rigidbody physics and mesh colliders to them, duplicate them over and over, then just hit play and let gravity do the work. Once they settle, we can copy their locations and reset them back to their original place in the AutoLitterer, then paste in new instances of them back on the ground where they settled. Then we simply select the new trash on the ground, revert them back to their original prefabs and it strips them of the expensive collision and physics. Voila, instant trash!

In the background of the image above, you'll likely notice another new addition - Zach got us new grass textures in-engine, so now we have lanes and patchy areas of dirty and grass. Alexi also modelled up the new curb system with the corners and the "vertical" roads, and Beau painted new asphalt textures and crosswalks, completing the picture.

High up above this scene, we've got our Buzzbot chugging along. Jermz got these dudes animated, and combined with Zach's textures, they look awesome in the game.


In this picture, you can see the grass and patchy dirt textures a lot better, as well as another new addition - the trees are done! Beau made some really clever new geometry and textures for the leaves, and they really fit our game world a whole lot better.



He also got in some new low-poly versions to replace the ones in the background.



Steffani finished up the Work Bench, both in the high-poly for the main menu and the low-poly version for in the game, and it looks great.

The character controllers are now fully functional and feel a lot better to control - we've dialed in the speed and abilities of all of the kids, and got Dustin's double-jump ability in and working. Even better, we've got the animations for most of them working. The double-jump animation looks so good. I'll have video of gameplay coming soon, and I can't wait to show the whole world coming to life.

Speaking of which, there's another new addition we added this week. It isn't a critical feature by any means, but it looks really neat - trash blowing and tumbling in the wind. We took a couple pieces of the little trash from the AutoLitterer, then gave them limited mass and drag and applied a constant force. When we hit play, they roll and tumble down the street, gathering up in corners and moving past like tumbleweeds. It's another small little touch, but it really does add a lot of neat little life to the game.

Let's see, what else? Oh! We've got a way to record the gameplay footage now. This was all recorded on Saturday night, so a lot has changed since, but it's still cool to see it all together.


I think that covers just about everything so far. As I said, it was a busy weekend, and a ton of fun, even if we are all exhausted. We'll be working through tomorrow and Wednesday, as schedules allow, to get the last bits ready for Alpha. It still isn't quite as far along as we'd like, but it is so gratifying to see the game falling into place the team working together to get so much accomplished in so little time.

As we finish up Alpha, we'll be trying to polish up as much as possible through next weekend, then recording off gameplay footage and other neat stuff so that we can prepare it for GDC, which is just around the corner. Almost everybody on the team is going, and we're all looking forward to having a break from working on the game and getting out there and showing it off to everybody in San Francisco. 

See you next week!

Wednesday, November 2, 2011

Salvage Youth - Week 9 Progress Report

It never ceases to amaze me how quick things happen on this project - every week I have to go back and look at what happened since my last report, and every time I'm amazed that it only happened in a week.

Like what, you ask? Well, we've got a logo now. Makes things all official and stuff.


We've already used it in some branded artwork hanging on the projects boards here at school - great looking stuff Beau put together.


Alexi has been hard at work as always, modelling up a storm. We've got a few more gameplay props being pushed through the pipeline.



We also did a lot of work this week standardizing sizes and shapes for our tiled terrain system - the basic unit is complete, with a rough texture pass done for it. I already tested replacing one of the sidewalk tiles for another shape, the banked sidewalk that allows driveway access, and things worked perfectly.



I actually had time to do some texture work this week, too. I love getting to polypaint, it reminds me a lot of painting miniatures and traditional models, something I almost never get to do any more.

I also spent more time playing with particles, getting the water spraying out of the hydrant looking more realistic. I also got to do a little animation - the hydrant now rumbles and flaps as the water shoots out of it, and when you fix it, the lid floats up and slams itself down on top.


If you look closely, you'll notice another new feature we've got working in the game - real-time shadow-casting. We need to spend time dialing in the lighting, and right now it severely slows down our framerate (we're still averaging around 80fps, though), but that's an optimization issue - every item in our game is casting real-time shadows. In later builds, once we get the layouts more established, any static object (items that don't move around) will get shadows baked in, so that we don't have to render their shadows every frame. It'll save us a TON of computing power.

We've got some other new features working, too - we have patrolling enemies (the robots above, although the art used for them is placeholder art for the time being) with incredibly intuitive tools for setting their waypoints, thanks to Ryan. We also found a great plugin for Unity called iTween, a free system that allows us to animate or constrain objects and characters along splines and bezier curves. This lets us actually move objects along complex curve systems and control speed, direction, all sorts of things, in a perfectly predictable manner. The tool is pretty robust, and it's already found its way into our main menu system and some of our puzzles. It'll also allow us to move the kids between lanes much more naturally as well as make their lanes curve from side to side around objects, rather then the perfectly straight lines they were previously. Good stuff.


Alexi's been working on getting the first car up and ready for texture/sculpting, which is great - this is one of the props with a lot of character we've all been looking forward to seeing come together.



He's also got a great little mattress all finished, ready for texture and sculpt. Meanwhile, Zach's been hard at work getting our fast kid, Dustin, ready for putting in-game.



At this point, Zach is switching gears - instead of getting the zbrush sculpt done, we're going to get the Stu character concepted and put him in some drawings with Jenny and Dustin, making sure that we are thinking about the color schemes and designs of all three kids at once, rather then waiting until the end to do him. Zach has been rock-steady reliable for his contributions since the start, so this change-up shouldn't effect our estimated progress at all.

We're really moving along, getting tons of stuff in-engine and in front of testers, and it's really going great. We are all still excited and motivated about the project, but we all know we still have a long, long way to go. Hopefully we can keep our enthusiasm up through the rest of the year, but with a project this fun, it shouldn't be too much of a challenge.

See you next week!

Wednesday, October 5, 2011

Wasted Youth - Week 5 Progress Report

Another busy week, and a whole lot of progress. We're all getting very excited, as we're on the verge of getting the first art assets in-game this week, which will prove out our asset pipeline.

A lot of this week was spent on getting art assets ready for import into the game - we have a couple of props complete now with normal, specular and diffuse maps.






Our Jenny character has gone through the ZBrush sculpting phase and is now moving on to texturing. This is thrilling, as it means we can get our character rig built and ready for testing in the next week. Plus, she just looks awesome. Zach's done a great job on her.



Randy's been doing great work on the tank, too. The high-res mesh is complete, with placeholder colors to demonstrate how each plate is a separate object that can be colored on its own.


He also did some rigging experiments with the treads. We may use a path deform, like in the video below, or we may just animate the UVs for the treads - we haven't decided yet.



Alexi got the first house unwrapped and ready for texture tests, and we should have diffuse maps for it in the next week or so.


The house uses four different texture maps - one for the roof, one for siding, one for trim pieces and one for accessories like the porch, windows and chimney. This allows us to swap out a different roof style, for example, to create a ton of variety with very few assets.

Beau and I spent part of the weekend working on writing the script for the opening cinematic and promotional materials, and we're nearly ready to create the art for it. We're really excited about this stuff, but we don't want to give away too much yet. There will be more to show soon.

In terms of design, we've spent a ton of time working on improving the gameplay feel based on testing feedback, we've got placeholder UI in place and are working with the particle systems, greyboxing out the first few puzzles and getting the interactivity scripts such as scripted physics events and such working. We also spent a bunch of time finalizing our most recent draft of our GDD, which came out to nearly 60 pages! There's still a number of things we want to refine further, but it's been great having such a detailed blueprint for the project.

A lot of our meeting this week was spent looking at our task list and making sure everything was up to date. We're right on our expected schedule, and we may be bringing in another artist to assist with high-res sculpts and texture work, which is awesome. We've got a very busy couple of weeks ahead of us, but we're all motivated and working very hard to get stuff in-engine and get the game looking good. We should be able to get character animation tests in in the next week or so, and that'll be the last major pipeline test we need to resolve - if that works as well as we hope, there's nothing stopping us from cranking out art and gameplay through the rest of the year.