Sunday, June 30, 2013

Diving Into The Rift

Hello everyone, James reporting for duty. We have a lot of ground to cover in this week's blog update. Let's get to it!

The Rift Has Arrived

First I extend enormous gratitude to Darren [Scr33tch], one of our outstanding backers. After reading last week's post about our Oculus situation, Darren informed us in an email that he would trade his already delivered Oculus Dev Kit in exchange for our order number. We gladly took the offer! Considering that it was an international shipment, it was remarkable when the parcel arrived only a few days later. 


Get ready to lose your lunch

White Lotus was unanimously enchanted by Oculus. Given its relative ease of setup, we first tried out Team Fortress 2, a game familiar to each of us. Simply put, we had a blast. The combination of true stereoscopic 3D vision and head tracking made peering around a corner before running-and-gunning just awesome. Playing as Scout, the fastest player in the online first-person shooter, felt like a riding roller coaster. Speaking of roller coasters, I must digress. John and I found mutually immense delight in a tantalizing idea: Rollercoaster Tycoon 3 on Oculus. 

Despite all of the carnal enjoyment in an arcadey and action packed brawl, we were not playing a game designed as an Oculus experience. Oculus begs to be the medium for immersing yourself in something atmospheric, introspective and mystical. We knew we had to play XING. And when we finally got it to run, we couldn't help but let our jaws hit the floor.

XING: The Land Beyond with Oculus Rift - First Impressions


That footage has fresh off the boat impressions. As you can see. 

It is apparent that our research into Oculus has paid off. We have been trying to craft an experience than plays well on both standard monitors and for Oculus. Our current workflow, game design and environment execution is astonishingly fitting. 

Experiencing XING with Oculus made me feel like a child. When I was younger and living in Northern California, one of my favorite pastimes was to gather the local neighborhood boys and go exploring near the creek by our complex. I have tried to carry that childlike sense of wonder with me whenever I go hiking or cycling; and as soon as I stepped onto the beachfront in XING in the first level of our game, I felt that nostalgic tug from the past. 



Usually on a playthrough I would be worrying about the hundred or more bugs in the level that I need to fix, or about the shoddy stonework that could be improved, or about some aspect of gameplay not having enough clarity or excitement...but then I started climbing and hopping across rocks. Instead of thinking about the intensity of normal maps, I actually came to a halt and just looked at the trees. 



The only adjustment that we made before playing was to the player's walking speed, which we decreased to 40% of what it was before. For the official release, XING will have Oculus and non-Oculus user settings for movement speed, player height and FOV. 



Over the last couple of days, we have been making quick improvements to the Oculus experience so that we can get our friends and beta testers playing our recent levels as soon as possible. For instance, we just developed true analog speed control for Xbox controllers. If you gently roll your thumb forward on the joystick, the player carefully tiptoes. If you fully extend the joystick's pivot, the player rightfully romps forward. The sound design for footsteps adjusting to this change in speed is fully integrated too.

Overwhelmingly, nighttime was the most magical moment of the level. I pinpointed the one of the reasons as being the fact that Oculus enables pupil dilation to occur during intense scene brightness and contrast transitions. XING has low lighting and contrast levels at nighttime; therefore, your eyes react in a realistic way. Changing the time of day is insanely awesome with Oculus. I can't wait to start building levels that include our bigger weather and environment effects.



It was fascinating to experience what works and what doesn't work in my environment design. Generally, we scale our scenes on the larger side. While certain types of foliage needed to be scaled down, the impressive scale of facades and structures was incredibly exciting with stereoscopic 3D. And the most captivating compositions were ones with multitudes of layers. In art class, you generally focus on foreground, middleground and background. For Oculus, I found vistas with 6 or 7 distinct layers to be visually scrumptious.


For example, here is a scene that I designed after we got the Oculus. The space feels intimate because of various layers of low lying plants, but also grand with the tall architecture.

Big Horizons


The direction for XING: The Land Beyond is very clear now. It seems like we have been doing things right all along. Of course, developing with Oculus will not detract from the standard version. In fact, Oculus may enforce certain constraints that will lead to an overall better polished and uniform experience. We are all extremely excited about building what we hope will be a premiere Oculus experience! 


Monday, June 24, 2013

Your Friend Google

John here: I know, it's been a while since I've made a post! It has now been officially three weeks since we moved to our Arizona office and we are feeling great about where we are with XING, and the direction we are headed in. We had our first in-house playtest since the release of the sandbox demo yesterday, and received excellent feedback and comments from our testers.

I figure I am long over due for a tech breakdown, so here goes. I figure I'll tackle some more developer-oriented stories, so feel free to skip to the bottom of this post if you're looking for the pretty pictures.

Development


Google. Your best friend, your lifeblood as a developer.

I'm going to be honest here- especially as a recent grad, I can say college was great for me and taught me an incredible amount about life. I've had many fantastic teachers at school in all sorts of departments, teaching me things I may never have had the opportunity to learn about and making lifelong friends in the process. I have met people at school who have encouraged and supported me and my colleague's work far more than I would have ever imagined. XING truly is the product of the support of my family, friends, professors, and backers from around the world, and I've never felt so lucky to be in a position of following my dreams so soon in my life.

HOWEVER, in the cold, ever-changing world of computers and software development, things play out a little different. In a purely technical sense, XING only exists because of what my dad calls "The Brute Force of Ignorance". Without going into too great of detail, the concept is similar to the do it yourself mentality, but is less about willingness to go to work as it is about admitting your own ignorance to a task.

How does this relate to Google? An example:

Give myself a task. "How do I make grass in UDK that doesn't suck?"
My workflow:

  1. http://lmgtfy.com/?q=grass+UDK
  2. Click on eight links or so: 
    1. http://forums.epicgames.com/threads/867667-UDK-Grass-tutorial
    2. http://forums.epicgames.com/threads/857633-Grass-amp-Foliage-Question
    3. http://forums.epicgames.com/threads/785623-Grass-any-idea-s
    4. http://wiki.polycount.com/GrassTechnique
    5. Etc.
  3. Look. Read. Absorb. Follow the tutorials, experiment, get your hands dirty, and learn the underlying tech behind what it is you want to do - then make your own. Read devblogs; here is an awesome one for a similar UDK game (that just recently got green-lit - congratulations!, and go check it out if you like adventure puzzle games). Really, just slam your head against a problem until you find a solution, it's as simple as that.
Ok, so maybe that last step is a few steps in itself. But that's the point - it takes time, and you have to start from the beginning. The fact of the matter is that I didn't learn how to make grass cards in school - I didn't even learn how grass is rendered, or even the first step on how to get grass into a game. I had to start at the beginning, as a total noob, and bite the bullet and start learning. Maybe this is a good time to relate everything back to Buddhism - the concept of beginners mind.

Maybe I'll just leave that to James.


Anyways, we achieved our grass with the card method described in the first link. My pro tip would be to go ahead and use an extremely simple diffuse and rely on the shape of the alpha cutout and an appropriate pallet to sell the grass - don't worry about fine detail on the diffuse, it will just muddy up the scene and give the grass a granular look. We made the grass in 200 poly chunks (with every 2 polys equaling 5 blades of grass or so) and than liberally applied with the built in foliage tool (which instances the meshes into fewer drawcalls). Flesh that out with some other higher poly ground foliage for variation with some aggressive LOD, and there you have it, some effective ground foliage.


OH! and to give back to the Google community, here's a keyword search: UDK foliage tool disappear bug. If you are happily UDKing and open up your foliage tool only to find all of your layers are missing (the meshes are still on the map, but you cannot place or erase anything), do yourself a favor and look in the scene browser for the foliage instance actor. This actor stores the info for all of your foliage instances on the map. Chances are if you are getting the bug, there will be two foliage instance actors. To fix the bug, delete the actor with a zero at the end. Be sure to back up your map just in case you delete the wrong one! Anyways, this bug (and any mention of foliage instance actors) was previously completely undocumented (seriously, try googling it) and we (James) solved it simply by experimentation.


Landscape modeling proved to be a little trickier - there are some excellent tutorials out there on how to create a landscape in Mudbox or zbrush but we decided on the built in UDK landscape tool despite it's limitations due to the ability to quickly change the general layout of our levels right in editor. We went with a hand sculpted approach vs making a hightmap in an external program due to the detailed nature of our levels, and have achieved pretty good results. Because of the inability to craft any detailed terrain elements, we are forced to augment the main landscape piece with plenty of auxiliary meshes - in this beach's case, plenty of cliffs and boulders. Believe it or not, there are only 5 layers of texture on the landscape - most of the variation comes from simple blending. We aren't doing anything fancy like The Last of Us with our landscape, but it's definitely working for us. 

Oculus Rift Update


I understand many of you are interested in the Oculus Rift side of development. So are we! Unfortunately, we have yet to receive our dev-kit from Oculus VR. We have made attempts to contact them about our situation, but understandably they have a no special cases policy, and we will just have to wait our turn for our dev-kit. We ordered the dev-kit as soon as we hit our stretch-goal, so it is still up in the air as to when we will get our hands on a Rift. I can assure you development for the rift will begin as soon as we receive our kit, but for now we will continue to focus on the core content of the game.

New Forum!


Lastly, we have heard your call - the XING: The Land Beyond official forums are online! Join in on the "adventure" of online forum banter and express your hopes and dreams to us and fellow backers and adventure enthusiasts. We will be monitoring the forums diligently, so feel free to post early and often.


PS: It's that time of the development period - the time where we need your help again! If you haven't already done so, vote for us on Steam Greenlight. I hate to sound like a broken record, but we need every vote we can get to make it on the worlds most popular digital distribution system, and I'm confident we have a place there.


The Pretty Pictures

Progress!







Sunday, June 16, 2013

Screenshot Post


Just working away...





As always, feel free to leave us comments and let us know what you'd like to see more of!

Cheers!

Sunday, June 9, 2013

We're back!!

 Hello everyone!

We are finally back after being off the grid for the past couple of weeks. To summarize that, we had one week dedicated to all of John and my graduation celebrations.

Koriel's Graduation
John's Graduation

The next two weeks we each went back to our respective families for our vacation time before fully diving head first into the project again. John played games and took care of preparations for our studio in Arizona, James spent his time exercising and going to museums, and I decided to stay home with my family, friends and pets - especially my cat Derp. I also dyed my hair red!

New Hair! :)

Derp

James at Google

John and friends

Last weekend we all got back together and started off working on the beach level. It took a couple days to settle in, but we made some real headway and are right on schedule.

Reunion!
The new studio!
We had to make due without chairs on the first day 

Stocking up for the next few weeks at Costco

Koriel's work station
James' work station
John's work station

Development:

This week was a planning, plotting, story-writing and asset-creating week. We all have pretty defined roles at this point, so production is going along relatively smoothly. A couple of my models from this week:

This week's character...
Rocks are always so helpful! Seriously. So important.
I like this toy-render because you can see the details!

We blocked out the beach level and should be ready for full-mesh-deployment by tomorrow! John is on foliage, James is on architecture, and I'm on characters and rocks. We started importing everything into UDK today, so it should be all set up for when we need to go all-deco mode:



Of course, we can't show you everything we've been doing, because then there would be no surprises ;)