Our team is back from a short holiday break. We are back in the office, with our minds fresh and clear, ready to continue making steps towards our goal - the co-op multiplayer release.
We hope you have had some time to toy around with the new decorations that came with the Summer Update for The Riftbreaker. Before we left for the holiday, we announced a screenshot contest. We asked you to decorate your bases with the new buildings for a chance to receive one of the limited Mr. Riggs plushies. However, the holiday spirit got to our heads, and we forgot to remind you about the contest.
Therefore, we’re extending the Screenshot Contest deadline until Monday, September 11th, 2023.
This gives you an additional week and a half to arrange your base in the fanciest way possible and submit your idea for the contest. Let’s recap the contest rules:
To enter:
Update your copy of The Riftbreaker to the latest version.
Get access to some of the new decorations from this update. Follow the tips from the article to get them more easily.
Give your base a makeover using the new structures and props.
The three best and most creative screenshots we receive will receive an EXOR Studios care package filled with EXOR Studios goodies and a Mr. Riggs plushie!
Legal stuff: [expand] You must be aged 18 or over at the time of entry in order to enter this competition. No purchase is necessary. You must enter the contest yourself. You must comply with the laws that apply to you in the location where you access the competition from. If any laws applicable to you restrict or prohibit you from entering the competition, you must comply with those legal restrictions or, if applicable, refrain from entering the competition. Prizes are not negotiable, exchangeable, or transferable and have no cash alternative. Physical prizes can only be delivered to locations covered by UPS. If a delivery destination is not covered by UPS, then it will not be sent out by EXOR.
The winner(s) will be selected by a panel of judges based on creativity, originality and the highest quality. The decision of the panel is final.
The Organiser does not claim any rights of ownership in your competition entry. By submitting your entry, you grant us a non-exclusive, worldwide, royalty-free and irrevocable right to use, display, publish, transmit, copy, edit, alter, store, re-format, and sub-license the competition entry and any accompanying materials for our marketing or other commercial purposes. [/expand]
Next week, we are back with streams, developer diaries, and behind-the-scenes materials showing off all the upcoming goodness we have been developing for you. Until then, have fun and enjoy the last days of summer!
If you hang around with us on Discord or Twitch, you might have seen what we’ve been up to for the past couple of weeks. Our work on the co-op multiplayer has led us to accidentally come up with a 90s deathmatch-style PvP mode for the game. What started as a joke quickly turned into one of the most valuable multiplayer development tools in our catalog. In this short article, we will tell you how exactly this game mode came into existence, what we use it for, and what we plan to do with it moving forward.
It all started on a beautiful July morning. Two of our programmers, Łukasz and Marcin, were working on optimizing the client-server communication protocols for co-op play. They were playing on a locally-hosted server, introducing changes to the game’s code and testing them in action on the fly. What seemed like a regular day at the office quickly turned into something they couldn’t have predicted. As luck would have it, Marcin had equipped his Mr. Riggs avatar with the Debug Rifle - a development weapon that EXOR Staff use to test various aspects of the game. It also turns out to be one of the two weapons in the game with friendly fire capability. A momentary lapse in concentration from Marcin led to tragedy - a stray shot from his Debug Rifle wiped Łukasz’s a**...ekhm mech from existence. And then it happened again. And again.
After a couple of unsuccessful tests that ended with his mech blowing up, Łukasz decided to take matters into his own hands and teach his friend a lesson he would not forget. Unbeknownst to Marcin, he equipped his mech with a Debug Rifle of his own and gave him a taste of his own medicine. Imagine Marcin’s shock when his own a**...ekhm mech exploded due to a shot from a Debug Rifle from his friend. Anger, shock, and disbelief raged inside his confused mind. There was only one way this could end - a 1 vs 1 duel, with nothing but honor on the line…
Jokes and bad storytelling aside, this is more or less what led our two colleagues to the question: ‘How long would it take us to turn friendly fire on for all weapons in the game’? It turned out to be trivial, and in less than an hour, they could fight each other as much as they wanted. Then, they invited other programmers to join them for a match. One thing led to another, someone implemented a kill counter, and another person quickly developed a multiplayer arena-style map, and that was it - a working prototype of a deathmatch PvP game mode in The Riftbreaker.
It might seem like a useless ‘side quest’ and a waste of time, but in our eyes, it’s a valuable asset. Stripping the game down to its bare bones - running around an alien world in a mech - gave us a tool that we can use to test the connectivity and stability of the server over time. As you could see during our on-stream playthroughs, the biggest issue with The Riftbreaker co-op was the server performance decrease over time. The longer we played the game, the worse the performance would become. Whenever we tried to fix the issue, it turned out that we were fixing only some symptoms of bigger problems buried beneath. This is where our ‘accidental PvP mode’ became more than just a silly joke. In simple PvP deathmatch we don’t have to transfer and calculate an entire base and a few thousand angry monsters. It opens up more subjects that we can start working on in parallel like lobbies, matchmaking, nat-punching, movement prediction, player to player interactions etc.
The Deathmatch server only takes a couple of seconds to set up and it’s just as fast when you’re loading into the game. Instead of waiting a minute for the server to load and another minute to join it, you can have the game up and running in 20 seconds, more or less. It doesn’t seem like much, but since programmers launch and exit the game several dozen times a day, this saves a lot of time. It’s not a miracle drug that solves all problems, though - you still have to recompile the code every time you make changes to it. However, it is much easier to ask a couple of people to test something in a 5-minute PvP match instead of a lengthy and slower-paced Co-Op run.
When we showed live gameplay from this mode some of the viewers were rightfully concerned that we would abandon the development of the co-op mode in favor of the PvP mode. We would like to stress that this is not the case. Co-Op mode for The Riftbreaker is our number one priority. The deathmatch mode that we developed is only a byproduct of testing the game’s features. It is not the intended gameplay experience for The Riftbreaker and we will not spend any considerable amount of time polishing it further. However, since it’s more-or-less playable we have a few questions for you.
The PvP Deathmatch will not be an officially recognized or supported way of playing the game. This makes us wonder - is it worth it to make this game mode public at all? It’s not as strange a question as it might seem at first. This kind of online gameplay was very popular in the 90s. Nowadays, once the novelty wears off, it gets stale quite quickly. To give it a more contemporary feeling, we would need to add some progression rewards, killstreak systems, and set up real match rules. That’s a lot of features already, but their implementation would come at the cost of Co-Op development time, which is not acceptable.
If you think we should make it public, we will try to release it as soon as possible. It could be available as a mod you can download from Steam Workshop and Mod.io. We could distribute it as-is and without any further support or development. However, it would be absolutely free for you to modify and customize further. Here’s where the second question comes in: Would you be interested in modding this type of game mode? As in the case of other mods, we would offer help on our Discord, and we’re eager to hear what kind of support you would like to get from us. Still, Deathmatch would have to rely on you for any kind of improvements, as we’re focused on the Co-Op part of the game.
What are your general thoughts on this?
If you would like to always stay up-to-date with the latest developments when it comes to The Riftbreaker multiplayer, make sure to join our Discord at www.discord.gg/exorstudios. We do impromptu streams whenever we test something in voice channels on our servers. You’re welcome to join in and have a chat with us! We also stream twice a week on www.twitch.tv/exorstudios, showing off either regular gameplay or experimental previews of things we work on.
We have just published a patch that fixes the problem that rendered players unable to unlock Laser and Crystal Gates through 'legal' means. We also fixed their problems with localizations and textures. There are no other changes in this build.
The Riftbreaker is a very open-ended game. There is no right or wrong way to play. As long as you can sustain the economy of your base and withstand the enemy attacks, you can do whatever you like. You are free to use any of the available power sources, protect the base with a variety of defensive towers, and run any side projects you might come up with, like cultivating plants. There are also plenty of cosmetic elements, allowing you to decorate your base and make it truly yours. However, we felt that we could do better in the decorations area - so this is what today’s update is all about.
The Riftbreaker Summer update brings you five distinct sets of decorative items (that's 124 individual new items!) you will be able to unlock by progressing through the game’s Story Campaign and Survival Modes. In this article, we will go over these sets one by one and explain what you need to do to unlock the new items. As usual - these are permanent unlocks that will stay with your player account forever. If you have already completed the unlock requirements for any of them, we will grant the awards to you retroactively. We also have a small competition for you - details further in the news.
SCI-FI STRUCTURES SET
The first World Expansion for the Riftbreaker introduced Alien Structures. It was a set of buildings inspired by the X-Morph technology. It could be used as a reminder of Ashley’s visit to the Metallic Valley biome and her first encounter with extraterrestrial civilization. You told us that you liked those structures, so we decided to do a little follow-up. Sci-fi Structures are a set of buildings of various shapes and sizes. Their modular nature allows you to arrange them in any way you like. You can either fill an empty space in your HQ with just a couple of these buildings or create a megastructure to serve as the very center of your base. Sci-Fi structure sets come available in three colors. Once you unlock a set in a given color, you get access to all of its elements - there is no need to pick up all the individual elements one by one. You can unlock these decorations by completing all the Outpost missions in the Main Campaign. The Acidic Plains outpost will get you the green set, the Volcanic Area outposts will grant you the white set, and the Radioactive Desert - orange.
CRYSTAL STRUCTURES SET
Cultivating and harvesting resources is one of the favorite pastimes of Riftbreakers, in breaks between saving the world and trying to survive the alien onslaught. Crystals can be cultivated as well, and since we already have potted plants, why can’t we have crystals as well? Well, now we do. Crystal Structures gives you access to a bunch of crystalline structures in various shapes and sizes. They are conveniently packed into square boxes, making them easy to arrange. The set is available in five colors, each unlocking after completing a Survival Mode run on any difficulty level. The Metallic Valley Biome will give you the blue set, the Tropical Zone - green, the Radioactive Desert - red, the Volcanic Area - purple, and finally, the Acidic Plains will give you yellow crystals.
CRYSTAL LAMPS SET
We decided to give you these lamps as a reward for completing the Survival Mode in the Crystal Caverns Biome. Yes - you get the entire set, all at once, with all the colors available from the start. They look incredibly cool, in our opinion. At night, when the lamps activate, the light-emitting crystal starts levitating over the base of the lamp. When active, the crystals slowly rotate, breathing a little bit more life into your base. Please, keep in mind that these structures have to be connected to power in order to work.
CRYSTAL FLOORS SET
Taking advantage of the fact that crystal structures look great when they have a chance to reflect some light, we decided also to make a set of floors in various colors! The surface of these floors is slightly uneven, allowing the light reflections to play as you move around. In conjunction with the lamps you’ve seen above, they are guaranteed to make your base look outstanding. The Yellow and Green sets of these floors are available in the common, white Bioanomalies scattered across all Galatean Biomes. You will find the Blue, Purple, and Red sets in Bioanomalies that match their color.
FUTURE CITY SET
This is by far the most outlandish set of decorations we have come up with. Make Ashley feel at home on Galatea 37 with these buildings, featuring the latest urban architecture trends from Earth! Gaining access to this set will give you lamp posts, billboards, fences, and other elements that can turn your base into a proper city. Since most of these buildings light up at night, they must be connected to a power source, but the effect you can get is well worth it! We think that these go really well together with Crystal Floors, as well as Sci-Fi Structures. This set is unlocked by completing the main storyline.
COMPETITION
We can’t wait to see what you can do with these new decorative elements, so let’s have a little competition!
To enter:
Update your copy of The Riftbreaker to the latest version.
Get access to some of the new decorations from this update. Follow the tips from the article to get them more easily.
Give your base a makeover using the new structures and props.
The three best and most creative screenshots we receive will receive an EXOR Studios care package filled with EXOR Studios goodies and a Mr. Riggs plushie!
Don't ask how long it took us to get all of those Jurvines in their pen...
Legal stuff: [expand] You must be aged 18 or over at the time of entry in order to enter this competition. No purchase is necessary. You must enter the contest yourself. You must comply with the laws that apply to you in the location where you access the competition from. If any laws applicable to you restrict or prohibit you from entering the competition, you must comply with those legal restrictions or, if applicable, refrain from entering the competition. Prizes are not negotiable, exchangeable, or transferable and have no cash alternative. Physical prizes can only be delivered to locations covered by UPS. If a delivery destination is not covered by UPS, then it will not be sent out by EXOR.
The winner(s) will be selected by a panel of judges based on creativity, originality and the highest quality. The decision of the panel is final.
The Organiser does not claim any rights of ownership in your competition entry. By submitting your entry, you grant us a non-exclusive, worldwide, royalty-free and irrevocable right to use, display, publish, transmit, copy, edit, alter, store, re-format, and sub-license the competition entry and any accompanying materials for our marketing or other commercial purposes. [/expand]
That’s not all - this update also contains more fixes and optimizations (as always), so here’s the full changelog:
The Riftbreaker Summer Update Changelog:
Added a new set of decorations: Sci-Fi Structures. They come in three sets with different colors. You can unlock each color set individually by completing Desert, Acid and Magma branches of the Story Campaign.
Added a new set of decorations: Crystal Structures. They come in five sets of different colors. You are awarded one color set after completing Survival Runs - one after each biome, except Crystal Caverns.
Added a new set of decorations: Crystal Floors. They are available in 5 different colors. Each color is unlocked individually through Bioanomaly drops.
Added a set of new decorations: Crystal Lamps. They are available in various colors. The entire set is unlocked after completing Crystal Caverns Survival.
Added a set of new decorations: Future City. This set includes street lamps, vending machines, arcades, fences, billboards and advertising boards. The entire set is unlocked after completing the main branch of the Story Campaign.
Added Crystal and Laser Gates of all levels to match their corresponding wall sets.
Fixed an issue that could potentially block player's progress in Metal Terror DLC Story Missions.
Changed the sound effects for discovering new species and completing research to differentiate those events from objectives appearing on the HUD.
Fixed an issue that caused some Floating Mine launchers to place mines of the wrong type.
Fixed an issue that caused Wall ruins to appear too tall and could be mistaken for being intact.
Fixed teleport exploits on the Anoryx Worm boss arenas
Fixed the lighting on some Boss level tiles
Tweaked the Dust Storm and Fog weather events to work better with volumetric fog.
Tweaked the lighting effects on some props to work better with the volumetric fog.
Minor fixes and optimizations.
We are also working on the third World Expansion for The Riftbreaker. As the programmers take care of everything on the co-op front, the graphics and design teams are working on new content for you to enjoy. We don’t have a lot of information available at the time, but you can see what features you can expect from the World Expansion III on the Steam Page we have set up. It would mean the world to us if you added it to your wishlist. Click here:
We have just updated the experimental branch with the latest build that contains our Summer Update. It adds a multitude of new cosmetic item sets that will allow you to personalize your bases and give them a slightly different feel. The patch also addresses some bugs and things that we glossed over previously. The full changelog is available below.
This update is (most likely) incompatible with any current mods. Please remove all mods before playing. MAKE SURE TO MAKE A BACKUP COPY OF YOUR SAVE FILES! Make a copy of 'The Riftbreaker' folder from your documents and keep it safe.
With all these warnings out of the way, here’s how to access the experimental branch:
create a backup copy of your save folder (Documents/The Riftbreaker)
disable Steam Cloud save backup for The Riftbreaker
go to your Steam Library
right-click on The Riftbreaker
select 'Properties,’ then 'Betas,’ and use the following password: IknowWhatImDoing
After that, you will be able to choose 'experimental' from the drop-down menu. Download the update, play the game, and let us know if you encounter any issues. We also have a channel on our Discord: #rb-experimental-feedback - we highly encourage you to join in and share your feedback.
The Riftbreaker World Expansion II Experimental Summer Update Changelog:
Added a new set of decorations: Sci-Fi Structures. They come in three sets with different colors. You can unlock each color set individually by completing Desert, Acid, and Magma branches of the Story Campaign.
Added a new set of decorations: Crystal Structures. They come in five sets of different colors. You are awarded one color set after completing Survival Runs - one after each biome, except Crystal Caverns.
Added a new set of decorations: Crystal Floors. They are available in 5 different colors. Each color is unlocked individually through Bioanomaly drops.
Added a set of new decorations: Crystal Lamps. They are available in various colors. The entire set is unlocked after completing Crystal Caverns Survival.
Added a set of new decorations: Future City. This set includes street lamps, vending machines, arcades, fences, billboards, and advertising boards. The entire set is unlocked after completing the main branch of the Story Campaign.
Added Crystal and Laser Gates of all levels to match their corresponding wall sets.
Changed the sound effects for discovering new species and completing research to differentiate those events from objectives appearing on the HUD.
Updated Intel XeSS to version 1.2 - improved image quality, reduced upscaling artifacts
Fixed an issue that caused some Floating Mine launchers to place mines of the wrong type.
Fixed an issue that caused Wall ruins to appear too tall and could be mistaken for being intact.
Fixed teleport exploits on the Anoryx Worm boss arenas
Fixed the lighting on some Boss level tiles
Tweaked the Dust Storm and Fog weather events to work better with volumetric fog.
Tweaked the lighting effects on some props to work better with the volumetric fog.
With each of the World Expansions we release, we try to address some of the problems and quality-of-life concerns you tell us in the comments and on our Discord. One such issue was the lack of technology that would allow you to supply your smaller outposts with power from your main base. We decided to give you the tools to fix that problem in World Expansion II. Let’s talk about Energy Pylons today and why we decided to intervene in this case.
Before the introduction of the Energy Pylons technology, the only way of powering outposts using your main grid was by building long power lines using energy connectors. It was not the most convenient solution. Sometimes, a random pack of Kermons (or any other aggressive creatures) would get absolutely enraged by the mere presence of your connectors in their territory and go on a power line-killing rampage. Then, you would have to go and look for the exact spot where the line got broken and repair it manually. Because such things happened quite often, you could feel like your power lines need constant babysitting. That’s a play pattern that we would rather avoid.
Some players chose to make their outposts independent. They built localized power grids to support both factories and their defenses. This solution requires a lot more work and resources since you need to protect everything you’ve built from any creatures that might come knocking at your door. Even then, having many disconnected outposts might be a liability. If you are unlucky enough and an attack wave finds your small outpost on its way to your headquarters, a basic defensive setup might not be sufficient, and installing advanced towers is often not an option due to energy requirements.
The Energy Pylon technology allows you to have the best of both worlds. This structure allows you to connect to the main power grid of your base regardless of the distance on the map. You simply set up one Pylon in your main base and additional ones wherever you want to receive the power. All buildings that you connect to that secondary Pylon will automatically draw power from your main power grid, allowing you to set up an outpost with all the necessary facilities and all the defenses on top of that without worrying about the power. This makes outposts much smaller in size and easier to defend since even the most expensive towers, like Laser Gatling Towers, drawing 500 energy per second or more, will become a viable option.
This technology is also very convenient when the building space is limited. Energy Pylons do not care about any obstacles between them, allowing you to use them even in areas with tall cliffs, trees, or even underground. They are a great way of powering up distant resource factories in the Crystal Caverns biome. Best of all - there is absolutely no limit to how many Pylons you can place. You can build up new ones wherever you want. Just make sure to have enough power generation going in your main base, as the upkeep cost can ramp up pretty quickly if you are not careful. Energy pylons use up quite a lot of power themselves, and placing them is an investment. You don’t want your investment to go down in flames, don’t you?
What do you think about Energy Pylons? Do you think they are priced well? Should we consider any improvements? Or perhaps they’re too powerful? Let us know in the comments. We’re also waiting for your feedback and ideas on our Discord server at www.discord.gg/exorstudios. See you there!
We have just published a small patch containing fixes for issues reported by the players. This version of the game contains a large portion of the game's code refactored with multiplayer in mind. While the co-op update is still away, we want to get that code out to players ahead of time.
The Riftbreaker Maintenance Update, 24th July 2023. EXE: 839 DATA: 446. Changelog:
Fixed an issue that caused some units to ignore the player or disappear completely in the NavMeshMovementSystem flow fields generation. Flowfields don't cull cells if the distance is too large. Before the fix it took the lowest possible collision, which generated problems if we had terrain underground.
Fixed creature spawn in liquid volume spawners that overlapped terrain e.g. in the Morphium Lakes mission.
Improved the GraphicsCmd memory allocator, resulting in lower GPU memory usage.
Added LifeTimeComponent to fallen tree trunks, making them disappear after some time.
Fixed an error that caused dialog texts not to scroll in some languages.
Fixed a problem in TransformSystem that caused the player's weapons to sometimes spawn in the 0,0 location.
Fixed a crash in GUI when displaying a certain font style.
Fixed a crash in GuiScrollList::CreateButtons method.
Fixed an issue that prevented players from accessing the Mods menu due to a text popup about Mod.io integration.
Fixed problems with in-game videos threading.
Fixed an issue that caused the TimeOfDay system to get desynchronized when jumping between maps, causing all lights to be off at night.
Modding - moved all DLC2 boss content from the DLC2 package to the main package to make it available for modding.
Optimizations and fixes for many small elements of the game and its engine.
Reduced the install size of the game by about 500 megabytes.
Once again, it’s time to share some news about the development of The Riftbreaker co-op mode. When we released the last article, we told you about the major breakthrough that allowed us to test this game mode with more than two players simultaneously. We told you our next optimization targets and how we aimed to reduce the data transferred between the game’s server and its client PCs. This time we will tell you what we have been doing over the past few months, what improvements we made, and what comes next.
Much of our work has gone into optimizing the EntityComponentSystem, or ECS, for short. It is responsible for storing data about all in-game objects. The properties of almost everything you see in The Riftbreaker are stored within the ECS structures - the amount of HP enemies have, the light emitted by particles, the destruction system of buildings, and many more. It is a genuinely massive part of the game, so it is no surprise that we can find many places to improve within its code. Our current form of ECS in the game has been created with single-player gameplay in mind. The data for all entities are stored at all times. When an entity is visible or otherwise relevant to the gameplay, it is held in memory for immediate access. If an object is temporarily not used for any calculations, its data is packed and kept for later reference. The Riftbreaker is a huge game, so the amount of data the ECS has to handle is quite substantial. As we told you last time, large data structures are not desirable for multiplayer, where every byte of transfer and every millisecond count.
Thus we began the great work of rewriting the EntityComponentSystem, one component at a time, to optimize it for co-op scenarios. We have been working tirelessly, deciding which components have to stay on the server and be synchronized with the client PCs and which elements can remain solely at the client PC’s discretion. As we told you last time, we aim to keep things that are irrelevant to the gameplay state on clients only. However, with as many as 291 components to check, verify, and potentially rewrite, it still is a massive undertaking. However, we have made a lot of progress already, and we are sure that we will be able to enjoy the benefits of it very soon.
Minimap Rework
One of the main problems we encountered while playtesting the Riftbreaker in co-op mode was something that you could see during our dev streams (yeah, we stream co-op gameplay fairly regularly! Tuesday and Thursdays, 3 PM CEST at twitch.tv/exorstudios. Co-op streams don’t happen every time, but we try to show off our progress as often as possible.) was the broken minimap. The map would only show the player what they discovered themselves. Whatever your co-op partners found or built would not show up until you went there by yourself. Moreover, some objects outright refused to show up entirely - for example, resource deposits. This seems like not a big deal, but in reality, it made terrain orientation really tricky. It was also almost impossible to tell where attacks would come from, as their markers did not show up either. The only means of communication and marking places of interest was placing Rift Portals. While placing Portals next to valuable spots is generally okay, more was needed for players to enjoy the game.
With that in mind, we decided to rework the minimap from the ground up. The new minimap will collect data individually gathered from all players, combine all information into one on the server and then distribute a copy for each player. This way, we can ensure that every party member has access to the same knowledge at all times, making coordination and planning much more manageable. Reworking the minimap system also allows us to introduce performance optimizations. The minimap might not be the most breathtaking feature, but it’s resource-intensive. Every object marked on the map is a separate draw call for the GPU. With thousands of units, hundreds of bullets, and dozens of buildings appearing simultaneously, the cost of rendering the minimap grows quite drastically. Luckily, now is when we can make significant changes and reduce the strain on your PC’s resources.
The Sound of Silence
When it came to sounds in our early tests of The Riftbreaker’s multiplayer, the experience was hit-and-miss. During one session, you would hear all sounds playing back fine, and during others, nothing. Sometimes, you would hear sounds only if another player was hanging around in the vicinity of your screen. The problems resulted from the way we handled spatial sounds. The implementation was fine - but again, it was made with single-player gameplay in mind. Here’s a short breakdown of how the sound system in The Riftbreaker works and what we did in order to fix the problems we encountered.
We used so-called ' ears ' to simulate the effect of various sound effects coming from different parts of the screen (or entirely off-screen). Think of those ‘ears’ as a set of microphones attached to the game’s camera, each recording the sounds from the direction it is facing. When a sound is being played, we check whether it can reach one of the ears. Then, the sound’s distance from the ear would determine its volume and placement in the dimensional mix of the entire soundscape of the game. It is also worth noting that the mixing algorithm depends on a user’s sound system - it’s different for stereo headphones and for a 7.1 surround sound setup. In a multiplayer setting, the information coming from the ears of all the client machines mixed and resulted in various errors. The solution that we used in single-player was clearly insufficient.
To combat this issue and reduce unnecessary data transfers, we decided to handle sound information on the server side and send complete sound mix information to the client. Based on the position of each client’s ears, the server prepares information about all the sounds that should be audible for that player and sends it as a complete set of instructions. The only thing that’s left for the client to do is to play back the sounds from the disk. This means we won’t have to play with no sounds during our Twitch streams soon!
TurretSystem
While looking for potential candidates for further optimizations, the TurretSystem caught our attention. This system handles all the operations of defensive towers you place in your base during your gameplay. It takes care of aiming, shooting, and checking if enough ammo or energy is available for the tower to take a shot. We discovered that the calculation costs related to this system rose unexpectedly high when the player had many towers in their base. We expected the system to take up more resources for huge bases with hundreds of towers, but the numbers we saw did not match up with our calculations. We dug deeper.
Upon further investigation, we found out that the TurretSystem was optimized well, and we did not spot any immediate errors or places where we could make improvements. Clearly, it was not where the problem lay. Then, we decide to check all the systems that interact with turrets. This is finally when we got to the root of the problem. It turns out that the ResourceManager, the system that was responsible for checking if the towers had enough ammunition to operate, would take up as much as 10 milliseconds of calculation time per frame due to a bug. This problem was introduced when we refactored the resource system to handle resources appropriately for multiple players (e.g. each player’s ammunition is handled separately). When we fixed that bug, the time dropped from the dreadful 10ms to a much more reasonable 0.4ms. This is a great example of how expanding the game engine to support multiple players can drastically decrease performance and what we have to do to combat this type of problem. While working on adding multiplayer support, one of the most difficult, most time-consuming, and always ongoing tasks is to optimize the code in such a way that it runs at least as fast as single-player code.
Saves Work Too!
One more thing that we have been working on is the save system. After a couple of hard weeks of work, we implemented our first version of this system into the co-op version of The Riftbreaker. In its current form, it is quite simple and far from what it will be in the final version - please bear that in mind. Currently, the server saves only the state of the world and the ongoing missions. It does not store any information about the players, meaning that when we load a saved game on the server and connect to it with one of the clients, we are treated as a completely new player. Saving player progression and establishing an interface for reconnecting players is something that is still left to be done..
One of the main problems with testing unfinished products is the lack of stability. The server can crash anytime for any reason, ending our playtest on the spot. While some crashes happen 100% of the time, and there is nothing we can do about them apart from fixing them, others occur randomly. When you test software, you want to avoid being held up waiting for a fix to an issue that does not occur 100% of the time. While we can’t load player progression at the moment, even the current state of save/load implementation is of great help to us during development. If a crash occurs, we can simply come back to the latest saved game state and try again. If we crash again, we have a great way to reproduce a bug and make it easier for a programmer to track it down. If the game doesn’t crash, we can continue looking for more potential issues and speeding up our work.
There’s still a lot of work remaining to get the save/load system to where it needs to be, but we can already claim a major milestone as the core of the mechanism is already functional.
Conclusion
Over the course of the past few months, we managed to complete quite a few tasks and reach milestones we set for ourselves on our road to a functionally complete multiplayer build. Our programmers have laid the groundwork for the introduction of new technologies and optimizations that we have been planning for The Riftbreaker.
We have already mentioned the first of them in this article - the general-purpose optimized octree finder algorithm. An octree is a data structure where each node of the tree has exactly eight subnodes. Those subnodes can be divided further and further into more nodes. Octrees are an extremely useful tool when dealing with large, rather unorganized data sets. Dividing the data into smaller subsets significantly speeds up queries. We are currently making improvements to our current general octree search implementation that will allow us to see significant gains in various areas - both data transfers and performance. The new optimized octree organizes entity data into linear structures based on their spatial positioning. Most spatial entity queries look for entities that are close to each other, so having them close to each other within memory improves read speed and reduces CPU cache misses. Furthermore, the new algorithm is capable of returning entity component data along with the entities that are the result of the original query. Our current implementation has to divide that into separate operations, which is quite expensive. The new algorithm is very promising. However, we have to propagate its usage along all of our in-game systems to reap the benefits. It is one of the major tasks that are ongoing at the moment, and we hope to be able to report the results to you soon.
Another ‘big thing’ our programmers are working on is an entirely new dependency system within the EntityComponentSystem. Right now, when two entities make use of the same data, each of them has to create a copy of that data for ‘personal’ use, essentially wasting memory. While we are talking about sub-kilobyte numbers here, this number quickly adds up in a game like The Riftbreaker, where we often deal with hundreds of thousands of entities on one map. With this new system in place, entities will be able to share data with each other without the need to make a copy beforehand. This will reduce the amount of RAM needed by the game, make data reading quicker, and will positively impact the network transfer volumes.
We know that most of you would only like to hear the answer to a single question - when is coop going to be ready? The honest answer is that we don’t know yet. Looking back at the amount of work that we’ve poured into the online co-op, we can easily say that it already equals making a small game, and there’s already quite a bit of work to be done and a lot of unknown factors at play.
Our “immediate” goal is to achieve a stable multiplayer build with most of the game’s single-player functionality working in multiplayer through a local network. The biggest tasks that are required to achieve this milestone is - improving multiplayer CPU performance, reducing data transfer, and achieving full stability and feature parity.
As you can see, we have a clear vision and plans on how to make the co-op mode in The Riftbreaker a reality. The only thing we are asking in return is patience - we are doing our best to let you play the game with your friends as soon as possible. If you want to monitor our progress closer, visit our Discord at www.discord.gg/exorstudios and talk to us! We’re here to answer all your questions. You can also check out our streams every Tuesday and Thursday at 3 PM CEST over at www.twitch.tv/exorstudios - we try to stream our co-op tests as often as possible.
Before the release of the last expansion, we didn’t have the chance to tell you about all the new features we have prepared for you. We will try to make up for that in the coming weeks. Last week we told you about all the new weapons we introduced to the world of The Riftbreaker in World Expansion II. New toys for Mr. Riggs are always high on your wishlists, and we are happy to give you plenty of them to choose from. Still, handheld weapons are only one part of the arsenal available to you on Galatea 37. Defensive towers you can set up in your bases and outposts are the second half of this puzzle. With the release of World Expansion II, we also had a chance to expand your possibilities in this area. Here are all the new towers that we added in this expansion and the reasons why we chose them.
Acid Spewer Tower
This structure is a standalone version of the Acid Spitter weapon we showed off last week. Acid Spewer Tower is a mid-range, area-of-effect tower with a crowd control effect on top. It shoots acid projectiles that cover the battlefield with a sticky, acidic substance that slows enemies down and damages them. It is especially effective against large groups of small creatures, thanks to the fact that the acid pool stays behind for a couple of seconds. Even if a creature is not the direct target of the tower, it can still fall victim to the acid left on the ground. The tower serves as a middle ground between a Flamethrower Tower and a regular Sentinel Tower. It also fills in an important gap that we had in our defensive arsenal. Prior to the release of World Expansion II, we did not have any towers that dealt Acid damage to creatures. With this addition, you can take full advantage of Galatean creatures’ vulnerabilities.
Many of you let us know that you wanted to see more towers like the Heavy Artillery - giant, 2x2 cannons with incredible firepower. More than 800 people upvoted that idea on our suggestion board. What can we say - it’s a request we fulfilled with a smile on our face! (By the way, you can suggest more brilliant ideas there, the board is still open!)
Portal Bomb Tower
When we decided that World Expansion II was going to revolve around the underground Crystal Caverns biome, we knew that we needed a new Artillery Tower variant. We couldn’t simply use the classic Artillery. First of all, we want to imply that the cavern ceilings are way too low for the Tower to lob a projectile in a traditional way. The second reason is that Artillery Towers would shoot everything in their range, even if there was a solid wall in the way. These two elements combined would completely break the feeling of traversing a network of caverns and tunnels. We needed to find another way to combat ranged creatures, especially those pesky Necrodons.
Portal Bomb Tower utilizes our signature technology we use to solve all problems and inconsistencies - Rift Portals. Thanks to this versatile tech, the tower can deliver a powerful, armed bomb right to the back ranks of the enemy forces. Thanks to the instant materialization of the bomb in its target spot, there is no risk that the projectile will hit an obstacle along the way. The new tower’s firepower is also significantly higher than regular Artillery but comes at a significant cost. Each bomb dropped from the Portal Bomb Tower takes ten units of explosive ammunition, so you have to build a strong economy to support them. However, in contrast to Heavy Artillery, they do not require a steady flow of plasma to work, so they are a great alternative if you do not fancy laying down pipes around your entire base.
Laser Gatling Tower
This is another heavy hitter that will quickly deal with most of the large threats that might come hunting for you. While these towers require a significant amount of power per second to stay online, they compensate for that with no need for any additional ammunition to work. This tower shoots a rapid barrage of short laser bursts at a single target, allowing it to deal with heavily armed enemies with ease. However, it will lose a bit of effectiveness against entire hordes of creatures, as it takes some time to acquire its target. Still, nothing that can’t be fixed by adding more towers!
Laser Gatling Tower is an effective tool against Krocoons, Gnerots, or Drilgors - all the heavy hitters that can soak up the damage from regular towers with ease. You will also find it useful against medium-sized enemies with physical damage resistances. The energy upkeep cost may be significant, but the tower will keep shooting as long as you can provide the power for it. It makes it a little easier to maintain compared to Heavy Artillery and Portal Bomb Towers, both of which churn through your ammo reserves pretty quickly. This is the perfect middle ground between sheer power and ease of use.
What other kinds of defensive towers should we add? Would you like to see more small towers or just a couple of really massive ones? Let us know in the comments and on the suggestion board right here: https://riftbreaker.featureupvote.com/.