DevBlog - The Farm 04 - Menu & Saves
Tags: gamedev, devjournal, development, showdev
Published: 2023-06-22 17:02:40

#Introduction

Hello again and welcome back to the DevBlog about my Project "The Farm".
It's been 2 weeks again and I've added something that probably no one expected, a main menu.
On top of that I've added a system to save, load and clear the progress, so that the game doesn't need to be replayed from the beginning every single time, making it future-proof for any new additions that increase the playtime.

---
#Main Menu
The main menu currently consists of just 4 buttons: "Play", "Options", "Survey" and "Quit".
The "Play" button loads up a new menu from which you can create, load and delete previous save files.
The "Options" button is supposed to allow the player to change the games settings like the resolution or the audio volume. Currently it doesn't have any functionality though.
The "Survey" button loads up the Google-Forms link I created for giving players a way to quickly give me feedback on the game.
The "Quit" button is just quitting the game.

![A gif showing the Main Menu](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2zbh4oznh3bmwdg9tmtu.gif)

---
##Save Menu
The probably most important part of the main menu is the save menu.
Through this you can create new save files, load already created ones and delete existing files.
To give the player a little more information about what is saved in what save slot, I added a few informations about that specific slot.
Those informations currently include the time of the last save, the games version that save was made in (with the purpose of allowing players that made a save file in a previous version of the game to still use that save for the current version) and the playtime.

![A picture showing the Save Menu](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xserln6jrvp3jvnqcmyc.png)

And to prevent the player from accidentally deleting a save file, I added a little pop-up window that asks you once more if you want to delete the save file or not.

![A picture showing the Pop-Up Window before Deleting a Save](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ibn87767xrs7gjojp38n.png)

---
#Save System
With the addition of the main menu I thought it was a good time to implement a save system, which isn't and easy task considering that I hadn't thought that I would get this far with this project, especially considering that I originally had around 6 months of time to make it.
What gets currently saved are the player inventory, the tiles placed, the objects placed including their inventory, the trades progress and what memories the player has already visited.
To prevent the player from accidentally losing progress I also added the saving to the "Quit" button in the pause menu, so preferably close your game like that if you want to keep your progress.
I would have to lie if I said that this wasn't/isn't the hardest and most complicated part of this project yet, but I feel like it is a necessary implementation if I want the game to be bigger than what it currently is.

![A gif showing the Save System](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i8hgywyhcb8402wpxmen.gif)

---
#What's next?
To be fully honest, I don't know what I'm gonna work on next.
My next goal is to get this project to be playable to the end of what I consider the "early-game" first, and then think about what I'm gonna do next.
Just yesterday I had an idea that could be a completely different game, or maybe it could be used as a part of the "mid-game" of this project, but I haven't decided that yet.
That also means that my next Blog might not even be about the project "The Farm", but I'm not gonna promise anything yet.
Regardless of what my next Blog or future projects will be about, if you have any questions, ideas or just wanna say hi, feel free to check out my [socials](https://linktr.ee/justlevidev) and follow wherever you feel fitting.
I hope you enjoyed reading about my projects, thanks for your time and I'll see you in my next Blog, have a good night.