[h1]Hello Riftbreakers![/h1] When designing The Riftbreaker, we wanted each playthrough to be slightly different. Enemy attacks happen at randomized intervals, and you never know what kind of a surprise the Galatean weather is holding for you. This variety is greatly aided by the randomized map generation system that we implemented. In today’s article, we’re going to tell you about the most recent addition to this system, that will expand its capabilities even more - Prop Sets. [img]https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExaTcxaXJzeGIxaTdyemRxaGx6a2U0dHh5a2Z3djE5ejdkemZ4ZHpqeiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/WjSW6nZyjZCjZpWljG/giphy.gif[/img] [b][i]The new system allows us to replace decorations in various spots across the level, reducing the rare, but unpleasant repetitions.[/i][/b] [img]https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExNG1jdWVqNG9kZXhxMzlvcW81ZjJrbTF6ODA0ejEzMWQ3bHFsbGpvbSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/AiLDzamIrxQkRuKWE9/giphy.gif[/img] [b][i]You can walk by the same spot many times and not even realize you've seen it before, but slightly different![/i][/b] [url=https://store.steampowered.com/news/app/780310/view/5262975441860531778?l=english]We have already written a lengthy article about the map generation system.[/url] We encourage you to give it a read, but if you want a quick summary, we have your back, too: maps are constructed from tiles. Each tile is handcrafted by a level designer. They set up the terrain obstacles, place resource deposits, mark spots for player and enemy spawns, and set up all the necessary boundaries. The map is also filled with various props. The bigger props are placed manually, while the large fields of vegetation are handled by our prefab system. This system allows us to mark a flat area to be filled automatically with various grass tufts, shrubs, bushes, palm trees, and many others. [img]https://i.imgur.com/oi2EeJR.gif[/img] [b][i]Prefabs work great and save a lot of time, but have their limitations. This is why we decided to introduce prop sets.[/i][/b] The prefab system not only makes designing a level easier but also ensures an even higher degree of variability within a tile. We have many prefabs to choose from, and you never know which one you’re going to see in the game. However, this system also had its limitations - it could only be used on a flat, empty space. This means that if we wanted to place some vegetation on rocks, or create a complex structure by combining several props, it would always be the same and not undergo randomization. For World Expansion III we decided to improve that and developed the Prop Set System. [img]https://i.imgur.com/GjUXWdp.gif[/img] [b][i]The prefab system was quite powerful, as it could transform the feeling of an entire tile. But, as always, we wanted more power. MORE POWER![/i][/b] The idea behind this system is very simple. In order to introduce more variability within the tiles, we decided to group our props into sets that can be exchanged with each other without any hassle. The designer places props on the map as usual. They can set them anywhere they like - on the ground, in canyons, on the rocks - the sky is the limit here. However, some magic happens during the map generation process. The game can exchange the objects that the designer placed on the map with similar ones, using a list that we created. Thanks to this, every time you load a map, you will see quite a different landscape. If this sounds complicated, just check out this GIF, and it will all become clear: [img]https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExYzNoa2FsbWk1dHUzb213dGp0cG52dm04aXl2aXRtdncyaDF6cXl5eiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/EId2BiAkAb98UTHSRu/giphy.gif[/img] [b][i]A dozen variations available at a click of a button.[/i][/b] We choose a base set of props for the designers to use during the tile creation process. Then, we create a simple CSV table that lists all the individual props that belong to the base set. After that, we can create as many alternative sets as we want. Let’s use a simple example to portray the process. [table] [tr] [th]Base Set[/th] [/tr] [tr] [td]tree_01[/td] [/tr] [tr] [td]bush_01[/td] [/tr] [tr] [td]grass_01[/td] [/tr] [/table] In the table above, you can see a simplified version of the base set of props. It contains the tree_01, bush_01, and grass_01 models. The level designer will place these props on the map and the game will use it as a baseline. Then, we can create an alternative set by choosing some other models that are similar to the base props and listing them in the CSV file. [table] [tr] [th]Base Set[/th] [th]Alternative Set 01[/th] [/tr] [tr] [td]tree_01[/td] [td]tree_02[/td] [/tr] [tr] [td]bush_01[/td] [td]bush_02[/td] [/tr] [tr] [td]grass_01[/td] [td]grass_02[/td] [/tr] [/table] This tells the game that it is safe to replace the tree_01 model from the base set with the tree_02 model from the alternative set. The system will only exchange props from the same table row, so you don’t have to worry about giant trees replacing grass tufts. However, you can specify completely different props. For example: [table] [tr] [th]Base Set[/th] [th]Alternative Set 01[/th] [th]Alternative Set 02[/th] [/tr] [tr] [td]tree_01[/td] [td]tree_02[/td] [td]mushroom_01[/td] [/tr] [tr] [td]bush_01[/td] [td]bush_02[/td] [td]rock_01[/td] [/tr] [tr] [td]grass_01[/td] [td]grass_02[/td] [td]flower_01[/td] [/tr] [/table] In this case, if the game decides to choose Alternative Set 02, the original trees, bushes, and rocks will be replaced with mushrooms, rocks, and flowers. You can get really creative here, but you also have to make sure that the lists you create make sense - you don’t want rocks to grow on top of trees, do you? [img]https://clan.cloudflare.steamstatic.com/images//34659267/af8f2a2f0faa19e327ec81e582b9b181cdff51b3.png[/img] [b][i]SURPRISE SPREADSHEET! Working in game development requires more staring at spreadsheets than you imagine. This is a fragment of our Fungal Swamp biome propset. Click to zoom in, if you like spreadsheets.[/i][/b] Additionally, during the map generation process, each tile is divided into four almost equal parts (not all tiles are square or rectangular, hence the almost part). Each part of the tile will use a different prop set if possible, ensuring that you will see as many variants of flora and other decorations as possible. [img]https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExNzhobHFwcGY0YTZnaWxicHUwdGZwcGhlYnN0dXI0dHp4NW54dmgwbyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/eWpaZqX7GFAmF1yjck/giphy.gif[/img] [b][i]This feature allows us to have many variations of complex structures without the need for manual re-propping everything each time.[/i][/b] For now, only the map tiles we created for World Expansion III will use this system. Retroactively introducing it to each of our map tiles from other biomes would be a lengthy process. It would require us to create prop sets, remove all existing props from the maps, and replace them with only the base set models. We’re not saying it is never going to happen, but it will need a lot of dedication. Creating a new biome using this system is a breeze, though, so we highly encourage you to use it when creating your custom maps. We will publish an update to The Riftbreaker World Editor suite around the release of the World Expansion itself. [img]https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExbHY5cTk0bHNobmtsb25ha2FpcDUxMjdqb3ZlMWVjNzM0amMwb3RhbCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/9Aqs7acTZxaN1Ecu9b/giphy.gif[/img] [b][i]Replacing props in such tightly-packed spaces would be a nightmare. With the new system, it's a breeze.[/i][/b] [img]https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExajM3ZGdqaG5xMmxyMW01NDl6czJic2s3anowdmt4ZW1uczJ4Y2gwMiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/Nk8fcC9ly7M9RIUFW9/giphy.gif[/img] [b][i]The right set can completely change the mood of the scene.[/i][/b] We hope that this (relatively) small addition will greatly enhance your experience with the Fungal Swamp biome in the upcoming expansion. Each day we are getting closer to our beta experimental release, so stay tuned for more info on that - www.discord.gg/exorstudios is the best place to stay informed. We’re also quite happy with our progress on the multiplayer front - we even streamed a four-player playthrough of an online co-op run on www.twitch.tv/exorstudios. You can watch it here: [previewyoutube=USDQ4A90Bko;full][/previewyoutube] When the time comes, we will for sure have a closed beta release of the co-op version. Sign up for that here: [h1][url=https://forms.gle/wdFeVGGHE1rwAdvx8]SIGN UP USING THIS GOOGLE FORM[/url][/h1] Have a great weekend, and see you next time! EXOR Studios