Solaro Dev Blog

Getting the controls just right for Solaro has been something we’ve put a lot of work into. So we’ve continued to refine how you control your ship in order to maximize the fun for everyone.

We’ve found that choosing just the right control scheme depends on a lot of factors in a game. Different acceleration rates and flight speeds work better with different sorts of control schemes. In Solaro, our zooming system and universe setup differs from other games, so we’ve had to do a lot of experimentation to get things just right.

With the new default control scheme, the flight computer will make the necessary adjustments to keep your ship flying in the direction you’re facing.

This change went hand-in-hand with a change to how the turreted weapons work. We’ve removed the fixed and partially rotating turrets. This greatly simplifies the user interface when the player is making a ship- we’ve removed some buttons and made it easier to use. But more importantly, since all weapons rotate towards a target, we’ve been able to make the changes to the flight controls because strafing is no longer an important part of flying. This lets the player focus more easily on flying and combat and makes it more enjoyable.

We only touched on the arenas briefly in previous posts. An arena system allows the player to get right into the game, and it enables an effective risk-reward cycle.

Players are encouraged to choose their own pace and challenge level. Right now, six different arenas make up a zone. Each arena in a zone has a different sort of mission. Some of these are just straight up killing enemies, fighting a few waves of enemies, racing through waypoints, destroying asteroids under a timer, or taking out a big boss ship. Different rewards, in the form of new pieces for your ships, are earned at each arena.

At your option, you may fly to the next zone at any time. Each zone has more difficult challenges, but you unlock new sorts of items for your ship. For example, in the second zone, you unlock two new types of weapons, the thorium engine, the fighter cockpit, and a few new hull pieces.

If you find the game too hard, simply get a few more weapons in an easier zone. If it’s too easy, players will move on to advance more quickly. This isn’t too unique of a concept for games, but I do think it’s underused- it’s a very natural and effective means of difficulty control, and it’s certainly more elegant than a difficulty selector.

Actually, I’m surprised this looks as good as it does. It’s going to be a rimlight shader, but I somehow broke it… Unity got confused and decided to use it with wacky textures. It’s actually partially transparent here, but some draw order issues make it seem reflective.

The last few days I've spent on Solaro have been cleaning up the ship editor. I've made the editor much simpler, but kept all the features. Reorganizing the UI has eliminated big rows of text buttons that were difficult to mentally parse. I've also removed the second "inspection mode" that you would occasionally need to switch to.

Many of you probably remember how it used to work: there was a list of components on the left- a big row of buttons. Then a smaller view showed the piece you were going to place. Once you placed a piece, a button with an arrow on it would switch to a different editor mode.

The second mode really only existed because putting all the information on the screen in a single mode over cluttered the screen. This included ship summary information, such as how much power was remaining in the reactors... It was clearly a bad decision when you had to switch ship editor modes every time you placed a weapon to see if you exceeded your power consumption. The save and load buttons were also in the other mode, since we ran out of real estate.

Instead of an always-present text list of ship components, one of the new features of the editor is a graphical selector. I would be remiss not to show it off, although it's not 100% polished yet.

The first five minutes of gameplay is responsible for hooking your user. And within those first five minutes you need to teach your player about what's going on.

Becoming hooked on a game relies on engaging the person. You have to show off the start of the game and show that there's more, sparking curiosity. Tutorials don't just need to teach the user how to play, but they also need to quickly hook the user- especially if you're relying on them to make a purchase after playing the tutorial.

Our goal for the tutorial in Solaro is to introduce the key controls in a rapid fire fashion. The basic controls in Solaro are pretty simple, so we can fly through these pretty quickly. After about a minute of very little reading and a lot of doing, you've got the controls down.

The tutorial also covers targeting and combat, and it gives you a shot at the arena system. The next step with the tutorial is to finish up the final hooks. The tutorial will award you with some new pieces and introduce you to the ship editor.

The tutorial needs to accelerate the player into the game- so it need to provide a taste of the progression in the game. When you complete the tutorial, you should feel like you've accomplished something, and you should leave wanting more. In the case of Solaro, you want to win more arenas, you want more rewards, and you want more cool pieces to add to your ship.

And all this needs to happen in the first five minutes, or you lose players!

Solaro is looking better and better. I remember trying a build about three weeks ago where there was no tutorial. Unable to figure out how to shoot, I ended up dying in a rather comical fashion. The automatic zoom also seemed broken. Perhaps the expectation of automatic zoom control is just a holdover of my old Ares days.

I look forward to trying a new build now. It looks like a lot has improved!

Thanks for the feedback guys! We're glad to hear people are excited. We got some good comments on our blog so I wanted to share one:

James Wrote:Yeah, the first few minutes are critical. Sucker Punch has a formula for beginning games which it calls the “JB Intro.” James Bond movies start by dropping the viewer directly into an action sequence (which may not even be related to the main plot), leaving exposition for later after the viewer is more invested in the proceedings.

The tricky thing with starting a game this way is that it needs to seem dangerous and exciting but actually be very easy, and teach people how to play in a way that is as unobtrusive as possible. It’s something that just takes a lot of repeated focus testing on virgin players to get tuned right.

One way that works all right is to try to have a fairly linear path that is blocked by challenges that require the player to execute each of the basic actions to proceed. When they arrive at a challenge, start a timer and after a few seconds display a prompt telling them how to do it. The first Sly Cooper game, for instance, started the player in a shallow pit. They had to jump to get out. Sly 3 required the player to jump onto a truck to get out of the starting area. This wasn’t quite as good of a challenge, though. I remember seeing players wander all over the starting area for a while without realizing that the truck was the exit. In Infamous we guided the player along a path (using explosions and lava) to a point where they had to jump to get out of a blast crater. If they failed the jump the environment would loop them back around onto the ramp to try again.

Great comment James! I’ve been thinking about how to add some action to the tutorial. The whole in media res / action prologue is a really good idea, but I’m not sure how to integrate it into the basically plotless Solaro Skirmishes. It’ll play a bit like an arcade game. Your comment that it doesn’t really even need to be related to the plot is a helpful good insight.

I like the thought of being thrown into a crisis. Halo did it when you started on the exploding Pillar of Autumn ship, Infamous did that after your package blew up half a city, and the advantage of the crisis is that not only is there no time for exposition, but there’s a sense of urgency that can make the simple instructions of the tutorial a little more interesting and pressing.

For Solaro this could be… “Oh, the captain died, now you have to learn how to fly while pirates are closing in.” (I’m the kind of person who will wait for a minute or two just to see if they actually show up before I finish the tutorial. They don’t ) On the other hand, there’s not really any personal relationships there; not anymore than you’d see in Asteroids.

Maybe it just makes more sense to toss them into that action-sequence and not explain why you need to be told things. Like you said, you don’t really need to worry about how it relates to anything.

And any other ideas would be welcome regarding the game's opening and tutorials!

I don't know how it happened, but Solaro has 37 custom shaders in the project!

We've got a lot of variety in our shaders; some are full screen effects, many of them are for special UI effects or weapon effects, and we've also got special shaders for weapon and shield effects. So it's time for a short pictorial tour of the shaders in Solaro! Most of our shaders are customized to make cool animated effects, so I'll do my best to capture them in a way to show off in screenshots.

The engine pulse shader allows you to choose two colors and a mask to create the shape of the engine flare. You also provide a normal map to act as a distortion shader. We animate that distortion so the engine flare moves around like a candle flame. The other cool effects that we do with this, outside the shader, include making them grow and shrink as a function of the thrust generated by the engine. We combine this effect with a glow overlay to simulate a bit of a camera flare from the light source.

Selecting components in the ship editors needs some sort of visual effect. Here we've applied a modified rimlight shader. We've set it up to animate and pulse as you've clicked on something. Here the entire wing is selected and you can rotate it around the body of the ship. Again, this one's really cool when you see it animated.

On the other hand, when you are placing a new piece, we wanted a visual effect that portrayed the idea that the piece hasn't been placed yet, but to also show where it will be placed. The transparent stripes on this texture are in screenspace, which is a really cool effect that Scott put together; this means that the stripes don't move as you scroll around the screen. It creates a cool computer-digitized effect, which draws a nice distinction between the real pieces and the pending ones. As you rotate or move the piece you've placed, it will turn red if something is blocking the placement.

A similar shader is also used for our arena backgrounds. Again, this is a subtle screenspace texture overlay. It colors the boundaries of the arena. No matter how much you zoom in, the grid stays the same size. This sort of thing is pretty important, since no texture will scale the 10,000x that we see in Solaro. It also keeps the very 'digital' feel that many of the UI components have.

Sorry this blog post was a bit late! My fianceé was in a car accident... someone went through a stop sign and hit her on the way home from work. Her hand is in a splint, so she's needed a lot of help around the house.

We've also got a vertical distortion shader that we can apply to things like in game text, title images, and other billboard effects. Used here on the "Solaro" title, this shader creates a bit of a video interference effect... and again, it looks a lot better in action. We vertically scroll a very tall and wrapping 1x512 pixel normal map, and we use it as a distortion map. This creates a moving pattern over the image that shakes it to the left or the right. This effect can add a lot to an otherwise plain title or static image. The animation brings it to life with a digital sort of effect.

The target view shader is applied to the entire target camera. This inset camera is used to get a view of a targeted ship if it's off screen. We create an animated noise grain over the image, as a sort of static effect. We also apply an edge burn texture around it, which helps visually differentiate the target view from normal space. Another nice effect of the target view shader is that it allows us to fade the view in and out smoothly. This allows for a seamless transition from a ship on the screen, to one that has moved offscreen and is now represented within a target camera box.

Our shield shaders are used in a few different places. This is our PlanarShield effect. It takes one base texture, but samples it twice at different points, each changing as a function of time. The resulting effect is a smooth wrapping animation of movement in the shield. When it's applied to a sphere, you get a very cool plasma-like effect. This shader also modulates the intensity as a function the y position of the UV coordinates. With the way our sphere is unwrapped, this makes our shield more transparent at the top and bottom, so you mostly just see the shield around the edges of the circle. This allows you to still see your ship through the center of the shield.

We do a similar animation effect on our warp gates. However, we adjust the falloff differently so the visual effect is strongest at the center. This hides the y=0 line of UV coordinates at the center of the sphere, since it's fully opaque there. You then see a swirling vortex animation centered around the middle of the warp gate.

All ships in Solaro are equipped with these deflector shields. They activate and pulse once each time you bump into a solid object with your ship. They have a similar animation, but they only show up at the point of impact. These last three images show how you can get a lot of milage from a custom shader with only a few changes.