A Week of Development on my Godot RPG!

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments

wow i dont see many ppl making rpgs on godot, looks cool c:

๐Ÿ‘๏ธŽ︎ 4 ๐Ÿ‘ค๏ธŽ︎ u/xXskultXx ๐Ÿ“…๏ธŽ︎ Mar 27 2021 ๐Ÿ—ซ︎ replies

That is a very nice setup. Very clean.

๐Ÿ‘๏ธŽ︎ 3 ๐Ÿ‘ค๏ธŽ︎ u/GlooriousWalrus ๐Ÿ“…๏ธŽ︎ Mar 27 2021 ๐Ÿ—ซ︎ replies

Always enjoy seeing your devlogs!

Keep up the good work!

๐Ÿ‘๏ธŽ︎ 3 ๐Ÿ‘ค๏ธŽ︎ u/Grusbollen ๐Ÿ“…๏ธŽ︎ Mar 27 2021 ๐Ÿ—ซ︎ replies

That's is Godot 4?

๐Ÿ‘๏ธŽ︎ 1 ๐Ÿ‘ค๏ธŽ︎ u/MmoDream ๐Ÿ“…๏ธŽ︎ Mar 28 2021 ๐Ÿ—ซ︎ replies
Captions
hey everyone thanks for joining me for another devlog for dauphin today is monday morning just after 7 a.m and just after the transition to daylight savings time where i live this is one of my favorite times of the year because it means that even if i manage to sleep in a little bit i still get to look out my office window in the morning at a gorgeous sunrise which is exactly what i'm doing today it's just beautiful outside as i sit here sipping coffee and enjoying the sunrise i'm thinking about how i want to spend my development time this week you may recall over the past few devlogs that i've been focusing all my energy on sailing or the ability for the player to board the research vessel from an island head out to the open ocean and sail around and ultimately find a new island or location on which to dock the boat and explore over the past few days i've actually kind of managed to complete this loop by coming up with a very prototype way for the research vessel to be docked on a new island as you can see here once i get close enough to this island we'll see a very familiar interaction prompt which will definitely change in the future what this is really just meant to convey is that hey we can actually kind of enter a new area here so if we press the interaction key while this prompt is showing on the vessel we will basically just spawn onto that island i'll definitely be improving that interaction in the future but for now i think it serves as a great prototype just to get me play testing the exploration system and as i've been playing around with this something kind of painfully obvious has come to the front of my mind and that is that every time i boot up the game i spawn on this same kind of prototype island in the same spot if i use the exploration system to land on a brand new island the game does not remember that in other words i do not have a save system because dauphin is an rpg you can imagine that there are quite a few things we'll want to end up saving and for that we're going to need a pretty robust and flexible save system i'm really excited to design and build this system but before i get too far into the weeds i want to start by creating some new ui on my title screen to allow us to actually start the game and select a save file once we have a save file selected we will have a place to save everything that we want to save and we'll be able to hit the ground running it is just after 7 30 have about an hour before i log on to work this morning you all know how it goes from here more coffee heads down we'll catch up soon hey everyone it's now a gloomy wednesday morning just before 8 am and i wanted to touch base and just give a quick update on the state of the title scene and the beginnings of my save system before i dove too deep into the save system i wanted to create some initial ui here on the title screen to actually help me create that save file to which we'd be saving all the data about the player in the world and pretty much everything so we're looking at that title scene now and if i go ahead and run this scene you'll see of course the familiar animation you see in the intro and now we have three buttons here and these are just extra button textures i had lying around these will definitely change so don't pay too much attention to how these look right now if i go ahead and hit the play button we're now presented with three save slots and this is going to be the entry point for interacting with the save system my initial plan was to pause there before my first update but i ended up hitting a stride and actually managing to make some progress on creating save files so we'll take a look at that now and before i actually click one of these save files i want to direct your attention down here to the file system where you'll see i have a debug folder and a nested save folder right now this is empty but if i come back to my title scene here and click on this first save file and then exit the game once this file system refreshes you'll see that we have a save001 resource created for us in this folder with that save data now in the file system we can relaunch the title scene and see some different behavior so we'll wait for our little animation to finish here and head back to the play canvas where instead of seeing three empty save slots we now see one populated save slot this is because my save manager is able to go look in that save directory and find that there is a piece of data associated with this first save slot at which point it creates a little preview of that data and shows it to the user the brain behind all this is my save manager class which is an auto load singleton responsible for creating and loading save files keeping a reference to the currently loaded save file which the player selects on that play canvas and then loading and saving information from individual nodes to that active save file the code in this file may look a little confusing at first but it was actually very straightforward to just create a very basic save system i followed a great tutorial from nathan over at gdquest that presented a solution using godot's resource system so i'll leave that link down in the description i basically took that and modified it for dauphin and it's working really well so far now that we have a place to save data on the file system it's time to actually save something and for that i'm going to try and start with the player's location so that each time we start the game the player spawns on the island that they're last visiting when the game was closed it's 8 o'clock now normally i try to get another 45 minutes or so of development in before work but today i'm feeling kind of lazy so i'm just gonna grab some coffee probably play some valheim and relax for a bit we'll catch up once i've made some more progress [Music] hey everyone welcome back to saturday morning at 8 30. i've just wrapped up an early but lazy morning sipping coffee and enjoying a video game and as i was doing that i realized i haven't really done much devlogging on the weekend recently for no real particular reason i've got an ambitious plan today to both finish up my basic save functionality and edit this video for tomorrow so i figured i'd bring it all with me to see if i can get it done i know we fast forwarded a few days here but that wasn't for a lack of progress i actually did get a chance to go into my save manager here and make a few changes and clean things up so at this point i'll quickly give you a run through of how i think this will work this is my save scene function where all the magic is happening and it's following a pattern suggested by that gdquest tutorial that i think is actually quite clever instead of having some global list of everything that needs to be saved for the game instead what we're doing is individually saving nodes and the data associated with those nodes and that's exactly what's happening in these three lines right here every time we call save scene on the save manager it will look through all the nodes in the current tree and find the ones that are flagged for saving at which point it will call save on those nodes so the next question is how do we flag individual nodes for saving and i knew i didn't want to go through all my nodes and manually add them to a particular group so what i did was create a helper scene called saver which you can add as a child to any node that you want to save and it'll be picked up by those three lines in the save manager what this saver takes in as a parameter or as an export really is save data as a resource so when this particular saver is caught by the save manager and save is called on it this resource is the data that gets saved so as an example let's say i want to save some data associated with my island here maybe whether or not the player has defeated the boss or has cleansed all corruption from the creatures on the island the first thing we need to do is navigate to at least in my case wherever this island is in my file system and create a resource that represents that save data we'll just call it uh island save or something like that once that's created and we can assume that i've populated that with all the data that i actually want to save we can go up into the hierarchy for this island and instance one of these saver nodes at that point i can drag that resource here into save data and this data is ready to be saved now i've written all this code and i like the pattern but i really haven't been able to test anything yet in order to save the player's location we need two locations for the player to be able to travel to right now we just have this one prototype island so my first task this morning is going to be to quickly create a small second island for the player to discover [Music] so it's been about 15 minutes and here's what we have for our goofy little test island i have to say i'm pretty happy that i can create one of these so quickly thanks to inheriting from a base stage scene that does a lot of the plumbing for me it sets up the base tile map and sets up the camera basically allows me to just spawn the player in and get right to work so this is looking really nice for now what i have to do at this point is hook it up into the world key so that it'll actually spawn in the world when the player is sailing the ocean this is that world key scene and i want to show you how easy it is for me to use this to add new islands to the world so right now it's basically just a big old ocean in the top left corner we have the island that we're so used to seeing at this point i want to add this new island right next to it so i'm going to select the adjacent square here change the marker type to island and then paste in the path to that island that we just created at this point i should be able to run the game and explore that new island so here we are on the top left island the one that again we're used to seeing if i go ahead and haul up the anchor here we will wait through our transition and see a little bit of buggy loading here for the world i'm still working on making this as smooth as possible and once we're here we should be able to go ahead and start sailing and hopefully happen upon yeah this is the island that we just took off from the one that we're very used to seeing i'm working on spawning this to the bottom of the island because that's kind of where the boat is docked but hopefully over here to the right we should see our brand new island that little kind of shipwreck castaway island that we just created and sure enough here it is over to the east ready for us to explore now that we can actually discover and land on this island the next step is for the game to actually remember that we've landed on the island so it's finally time to make our first call to the save manager class and see if we can get that working between all that progress and all of this recording it's about 10 o'clock now so i think i'm gonna take a break to edit the footage that you just saw and also just kind of recharge for a little bit before another session this afternoon so we'll catch up later [Music] well hey again everyone it's now sunday morning at 10 a.m i had big plans yesterday to wrap up my prototype save system and this video but as is often the case the afternoon just got away from me though i did make some more progress i ended up also running some errands enjoying a video game maybe a bit longer than intended and spending some much needed time outside now that we've settled into the new home i really started to appreciate how much more i'm now surrounded by nature than i was back in the city walking through the forests and around the creeks here has such a profound positive effect on my mindset and i'm super grateful for all of it today's looking like another beautiful day with even less errands to run so i'm hoping i'll have plenty of time to enjoy some sunshine and also work on saving and loading the player's location i'm going to jump into that right now and i'll catch up to walk you through everything once i have it working hey everyone welcome back to sunday evening we made it through the day with a lot of productive development time and another hour to spin outside to balance things out which was really great as i worked on the save system today i came across quite a few unexpected challenges and definitely learned a lot more about what i will need from this system for my particular game and what i need will definitely take me a lot longer than just a weekend to build that said i did wrap up the day with a very lightweight working prototype so that's what we'll go ahead and close out with now so here we are in the engine and i want to start by launching my title scene so that we can select an existing save slot from which to begin our game so we'll go ahead and hit play and select our first save slot here and you'll notice that we spawn on the unnamed island and where we want to sail is to the east to try to find stragglers point so we'll go ahead and haul up the anchor wait for our animation for the world and the ocean to be generated and at that point we will head off to the east and hopefully come upon straggler's point and sure enough just a few seconds later we have made it so we'll go ahead and press the interaction key to dock the boat and head outside to reveal that we are in fact at straggler's point now at this point when i docked the boat the game should have saved my location so at this point we will go ahead and close the game relaunch the title scene and reload that same save file at this point we should hopefully see that we're going to spawn back at straggler's point so we'll head outside and sure enough here we are our location was saved correctly now this is the time where i'd normally walk you through some of my code here and try to give you an idea of how i designed this system but to be honest i'm not totally confident in my work in progress solution so far i did end up referring to godot's own great documentation on creating save games which pointed me in the direction of saving these data as json rather than resources this feels a little bit more flexible to me because i could save something that's ultimately just not a godot resource i can really save anything that i can serialize into a json file also for my purposes of saving the location i went with something a little bit more global because that location is not just tied to one particular scene i have to create a dictionary that has some notion of global variables this is very not clean at this point so i would definitely be refactoring it in the future even though there's so much more work to be done i'm very happy with the progress over this past week it definitely got me thinking a lot more about exactly how i want my save system to work and dolphin and what i built this weekend will give me some of the tools to help realize that in the future as i close out the devlog here i just want to say thanks to everyone who's been following along on this series and providing feedback down in the comments i've done my best to act on or at least take note of your most popular suggestions and i think they're just going to make dolphin even better i also want to give a special shout out to my gourami supporters on patreon cody fenikfu mega ombre vlad james and those who wish to remain anonymous your support of my work is really humbling and i'm glad to have you on board as always i hope you enjoyed the devlog let me know what you thought with a thumb or down in the comments and keep your eye out for the next episode i'll see you soon
Info
Channel: DevDuck
Views: 83,731
Rating: undefined out of 5
Keywords: indie game devlog, indie game dev, godot game dev, godot devlog, dauphin devlog, dauphin, devduck, 2d rpg devlog, godot 2d rpg, godot rpg, gamedev, game development
Id: rn0sb2zkPzA
Channel Id: undefined
Length: 14min 5sec (845 seconds)
Published: Sat Mar 27 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.