In-game art is a strange beast. It needs to be detailed enough to look good in screenshots, but iconic enough that a player speeding by knows what's happening. Often what a player sees is different from what the developer sees. Even people watching the game over someone's shoulder perceive it differently.
An example that springs to mind is the realistic gore in Left 4 Dead 2. When I first saw the game I was struck by how much more graphic it was compared to Left 4 Dead. Yet when I played, I stopped perceiving that entirely - once a zombie was down, I never looked at them again.
Much of Gravity Ghost is spent flying through the air. I knew I wanted as much contrast between the planets and the background as possible. I've increased that contrast several times now, and it's always made the game better.
Consider this very old mock-up I did:
I began by trying to simulate a handcrafted feel. The sky and the planet are different colors as well as different values: the planet is dark, the sky is light. But just by looking, could you tell me which part of that planet you would land on? (The answer is you'd land behind the 'hills', on a round collider). What about the trees, would you collide with them, or are they just for decoration? It is visually ambiguous, which was no good.
Notice the large planet in the center. Here, I've added a texture to the round collider, so at least it's clear which part of the planet you'll land on. The other planets still have curvy surfaces though. And what do the different colors mean?
It turns out the only planets that actually do anything different are the light blue ones, which behave like water. I was trying to add variety to the designs of the planets, but I only created visual noise. People thought the red planet was dangerous (actually, nothing in the game is dangerous). And the darker planets blended right into the background, even when the game was in motion. Oops.
To get away from the texture-heavy art style above, I tried re-imagining what the game would look like with a clean vector style. This isn't bad, but the ambiguity about the collision is still there (do you land on the hills, or not? Would you think you were going to crash into them, if you were flying towards them?). And there's still some problems with contrast. The planet surface is very light, but the planet center is the same value as the background. Clearly this wouldn't solve my contrast problem. Plus the idea of doing custom art for each planet seemed exhausting.
You may remember this image from an earlier post. Here is the beginning of our terraforming mechanic. Each planet represents a different possible state for a planet to be in, having been terraformed by dirt, water, seeds, or a combination thereof. When I tried this art in the game, I discovered I really liked the way the white planets contrasted against the dark blue sky in the game. I cleaned up this art a bit and this is what we got:
Okay, so it turns out the only handy picture I had was this joke image about Gravity Ghost's secret 'bikini mode.' Anyway, the planets (sans bikini, oh la la) stayed in this state for more than a year.
This image was in our first blog post about the game, and I would look at it often. As you can see, it's shaded more like it's a sphere, unlike the white planet above, which is flat. I finally decided to update the flat planets to look round, and this is the result.
The moons are now shaded like spheres, and they have flat images overlaid for the various terraforming states. Lots of people asked me if the water planets were sawblades that were going to kill them. Video games have ruined all of us, forever.
Gravity Ghost now has some new planet types, each of which required unique art. I'm back to my initial problem: How do I create art that stands out from the background, yet is visually distinct enough that a player flying by can identify everything clearly? Other games can play with the profile of distinct game elements, but I'm afraid it's all circles for me.
Here's what the planets look like now. Can you tell what each of them does without checking the filename? If you can't guess, I don't blame you - it's an ongoing evolution. :)
We've been busy! A quick update on what we're adding now that the core gameplay is done:
Not just a title screen - everything from the save menu to the in-game UI elements now have to be added. This is a chance to add a bit of visual back-story to our ghostly main characters, Iona and Voy. Space friends 4 life! (4 death just sounds morbid to me).
This is a guardian, a magical creature charged with protecting the galaxy from unruly gravitational anomalies.
Running and jumping in an orbital space opens up some interesting gameplay possibilities, which I'm now exploring. For example, a level in which you only have one jump to collect as many flowers as you can, together with several ghostly apparitions.
Levels in the game are arranged into constellations, which you unlock as you go. You'll notice the first constellation is linear, which suits the early-game tutorial levels well. The next constellation allows you to try different levels if you happen to get stuck on one.
I ordered 200 of these babies before GDC, the Game Developers Conference, and I successfully gave away all of them. It turns out the answer to "Would you like a sticker?" is always "YES!" Even if you're a grown man. Especially if you're a grown man.
One last thing: if you never want to miss another devlog, please feel free to sign up for Gravity Ghost: The Video Game: The Newsletter here, or in the box below:
It'll also be where I post information about sales and download codes when the time comes. For now, it'll be for sharing devlog entries/puns. Good news for devlog enthusiasts/dads.
I've prototyped a couple more of these story planets, and I'd say they're coming together quite nicely.
(click for full size)
Captured at an angle so you can see the slight 3D to the game world.
My ultimate goal is to create something that looks like a children's book illustration, but in a world you can actually explore. There are a few more planets to get done, but not too many now. This isn't the final art, but it will make all of the game's locations recognizable.
We're on track to have all of these playable in our GDC build, so if you're going to be at the conference and want to check out the game (especially if you're a journalist) just give me a tweet-holler. :)
Edit: The game is being developed in Unity, since a few of you have asked me that. A couple of the planet bits are built in Maya, but almost everything in this image is made of Unity primitives (cubes and cylinders). Eventually it'll look more like a digital painting.
Last week I wrote about 'sketching' details of the game world with primitive shapes. Here's the same planet about one week later, and you can see some details are starting to get filled in.
For now the point isn't that it's beautiful, but that it's playable. The planet is much bigger than I first planned, but I realized the larger scale would add to the feeling of exploration. This is something I could only see by having a playable prototype - no amount of sketching on paper would have given me that piece of insight.
Speaking of working within the game, I had written some sample dialog snippets in a google doc, but they just kind of died on the page. I cut out half the words and still nothing quite worked for me. What I believe now is that I should be composing the dialog in the game itself (we have a custom dialog editor in Unity now, although it's a few features away from being fully usable).
By seeing the characters speak the lines, I'll be able to take into account the context of their surroundings - where they're standing, what objects are around them, and what's already happened in the story. I think that'll give the dialog lines the life and spontaneity they need. Writing those lines will be the next step once the world is fully sketched in.
If you're interested in keeping up with what we're doing, please consider following me on Twitter if you don't already. Whenever anything important happens with the game, I guarantee that'll be the first place I'll post it.
The original title of this post was "modular level construction," but that's not nearly as fun. :)
I'm currently adding all the necessary story beats to the game. This means having all the story locations in the game, even if they're just roughed in. The next round of playtesters should be able to play through the story, and we can see if any changes are necessary.
The game has several large 'story planets' that play like traditional platformers, albeit on a radial world. The character movement - running, jumping, riding moving platforms, etc. - was done a few months ago. All the main characters are in, and the beginnings of a working dialog system.
But how does one build structures on a radial planet? Would the people there compensate for the strange curvature of the world? Or would they build straight up and down and hope for the best? Trying to imagine how such a planet might look, I did a quick digital painting and built a level on it. The platforms are those dark red rectangles.
The big problem with this is that it's inflexible. I could move the individual trees around, but moving the platforms too much from the art made the whole thing look terrible. And the house was stuck where it was.
I tried simplifying the items I put in the game. In this image, things like the garden and the tea table are represented symbolically. And while it was easier to move the pieces around, it didn't convey the scale I was hoping for. If I couldn't figure out how to make a rough draft, how could I jump straight to the final version?
Then, while working on an unrelated system, I had a brainwave. Most systems I prototype start as cubes and cylinders - primitive geometry that's easy to manipulate in Unity and other 3D programs. Why not prototype the locations using cubes as well?
I made this house today. It's not perfect, but it does start to communicate the feeling I want the player to have as they approach and explore the house. And the nice thing is, the floors already work like floors because the platform system was already in place.
One more quick note, for people who care about aesthetics like I do. As I created the cubes, I assigned each one a colorful material. I have a small number of these that I use like paint pots - it's quick and it keeps the color palette consistent.
Building the rest of the locations should go pretty quickly now. Woo!
Happy New Orbit!
This will be the year that I release Gravity Ghost. Not announcing a release date yet, but 2013 for sure. I think there's a turning point in every game project where it goes from being a bunch of pieces to being a cohesive whole, and the next two months in particular will be crucial to that. Let's see if I can give you an overview.
At the moment, we have a bunch of rad physics levels arranged in a linear progression. Aside from some ongoing minor tuning of the player character (Iona), I’m satisfied with how that part of the game works.
Now that the core gameplay is there, we’re working to integrate some of the auxiliary game systems. At the end of February we start playtesting these new systems in earnest, so they've all got to be done.
I introduced the terraforming system in this post (watch the videos, they’re neat).
This is the next progression: rather than spawning static sprites of trees, the plants actually grow and develop in real-time. Here's how they look now:
(best viewed in 1080p HD)
Plants on planets. Turns every dev meeting into an exciting tongue-twister.
The plant editor scene. Did you spot the carrots in the last video?
Our work for the next production phase is allowing the girl character to carry and plant these seeds, and to have that feel intuitive and rewarding.
The terraforming system also includes a host of delightful animals, but that's a post for another day. :)
With this game I set myself a challenge: not to implement any story stuff before the core gameplay was done. My previous games Spooks, Nanobots, and Puzzle Bots all followed the adventure game trope of using the puzzles to advance the story (and vice versa). And I'm still a fan of games in which the narrative and gameplay are inseparable. But this game called for something else.
GG is about motion and flow. I decided there was no way I was going to interrupt what the player was doing to have some character start yapping about backstory.
Instead, the progression of the story is entirely in the player's hands. There is exactly one location where all the story takes place, and where all the important characters live. This place evolves as you make progress - giving you a reason to return, but not an obligation. The exception is the fox, who you can talk to at any time (but again, the player drives this, not the game).
Now, finally, I can start adding my beloved story elements, which up until now had been quarantined in sketchbooks. Draft 1 of all of the dialog will be in the game two months from now. Here are some screenshots of my ongoing dialog system prototype:
Originally we had this scheduled for later in the process, but I realized the map needs just as much refinement as everything else. A map may seem 'non-essential' or 'low-priority' when there's gameplay stuff to be done, but our past playtests have indicated otherwise. Over and over I watched people enjoy the game for 20-30 minutes, and then say something like, "Cool, where is this going?"
I think maps in games are comforting. Especially in a game with a unique mechanic, it's good to give people a sense of the ground they're standing on, and what their progress is building towards. It also lets the player skip around, to go back and clear an earlier level if they get stuck, or to try to unlock new levels.
Our current map prototype, featuring draggable nodes and locked/unlocked levels
On the developer side of things, this map setup will let us rearrange levels in a hurry, for instance if playtesters find one of the early levels too hard.
The scope of the game is now locked, which means no new features between now and shipping. This is always a good milestone to reach. Prior to this point, development felt like diving down rabbit holes. In the pursuit of something that seems promising, it's easy to end up going down a tunnel which doesn't lead anywhere. But now, finally, I know what the final game will look like. I still think it's worth pursuing those overlooked rabbit holes, and that's why indie game development is nice. Because sometimes, hey, baby rabbits!
If you’re interested in supporting the project, please consider buying my previous game Puzzle Bots, which is now on sale for the airport Coca-Cola price of $2.49. And don’t just take my word for it - here’s a lovely review of the game by indiegames.com. It contains such phrases as “sleeper stand-out”, “genuinely hilarious writing”, and “Puzzle Bots places you in control of a five strong team of tiny robots, with the prime directive of going on dope adventures.” Think about it. I’ll wait.
Thanks all, happy 2013. :)
The very first version of Gravity Ghost was pretty bare-bones, but I noticed something about the way people played the game that surprised me. Playtesters liked to run in circles around the planets.
Old build, featuring high-tech spinning cubes.
There was no reason to run in circles. It often would have been faster to reverse direction and run the other way. Yet players kept running in circles, sometimes many times in a row, just because it played into this nice feeling of continuous motion that was already built into the game.
Enough people even said "I like running in circles" that I decided to turn it into a game mechanic. It solved another design problem I was having, which was how to give the player a simple way to choose which planets to terraform. The colorful trail behind the girl character would now have a purpose: to show you which trail type she was carrying.
I've decided to call the girl character "Iona", so let's use that from now on. There were three different trail types Iona could pick up: dirt, water, and seeds. She could now run in a complete circle around a planet with whichever trail type she picked up, and they could be layered in a crafting sort of way. Here's what the first art pass for that looked like:
Water, dirt, seeds, and various combinations thereof.
And here's what that looked like with some nicer art for the trails and planets:
The miracle of life.
Cool, so that all seemed to work. The next thing I wanted to do was twofold: have the trails be a finite resource, and have the trails be made of Iona's hair. We built a system where flowers would make her hair longer, and encircling a planet would decrease the length of the hair by the circumference of the planet. A fully terraformed planet would create more flowers.
Here's a video with the various hair trail types (I turned off the gravity visualization circle for clarity's sake):
When you see her hair length increasing spontaneously, that's me cheating with a debug button. Normally you collect flowers to make her hair grow.
You'll see that Iona's hair now responds to gravity. It's a game *about* gravity, so that should work just fine, right?
Look again. Her long hair gets spooled around the planets and seems to get stuck. It interferes with the free, flowy feel of the game. If you play this build you'll swear her hair is yanking her back down towards the planets when you jump (even though that's impossible).
But the hair has some cool features, too: it collides with the planets in a neat way, and follow's Iona's motion. Sure, it's a bit visually noisy, but there must be some compromise to make it work, right?
Nope. It was time to give up on the physics hair. Why? There was one important piece of visual feedback that the hair didn't provide, and it was so subtle it took me a while to notice what was missing.
Look back at the very first video. The trail shows exactly where you jump, creating not only those nice round shapes, but also an important visual guide. Like the dotted line in Angry Birds, it let you adjust your course and correct your aim if you missed your jump the first time. And I had totally forgotten about it.
After a good chat with our programmer Mike Stevenson, we decided to nix the physics hair and start again. I still had a problem: I wanted the hair to be a resource you carried with you, so its length would vary. But I also wanted the player to always have a long trail, to show where you had jumped. Here's the solution I came up with:
And here's what that looks like in the game now (though it's running a bit slower than normal):
We're also re-tuning the movement a bit, so we switched off her animation for now.
The feel of the game is worlds better. Running around collecting flowers to make your hair grow is strangely satisfying. It's built to make your momentum feel *good.* The hair doesn't pull in behind Iona yet, and we still have to hook it up with the terraforming system, but this is likely how the hair will behave in the final game. Art-wise, it's functional and readable, and we can tint the hair to represent the different trail types. The next time we revisit this, it will probably be for the final art polish pass.
Speaking of which, I've been trying to reconcile my love of bright colors with the fact that Iona should read as a ghost. That's the main piece of feedback I've gotten about her: she's cute, but not particularly 'ghostly.' Ghosts are typically transparent or white, and in games they're usually surrounded by animated smoke of some sort. But somehow that didn't seem right for Iona - she's very powerful, and I didn't want her to seem intangible.
With this coloration, there's much more white at a distance. But I gave her bright colors for highlights and shadows, as though the light hitting her is from some otherworldly source. I'll have more to say about this later, just thought I'd update you on Iona's ongoing evolution.
Back to the main thrust of this post, running in circles is now a core part of the game, and one that has a few more uses beyond what I've mentioned here. It wouldn't have become what it is without the input of playtesters, who found a behavior they liked and wanted to be rewarded for it in some way.
On that note, another thing playtesters tell me quite a bit is that they love trying to stay in the air for a long time without hitting any of the planets. This is on its way to becoming a game mechanic too, so stay tuned. :)
Here is esteemed music guy Ben Prunty talking about the creative process - and weirdly, he wrote it before he saw my post about Sustainable Inspiration. Some creepy telepathic shenanigans going on here.
Hello again! My last post was about as abstract as you could get on a development blog, so this week I'm going to try for something more useful to other musicians.
1) Listening to music and Evernote as a composing tool
I listen to lots of music. In lots of different genres. I have a premium subscription to Spotify and I run that into the ground. Whenever I hear something that stands out, for instance, an interesting rhythm and tempo combination, unusual chord progression, fun synth programming, or whatever small detail that catches my attention, I’ll mentally file it away. It's a kind of 'inspiration seed' to be pulled out later when I want some kind of springboard into a new track of my own.
Often this is literally filed as a short sentence in Evernote, like:
"5/4 time signature at around 180bpm, like in Floex's Casanova, makes for a good rolling, exciting rhythm."
"the chord movement in the third measure in the verse of Queen's All Dead, All Dead is really cool. Figure out how it works."
Sometimes I'll tag it with 'Gravity Ghost' so when I search for all my GG-related notes, it'll pop up as an appropriate seed. Using Evernote is almost exactly like having a giant spiral notebook with you at all times to scribble in, except you can organize everything by subject or tags and keep it in your pocket if you have an iPod touch like I do. I highly recommend using it. You can even draw in it with the right add-ons. Seriously, stop reading and just download Evernote right now (PC, Mac, iPhone/iPad). I can wait.
Here’s me using Evernote to collect images of paintings I like into a makeshift art gallery. I never stop finding new uses for the software.
2) Writing Chords and Melody
Usually the first thing I try to do is come up with the chord progression and some simple melody to make sure the chords can be tied together well. I'll sit at my sweet digital piano and bang on the keys like an angry monkey until something good emerges. A great tool to help with ideas is an iPad with the Polychord app. Bananas and fur help with the monkey part.
Give Polychord a key signature and it'll show you all the standard chords in that key, displayed as big buttons, plus all related chords as smaller buttons. When you tap a button, you hear the chord played. It's a wonderful (and dangerously, time-sappingly fun) way to experiment with new and unusual chord progressions that you wouldn't normally think of.
It also comes in black, but who would use that when you have these colors?
So I try to come up with two or three different chord progressions. Overall structure isn't too important to me at this stage. I'll come up with a simple melody or two as well. These will most likely change drastically or be discarded altogether during the production process, but it's good to have something to work with in the beginning. Hey, now I have all the building blocks with which to construct a cohesive piece of music!
3) The Gravity Ghost Instrumentation Suite
So with every project I work on, I build a small suite of instruments that will be the first things I grab when I start up a new track. I'll cull through the literally thousands of digital instruments that I have and pick out the ones that are the closest match to what I'm envisioning in my head for the feel of the soundtrack as a whole. Some of them will work and some won't. The first couple of tracks I produce will pretty much determine what goes into the suite. I'm not limited to those sounds alone, but they are a good starting point. This method does two things:
1. It helps keep a speedy and efficient production schedule. Instead of searching through all my instrumentation every single time I start a new track, I load up appropriate sounds from the suite right from the start.
2. It helps ensure that the soundtrack as a whole has a wonderfully cohesive sound.
Of course, each individual track has its own identity and needs, so I'll still be looking for new sounds all the time anyway. The best ones will get added to the suite and will most likely be used again in a future track.
A special mention must go out to Jeremiah Savage, the sound designer who developed the amazing Acoustic Refractions sound pack for Native Instruments. Acoustic Refractions has some of the most beautiful, quirky instruments, many of them built from the sounds of everyday objects. They're rich with detail and subtlety, and are infinitely customizable. Unfortunately, Acoustic Refractions was discontinued last fall with all the other Kore instruments. Regardless, when you hear the Gravity Ghost soundtrack, you'll hear much of Savage's work in my own.
In the next post I'll talk about the actual production. See you then!
I really ought to write a post introducing our team. That way when I say things like "Mike built this totally sweet plant editor" you'll know who I'm talking about.
Anyway this new plant editor is totally sweet. Check out what I made today:
Welcome to my space garden.
Somewhat interesting backstory about the color palette:
The art store right next to my favorite café was going out of business. They were out of almost everything, including pencil sharpeners, erasers, and colored pencils in colors you'd actually want.
The result was me buying a bunch of weird colors and sharpening them in the café with a razor blade (they weren't out of razor blades). You'd be amazed what you can get away with when everyone is on a laptop.
Anyway, this page of my notebook was a product of the 'weird colors.' I liked the way that tree looked and tried to reproduce it in the game.
What space trees look like, probably.
Tl;dr: Constraints are good, they force your creative side to do things you find uncomfortable. With razors.