Good morning and thanks for popping in to our cozy little corner of the blogosphere, it's week two of the Ultimate Coder: Going Perceptual Challenge and I'm here to give you the low-down on what we've been up to!
I've just made a warm pot of tea and have managed to find a single perfectly formed biscuit in the tin (Rob's brutish foraging has left most of them in pieces, what a crime!) but I've got what I need to get comfortable and reveal all…
If you missed us last week, we introduced ourselves and talked a little bit about what we will be putting together to harness the raw power and unique abilities of the Intel's Perceptual kit. I won't bore you with a re-hash of that post but essentially we're crafting a virtual experience that will transport you into a potter's studio where you'll be able to sculpt works of art with your own hands! Have a quick read via this link to get up to speed.
It's been a bit of a hectic week for us as we've been putting in extra hours on our other commitments to clear our schedule for the next six weeks so that we can commit fully to making the most of our time in the challenge.
Let's get started!
So, we've been moving forward with the final bits of R&D before diving into the code-proper and are currently looking into how clay works. Clay, you see, is strange stuff. It's a uniquely tactile substance that we as a species have harnessed to create works of art and utility for an unfathomably long time, we know it well.
That presents quite the challenge for us to recreate it digitally (especially when our goal is complete immersion). The user has to feel like they're touching it when they're not. And we have six weeks. Gasp!
But hey, this IS a challenge, why would we pick something easy to do?
The work ahead lies not only in simulating the physical properties of clay, like the thickness, texture and yield, but balancing that with what a user typically expects when there is no yield or resistance in the air. This challenge throws up several paths of R&D, and human expectation is one of those paths.
So far we've set up a bunch of raycasts for each finger, this gives us a projection of WHERE the finger might be heading and allows us to better judge what a user might be expecting as well as where the user's hand is in 3D space. There's no 1:1 match here, so we have to adjust it and tweak it until it perceptually matches instead of technically matches.
Perception versus reality continued...
I feel that quite often, designers, artists and programmers alike strive for 100% faithfulness to what they're trying to recreate virtually, surely that's the goal right? Well I'm not convinced that it is...
A great concept artist will sometimes bend the rules of perspective or light and shadow for impact. Perhaps they want to lead the eye or play with scale for effect. The same can be said for the programmer; perhaps you're making a racing game, you could go all out and simulate realistic traction or you could make something that feels right, or even better, fun!
It's a fine line, you do need to have a very strong understanding of the technically-correct if you want to make something that is stylised for effect, I feel that Rob has a knack for physics so we'll see how he plays with the balance of realism and fun as well as the difficult task of also making it a bit of a challenge, because we want it to be something you come back to and hone your skills with.
I've been thinking a lot about the setting of our virtual world as well as the overall colour palette and general ambience. One of my goals is to transport the user into another universe. One where for one, you don't end up with dried bits of clay under your fingernails for days, but more importantly a place that is beautiful and relaxing.
I've always been fond of the kinds of visuals you see in places like Marrakech - the almost heavenly terracottas and oranges contrasting against sensual magentas and reds all set against deep blue skies. I want to almost smell the spices. I'm not entirely sure if I can capture that, especially considering I am limited to the peripheral areas around the pot - perhaps 25% of the screen area but I'm going to give it my best shot.
The other 80% will be the clay itself which I'm looking forward to doing, specular highlights can be hard to get right, it's easy to make something very plastic-y. Another thing to consider will be the fact that the clay will be spinning at a reasonably fast rate, so details might get lost to the eye.
It's something to think about at least for now while I put together the placeholder models and textures, it could all change and I might find that the visuals I want look quite noisy or detract too much from the experience, and I might have to scale it back to a minimalistic sort of look but we'll have to see!
That's all for this week, there wasn't much by way of programmer talk here but we'll be getting to that soon. We should be well into our first proper build by this time next week, so rest assured that on Monday we'll be going deep into the mind of our mad scientist, foraging ape and programmer, Rob.
This blog post is mirrored on our own website at: http://simiansquared.com/simian-squared-go-perceptual-week-2/
Feel free to send us your thoughts via Twitter or Facebook - you can grab me @ChimpSquared, Rob @SquaredApe and our official company feeds @SimianSquared and Facebook