Sunday, December 29, 2013

A Fresh Perspective

The story thus far.....

I'm on a two-week vacation from the rent-paying job.

And I'm kind-of... just here... electronically summarizing to you the things I've been doing over the past few weeks.

It's ... almost 2014. And Cube & Star: A Love Story is slated for a January-ish release; following advice that we avoid the Holiday storm "if you don't have a buzz going".
Dude... we never have buzz. It's colony collapse.

Is it OK to make jokes about how all the bees are dying?

It doesn't feel okay.

So to get myself in the mood to finish Cube & Star: A Love Story, I've been casually messing about with the world a little. Twisting it up, twisting it down. To give myself "a fresh perspective".
(There you go. We called-out the title of the blog post. Like when a movie says its own title. Not at all cheesy).

So I took the Cube & Star world and ran it through what I've been calling "The Spindle". Which is... a little crank-like device that samples points in the world (say... the ground, a bee, a tree) and projects it up into a curve. As the spindle... turns.

It curves the world. Like... this:

Run it through the spindle. Run it all through the spindle. What is a spindle, anyway? You know... I say it,
but I don't know what it means. Like "Love".

And then, after all of that, I put together a kind of... montage. Because... if you don't post something to Twitter, how can you verify that it actually happened?

Or - to put it in a more sound-bitey manner:

"If a developer develops in the woods, and nobody posts a screenshot to Twitter - did it actually happen?"

You know, I don't think I could have picked an uglier screenshot if I had tried super-hard.

I think it was late. I was thinking about #screenshotsaturday, and the whole "externalizing things you do"... directive.

But you know... each of the views has its positive points, I think.

It's a tricky one. I'll leave it for a few weeks while I finish up the UI and test and such.

Then we'll settle on a view.

Orthographic gives the world a nice, ordered, "Conways Game of Life" feel.

Perspective is just classic, and you can see everything clearly and plainly.

Spindle-view... I dunno... it's just different. Maybe that's what Cube & Star needs? A USP?

It can't really flourish with the USP of: "Play a game about nothing, while inexplicably whiling away the hours chasing color."

"Wake up with a feeling of regret. And realize this is what you've been doing with your life. Chasing color. Chasing car. Chasing esteem. Chasing your Father's approval. Chasing abs."

I dunno, actually. That's a kind of... dark summary.

So that's the score, I guess. I've been running it all through the spindle. Just getting in the mood.

It's a nice feeling, to have a game so near to completion that you can just tweak and twist little things and have it all just work.

An overuse of italics.

It's my USP.

-Joshua McGrath


  1. Hey, just bought it yesterday and it's a beautiful game. I really enjoy just wandering around in it and admiring the visuals.^^ I have a question though: I have been trying to prototype an idea for a while now, and the perspective I'm trying to achieve comes close to what you have created here ( with the player noticing the curve of the planet, so to speak), but I've been having trouble getting there . Is "the Spindle" something you thought of on your own, something that's in unity and you simply had to use it, a mathematical formula for this effect that you just had to put into code, or even something else entirely?

    keep up the good work!

    1. Oh man - so this one took me a while. Here's how it works:

      1) I pick a "centre point" around which everything will be curved. I place a gameobject here. (The spindle)
      2) I pick a radius per item (e.g: These trees will be 15f from the centre point)
      3) At runtime - I run through all of the objects tagged as being "curvable"
      4) I look at the object's original offset from the centre (say, 50% up and 50% to the left) and set the spindle rotation to match this.
      5) Using the new rotation of the spindle - I set the objects position to be Spindle position * (Spindle's up vector * radius)
      6) Then, I use the spindle's up vector to set the up direction of the object I'm placing.
      7) If it's a mesh object that I want to be distorted, I then do the same thing for every vertex in the mesh on that object (like the ground in Cube & Star).

      That's it!

      It was a weekend of solid coding and testing, but in the end... I'm really happy with the concept.


    2. wow, thank you very much for that insight, this will help me out a lot! Looking forward to what you come up with next :)