Showing posts with label textures. Show all posts
Showing posts with label textures. Show all posts

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!

Sunday, February 5, 2012

Salvage Youth - Pre-Alpha Status

It's been an incredibly busy and productive week. We managed to get the whole team together a couple of times and the unity and motivation between everybody is just outstanding. It's starting to feel like a real studio.

This Friday I was able to volunteer for the Washington Interactive Network's Power of Play 2012 conference, which was a fantastic experience, getting to hear from VPs and GMs of the region's largest game companies talking about the direction the games industry is heading and all of the incredible support networks available. I can't wait for their next Startup Workshop.

The game has been progressing incredibly fast - we have prototypes working for the tutorial section, the first puzzle and the boss fight, which is very encouraging. We're going to be testing these sections as much as possible this week while we polish the gameplay and get the other two or three puzzles in place, polishing the art and look of the world as we go.

Bobby Simpson, one of our newest members, has been hard at work rewriting the character controller code, to great effect. Already we have a lot more control over the way the player moves through the world and a much better understanding of the underlying code for it. It is great to have some support for Ryan, who has been working so hard on getting everything coded for our designers to get gameplay in place.

We've got the first draft of our dialog script in place now and are revising it as I write this, giving Laura Franke, our Cinematics Artist, something to work from. She's already been hard at work sketching characters and thumbnailing panel ideas, getting a good understanding of the style of our game. She's picking it up very quickly, which is encouraging. We're all excited to see it in play.

I worked with the game project file this weekend and played with the fog color and set up some particle systems, tinting the smog more brownish and away from the blue. It is already making a big difference. I also modelled up a big trash pile and set it up in the background along with a number of other props. This, combined with a world-sized cloud and dust particle system I built, adds a lot of depth and animation to the game world, giving it a sense of life and place. We'll be revisiting this stuff a lot to get it polished, but the few hours I was able to put in today already show a lot of promise. The plumes of distant smoke were made before the other changes and are looking too blue at the moment, but that's an easy fix.


I also went back and retextured the trunk of the tree to match the style of our game. It looks a lot better already.




Steffani Charano, our new Environment Artist, has been polishing the look of the dumpster and the minicar.



Jermz Gallardo has been doing some great work animating the characters. We ran into an issue on the export for them, but we'll have it resolved tomorrow or Wednesday, as time allows.


He also made some great UI elements that we're incorporating for testing today. We'll have fully animated UI elements in by the end of the week.


Zach Hartlage, our character artist, has shifted to working on more concept art for props and environment assets. He created an absolutely fantastic concept sheet for the work bench that Jenny uses that will also serve as the background for our Main Menu.


I spent time working on the tiling trash bag system earlier this week, as well as the textures for the individual garbage bags. They're not quite done yet, but they're getting a lot closer.


Alexi Gil, our Lead Environment Artist, made some wonderful crates and barrels, mainstays of any self-respecting video game. I used his texture sheet to model up a few pieces of debris from the crates that will be used when the boxes break.


Alexi also modelled up some terrific fast food trash to scatter throughout the world. He's incredibly fast at this stuff, it's been great watching his process evolve this year.


We spent a lot of time working on optimization this week, as well. We got the light baking system in Unity working correctly and were able to create shadow maps for hundreds of objects in our scenes. This was a tremendous boost in terms of performance, and on our test machines we're able to run reliably at around 120fps. We are experimenting with replacing the transparency grasses with polygonal geometry, as a lot of our render time is spent on transparency and alpha sorting, and should have some solid results soon.



 It is encouraging seeing the results from our optimization be so promising. It is freeing us up to really focus on density of objects in our world and create the over-the-top feeling of an abandoned, neglected world.

Alexi did some more work revisiting older assets, as well, finishing the dirty texture pass for the schoolbus. He's unwrapped the rocket model and will start texturing it soon.


Beau Bateman, our Lead Artist, is out of town for the weekend, but has been hard at work writing the script for the dialog and opening sequences in our game, as well as giving needed feedback on the status of all of our work, keeping everything in the style of our game world. 

Finally, tomorrow we're meeting with Prof. Stephen Saulls, who will be creating the audio assets for our game. We're all very excited to meet with him and get this process moving forward. We've provided him with an exhaustive list of assets, and we'll be discussing priority and style questions tomorrow when we meet with our other advisors. This will give us the last critical element we need to bring our game world to life.

We've got a lot left to do, and deadlines are looming, but our team has been incredibly hard working and efficient, and they are all working together extremely well. Everyone on the team knows who to go to with questions and we all lean on each other to provide our specific sorts of expertise. I am so happy to be working with such great individuals on this project.

Saturday, February 12, 2011

Projects 350 - Week 5 Progress Journal

Less progress then I'd like, but lots of technical background work, prepping the model for the next phase of development.

I've spent a lot of time working on getting the model cleaned up and making sure the topology is where it needs to be in order to animate well. I'm considering this last version the final, and am moving on to getting it unwrapped, rigged and ready to go.

I spent a little bit of time re-familiarizing myself with projection mapping tools in Max, and was able to create a reasonable tiling texture of chainmail, to be used on my little goblin friend's loincloth, which will add a little fun secondary animation to the model. To do so, I created a torus, rotated it into place and then duplicated it and moved it, creating a single pair of linked rings, then duplicated that set and moved it into place. By doing this step over and over, I created a good base mesh for the chainmail.



Once I got it set up over a plane, I scaled it to the point where I was reasonably sure it would tile well, then used the Render to Texture panel to project the chainmail mesh onto the plane below, creating an alpha, normal and ambient occlusion map set.



This resulted in three 1024x1024 texture maps, one for each of the passes. The transparency map will be hidden in the alpha channel of the diffuse map, once I paint over it. The ambient occlusion pass will be used as the base color channel for a paintover to create the diffuse map, and will help inform the specular map, as well. I'll be laying over rust colors and textures to help that process, when the time comes.



To test the new setup, I imported the file into CrazyBump to ensure it tiled well, and it does, at least reasonably well. It isn't perfect, but for my purposes it'll do well.



I'll be using this method to create better normal maps for a number of the props and pieces of my environment, and using CrazyBump to help create texture maps for much of the process, as well, as it seriously helps speed up the process - making normals for pitted iron for the shoulderpad and anvil, for instance, or the bark of the trees, is a snap in CrazyBump.

I've begun unwrapping the model, and am looking at a number of tutorials and plugins to help expedite the process. There are good ones available at the classily-titled site Poopinmymouth.com. I've gone back and forth on this process a bunch of times, getting mixed results, but I'm determined to have this portion done by the end of the weekend.

Finally, I've also begun rigging the goblin in Maya, and after speaking with a number of fellow students I'm moving forward with the process.



I've got the skeleton itself in place and have begun basic tests for the skinning showing a lot of progress - the joints seem to deform quite well already without having gone into the weighting refinement process, which means that completing the skinning should go pretty well once the rig is complete.





I've started the process of setting up three arm bone sets so that I can have a switch between IK and FK-controlled arms, which will be crucial to the animation I have planned. I've found a good tutorial here that should help the process.

I've also learned how to set up additional attributes and link attributes in Maya to controllers or controller sets, so I can do things like have a single controller for all of the fingers on one hand, for example. This will greatly ease the animation process, and is good experience to get under my belt.

I'm going to keep pushing forward on this stuff all weekend, and I have an appointment for later this coming week with Micah Zahm to help fix any issues I can't resolve myself. All in all, I should be through with this technical hurdle soon, which is exciting - this is what nearly sank my project last semester, and I've learned that it is best to go into something this technical that I'm not particularly strong at by planning carefully and seeking help from the folks that know it well, rather then keep bashing my head against the wall and hoping for the best.