1. The Riftbreaker
  2. News

The Riftbreaker News

Dissolving weapons and other small elements



Hello!

For the past couple of weeks, we have been showing you the dissolve feature we have implemented in The Riftbreaker. We use it to remove objects from the scene, change them from one to another, or, like in the case of buildings, to gradually introduce them into the game world. Today we will show you the smaller elements that undergo dissolution in the game.

The regular texture of Mr. Riggs' energy blade.

This is what makes all the magic happen

In order to make the dissolve effect happen, we need two textures. First - the regular texture of the object we want to apply the effect to, and second - a special dissolve texture. It resembles a cloud of smoke, as it is irregular and grey. However, those things exactly are its key properties. The pixels on this map represent values, from 0 to 1. Once projected onto the regular texture of the object, we can start removing parts of it. We set up a threshold that changes over time. All the elements that fall below this threshold are removed by the shader.

The weapon is automatically hidden at the start of the mining process. Also, you can see the shadow of something being built nearby!

In The Riftbreaker you will often see this while gathering resources. The drill is not an equipable item. We want the player to always have access to it, but without taking up an inventory slot. Drilling is a context action. When you approach a resource that you can mine, pressing a button will automatically change what you’re holding in your right hand to the drill. We employ the dissolve effect here to avoid a sudden change of the item. We also apply an additional emissive light to make it feel more ‘magic’.

The gibs don't dissolve all at once.

We also dissolve the parts that spawn from destroyed enemies and elements of the environment, also known as ‘gibs’. Instead of making them transparent using the alpha channel, we decided to also dissolve them. Since there are so many of them they do not get any emissive lights, that would only distract the player. The effect is very subtle but makes for much nicer visuals.

Make sure to join us on Thursday for the stream! You will find us at www.mixer.com/exorstudios at 3PM. We are going to show off our streaming features, as well as a full-length survival mode gameplay (as long as the stars align right ;) It's still pre-alpha, so we might encounter some problems.)

You can also join us at www.discord.gg/exorstudios. We chat with our users regularly and everyone is welcome.

Other social media:
www.facebook.com/exorstudios
www.twitter.com/exorstudios
www.mixer.com/exorstudios
www.discord.gg/exorstudios
www.twitch.tv/exorstudios

Print out your base!

In The Riftbreaker you arrive with next to nothing. Then, a couple of days later, you find yourself in the middle of a massive base. How is that possible?

Ashley’s mission on Galatea 37 is to establish a two-way portal back to Earth and enable the colonization of the planet. Such an undertaking requires a lot of power, so it is necessary for her to build up a base. In order to achieve the required energy level, Ashley must set up a network of mines, refineries, power plants, and many other useful facilities. How is that possible when the only thing at the Riftbreaker’s disposal is the Mecha-Suit?

This is what the building process looks like from start to finish. The building speed is not final and it will vary depending on the size of the building.

3D printing is the answer. Centuries of development allowed to reduce the size and necessary materials required by this technology. That pushed humanity to an entirely different level of progress. Each building is a marvel of science and engineering. Thanks to the use of Nano-Paint it is possible to print buildings quickly and efficiently, with no user action required. Mr. Riggs is equipped with building cube launcher. The cubes are an all-in-one printing solution. Once Ashley chooses the blueprint and starts the building process, the cubes autonomously fly to the destination and deploying a structure similar to a scaffolding, which serves as railing for the printer itself.

This is what the ghost of the building looks loke. If you try to place a building, but do not have sufficient resources, it will flash red.

Here's the complete version of the building above. Our printing process essentially 'reverse dissolves' it, so that it looks as if it is printed on top of the ghost version.

Let’s take a look at how this all happens, Schmetterling-wise. ;) The building process is a variant of a dissolve, technically speaking. We print buildings from the ground up. By looking at how much of the structure has been completed, the player can assess the overall progress of the building process. Each vertex of the building model has its own position in the local coordinate system. Given this position and the overall height of the building, we can project the printing line on the model exactly where we want it.

Notice the fluctuation of the printing line.

The completed parts are given their regular PBR material. The remainder of the building is shown in the form of a ghost, using a classic blue fresnel effect. To indicate what is currently being built we apply a strong emissive light. In order to make the effect even more spectacular, we added some waving in the XZ plane. The end result looks as if someone was filling a vessel with some liquid, so it is a little irregular, but much more lively.

Here's what it would look like if the line was completely straight. Artificial and uninspiring.

Add a couple of particle effects, some cool sound samples and you’re done! If you want to sell a building that is no longer useful, the process will repeat, but this time in reverse. Questions? Thoughts? Leave them here: www.discord.gg/exorstudios

Other social media:
www.facebook.com/exorstudios
www.twitter.com/exorstudios
www.mixer.com/exorstudios
www.twitch.tv/exorstudios

The Riftbreaker - Survival mode interactive stream



Hello everyone!

We are very excited to announce that we are going to start streaming in-development builds of The Riftbreaker regularly, starting next week! The first stream is going to take place on Thursday, August 8 at 3 PM CEST at www.mixer.com/exorstudios!

We have finally reached the point in development where we can finally let you see some real, live footage from the game. What we are going to show you is the basis for what we call ‘survival mode’. Our task is going to be building up a base and surviving a set amount of time while fending off waves of monsters trying to get rid of us. You’re going to see some of the new features in action and, best of all, you can take part in the stream!

That’s right! On Thursday we’re going to show off our interactive streaming features for the first time. You will get the chance to help Piotr by giving him resources or canceling attack waves, or to make his life a nightmare! Tornadoes, acid rain, doubling the strength of the attack wave - that is all within your power through the use of our features and the interactive MixPlay interface.

If you have never seen The Riftbreaker in action we have a couple of videos for you to catch up on.

https://www.youtube.com/watch?v=lDuBjKhDhho - the highlights from the event demo we present at various trade shows.

https://www.youtube.com/watch?v=IZH0GhDAdNQ - the VOD of the first Riftbreaker livestream ever.

The streams are going to show off all the new features we introduce into the game on a regular basis. It’s also a chance for you to ask questions and give us direct feedback. We love interacting with the viewers, so all questions and suggestions are welcome!

Mark your calendars. It is going to be awesome.

If you'd like to interact with us on a regular basis and take part in future beta testing of The Riftbreaker later down the road, then we invite you to join our discord server:
www.discord.gg/exorstudios

EXOR Studios

Dissolving and breaking trees in The Riftbreaker

You can see all the stages of the dissolving process in slow motion.

In the last article, we touched on the subject of the system responsible for fire and burning effects in The Riftbreaker. The dissolve effect that turns the vegetation into burnt husks is one of the several that we have implemented, each with a different use case. In this case, whenever a piece of flora catches fire, we start dissolving it by gradually changing the texture from regular to burnt.

Grass + fire = ...?

The first texture you see is what you encounter in-game when the plant is in its normal state. By mixing it with the second texture, we get an imitation of the model being engulfed in flames. As it happens, the vertexes of the plant light up bright orange - simulating smoldering. We also attach some fire effects, chosen on the basis of size. After some time, all that is left is what you see in the third picture - a completely burnt version of what was there before the fire.

The parts of the tree model as they appear in the model editor. Note that all the leaves are separate parts, too!

That is, of course, not the only misfortune that can happen to the poor plants that stand in your way. Mr. Riggs has plenty of weapons that can end their existence, and we are prepared for that. The plant models are cut into a lot of smaller pieces which spawn when their parent model is destroyed. The direction in which the parts will fly after being spawned is affected by the direction of the attack that destroyed the plant to some degree, but there is also an element of randomness to it. Additional particle effects appear to imitate splinters and leaves. After all of these things take place, only a stump is left in the ground.

The parts do not spawn in the same order every time, which adds to the variety.

That’s all we have for you today. Remember to join our Discord server - you can ask us anything at any time and give us your feedback and thoughts. www.discord.gg/exorstudios

Other social media:
www.facebook.com/exorstudios
www.twitter.com/exorstudios
www.mixer.com/exorstudios
www.twitch.tv/exorstudios

Vegetation system in The Riftbreaker


Hi-res: https://gfycat.com/pl/poshanguishedhoneybee

Hi!

There are a lot of things that go into creating a realistic environment. We always want our game worlds to feel as if they were real and there were actual physical forces affecting everything around the player. Today we are going to show you what it takes to achieve such a feeling by taking a look at our vegetation and the systems that affect it. This is a larger topic, so we will divide it into smaller pieces. We highly encourage you to check out all the high-resolution versions of the GIFs, as you'll be able to see all the details more clearly!


HI-res: https://gfycat.com/oldfashionedmildagouti

First of all - the grass. While it might not seem like much, walking around the world filled with tufts of grass certainly beats a simple texture that only tries to imitate it. Our level designers have various models to choose from, but in general, they are divided into categories based on their size. We distinguish between small, medium, large and very large models. The size obviously changes the look and feel of the area the grass is placed in, but the size is relevant also because of the forces that we apply to it - wind, bending, and shockwaves.

Let’s take a look at each of those forces one by one, starting with the wind. Our engine currently allows us to place two kinds of wind forces on the scene - local and global. Local wind only affects objects in a specific radius. An example of such a wind force is a tornado. Here’s an example, where you can clearly see the limit of the tornado’s effect on the grass:


Hi-res: https://gfycat.com/deadbrilliantibizanhound

Global wind, on the other hand, affects all the entities on the scene. It is responsible for all the swaying that occurs naturally, without any outside interference. Regardless of the wind type, it is regulated by a whole lot of parameters, which allow us to simulate the flow of air. Without going into much detail, using a whole set of functions we can get a slightly different wind direction and strength in various points of the map. You can see these represented by vectors on the gifs.


Hi-res: https://gfycat.com/threadbarebiodegradableeuropeanfiresalamander

Shockwaves come into the picture whenever something explodes (and you know how we feel about explosions). Shockwaves come in two flavors as well. The first one is instant. It applies the force to all objects within a radius of the explosion. The amount of force and the radius depend on the size of the explosion. The other type of shockwave is called physical shockwave. It is a separate effect, and occurs after the instant shockwave takes place. It takes the form of a ring that increases in diameter over time, affecting the grass tufts further away from the center of the explosion.


Hi-res: https://gfycat.com/activegregariousairedale

The bending force bends the vegetation away from the source, which can be any entity that has the BendingComponent in its properties. We apply this component to things like the mech, enemies, and bigger projectiles, such as rockets. The strength of the bending force gets progressively weaker with the distance from the source. The example below shows you the vectors of the bending force and the affected sphere.


Hi-res: https://gfycat.com/diligentimprobablebettong

Of course, if we applied wind, bending and, shockwaves together at once we would only get a glitchy mess as a result, as they would clash against each other. Instead of that, whenever game logic gets updated, we take a weighted average of all the forces, giving them a different factor of importance. The result of this operation is then applied to the vegetation. Based on this, plants in The Riftbreaker can exist in 3 states:

Idle - no forces other than the wind affect the entity,
Bending - when a bending force is currently being applied by another object
Recovering - the bending force is no longer being applied and the object is returning to the idle state.

Science time!. In order to achieve the effects of the grass swaying in the wind and its springiness, we need to apply some math. We approximate the restoring force by using this function:


Source: https://www.desmos.com/calculator/qkuac3balu

The bending effect is, in turn, a vertex shader. It manipulates the vertex of the object and bends it according to a parametric square function. The values of bending and restoring vary between the different models, which gives each of them a unique feel.

We wouldn’t be ourselves if we did not give you the opportunity to set something on fire. That is where the FlammableComponent comes into play. Every entity with that component can be set on fire. We can tweak the probability of the object catching fire if it’s currently being affected by a fire source, such as a flamethrower, as well as the time it will burn once it is set ablaze. Every time the game logic is updated, the information is gathered which objects are currently in the range of open fire. Then, we perform a roll for each of those and if the result is positive, the object will catch fire. Some things are almost impossible to set on fire, while others need just a spark to burst out in flames.


Hi-res: https://gfycat.com/viciousfeistyblackwidowspider

Once the entity is on fire, we give it another set of properties - BurningComponent. The affected piece of vegetation becomes the source of fire itself. With this component, we can control the range to which an object can spread the flames. The bigger the entity, the further it can spread the flames. We also control the burning rate, which determines how often an attempt to spread the fire is performed. Apart from the BurningComponent we also apply the proper particle effects and start dissolving the mesh. What is noteworthy - the spread of fire is affected by the wind!

Here's a link to the compilation of all the GIFs used in this article:
https://youtu.be/F4tbyhkHAOg

That’s all we have for you today! Thanks for reading, and if you have any questions, feedback, or suggestions, let us know in the comments or on our Discord! www.discord.gg/exorstudios!

Other social media:
www.facebook.com/exorstudios
www.twitter.com/exorstudios
www.mixer.com/exorstudios
www.twitch.tv/exorstudios