March 19, 2020
Arise: A Simple Story uses its art direction to tie its story and gameplay together
New Spanish studio Piccolo formed when partners in the digital advertising industry decided to quit their financially stable jobs working with big brands such as Nike and Coca-Cola to pursue their game-development dreams. Considering the studio founders were not only financially successful but earned many accolades in their previous roles, this departure equated to a significant gamble on their part. Despite stepping into unfamiliar territory, Piccolo’s first title, Arise: A Simple Story, garnered great reviews, which is a rarity for a brand new studio. The game’s art direction, in particular, was heavily praised with sites like PlayStation Universe stating, “Arise has an amazing art style. I was captivated by the visuals from beginning to end.”
To see how the fledgling developer was able to create such a charming, minimalistic look, we reached out to several members of the team. The Piccolo devs talk about how they looked outside of the gaming industry for inspiration, most notably at Studio Ghibli and classic animated Disney films. They share their philosophy for how colors and shapes can be used to convey different moods and delve into how they created the game’s innovative rewind mechanic, which allows players to forward and reverse the flow of time. Finally, they walk artists through their workflow and talk about how they created Arise’s lighting, VFX, and animation systems. Arise features a very imaginative, minimalist art style that is at times playful, enchanting, and mysterious. How did you come up with the artistic vision for the game?
Art Director Jose Luís Vaello: There are multiple factors to take into account here. First, we were telling a simple story and wanted to translate that simplicity to the art style, but we didn’t want to go too low-poly or low-fidelity. We spent a lot of time experimenting with the lighting and atmosphere because those are elements that really set the mood of the game.
We were also telling a very emotional story, and we wanted the emotion conveyed in each level to [resonate]. If you add too many elements into a scene, your attention is drawn to each individual detail instead of the whole. For this reason, each of our levels has a different color palette with a dominant color.
In the end, it’s all about conveying an emotion: cheerful, melancholic, sad, etc. It was an exercise of self-restraint, especially in the bleaker chapters. In video games, it’s common to just add as many things as the budget and GPU can handle to “enrich” the visuals.
Were there any games or works of art that influenced the look of Arise?
Vaello: We try not to use other games as references when building our own because we believe leaning on references outside the industry will make our games more unique. Still, we are gamers ourselves and we are influenced by what we play. I would say that Inside would be the most obvious influence. It is minimalistic, too, but its simplicity comes from a lot of work, and it has an outstanding attention to light and atmosphere.
Still, our main influences actually come from traditional hand-drawn animated movies. Studio Ghibli, of course, but also a lot of classic Disney films. Fantasia, for instance, was a huge inspiration visually, and serves as a great example of how to create emotion and a wordless narrative with [inanimate objects] coupled with a [compelling] soundtrack.
Also, in terms of animation and color palettes, we took inspiration from many Pixar films, particularly “Up,” which uses it effectively to play a big role in influencing narrative arcs.
With the game's unique time-bending mechanic, snow in an environment can spring forward and melt to reveal flowers underneath. Was it challenging to get the same levels to look equally stunning across various seasons?
Technical Artist Jordi Ministral: The biggest challenge when producing the game was transforming the environments. Most games feature a static environment and characters moving through them, so engines are optimized to work this way. Our game was the opposite: We have a single character and we dynamically alter the environment around him. Depending on the chapter, this involved updating the transforms of all assets in the level, or morphing a mesh in real time for a melting patch of snow, updating collisions, and more. In other chapters, the daylight cycle forced dynamic sunlight with dynamic shadows.
Having this running at a good framerate on consoles was tricky, and we had to come up with a number of creative tricks to make it work. For example, all of our environment actors have collisions disabled and are only enabled when the object is within a certain distance of the player. This saved a lot of CPU [cycles] in levels where scrubbing time involved updating thousands of actors.
Arise features a wide variety of visual effects that showcase fire, snow, wind, and more. How did the development team implement the game’s VFX?
Ministral: Related to the aforementioned answer, since our gameplay features a timelapse mechanic, we had to make everything “rewindable.” Traditional particle effects move forward all the time, and the state at T depends on the state at T-1. You can’t send the simulation to a specific time in real time because that would mean running the simulation from time 0 to the time you want to display at each tick. So we ended up creating our own “rewindable” particle systems that use two different techniques:
1) If the movement you want to represent can be expressed with a mathematical formula, you implement the formula in the vertex shader. Falling debris is a good example of this, as a falling object’s position is:
P(t) = P(t0) + V(t0)*t + (G * t2)/2
So, with a base formula and some clever randomization per individual, you can simulate falling rocks that execute on the GPU and can be sent to any moment in time [simply] by setting a value for T. We did this for dust clouds that simply project outwards from a starting position and also for ambient effects like rain and snowflakes.
2) For more complex simulations that cannot be easily expressed with a formula, we created a system that bakes the complete simulation into textures. Then the shader simply samples the texture position corresponding to the position in time that is to be represented. We get full rewindable cheap GPU particles at the cost of some memory, but since our game is light on textures, it was not a problem [for us].
We also have a system that bakes a spline’s positions and tangents into textures that can be accessed within the shader to drive an animation, so artists can just tweak the spline within the editor and see the effect adapt. Once you start seeing a texture as abstract information, there are lots of creative things you can do.
With lighting that includes immersive sun shafts, bloom, and more, how did Piccolo Studio light the game?
Ministral: First of all, we use only what the engine provides, which is more than enough for us. We are a small team, and we think we should focus on creativity and let Epic do what they do best.
The most important decision [we made] was to spend a big part of GPU cost on lighting, volumetric fog, and DOF. So, for consoles, we knew we couldn’t afford complex materials or a huge amount of triangles. Draw calls needed to be minimized, too. We already had made a decision to have a simple art style, so it was doable.
Then we had to come up with a workflow that allowed us to iterate lighting fast. We wanted the art director to be able to adjust lighting. The problem is that lighting a scene involves a skylight component, a directional light component, exponential height fog, etc. Many components with many different parameters organized in a way that makes sense from a programmer’s point of view, but very difficult for an artist to grasp.
If I want the shadows of my scene “bluer,” I know I need to adjust the indirect lighting tint in a global post-process volume, but if I want the background of the scene lighter, I will have to adjust the scattering color of the height fog, and this is another actor in the level. Light shafts affect fog but are set up in the directional light. Moreover, if, like in Arise, all of these evolve over time, you have to set up a sequence for all of these actors, add keys for all of these properties, and teach artists methodologies using Sequencer. If you are a big team, you can afford a lighting artist, but the art director will still need to talk to them and sometimes things can get lost in translation.
After trying several approaches, we came up with a system that artists could learn: we have a single actor that encapsulates all components relevant to [light] a scene: skylight, directional light, fog, and an unbound post-process volume. This actor is given a data asset we call a light asset that is a collection of all relevant properties of all those components. The actors copy values from the collection to the components in real time. Then the art director needs only to open the asset, adjust values and see changes in the scene, he doesn’t need to worry about where each property really belongs. The asset is just values that an artist can understand, so they can iterate on light and ambiance without knowing about components or [rely on] a technical artist.
Once this system is in place, you get some positive effects: a scene’s entire ambience is contained within one asset, so you can have multiple settings and backup versions of your light by simply duplicating the asset. You can switch between them to see how the mood changes. You can also have one asset define the beginning of your laps, another define the end, and lerp them over on an alpha value.
Then we came up with the concept of light volumes that work exactly [like] post process volumes. As the camera enters a light volume, all properties of the light asset of that volume are weight-blended with the default light of the level and feed into the underlying components. We ended up with dynamic light in space and time that artists could tweak on their own, so we could iterate many more times and the result was way better.
Finally, we invested a lot in lightmaps. Getting subtle, indirect lighting that was never too dark or too bright was tricky, and required a lot of iteration. Lightmap artifacts and low-resolution imperfections are usually hidden by a texture’s detail, but our textures are almost flat, so we were very sensible to lightmap bleeding. We tweaked lightmap resolution for each actor manually and ended up changing some internal lightmass settings to achieve the clean look we wanted.
The way the unnamed protagonist traverses across the environment coupled with how the seasons change the look of levels is charming. How did the team execute the animations in Arise?
Producer Alexis Corominas: Acting-wise, we used Clint Eastwood as a reference. We are big fans of his and the way he hides his emotions, but still manages to convey complex [subtleties] with the slightest of moves. When we modeled the character, we gave him gloves so he didn’t have fingers, and we didn’t rig the face on purpose. This forced the animators to work only with body language.
We also set up our animation Blueprint so that for each state in our state machine, we can randomly pick one animation from a list of candidates, and animators can simply add variations of each action to that pool of animations. This makes the character feel more alive because each time he executes an action, it is a little different.
We have “personality” volumes that override the pool of animations for a specific action. Animators can place these volumes in the map and when the character is inside the volume, he will play a different animation for that action that better matches the emotion of the moment.
Also, we had different pools of idle breakers for each chapter, because each is devoted to an overall emotion. In the end, it was very important for us that the animations felt cohesive, but you felt subtle differences at every step of the journey.
With the brighter and more cheery levels generally being easier juxtaposed against the sadder, darker areas being more challenging, Arise elegantly blends story, gameplay, and art together. Can you elaborate on how you pulled this off?
Corominas: First, for each chapter, we decided the one single emotion that we wanted to convey. Then we came up with all of the [design] elements that would work together to achieve that emotion, [such as:]
Shapes: Rounded shapes are easier on the eyes so we used them for “good” memories, whereas sharp edges, high walls, and menacing cliffs were used for our “bad” memories.
Colors: We use saturated, vivid colors to convey positive and happy emotions. For sad and bleak moments, we used desaturated colors and a more uniform palette, because in sad moments, the world itself seems muffled and lifeless.
Gameplay: Platforming and jumping is exhilarating, so we mainly used it in our childhood, youth, and joyish moments. Somber moments, on the other hand, would demand more reflexive gameplay. As an example, we had some clever puzzles with snail shells in the [early] level “Joy,” but we removed them. They were good puzzles, but they felt like work, and childhood is about experiencing the world in a safe environment, not thinking about your way out of problems.
Difficulty: We used the traditional concept of video game “challenge” in our memories of youth because it makes sense for teenagers to challenge themselves. Difficulty during the old age phase comes by way of environmental hazards, because being old can be about ordinary actions that become harder and harder, and not about overcoming great challenges.
If you have a clear idea of what you want to achieve at a high level, it helps a lot with all of your low-level decisions, because you have a reason for everything. It gives your project consistency.
Arise features a very minimal user interface. Why was this a good fit for the game and how did the team design it?
UI designer Oriol Pujadó: As with everything else, this stems from our high-level concept of achieving simplicity. We wanted players to connect with the story in a very raw, wordless, and emotional way; so the simpler, the better. However, with user interfaces and especially with tutorials, there’s a thin line there that you cannot cross, because if players don’t understand your tutorials, it will ruin the game for them.
Can you walk us through the studio's artistic workflow?
Corominas: Once we decide on what a chapter will be about and what players will be doing in terms of gameplay, designers start working on a grey-box layout of the level and the art team does some concept artwork [to establish] the general mood of the scene.
Then when designers have something “playable,” the art director does some paintovers to make structures more interesting, and artists do the first iteration of assets.
Then the map goes back to designers and they make sure everything is still playable and re-adjust things. Basically, we go back and forth between the art and design team until we run out of production time!
In Arise, we also have an automatic camera. You will notice when you’re playing the game that we are constantly adjusting the point of view, distance, and FOV depending on where you are. So, as the level art is being iterated, we are also iterating the camera. Each level has hundreds of camera volumes that are blended together as the player moves around, and these need to be tested and iterated a lot to ensure the perspective is not making you miscalculate a jump.
The last thing we do is lighting (including lightmaps) and [manage the] atmosphere, as it relies on the art assets for each level to be reasonably “final.”
Can you talk about your Unreal experience coming into the project?
Corominas: Some of the team members we hired did have previous Unreal experience and had worked on released games. For us, it was our first game, so we didn’t have any experience with any engine. We actually had to do research on game engines. After we decided on UE, we then recruited people with UE experience.
Why was Unreal Engine a good fit for the game?
Corominas: Because it is brilliant, powerful, and easy to work with. Blueprints, on its own, is a gamechanger, as programmers are no longer your bottleneck. Same thing with the shader editor; 3D artists can learn how to create and adjust most of the materials, and your technical artists can focus on the more complex stuff. The more your non-technical [people] can work within the editor on their own without the help of a technical profile, the more your productivity boosts, and you can see how UE was designed with that in mind. For small studios with limited resources, this productivity boost is even more important than the pure technological edge of having the newest graphical effects available to you.
Ministral: There’s this misconception of Unreal being only fit for hyper-realistic rendering and AAA games, but this is simply not true. Just because the default settings are geared for realism doesn’t mean stylized rendering is difficult to achieve, it is not. Sometimes developers want to use every feature just because they are available to them. You have to “decide” not to use AO or motion blur if it doesn’t suit your style, or keep your materials simple. Sometimes just a diffuse and normal map will do it.
How did you learn the engine?
Ministral: Lots of tutorials and many hours analyzing template projects. We do have a background in digital production and motion graphics, so the core concepts of rendering are not unfamiliar to us, we only had to learn the specifics of the engine. Whoever designed it must have a similar mindset to ours, because everything just made sense, learning it came very naturally. Of course, it takes time to know all components available and what every property does, but the basic workflow was easy to grasp. Also, as we recruited people with experience, we could lean on that experience to speed up the process.
Can you provide any development tips for artists using Unreal Engine?
Corominas: It sounds obvious, but keep your content browser tidy, agree on a naming convention at the start of the project and enforce it. It is tempting to just start working on personal folders and pretend to figure out a proper organization later in the project, but this never happens and you are stuck with messy folders forever.
Ministral: Trust the engine. Epic’s defaults are better than you think. Especially when it comes to lightmaps, it will be very common that your first iterations will be disappointing, and you will be tempted to just ramp up all quality settings until it looks nice. If you don’t really know what you are doing, don’t touch them. Follow the documentation. Make sure your lightmap UVs are properly set. Take into account that light color and intensity affects bouncing, too. Sometimes we do a first lightmap calculation with a white skylight of intensity 1, so basically we are bouncing an initial light of 1 and it helps to see what is happening, which materials are bouncing enough light, and which ones are not.
Thanks for your time. Where can people learn more about Arise: A Simple Story?
Ministral: You can find more about the game at www.arise-game.com.