Devlog #12: Procedural Level Generation | Arcadian Rift

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
after much preparation this devlog installation is going to be quite the sensation we've got procedural generation of playable locations conceptualization of a space station habitation implementation of said space station condensation and precipitation leading to evaporation all across the nation and physicalization of the owlboy's visualization so without hesitation let's begin today's presentation right after this educational information my buddy thomas brush wanted to let you all know about his free 2d game kit thomas is a full-time indie developer and has released two commercial indie titles on pretty much every platform and he used this exact game kit to make a game for pewdiepie in just 14 days and play it with felix in front of 5 million viewers it's a pretty awesome kit and it's totally free you'll also be emailed some other free goodies and tools and some huge discounts for some of thomas's highly rated game development courses feel free to snag it while it's free no gimmicks just click below and he'll send it to you immediately all right so this month was a weird one i basically worked on one single thing all month the procedural game levels and this is huge like this month was a big step forward for arcadian riff's progress basically i got all the upgrades customization weapon wall and all the kind of player stuff done last month so i wanted to focus on the levels the actual rating of missions and i realized doing things the way we did the salvage freighter just would not work i had to find a better and smarter way to make the levels even if i hand crafted 20 different rating levels you'd still be running repeats constantly especially at the start of the game the solution was to go ahead with a procedural generation approach and i'm personally hesitant about procedural stuff because it can lead to some poorly designed and soulless outcomes but the plan here was to make handcrafted rooms and encounters which are simply procedurally strung together to form longer missions similar to something like warframe this means that once i got the system working i can simply add new single rooms and expand the entire potential for layouts it also turns the game into more of a kind of roguelite game where you can run randomized missions indefinitely and thus the game might have a lot more playability and replayability okay so let's get down to the actual development process for this the first thing i wanted to do was figure out if i even could do things this way previously i had no way of saving level streaming info so if you moved a crate in one room unloaded the room and then returned to the room the crate would not be where you left it could be back where it spawned initially and to make these procedural stations i would need these streaming levels to save states because you'd be able to run through them and run through them in reverse and explore them around so i got a level saving plug in and played around with it for a bit uh but long story short turns out i didn't even need it the good news of all this is it means when i get a chance i can actually go back to the ai basis and allow players to go backwards into previous rooms if they so choose as currently i've been preventing players from going in reverse because i didn't think i could load and save information but now i figure how to do it don't need a plug-in it's cool let's keep going anyway i then came up with the design for what these procedural levels would kind of look like which required a lot of brainstorming i needed to get the procedural randomness so we couldn't go with the old cargo approach the cargo ship approach and if it was like totally flat like a traditional dungeon and other games it would look unnatural from the outside wouldn't look like a space station so the solution was this kind of grid based station with tower rooms which when combined with other stuff and decor actually looks like a space station you're rating i then began stress testing the exteriors the goal was to show the actual space station that you board from the outside as you fly in so i needed to ensure i could actually have every exterior room loaded at once without much of a performance hit and after a lot of stress testing with thousands of rooms way more than i'll ever have it actually ran quite fine so that passed the test i then began the process of scripting out the actual room generation randomizing which rooms are being added to the starting room and where they are then having hallways connect them and finally rooms being added recursively to create the actual full space stations but still limiting an amount of total rooms or total length i had to make sure nothing overlapped and then i got some height variation by adding the tower rooms finally i had to make sure no rooms generated directly in front of the entry room otherwise the boarding pod would fly through them on its way in i added what i called leaf rooms which are smaller rooms directly connected with no halls in between to add interior variety at this point i decided to scale my test up to actual playable sizes with large rooms that the players would actually be navigating i then made a template for the rooms with the halls in between and made sure they all connected nicely the idea here is each room has six potential door locations on each side so the rooms don't feel less repetitive and i can make a lot of kind of layout variety this did however add a lot of complexity to the generation code but i think it was worth it in the end and i'm glad i stuck to this also got the tower rooms working it was also here that i broke the rooms into four different types x t l and i rooms depending on which sides have doors this once again allowed me to create more interesting and playable levels you could have a room that was just a linear one or one that was kind of like more of an elbow uh however this also added even more complexity um but once again glad i did it and had to make sure that things like the t l and i rooms would all then rotate to connect to the neighboring rooms and not have like a doorless side leading to the next room this was also the point when i took a look at the level persistence in the project itself and not just the test and this was when i learned i can just have things work by toggling level visibility instead of unloading like i had previously been doing although you can see things here like kind of spawning in and opening up remember that in reality it will be loading when you're in the hall and you won't actually see this i then went back to the exteriors and tried putting some models or model ideas to see how it would actually look and if it actually if i actually like the design that i initially came up with and after deciding it would work fine i started figuring out the exact metrics and sizes of each room tower hall and leaf i then began the process of making better models as well as model variety so i could test the kind of random selection none of these are final yet but as you can see here i have things like the solar panels that might generate on the sides which were actually pretty annoying as i had to make sure they all faced the same direction i got the hallways looking good and finally added some more side options and top options which also kind of randomize a bit to get to this point and then a whole whole lot of blueprint scripting and work later i did all the remaining calculations on room placement orientation creating 21 separate hall shapes to fill every combination of door placements and then choosing and potentially flipping the chosen hall i was able to make it so each random door side with random door placements which was randomly rotated to fit the neighbors could still find the correct hall to fit in between them and man was that quite quite a bit of work and a lot of headache uh got it working for the towers too and that was like the big milestone when i realized okay this is all working at this point you can finally start seeing what things are looking like you have these rooms which you know feel like a typical fps level and then you have these different paths to take you and lead you to more rooms and because they're randomly rotated you can enter from different sides so each room doesn't quite feel as repetitive as it might at this point i added the actual doors in and something i wanted to do for the player's sake was have a sign above the door now they tell you information about where the door leads such as an exit sign so if the player gets lost they can just follow the exit signs back to their ship regardless of what they are or where they are in the procedurally generated station i then had to make sure the ai would work in these procedural levels which it wasn't uh this took a lot of troubleshooting such as dynamically generating nav meshes that were invoked by the ai i eventually did get something working by just the right combination of settings and you can see here that as i go between the rooms there the ai are still navigating and attacking the player it was getting near the end of the month so i put together a big list of stuff on click up for everything left to do with the space stations and just start grinding things out to get things playable i need to start having the space stations loadable from the player ship i thought it'd be pretty awesome to see a holographic view of the generated space station from the holotable so i i first had to figure out how to scale and center the generated space station as well as generate only the exterior and set the material the other thing i'd need to do which i've meaning to do anyway for a while is start generating actual random scanner point locations on the holotable you can see now every time i simulate you get different results so no more memorizing where the ships are i managed to get the station preview generating and then just a little bit later managed to also get it minimizing and being shown full on the hollow table after setting the target and i was honestly super happy to see this working as i think it's going to be great once all the final space station art and generation is in you'll be able to like see this cool layout and choose which layout you want to actually go into before you go into it i then had to make sure the actual loading of these space stations would work as it was a bit different than the bespoke levels i had done before i also needed a new fly-in sequence with a sequence sequence with a bit of different camera angles that would showcase these station size and proportions a little bit a little bit better i'm proud to say i got that working and finally made sure that the actual layout you're shown in the hollow table is in fact the exact layout you end up getting in the mission which was something i knew i'd need from the start and thus had been using a seed-based randomness from the start and that's it that's the procedural space stations in a nutshell well there's still a fair amount of work to be done but all the heavy lifting and complicated engine stuff is now done functional tested there was a lot of work that went into getting it to this point so much scripting that i didn't really go over or have anything to show but with this approach in just a little more time i should be able to have the entire free roam pirating levels 100 done and have it so there are infinite levels rather than just my initial plan to kind of hand create a few this is great because this means at this point it's just finishing up the story missions and then i can finally move on to the story which is one of the last major things to do for the game other than the primary space station speaking the primary space station yeah remember that ugly temporary one that's been here for more than a year while i also managed to create the entire block out for the docks a courtyard and most of the exterior these areas are all based off the concept art by frizzle and now that the block out is done it's ready to be modeled and i've got someone working on the model as we speak but more on that next month and on the same topic frizzle also finished the distant render of the space station which concludes all the concept art needed to make this space station really happy this one turned out and it's good it's gonna be helpful to have that to actually figure out like what the environment's gonna look like nearby uh and beyond that i managed to get a lot of bug fixing done at the start of this month i had been deep in development and the move recently so the list of bugs have been kind of piling up so it was quite refreshing to go through and just knock all that stuff out as well as provide some nice new features and quality life things also my friend simon made me a 3d print of the owlboys and send it to me which is awesome got it on my desk now also just recently he got his first multiplayer test project working and we drove around together for a little bit and this is huge for me because my goal after arcadian rift is to make multiplayer co-op games and seeing how he was able to create this project and how easily i was able to join the game simply by having steam and getting in the same game together with literally like zero lag it was really motivating for me to eventually you know finish this game up and start working on the next game i can't really top that so that finishes up this devlog if this game looks interesting to you please consider wish listing it on steam completely free link in description just means you're interested in the game doesn't mean you have to buy it when it comes out also you can support my work on patreon and even play early builds of the game and lead feedback and suggestions most of those feedback suggestions stuff that i go through each month are from people who are play testing and leaving feedback in the forums so huge thanks to everyone who's currently supporting or has supported in the past and that brings us to the culmination of this installation of arcadian rifts situation see you next video presentation implementation of said space station condensation and perhaps wow that's gonna be hard so without hesitation let's begin today's presentation right i can't give a straight face conceptualization of a space station habitation i can't even get halfway through after much after much preparation preparation that's not even a word conceptualization of a space station habitation that's even dumber so without hesitation let's begin today's presentation right after this educational information i don't know if these are just too dumb [Music] you
Info
Channel: David R. B.
Views: 38,665
Rating: undefined out of 5
Keywords: indie game, space pirate, ue4, devlog, dev log, development, indie, unreal engine, sci fi, fps, shooter, pirate, procedural, procedural generation, procedural levels
Id: yop4XeW1gck
Channel Id: undefined
Length: 12min 53sec (773 seconds)
Published: Thu Sep 30 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.