Tuesday, October 11, 2011

Two Worlds

Two Worlds (working title) proof-of-concept footage. Developed this far in a semester of a special animation projects class at BYU, taught by Seth Holladay about one year ago. We were all very new to UDK, but we managed to break the rules on how individual Pawns are supposed to handle gravity in the same physical space. I did a little bit of everything, but we had a group of really skilled and dedicated team members who did the bulk of what you see here, plus a lot of what you don't see.

In the end product, we planned to have a hodgepodge of ancient Viking and futuristic alien environmental elements, enemies to fight, booby traps, puzzles with movable parts, etc. This footage shows the basic gameplay mechanic of flipping the viking's gravity and kicking the alien across large gaps or obstacles. Later we plan to add the viking ability to smash stuff with a big hammer and the alien ability to levitate movable objects sort of like in Force Unleashed. Also, the gems will do something nice to power you up when you collect enough of them, like in Sonic the Hedgehog, perhaps.



My contributions: The basic trace-hit physics code for inverted gravity/jumping; Maya rigging and animation for the alien model, and UDK Animation Tree for the same, plus helmet glass shader; Gem model, shader, and particle effects (I designed the particle effect in Cascade, but one texture from UDK was used to give the gem a more realistic diffuse color pattern, and the gem sparkle sprites are UDK textures also).

I reverse-engineered the Soundgroup script framework in UDK and used that knowledge to code custom footstep sounds for the characters, on different terrain. Resolved bugs with our custom physics that caused instant death and inconsistent collision handling.
Resolved world geometry collision issues with the moving parts of the level (Turns out you just have to attach a dynamicBlockingVolume! You won't believe what else I tried before finding the simple way - including keyframed Matinee-controlled force field vectors and exec function hooks in the pawns!).

I slapped some UDK textures and special effects decals/particle systems onto the level to make it look nice while we showed off our other skills, and polished up/debugged a little on the Kismet-scripted interactive parts of the level like buttons and elevators.
Just for fun, I made it so you could stand on top of each others' heads. Normally the game forces Pawns to bump each other off if one lands on top. Then I made it work even during gravity flipping, but that has weird effects occasionally :)

I also whipped up a very rudimentary HUD to show each player's gem count as a red or blue bar at the top of the screen, and basically studied my brains out on the UDK forums, UDKC chat on IRC, and any other source of knowledge I could leverage.

Near the end of this pre-production cycle, I taught myself UDK's content management system and how to properly put in assets like static and skeletal meshes, animation sets, sound cues, physical materials, sub-levels, shaders AKA Materials(you have to build them in UDK using parts from outside software), and the like, so I could answer people's questions about what they can and can't do with the 3rd-party software and in what order we would best put our efforts.

Seth Brunner, Kevin Munns, and James White worked hard to accomplish the surprisingly difficult task of getting two players with two controllers to share one screen. Seth and Kevin tuned up the physics Unrealscript we'd made so far, and got it to play nicely with Unreal's native physics, collision, and animation code with some clever wrangling of UDK's spider physics.

Andrew Young was really fast at mocking up some vivid storyboard and concept material for the gameplay, and Sarah Gates was equally effective in getting environmental concepts together (unfortunately their work doesn't show up in this demo, but it's impressive). None of Andrew's gameplay ideas were used at this point but he was key in helping the team communicate, focus and decide what we're all trying to accomplish - a picture is worth a thousand words. Jesse Ryan McAdam also had some good concept art for the characters which isn't seen here - but it's on his art blog. He also modeled and made shaders for the characters.

Johnny Slagle, Thomas Ellsworth and a few others came up with the story and character ideas, as well as directing details on gameplay and user experience.

Sean Flynn and Owen Hancock worked with others to design and construct some gameplay concept test levels including the one you see here, teaching themselves UnrealKismet scripting.

There were several other people on the team who contributed here and there with effects, added to discussions in dailies, designed use cases and user stories, and taught themselves pipeline, asset, and UDK level management. Unfortunately their credits and contact info has been lost. I hope they find this blog and remind me of their names again!

It was tough and we only got through the early stages, but we learned a lot, and it turned out pretty cool. Maybe one of these other semesters we'll hone in the gameplay some more and put in some baddies to fight.

Tuesday, June 14, 2011

Nothing posted yet, but I have the blog name registered.

Squatter's rights. Boom.
Actual art and other cool stuff to come when I get a minute to gather it together.