Now that we've got the story planets in place, I thought I'd give them a preliminary art pass.
Far away view (if you're concerned about spoilers, I'd avoid the zoomed-in view):
Closeup of treehouse:
It's nice to have something approaching the final color palette of the art in the game (especially as you fly around). And the fact that this isn't final art has been very freeing, creatively. The treehouse's line art is sketchy here, but I think that gives it a more lifelike quality. I'll try to keep that as we move ahead with more art polish in the coming weeks.
I often refer to the team that’s building Gravity Ghost, and it’s time I gave a proper introduction. Many people have helped out along the way, but at the moment there are four of us: Courtney, Ben, Mike, and Erin.
Ben, Erin, and Mike, seen here in our natural habitat: a coffee shop with free WiFi and a loose policy about loitering
Here are three questions I asked everyone to answer:
- What is your background (education, work, etc.), and what are your favorite types of games?
- What have you worked on?
- Why work on indie games/Gravity Ghost in particular?
Erin Robinson, Game Design and Art
Erin + screenshots from Spooks, Nanobots, Little Girl in Underland, Puzzle Bots
Hey it's me, Erin!
This is my 8th year making games. I make indie games because of their unstated promise: that any universe you can imagine, you can create - and share with other people. A game is so different from a book or a film - when my work is done I can just say, "Here's how to move around" and give someone a complete world to lose themselves in.
I occasionally teach college courses in Unity/C# and game prototyping, because I love to see the worlds that other people create. It’s my third year of teaching and I hope I get to keep doing it for the next 50. I am always floored by the creativity of students. An offbeat game made in two weeks, to me, is more interesting and special than the latest multi-million dollar shooter.
I started my career as a psychology major, planning to become a neuroscience professor. I worked as a research assistant in a lab after I graduated (incidentally, if you ever want to hear how great the hippocampus is, hit me up). I decided research wasn't for me, but conveniently, I already had a publishing deal with Wadjet Eye Games to make my first commercial game, Puzzle Bots.
I learned to make games by collaborating with people I met on internet forums. My job - “independent game developer” - didn’t really exist when I got started, which I think says a lot about how much our industry has evolved. To me, it's also a sign of how hungry the gaming audience is for creativity.
Adventure games are good at creating experiences where story and gameplay are inseparable (and I love them), but I think adventure games as a whole are pretty broken. There's still no elegant remedy to the problem of 'what happens when I get stuck?' I’m still really interested in trying to tell a story through interactivity - and puzzles are only one of many ways to do that. At the start of this project I felt ready to try a new approach, so I made a physics game with story elements.
Gravity Ghost is the culmination of all my ideas about game design from the last decade. It’s a game about running, jumping, flying, and being a different kind of hero - one who must create, rather than destroy. I’m curious to know what you’ll think of it - and hopefully you won’t have to wait long. The game is scheduled for release in 2014 (yay!) and we’re all super excited about it.
Ben Prunty, Music and Sound Design
Ben + screenshots from FTL: Faster than Light
I'm Ben. I arrange sound into pleasing patterns for a living. I tried working at regular jobs, but I'm so bad at it that when an employer reads my resume, the company he's working for immediately goes out of business. Here are some jobs I've held in the last ten years or so: cleaning toilets, managing a GameStop, ripping apart about ten thousand computers at Google, unpacking shipping crates at 4AM, and helping volunteers record audio books for dyslexics.
Throughout all this time I was making music constantly and slowly working my way into the game development community. Then I made the music for FTL and now I don't need to keep a day job and employers no longer have to suffer.
The only thing you really need to know about me is that I've beaten God Hand. This act required a superhuman level of insanity and masochism. I suffered approximately 40 heart attacks and still get post-traumatic stress whenever I think of any one of its many, many boss fights, but now I can solve almost any problem with punching.
I hope I can punch the Gravity Ghost soundtrack into something vibrant and wonderful for you.
Michael Stevenson, Programmer
Mike + screenshots from Red Frame, Snail Break
I'm Mike, a programmer, educator, and former stop-motion animator. I started making games as a young kid, often building simple point-and-click adventures in HyperCard on an old Mac. I loved creating worlds, and this extended into all kinds of different media. In college I focused on film and animation, and spent a couple years as a professional stop-motion animator and prop builder.
During my transition from animation to game development there was one particular experience that stood out: while showing my film Pigeon Pilfer at an animation festival the kids in the audience would often yell at the screen in an attempt to guide the main character, but the film wasn't able to communicate back to them.
I realized that most of my creative ideas were actually much better suited to interactive experiences. It wasn't long before I stumbled upon the indie game development community - it was chock full of awesomely creative and technically savvy people who shared similar goals. I felt at home right away, and my career as a indie game developer was born.
When Erin showed me the prototype of Gravity Ghost last year I was immediately drawn to it. The game cultivates the sort of player experience that I'd wanted much more of: exploration and discovery, without violence or urgency. It's something I had to be a part of!
Courtney Stanton, Producer
Courtney + screenshots from Hansel & Gretel: Lost, Fieldrunners 2, The River
Hi! I’m Courtney, and I’ve been making games for a few years now. My background is in project management (what the non-games world calls production), and I’ve worked with lots of different kinds of tech companies and teams, inside and outside the games industry. I’ve got a BA in Communications & Culture and an MS in Project Management, and my “day” job these days is working as a program manager for a pretty big tech company here in Boston, MA. My role on Gravity Ghost has been as a production consultant, working with Erin on the schedule, scope, and prioritization of tasks to develop and ship Gravity Ghost.
I like to play a huge variety of games, in terms of mechanics and narrative, but I mostly like anything that engages my brain in some way; this is also reflected in the types of people I like to work with when making games! I’ve worked on interactive storybook iOS titles, tower defense multi-platform games, and sometimes I go off in my own little corner and produce things in Twine when the mood strikes.
I like working with smart people who are good at what they do, which is how I started working with Erin on Gravity Ghost*. She and I were standing in line for a hot dog a few years ago and I mentioned that I was starting to think about doing project consulting for indie devs - a couple months later, she told me about a new game she was prototyping and I jumped at the chance to work with a talented person on an interesting project.
Production isn’t something that a lot of indie devs think they can afford to spend time on, and I don’t want to tell people they’re wrong necessarily -- as an indie, you know your game and your team better than anyone else. But for this project in specific, it’s be an absolute pleasure to see Erin and her team take a tiny demo that was more of a screensaver-toy than anything else and turn it into the amazing game that is Gravity Ghost!
*Editor's note: Aw, stop :)
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. :)