I have been a professional developer for 35 years now (although unreal dev is a hobby). I have watched a LOT of unreal tutorials and out of all of them, you display the best understanding of best practices, patterns, segregation of concerns, SOLID principles and decoupled code!! It is very refreshing to see in contrast to many tutorials teaching very bad habits!! Well done and thanks for the videos!!!
@AliElZoheiry3 ай бұрын
Thank you so much for your kind words! I'm glad to hear that my videos resonate with your experience and understanding. I appreciate your feedback and support 🙏
@jesseyules29 күн бұрын
I wish KZbin would add a tutorial-specific rating system so the community could better identity the great lessons. :D The "like" button doesn't cut it. :)
@rogerfoster8020 Жыл бұрын
I am mostly commenting for the algorithm, but your content is of the highest quality for the unreal engine i have come across. Keep up the amazing high-quality content! I love how descriptive you are on the reasons to do each step and its less like a tutorial to get the system into the game and more a tutorial on how to use the tools of Unreal Engine in a logical fashion. Thank you!
@AliElZoheiry Жыл бұрын
Thank you for the kind words! I'm glad to hear that you appreciate the level of detail in my tutorials. I'll definitely keep the high-quality content coming for the Unreal Engine community. Your support means a lot!
@Techadron Жыл бұрын
Hey, we would love to see an inventory system tutorial series from you man. Watched your smart enemy Ai series and its amazing and the best Ai series so far on KZbin. Keep up the good work!!!
@AliElZoheiry Жыл бұрын
Hey, thanks for watching and commenting, anything specific you're looking for? or just a basic inventory management system?
@MaxStudioCG2023 Жыл бұрын
@@AliElZoheiry hey you forgot to cut the (chloe get the fk down ..3.2.1 action :)))))))))))))))))
@AliElZoheiry Жыл бұрын
@@MaxStudioCG2023 hahah yeah someone else mentioned it and I fixed that hahaha
@MaxStudioCG2023 Жыл бұрын
@@AliElZoheiry haha good :))))
@sametcalik4358 Жыл бұрын
@@AliElZoheiry please make a tutorial on how to create quick item system. Because there is no such course on youtube or udemy. There are mostly tutorials on how to collect items, how to drop items in the inventory, etc. For example; it would be great to see a system where we can have separate slots where skills and quick-usable items in our inventory can be connected and we can switch between objects in these slots quickly without slowing down the pace of the game. My game I developed has become much better thanks to you. I hope we can meet and work together one day. Sincerely regards
@حاتمإسماعيل-ب7ر Жыл бұрын
You the first guy I see making a save and load tutorial very clearly I watched the entire video without getting bored. I really want to see more tutorial from you man, Keep up the good work.
@AliElZoheiry Жыл бұрын
Hey! Thank you so much for your kind words and feedback! I'm glad you found the tutorial helpful and engaging. I'll definitely keep the tutorials coming, and I appreciate your support!
@aviatorkeyz8992 ай бұрын
@ali can we get a tutorial on how to save items and other things other than cubes?
@lorenfulghum239310 ай бұрын
I really appreciate that you teach correct design patterns. A lot of channels just go with the naive solutions and don't even allude to a better way existing. I'm right now coming from having written a "quick and dirty" prototype, and going into rebuilding a proper production codebase. Your channel is so perfect for me right now, these are all the exact things I need to be thinking about.
@AliElZoheiry10 ай бұрын
I'm glad to hear that you find my channel helpful. Correct design patterns are crucial for building a robust and scalable codebase, and I'm glad I can provide content that aligns with your needs. Thank you for your feedback and all the best with your codebase redevelopment!
@BlueSpawn6 ай бұрын
I have been working with Unreal for over 2 years and have seen hundreds of tutorial videos from nearly a hundred creators. This is by far the best tutorial presentation on an Unreal topic I've seen. I don't like comparing people, but if I had to, I'd say that "at last, we've found the Brackeys for Unreal." Well done, sir!
@AliElZoheiry6 ай бұрын
Thank you so much for your kind words and high praise! I really appreciate your feedback and I'm thrilled to hear that you found the tutorial so helpful. Thank you for watching and commenting.
@TheWufstyle Жыл бұрын
Seen a couple of your tutorials, and just wanted to compliment you on teaching good coding.. Instead of "bad coding for the sake of this tutorial".. Keep up the good work.. Too many creators cut corners with bad practices, which in turn really dosn't teach anything useful..
@AliElZoheiry Жыл бұрын
Thank you so much for your comment. I'm really happy that you see the value I'm providing. This is indeed the niche I was going for
@XehanortLP10 ай бұрын
As a gamedev student in the fith term I can't thank you enough! This time we are completly free in choice of the genre and you are an absolute beast explaining things like this! I really hope you continue with the videos man, great work!
@AliElZoheiry10 ай бұрын
Thank you so much for the kind words! I'm really happy to hear that the content has been helpful to you. Best of luck with your game development studies, and I'll definitely keep the videos coming!
@tarasholota622112 күн бұрын
I just wanted to express gratitude, adding my opinion on top of other positive comments here, for such a comprehensive and clean tutorial. I really appreciate that you explain every bit of information you share. Thanks!
@AliElZoheiry10 күн бұрын
You're very welcome! I appreciate your kind words and I'm glad you found the tutorial helpful. Thank you for taking the time to comment! 🙏
@marcinpagorek357822 сағат бұрын
After 1 minute of watching, I already see this is probably a much better tutorial than all the other 5-10 minutes ones I've watched which don't even explain why they do things the way they do and definitely don't teach you in a way that will be easily scalable and applicable in other scenarios. Edit after watching the whole video: I can only confirm that this is a top quality video. Good work!
@Lottie-e6m3 ай бұрын
Anyone having an issue with the accessed none on save game ref / save game data... if this isn't the first tutorial you've tried try deleting your built up save files in saved/ save game in your project files. Everything else worked great thank you so much! This is the third tutorial I've followed trying to understand saving and loading and I feel like I'm understanding much better after this video.
@a.j98123 ай бұрын
I tried this but am getting the same issue haha EDIT - MAKE SURE ALL PINS ARE CONNECTED big whoops on my part
@AliElZoheiry2 ай бұрын
Hey! Thanks for sharing that tip, it could definitely help others facing similar issues 🙏 I'm glad to hear you're starting to understand saving and loading better!
@StumpDesigns Жыл бұрын
Really appreciate these tutorials and how in depth you explain things. I like to understand why I'm doing something and not just copy and paste. Keep em coming!
@AliElZoheiry Жыл бұрын
Thank you for saying that 😊🙏 that is exactly what I was going for. Glad you see the value in it
@phipsinator6 ай бұрын
OMG. I finally found someone on YT who is able to provide industry level information. This stuff is very usable and I couldn't be more grateful for this content!
@AliElZoheiry6 ай бұрын
Thank you Philipp, I appreciate your support and feedback. Glad you found this useful!
@nekarisАй бұрын
Best teacher ever! I love Unreal and I followed tons of tutorial, but I have to admit you are the one that teaches it the best way possible!
@AliElZoheiryАй бұрын
Thank you @nekaris for your kind words and support 🙏 Really glad my tutorials have been helpful
@nekarisАй бұрын
@@AliElZoheiry I noticed it misses the step to delete the saved game via Blueprint, or did I miss it? Thank you in advance
@AliElZoheiryАй бұрын
@@nekaris To delete a saved game, you can just use the "Delete Game in Slot" function, or just save an empty SaveGameData
@Fizziepop10 ай бұрын
Comments are good, so here I am because you are great. I am not though, I missed the naming of the SlotName variable at 12:27, it took me 13+ hours of re-playing the vid and some help to figure that out. But I got there! Thank you for your content! It's good to be learning the best ways to do things, instead of the messy ways.
@AliElZoheiry10 ай бұрын
Hey, thanks for your feedback! I'm glad you found the content helpful, and I appreciate your perseverance in troubleshooting the issue with the SlotName variable. Keep up the great work!
@sprite78326 ай бұрын
Dude I did as well, I always go to the comments to look for a potential fix or if somebody run into a similar issue haha, thanks a lot
@XmcJesus3 ай бұрын
THANK YOU! I had the same issue where my game was not saving when going through the check point. I knew it had to do with Slot1 because of this comment. The only thing is when you said naming, you meant the naming when promoting to a variable in the side panel for default right? Great Tutorial from Ali the only part that trips me up is when they use the bad way to do something but keeps items from it as I watch the repeat and try to skip the bad practices. I completely missed the Slot1 default naming and once I slept redid the whole thing I got to that part and fixed my code. Thank you again and even though its been 6 months I hope today is great for you.
@present_artist1033Ай бұрын
I did same, thank you for sharing!!
@CallMeMistaPepe Жыл бұрын
I will be subscribing to your Patreon! You make things others don’t and that’s worth paying for!
@AliElZoheiry Жыл бұрын
Thank you so much for your support! I really appreciate it and I'm glad you find value in my content. Your support means a lot to me!
@jorrdan. Жыл бұрын
Thank you for going in depth with everything! It felt as easy to follow as the average tutorial but with the depth of actual docs, so it was easy to understand and retain the information
@AliElZoheiry Жыл бұрын
Hey Jorrdan, that's great to hear! I'm always happy to receive such comments, because then I know it was received as intended. Thank you for that 🙏
@CharlieTangoYankeeАй бұрын
You are an AMZING teacher man, thank you SO much for taking the time to put this out into the world 🤘 I felt like inreally understood what I was doing and why as opposed to just following a lost of steps. Great work 👏
@AliElZoheiry28 күн бұрын
Thank you for your kind words! I'm really glad to hear that you felt like you understood the material better and not just followed steps. That’s the goal! 🙏 Thanks for watching and supporting!
@GorblinRat4 ай бұрын
I think your channel is the first one I've watched that taught me anything useful.
@AliElZoheiry4 ай бұрын
Thank you so much for your comment! I'm really happy to hear that you found it useful 🙏
@Kurock1000 Жыл бұрын
Wow. The best I’ve seen. Explains the concept and reasons which are sorely lacking elsewhere.
@AliElZoheiry11 ай бұрын
I really appreciate your comment. Glad you found it helpful and thanks for watching 😊🙏
@w33dsmoke61 Жыл бұрын
7:50 ive been searching for a week for someone to explain this shit the way youre doing. my brain cannot learn if someone else is doing all of the steps(work) for me. i REALLY hope you make more ultimate guides....
@AliElZoheiry Жыл бұрын
Hey, thank you so much for your comment! I'm really glad to hear that my teaching style resonates with you and that you find the explanations helpful. Rest assured, I'll definitely be creating more ultimate guides in the future. Keep an eye out for them!
@artkalm9 ай бұрын
Now that was very helpful! Best save/load system explanation I've seen so far. Thank you very much for this tutorial, it really made my work a bit easier.
@AliElZoheiry9 ай бұрын
I'm so glad to hear that you found the tutorial helpful! Thank you for your kind words and support. 😊
@LeateqOfficial4 ай бұрын
Perfect, what i needed for my demo right now :) Thank you ! ps: would be also great to see in the future how to make a proper inventory system :)
@AliElZoheiry4 ай бұрын
You're very welcome! I'm glad it came in handy for your demo 🙏 I'll definitely consider a tutorial on a proper inventory system for the future. Thanks for the suggestion!
@youngjojo305211 ай бұрын
Look, I’ve been working in unreal for a few years now and I’ve created some decent save and load system but this right here is gold. I never understood why people create save and load method in the player character or game mode 😂😂😂 thank you mate
@AliElZoheiry11 ай бұрын
Thank you for your comment! I'm glad you found the tutorial helpful 🙏 Happy game developing!
@SweetChili638 ай бұрын
Thanks Ali, this tutorial is amazing! Thank you for properly explaining every step as opposed to just telling us where to put what blueprint :D I was hoping you could help me with a follow-up question; How would you go about saving and loading a huge amount of different spawned blueprint actors as opposed to only the BP_Cube in this case? So far example BP_Cube, BP_Cylinder, etc. etc. Thanks!
@AliElZoheiry8 ай бұрын
Hey SweetChili! Thank you so much for this, I really appreciate you 🙏🙏 Regarding your question: the principle is the same, you want to identify what you want to save about your actors, only the minimum amount of information needed to perfectly recreate their state, that could be as simple as the actors class and their location in the world, then you can make a struct out of the data you want to save about your actors, and then just save an array of that struct type. Then when the game loads, you loop over your array and respawn the actors based on the loaded data
@gmagno20002 ай бұрын
The best save/load game tutorial I've ever seen! Thank you so much!
@AliElZoheiry2 ай бұрын
You're very welcome! I'm glad you found it helpful, thank you for watching and commenting 🙏
@RoryMcC42 Жыл бұрын
I gain valuable unreal knowledge from every video you post. Keep them coming! Thank you for sharing.
@AliElZoheiry Жыл бұрын
Glad to hear that! Thank you for your comment. I'll definitely keep them coming ;)
@SimulatedHuman7 ай бұрын
Amazingly detailed enough for me to implement it for something totally different I was saving, thank you!
@AliElZoheiry7 ай бұрын
Thank you! I'm glad to hear that you found the tutorial helpful for your project! If you ever need more assistance, feel free to reach out 🙏
@akaicrew-y4s4 ай бұрын
hooooo boy this tutorial saved my ass sooooo much !! best tutorial I had seen so far after 10 months on unreal engine and you explained everything in detailed !! subscribed and love!
@AliElZoheiry3 ай бұрын
You're very welcome! I'm really glad to hear that it helped you. Thank you for subscribing and for your kind words! 🙏😊
@crs11becausecrs10wastaken11 ай бұрын
Had to comment, this level of detailed explanation has been very helpful. Currently, I'm attempting to have the game create a new save slot each time a new game has started and the information of those slots updated in the load game widget. So far it's gone horribly, but I appreciate you showing where the best places to store and retrieve data should live.
@AliElZoheiry11 ай бұрын
Hey there, thank you for your kind comment! Creating new save slots for each game start and handling the information update in the load game widget can be a bit tricky at first. I'm glad the detailed explanations have been helpful, and I'm confident with a bit more practice it will start to come together smoothly. Good luck with your game development endeavors!
@CyberHobbit4 ай бұрын
"Not all heroes wear capes" Thank you so much
@AliElZoheiry4 ай бұрын
You're very welcome! Appreciate the kind words 🙏
@perochialjoe Жыл бұрын
This was really useful, thanks a lot! A useful addition to this tutorial would be to save things like enemies, their position, health, alert state, if they're dead, etc- especially since you've got your series on enemy AI. The cube position was useful but it feels like this can get really complex really fast.
@AliElZoheiry Жыл бұрын
I'm really glad you found the tutorial useful! Thank you for the suggestion. Saving enemy state and position does indeed add complexity, but it's definitely something worth considering for a future tutorial.
@perochialjoe Жыл бұрын
@@AliElZoheiry Just wanted to give an update that I was able to use the information from this video to save / load more complex things like enemies and have them fit back in seamlessly. So the information applies very well! Thanks again for the video, it really was a big help for me and I imagine plenty of other people too.
@AliElZoheiry Жыл бұрын
@@perochialjoethanks for the update, really glad to hear it was helpful for you 🙏
@bbproductions89759 ай бұрын
This is amazing! Really well explained and clear instructions with what to do and why you are doing it. A lot better than other tutorials out there. This is really underrated!
@AliElZoheiry9 ай бұрын
Thank you so much for your kind words! I'm really glad you found the tutorial helpful. Your feedback means a lot to me 🙏
@OverlandBound9 ай бұрын
Another thank you my friend. Spent the weekend revamping my save load system using this method. I had surprisingly few issues given the complexity of my setup. It is a vast improvement. I had function logic in BP_SaveGame and it confused my brain. This is easier to track and follow.
@AliElZoheiry9 ай бұрын
You're very welcome! I'm glad to hear that you found the method helpful. Simplifying the logic and tracking it more easily can definitely make a big difference!
@MasthaX11 ай бұрын
Very good quality content from you. I like how you explain the right way of separation of code/data and functionality. I've seen many videos of people just slapping everything in their player/controller blueprints, which will probably work most of the time however it's very bad practice. I think it's due to the fact that many people who jump into UE don't or yet have a very knowledgeable understanding of software architecture.
@AliElZoheiry11 ай бұрын
Thank you for your feedback! I'm glad you appreciate the value in what I'm trying to do. It's definitely an important aspect that contributes to cleaner and more maintainable code.
@HadesCrypt Жыл бұрын
Went from learning unity through youtube tutorials and online courses to then trying to learn unreal through youtube and you are the first channel I've came across where I felt like I was actually learning properly and actually getting a grasp on the concepts of game development and not just copying what the person was saying, the way you present and do these videos inspires and motivates me, had problems of loosing motivation countless times I've deleted so many projects that i started and just completely lost the will to keep trying, but i honestly get so motivated and learned so much watching your tutorials, so thank you. Can i suggest doing a inventory system video? sort items, look at their stats, apply armour and switch out weapons etc, as its a common thing in games. Personally i would love a AI companion tutorial (Have a soft spot for good companion mechanics such as in assassins creed 3), have a few AI characters you can recruit either from paying them or doing a mission for them and have them follow you and you can give them items to wear or weapons to use and help in combat, tell them to wait, or to patrol the area etc, but a inventory system i think is something people would love especially being a fundamental mechanic in a lot of games
@AliElZoheiry Жыл бұрын
Hey Hades, thank you for your comment. I'm really glad you found this useful, and I appreciate that you see the value I provide. And thank you for the video suggestions. The inventory system is indeed an interesting one. I suggest tutorials by "Ryan laley" he has an entire series on making an inventory system
@sutadoralive8 ай бұрын
Hello ! First of all, I'm verry sorry for my broken English. I'm from Japan. I discovered your channel recently and I think it's great to watch your videos that offer such quality content about UE! Well done and thank you so much for it! I am contacting you because I have started the development of an Horror Escape Game on PC. I'm really not a professional in this area, at all, and I would love to see a tutorial about more complex features and, very importantly, a real save menu. There are many good tutorials in English on the subject, but, I only see videos concerning relatively basic save system which do not take into great consideration the triggers (using do once or destroy actor), the collectible objects which would be picked up in several levels, the passage between several levels, etc. What I would really like to see is a tutorial that deals with and clearly explains, in addition to what we basically see everywhere, more complex save system: - Saves (in different slots) and loading games menu - Check points (with a list of all saved check points in the save menu, with the possibility of reloading them) - Attribute and customize the name off the saves - Interactive elements (saving picked up objects, multiple doors when the state changes from open to closed, etc.) - Spawned and destroyed enemies (so that the trigger or event no longer retriggers after saving / auto-saving) - Inventory - When and how properly use Game Instance and Game Mode (with the differences between sublevels and levels) - The save logic between several levels (not just in a single level) - The save logic in a game with only sublevels - etc... A video like this, with great teaching like yours, would be more than exceptional and unique ! Thanks again for all your videos!
@AliElZoheiry8 ай бұрын
Hey there! Your English is great, no need to apologize. Thank you so much for your kind words and suggestions. I've noted down your ideas for a more complex save system tutorial and will consider them for future videos. I truly appreciate your support and hope to create content that meets your expectations! Thank you for watching and reaching out to me 🙏
@sutadoralive8 ай бұрын
@@AliElZoheiry You're welcome. Thank you very much for your answer and your videos. Keep it up 💯
@Hematite09 ай бұрын
thank you! you explained everything wonderfully, and this was so easy to follow and understand. i have been putting off creating a save and load / continue game system for awhile
@AliElZoheiry9 ай бұрын
You're welcome! I'm glad you found the tutorial helpful. Don't hesitate to ask if you have any other questions! 😊
@nwhajlawn6224 Жыл бұрын
man i really wanted this, man you are really an angel😭. Thank you making this now I will go and watch this video I know it will be very helpful
@AliElZoheiry Жыл бұрын
You're very welcome! and thank you for your comment! I hope you find it useful 🙏
@nassergreatdeveloper37458 ай бұрын
Thank you so much. you are legend man. The most important thing in the game is main menu, Setting menu, saving and loading system.
@AliElZoheiry8 ай бұрын
You're very welcome! I'm glad you found this helpful🙏 I plan on making a part 2 of this where I make a main menu and custom load/save slots
@Tegurd7 ай бұрын
@@AliElZoheiry That would be fantastic!
@Renaiuss6 ай бұрын
@@AliElZoheiry When bro when
@daveradburg180515 күн бұрын
Ooof I missed the detail that just setting the variable name for the save file name slot wasn't enough- if you're reading this and struggling try opening up the save slot variable and in the details panel there should be a default value- make sure its not empty :) this is all i was missing and it left me confused for a spell haha. Thank you Ali! Great tutorial.
@AliElZoheiry11 күн бұрын
Thank you for sharing that tip! I'm glad you figured it out, and I appreciate you helping others who might be in the same boat. Thanks for watching! 🙏
@CloudlessStudio6 ай бұрын
This is wonderful, I felt like I was in a college class. You are a great teacher
@AliElZoheiry6 ай бұрын
Thank you so much for your kind words! I'm really glad to hear that you found the video helpful and engaging. Your support means a lot 🙏
@allthefame37 Жыл бұрын
Thank you so much man, these tutorials are awesome!
@AliElZoheiry Жыл бұрын
You're welcome! Thank you for watching and commenting 🙏
@GaryParkin6 ай бұрын
Thank you for all the time it took to make and edit this tutorial. You have a new subscriber. I truly appreciate your tutorials and how you explain things. I want to understand why I'm doing something, and not just do what you do because then after the tutorial you know nothing of the WHY.
@AliElZoheiry6 ай бұрын
You're very welcome! and thank you so much for the kind words and support! Glad you found this helpful
@SpamVhpl7 ай бұрын
commenting for algorithm too, this channel is worth gold
@AliElZoheiry7 ай бұрын
Thank you for your kind words! I'm glad you find the content valuable 🙏
@oanxem226110 ай бұрын
I absolutely love your videos! Words cannot express how grateful I am for the incredibly helpful content you provide.
@AliElZoheiry10 ай бұрын
Thank you so much for your kind words! I'm truly happy to hear that you find the content helpful. Your support means a lot to me!
@ryanjdev87 Жыл бұрын
Anyway you can expand on this topic in a future video and talk about using this system with level instancing, main menu/ pause menu UI and possibly adding thumbnails to the save file ?
@AliElZoheiry Жыл бұрын
Hey Ryan, definitely something on my list. I could potentially make a full series out of this, stay tuned ;)
@ryanjdev87 Жыл бұрын
I'll b here :)@@AliElZoheiry
@ryanjdev87 Жыл бұрын
and also honestly it would be incredibly helpful, I can seem to only find tutorials on 1 subject or the other never linking them all together like you need to in a finished game. This would seem to be the "secret sauce" :)@@AliElZoheiry
@kellowattentertainment Жыл бұрын
You are really the best, honestly. Thank you for your videos and dedication to helping persons like myself be better at Game Development using Unreal. It's really appreciated. What I would love to see is a mission/quest system. I know that would be awesome. So the quest system can have for example: Collecting Items Quests (This would be collecting a certain amount of items, either you collect the items for yourself, or you collect the items and give them to another character) Killing Enemies quests (This can be killing a certain number of enemies or killing all enemies that are either spawned or placed in a level. The number of enemies spawned can vary by being random. It would be really awesome to see how to store the data of spawned enemies so that it automatically plugs into the amount that should be killed on that specific mission. That way you could choose whether to have a set amount of enemies killed to pass the mission, kill all the enemies, or the mission could start by saying kill 5 enemies, but then others are spawned and the objective can be updated while the mission is still active to kill those that are spawned as well making the game more dynamic and enjoyable.) Interacting with actors or character quests (This can be to go to someone and then a small dialogue can be played etc, pick up a specific item. That sort of thing. Like at the start of the game, there's an objective to pick up a sword and another objective of the same mission to equip the sword... that sort of thing) Going to a certain location quest (Have the player journey to a specific location in a level) Timed missions (This is where you have to complete any of the four main mission types listed above at a given time... normally you'd have to get to a checkpoint before the time runs out or collect certain items within a certain time) Combined missions: where you could fuse different mission types into one. For example, you could have the player kill enemies within a certain location, if an enemy is killed outside that specific location, it doesn't contribute to passing the mission. My apologies for the long comment, I just wanted to explain what I'd like to see.
@AliElZoheiry Жыл бұрын
Hey Kellow, thank you so much for your kind words and your suggestions. I take all suggestions into account, I put them in a list and prioritize them with each new video, so this is very helpful. Thanks again and I'm glad you're enjoying my videos so far 🙏
@badtemperTV9 ай бұрын
This is absolutely GOLD my man, thank you very much for the clear explanation.
@AliElZoheiry9 ай бұрын
You're most welcome! I'm thrilled that you found the explanation helpful. Thank you for watching and commenting 🙏
@TheJMBon4 ай бұрын
Instead of saving Actors by class, I found that saving Actors by Tag is much better. This lets me save any Actor that has a specific tag, regardless of the Actor class itself. Using this, I can make one FOR loop that saves cubes, NPCs, Niagara Effects, etc. ... basically any Blueprint Actor with the tag.
@AliElZoheiry4 ай бұрын
Thank you for sharing your approach! Using tags for saving actors is definitely a flexible method. It allows for more dynamic saving and makes it easier to manage different types of actors in your game. Great tip! 🙏
@aviatorkeyz8992 ай бұрын
How would I alter this code to enable save by tags for my actors? I believe that would be a better way to handle saving
@VindettaconАй бұрын
Really great resource as usual but a few small notes that may improve further for those interested in the interface definition. At least for this game as it was laid out we don't need LoadGame or SaveGame on the BPI interface since they aren't used externally (which was the focus being that we are using the interface to avoid a cast). It is actually better (given this implementation) to have them be private since they require other bits of data to be set up. Save and Load look like they are purely logic for writing the SaveGame to a slot and should only be used via public methods like SavePlayer or SaveCubes since they ensure that the SaveGame's member variables are actually set up appropriately. That being said I completely understand why you initially treated them as public to make your point and support the flow of the video. To summarize the BPI_SaveGame could shrink down to just supporting GetGameData, SavePlayer, and SaveCubes. the BP_GameInstance would then still retain the save and load methods but privately.
@AliElZoheiry28 күн бұрын
Hey! Thank you for your insightful feedback and suggestions. I appreciate you taking the time to share your thoughts 🙏
@BlueSpawn6 ай бұрын
Great tutorial. Quick suggestion. Casting is not ideal due to memory impact (though you could argue it could be small in this case). What I did was add a function to the BPI called "GetSaveGameBP" then add the interface to the BP_SaveGame and for that method, reference "Self" then return it for that method. In the GameInstance BP, I call the Save Game that's outputed from the "LoadGameFromSlot" methods, call the interface, return the BP_SaveGame and set it to the BP_SaveGame variable there.
@AliElZoheiry6 ай бұрын
Thank you for the suggestion! I want to clarify that Casting has zero impact on memory when the actor being cast to is already loaded in memory, such is the case for all framework classes, they are always in memory already, so casting to them makes zero difference Many people believe that casting is bad for performance, but this misconception often stems from misunderstandings about how casting affects memory usage. Casting is only problematic if it creates hard references between classes that shouldn't always be loaded together, which leads to increased memory usage.
@BlueSpawn2 ай бұрын
@@AliElZoheiry Great point.
@meathelix4 ай бұрын
This is an excellent video running through all of the steps needed. I'm worried about scalability though. I don't know if there's a better out-of-the-box approach, but having to make new structs and arrays of variables for every new type of actor that I introduce to the game, not to mention things like components that might have health states or inventory in them, it seems really daunting to support as a project grows. I would love a way for BPs and components to handle save state within themselves and talk through the GI to the savegame actor somehow, without me having to add special case variables to the save game when things are added.
@AliElZoheiry4 ай бұрын
Hey! Thank you for your thoughtful comment. Scalability can definitely be a challenge as projects grow. One approach could be to use a more generic struct that encompasses shared properties for various actor types, reducing the need for separate structs and arrays. You can also consider implementing interfaces for handling save states, allowing components to manage their own data while still communicating with the Game Instance. This way, you can keep it flexible as you introduce new elements. Just a thought! 🙏
@AdamHansen-u8c6 ай бұрын
Love your tutorials man. Your pacing is great!
@AliElZoheiry6 ай бұрын
Thank you! I'm really glad you're enjoying the tutorials and finding the pacing helpful!
@tie.garcia Жыл бұрын
Keep going man, no words can describe your work!
@AliElZoheiry Жыл бұрын
Thank you so much for your comments! I really appreciate your encouragement and support
@dragonfire_bane5 ай бұрын
A perfect video with simple instructions! Thank you!!!!
@AliElZoheiry5 ай бұрын
You're very welcome! I'm glad you found it helpful. Thank you for watching and commenting 🙏
@RazDoesCode2 ай бұрын
This has been extremely helpful! Thank you!
@AliElZoheiry2 ай бұрын
You're very welcome! I'm glad you found it helpful 🙏
@Tegurd9 ай бұрын
Thanks for the tutorials! Probably the best on KZbin.
@AliElZoheiry9 ай бұрын
You're very welcome 🙏 glad they have been helpful
@IDeVaToX7 ай бұрын
love your workflow man , its tidy appreciated my friend
@AliElZoheiry7 ай бұрын
Hey, thanks for the kind words! Glad you appreciate my workflow 🙏
@patmacalister5 ай бұрын
Your channel is a gold mine
@AliElZoheiry5 ай бұрын
Thank you! I really appreciate your kind words 🙏 Glad you’re finding it valuable!
@drakouzdrowiciel923710 ай бұрын
This tutorial was incredibly informative.
@AliElZoheiry10 ай бұрын
Thank you for your kind words! I'm really glad you found the tutorial helpful. If you have any more questions or need further clarification, feel free to ask.
@christopherpulley76147 ай бұрын
Keep it up. You make the most useful videos on unreal and game dev. I really appreciate it as it demistify the game engine. I am building an action RPG as a hobby project to learn to build and iterate on ingame systems and have found a lot of use for your topics. Some suggestions might be level up systems (i.e. adding or improving ingame skills) and inventory management including attributes like weight management and or stashing items. Other genre ideas might be turn based xcom type games. I can't find anything recent for that type related to unreal. Anyway, great job...hope you keep it up. Let us know what else your up to i.e. future topics, games you're working on...God Bless and good luck.
@AliElZoheiry7 ай бұрын
Hey there! Thank you for the kind words and suggestions! I'm very happy to hear that you find my Unreal and game dev content helpful. Level up systems and inventory management sound like fantastic topics to cover in the future. Turn-based games like XCOM are also an interesting idea, but a bit out of my comfort zone! I appreciate your support and encouragement. Stay tuned for more content, and I wish you the very best with your game development journey too. God bless!
@t6ixfury Жыл бұрын
Perfect timing on this! Just was looking into this!
@AliElZoheiry Жыл бұрын
That’s awesome! I hope you enjoyed it!
@kevlargames1860Ай бұрын
You should do a missions tutorial. I just finished mine after scrolling through videos on videos of tutorial that were lazy, not practical and just unorganized. I actually referenced your video on dependencies to set up my objective system. At some point I’d like to improve it with a data table and a few more structures if needed but for now what I have works but there’s just so many improper over simplified tutorials on objectives
@AliElZoheiryАй бұрын
Hey! Thank you for your feedback, and I'm glad my video on dependencies was helpful for you. I appreciate your suggestion for a missions tutorial-I'll definitely keep that in mind for future content 🙏. If you have specific ideas or features you'd like to see in it, feel free to share!
@DanySk801426 күн бұрын
Hey! Thx for all your amazing content! I have an amateur question if someone can help. I did the tutorial so when i exit the game and enter, it load perfectly at the checkpoints. The problem is that i dont know how to make the "load" when and where i want. I wanted to bind a key so when i press it it load the last save. I set the input key in my character BP but dont know what to do now ;(. Any help?
@DanySk801424 күн бұрын
I just figured out how to do it!! Thank you so much for sharing your knowledge, I really appreciate the amazing work you do 😍
@AliElZoheiry22 күн бұрын
Hey! Thanks for your kind words 😊 Glad you figured it out. Keep up the good work!
@doudar415 ай бұрын
Thank you for this tutorial. Can you make one about how to make in-game screenshots and show them in save/load interface?
@AliElZoheiry5 ай бұрын
You're very welcome! Thank you for the suggestion, I'll definitely consider it for a future video 🙏
@doudar414 ай бұрын
@@AliElZoheiry I have one more question. I've made save/load system using your tutorial but instead of making separate file for each save, I've made struct (SaveFileStruct) and dictionary of them in one save file. It works and I feel like it's better manageble system but maybe I don't understand downside of this approach. Are there some downsides?
@AliElZoheiry4 ай бұрын
A single file is fine if you always want to load the data together and the data isn't that big, but if you have a hundred levels in your game and save information about every single level, then it doesn't make sense to load 99 levels of useless data everytime@@doudar41
@doudar414 ай бұрын
@@AliElZoheiry Thank you, you're right.
Ай бұрын
Dude, I hope you’ve quit your job because I’m eagerly waiting for more videos like this. As always, it’s amazing! What sets your tutorials apart from others is that they’re not just purpose-oriented but also follow proper programming principles. Thank you so much, my favorite KZbinr!🥰🥰
@AliElZoheiryАй бұрын
Hey, thank you so much for your kind words! I really appreciate it. I'm glad you find my tutorials helpful. I haven't quite my job just yet, KZbin is not the easiest way to make a stable income 😅 so new videos will still be coming, but at the current rate of 1 video every 2-4 weeks. Unless somehow my channel explodes and I become viral overnight, then I'll definitely quit and focus full-time on this
Ай бұрын
@@AliElZoheiry Until then, I’ll be eagerly waiting for every video you post! I’d be thrilled if you occasionally share tutorials like this with C++; they really help me understand the logic behind the work. I’m saying this as a software engineering student. Also, for the future, if you ever create a Udemy course, I want you to know that I’ll be one of the first to buy it!☺
@FFTVYoutube6 ай бұрын
i came here to figure out how to save gathered coins to display at end of round but also accumulate and save in a coin bank variable to display in menu. thanks for the video!
@AliElZoheiry6 ай бұрын
Hey! I'm glad you found the video helpful 🙏
@alexanderkartashov87763 ай бұрын
good approach and great explanation
@AliElZoheiry2 ай бұрын
Thank you! I'm glad you found it helpful 🙏
@lordkelvin16 ай бұрын
Great presentation :) Really easy to follow
@AliElZoheiry6 ай бұрын
Thank you for the comment! I'm glad you found it easy to follow. Happy to hear that it was helpful! 🙏
@mikelkram Жыл бұрын
Many thanks to you for your lessons. You explain the code very well.
@AliElZoheiry Жыл бұрын
You're very welcome! Thank you for watching and commenting, happy to hear it was helpful
@amariu19489 ай бұрын
really informative thanks alot bro, need more tutorial videos like this
@AliElZoheiry9 ай бұрын
Thank you for the kind words! I'm so glad you found it helpful. More tutorials are definitely on the way. Stay tuned!
@akib2161 Жыл бұрын
thank you so much for this totural i waanted this saving an loading was the ony thing that i did not had any idea in gamedev but now i will
@AliElZoheiry Жыл бұрын
You're welcome! that's great to hear that it was helpful 😇
@Black-Cow2 ай бұрын
Thank You!!!
@AliElZoheiry2 ай бұрын
You're welcome! Thanks for watching and commenting 🙏
@electronicinfection7 ай бұрын
That is the way. Thanks for being a great teacher!
@AliElZoheiry6 ай бұрын
Hey, thank you for the kind words and for watching! I'm really glad that you found the tutorial helpful. Let me know if you have any more questions in the future.
@okinava_play Жыл бұрын
Thank you bro! Awesome like always
@AliElZoheiry Жыл бұрын
Any time! Glad you enjoyed it!
@HiddenWorldsLLC7 ай бұрын
What people fail to realize is you have to call the function you use when loading your game, meaning if you have a attach weapon to socket you have to call that, the game won't automatically do that just because you save and load that your character has an axe in its hand, if you have an inventory system you have to add all of the saved items back in the inventory as if they where being picked up from the world.
@AliElZoheiry7 ай бұрын
Indeed, I realized that as well from some of the questions. I hope to clarify these things in future beginner level tutorials
@donnyjoe76534 ай бұрын
Awesome tutorial! Thank you so much! :)
@AliElZoheiry4 ай бұрын
You're very welcome! I'm glad you found it helpful 😊 Thank you for watching and commenting!
@stvarnov87544 ай бұрын
Amazing and brilliant tutorial. one small bug I found is that if I exit and play again on the same checkpoint twice my health would go back to 100%, I am using your damage system btw Edit: Same thing happened to you at 31:52 and 32:59 without you noticing. you are the best UE youtuber out there and thank you for all your tutorials
@AliElZoheiry4 ай бұрын
Hey! Thank you for your feedback and for catching that bug. This indeed happens because as soon as you spawn on checkpoint, it triggers the SavePlayer function, which could occur before the health has been loaded. To solve this, you should simply ignore the checkpoint on spawning (either through a timer, or checking the location)
@DylanPlayzz8718 ай бұрын
I don’t know if your still ready comments in videos from 4 months ago but if you are I would love love love to see a good weapon system video. I been following someone and watching how they do it but they are in consistent Chang things to much and are just breaking the code. To the point where a game I’ve been working on is now just useless and I don’t know what to do. The video concept was having it where the player can hold more than one gun in inventory. One is in hand. And on is in inventory. And you have an option to put both away and just go with hands. Then he changed them all messed it up and then added an ammo system and it just got all confusing. I do want an ammo system but learning the weapon system and ammo system from someone who teaches like you do would be amazing.
@AliElZoheiry8 ай бұрын
Hey there! Thank you so much for your suggestion, I appreciate your support and feedback. I'll definitely consider creating a video on a weapon system and ammo system in the future. Keep an eye out for more content!
@DylanPlayzz8718 ай бұрын
@@AliElZoheiry thank you. It would be so much help. Would pretty much finish my game at this point.
@krakencodegames13667 ай бұрын
Great video man, thanks for posting
@AliElZoheiry7 ай бұрын
You're very welcome! I'm glad you found it helpful. Thank you for watching and commenting 🙏
@BrianHamil17 сағат бұрын
You should resize the array one time for the cubes and then set the indices. Calling add creates a new array every time. Big cost if you end up with a lot of objects.
@NepahelmShadow10 ай бұрын
Absolutely awesome content man, really appreciate this stuff. Keep it coming. You made the thought process and the process itself so simple to understand. I used to get overwhelmed by the amount of code I was working with, trying putting everything into one event graph. It makes me want to go back and watch some earlier tutorials from others and see if I can implement this process into it. Really looking forward to content from you in the future. If you see this, do you have a patreon or any other place you post content?
@AliElZoheiry10 ай бұрын
Thank you so much for your kind words and support 🙏 I'm really happy to hear that you found my content useful! I indeed do have a Patreon, the link is www.patreon.com/Alizoh
@vabhinavvahalla8 ай бұрын
good quality videos man, thank you
@AliElZoheiry8 ай бұрын
Glad you're enjoying the videos! Thank you for your support 🙏
@crxnklol2 ай бұрын
You’re a legend for making this video. I just a have a question, how can I save progress to my game, for example if the player reaches a specific place, he can’t go to the previous checkpoint but only to the next one
@AliElZoheiry2 ай бұрын
Hey! Thank you for the kind words 🙏 To save progress and restrict the player from going back to previous checkpoints, you will need to store information with each checkpoint that tells you its order (e.g which one comes before the other), and then when you reach a checkpoint, before saving, first get your last saved checkpoint, and if it is "after" the one you are currently on (based on the order information that I mentioned above) then don't save, otherwise, proceed normally and save
@crxnklol2 ай бұрын
@ thank you so much
@mehck211 ай бұрын
Jesus told me to tell you that He loves you and I wanted to add that you did a fantastic job with presenting this entire concept. Really great job man.
@AliElZoheiry11 ай бұрын
Thank you! and tell Jesus that I love him too 😁. Glad you found this useful! Thank you for watching and commenting
@BrianHamil19 сағат бұрын
You should make custom structs in C++, they're easier to alter without breaking things in the editor.
@treblath1995 Жыл бұрын
You are the king💜🙌🏽
@AliElZoheiry Жыл бұрын
Thank you for your kind words! I'm glad you're finding the content helpful 🙏
@habagun7374 ай бұрын
Bro you are amazing tutor! Thank you
@AliElZoheiry4 ай бұрын
Thank you! I really appreciate your kind words 🙏
@aufgespielt37689 ай бұрын
Very helpfull for us! Thank you so much for you’re time!
@AliElZoheiry9 ай бұрын
You're very welcome! I'm glad you found it helpful. Thank you for watching and commenting 🙏
@fatihersy11 ай бұрын
Great video, Liked!
@AliElZoheiry11 ай бұрын
Thank you! I'm glad you enjoyed it. Your support is appreciated.
@HunterFloris4 ай бұрын
Amazing guide Ali! But I have a small issue I'd like to adress and it took me some time to find out. Basically when i load the save it worked first time around.. but after closing and opening the editor a few times I noticed that it didnt properly save.. like my values got reset again. Different weapon, health, etc. Turns out when you open up the editor again you already in the overlap triggerbox, meaning it tries to LOAD and SAVE simultaniously... and i dont think Unreal Engine really likes that. And therefore can give issues. I fixed this by adding a new variable to the checkpoint, a checkpointID. I then cast this value to the Player as variable 'CurrentCheckpointID' and I use this in the GetPlayerSave and struct too..Then on UsePlayerSave I set the CurrentCheckpoitntID again from the info of the struct. Finally on checkpoint I build a branch check.. if the currentcheckpointID of the player is equal to the checkpointID then prohibit the save feature. This means when you load in and retrieve the save data it wont try to save over the load functionality. Hope this helps someone out!
@AliElZoheiry3 ай бұрын
Hey! Thanks for sharing your findings, that’s a really helpful solution! It’s great that you figured out a way to avoid the simultaneous load and save issues. I indeed heard about this issue from a few others as well. Another quick way to resolve it is to not save on first load, by disabling saving until the "End Overlap" event of the checkpoint is triggered, but your way is also quite an elegant solution 💪
@itamihanzo Жыл бұрын
Fantastic stuff!
@AliElZoheiry Жыл бұрын
Thanks! Glad you found it useful
@FPChris6 ай бұрын
Love this. Thank you.
@AliElZoheiry6 ай бұрын
You're very welcome! I'm glad you enjoyed it 🙏
@ronaldmaningat3681 Жыл бұрын
Thank you. your tutorial is the best. you save me
@AliElZoheiry Жыл бұрын
You're very welcome! I'm glad to hear that this tutorial was helpful for you. Nice pun btw ;)
@Kno_6964 ай бұрын
Really great job, it works perfectly. Can you make this saving system with a multiple saving slots?
@AliElZoheiry4 ай бұрын
Hey! I'm glad it worked for you 🙏 As for multiple saving slots, you can just change the "slotName" value and you have a new slot
@Braydon.W Жыл бұрын
00:45:08 - Pause, GET THE FUCK DOWN. Haha! Thanks for another great lesson Ali!
@AliElZoheiry Жыл бұрын
Hahahaha omg... I should have cut that out... 😅😅
@fidel_soto7 ай бұрын
Thank you, helped a lot.
@AliElZoheiry6 ай бұрын
You're very welcome! Glad to hear it was helpful 🙏
@halfrican86823 ай бұрын
i Love these videos man you do such a good job explaining and getting a good idea of how to move forwards too me like 20 min but i passed references for weapon and ammo in to the save system so now i can save my game but im following with all your videos and ive built the ai from your stuff and im wondering how i would go about saveing their data into ive been at it for a min but im not sure what to do. anyway you could point me in the right direction for where i need to start with this
@halfrican86823 ай бұрын
i Have found the way to pass the reference for the class and get them to save transform and health im a little confused on how to manage the individual enemy though currently they just spawn on top of easch other
@AliElZoheiry3 ай бұрын
Hey, I really appreciate your kind words! 🙏 It's great to hear that you're making progress with the save system and AI. Generally speaking, to save any type of data, try to identify unique things about what you want to save. So if you want to save individual information amount different enemies, then you can add unique names or tags to them to be able to differentiate them from each other, basically giving each of them a unique identifier that doesn't change once they are spawned
@halfrican86823 ай бұрын
@AliElZoheiry ok kool I'll look into that and try this. The way I was going about it was making then all spawn back in from the first ai on the list. I never thought about unique names thank you for your reply
@cmduilio18 күн бұрын
This is a great tutorial, very detailed and simply explained. Do you think is worth it making the save systen in c++?? Thank you!
@migame2511 күн бұрын
No
@cmduilio11 күн бұрын
@migame25 why though?
@AliElZoheiry11 күн бұрын
Thank you for your kind words! 😊 As for the save system in C++. There isn't much benefit in making it in C++ over blueprints, as a save system is usually quite light weight. But... if you are doing a lot of complex calls in your save system and you are noticing performance impacts, then moving it to C++ is a potential upside, but it all depends on what your profiler says
@cmduilio11 күн бұрын
@@AliElZoheiry thank you, that was what I was doing, it started to get tricky having multiple NPCs and states more than transform that I have to keep track. Or state of doors, bridges or every actor, but I guess that's how it is. Thanks!