Тёмный

How create a Quest System in Unity | RPG Style | Including Data Persistence 

Shaped by Rain Studios
Подписаться 8 тыс.
Просмотров 27 тыс.
50% 1

This video covers one of the many ways to go about creating a Quest System in Unity. The Quest System focuses on RPG-style quests and includes persisting the state of all quests between playthroughs.
I hope this helps and best of luck! 🙂
This video is sponsored by Unity. Check out what the 2022 LTS has to offer via the below link!
on.unity.com/3OyB0jd
► Quest System Playlist
All videos I've currently done for the Quest System series can be found in this playlist.
• How create a Quest Sys...
► TIMESTAMPS
0:00 Intro
1:22 Disclaimer and Prerequisite Knowledge
2:43 Sponsorship
3:48 Defining a Quest
5:17 How we'll Store Static (non-changing) Data
6:03 How Quest Steps will work
8:34 How we'll Manage State Data
9:31 How we'll Manage Quests
12:26 Running through an example
15:34 Project Overview
18:51 Storing Static (non-changing) Data
21:51 Creating a Quest Step
24:54 Managing State Data
27:46 Managing Quests
30:04 Creating Quest Management Events
32:38 Creating the Quest Point
37:12 Creating the Quest Icon Visual
40:07 Managing Quest Requirements
42:39 Starting a Quest
43:31 Advancing a Quest
45:10 Finishing a Quest
45:57 Ensure Multiple Steps are Working
46:24 How we'll Persist Quest State
49:48 Managing Quest Step State
54:31 Saving Quest Data
56:03 Loading Quest Data
59:03 Disabling Persistence for Development
59:35 Creating One More Quest
1:02:50 Outro
► GITHUB PROJECT
The '2-quest-system-implemented' branch contains the code by the end of this tutorial.
github.com/shapedbyrainstudio...
► RESOURCES
Save & Load System Tutorial Series (also covers Serialization/Deserialization)
• How to make a Save & L...
Excellent video for an introduction into Unity Events
• How To Build An Event ...
Excellent video on Unity's new Input System
• How to use Unity's Inp...
Unity Lifecycle methods documentation
docs.unity3d.com/Manual/Execu...
Excellent video on Unity Prefabs
• Everything you need to...
Excellent video covering the basics of Scriptable Objects
• SCRIPTABLE OBJECTS in ...
► MUSIC
The backing music for this video is by Panda Beats.
Website: pandabeatsmusic.com/
RU-vid Channel: / @pandabeatsmusic
Playlist: • 🍜 Anime Lofi - Asian H...
► DISCORD
Come ask questions, suggest a video topic, or just hang out!
📱Discord ➔ / discord
► THE PATH OF REN
Wishlist 'The Path of Ren' on Steam!
🎮 Steam (The Path of Ren) ➔ store.steampowered.com/app/16...
► SOCIAL MEDIA LINKS
Follow my current project!
🐦 Twitter ➔ / trevermock
📷 Instagram ➔ / trevermock
🕑 TikTok ➔ / shapedbyrainstudios
🌐 Website ➔ shapedbyrainstudios.com/
► SUPPORT
Any support is much appreciated! I may receive a commission on any assets purchased using the below Unity Asset Store link.
🛍️ Unity Asset Store Affiliate Link ➔ assetstore.unity.com/?aid=110...
☕ Buy me a coffee! (Ko-fi) ➔ ko-fi.com/shapedbyrainstudios
#gamedev #quests #unity

Хобби

Опубликовано:

 

15 июн 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 105   
@ShapedByRainStudios
@ShapedByRainStudios Год назад
Below is a bug fix regarding this tutorial. 1. A bug was found at 41:48 for the CheckRequirementsMet() method. As written in the video, it will only actually use the last prerequisite. Instead, we can fix this by breaking out of the for loop when we hit a prerequisite that's false. See below: // check quest prerequisites for completion foreach (QuestInfoSO prerequisiteQuestInfo in quest.info.questPrerequisites) { if (GetQuestById(prerequisiteQuestInfo.id).state != QuestState.FINISHED) { meetsRequirements = false; // add this break statement here so that we don't continue on to the next quest, since we've proven meetsRequirements to be false at this point. break; } } ==================== Hope you found the video to be helpful! You're welcome to come by my Discord server and ask questions, suggest a video topic, or just hang out with others working on creative projects! ➔ 📱discord.gg/99gcnaHFf9
@akosinelz3277
@akosinelz3277 Месяц назад
do you have any tutorials from this particular video that instead of using playerprefs in saving and loading data, firebase realtime database will be used?
@tiagotozo811
@tiagotozo811 Месяц назад
Bro, the fact that i'm watching this for free is WILD. Thanks so much man, excellent tutorial
@Luluskuy
@Luluskuy Год назад
Whoaa, thats amazing man.. you get sponsored by Unity it self! They really know what quality content is! 😎👍🏼
@ShapedByRainStudios
@ShapedByRainStudios Год назад
Thanks so much! I feel really fortunate to have gotten a sponsorship from them! 😁
@AirstreamingStargazer
@AirstreamingStargazer 3 месяца назад
This is, by far, one of the best videos for gamedev information I've seen yet. Very clear, SUPER clean, and the architecture and design patterns used are perfect for the use case. Very impressive. Thank you for taking the time to make this. :)
@ShapedByRainStudios
@ShapedByRainStudios 3 месяца назад
Thank you so much for the kind words! Really glad to hear that you found the video useful! :)
@etherealabyss
@etherealabyss Год назад
This helped me out a ton - thank you!!
@STARmod
@STARmod 11 месяцев назад
Your channel is a Gem, thank you so much.
@BoredDuck314
@BoredDuck314 9 месяцев назад
Just finished this tutorial, was very helpful!
@topher-two-four
@topher-two-four 6 месяцев назад
This was very helpful and well-made, thank you!
@shuffle8
@shuffle8 10 месяцев назад
Wow such an amazing and thorough tutorial. Hands down the best one I've seen! Thank you for sharing!
@august_nettle
@august_nettle Год назад
I love your videos, thanks for your work!!)
@literallyjeff
@literallyjeff Год назад
nice tutorial! very clear explanations.
@willfrancis3019
@willfrancis3019 Год назад
very directly useful to my development !! eagerly awaiting more vids
@XionBrown
@XionBrown Год назад
This will come in handy, when I get around to making one someday!
@slowvibes9595
@slowvibes9595 11 месяцев назад
This quest system is so versatile and complex that any game can use it with specific minor changes, so thanks a lot! I will use it in my openworld rpg.
@epicdungeontiles
@epicdungeontiles 7 месяцев назад
I've followed this tutorial and implemented questing into my game! Thanks for the great tutorial.
@JoshMOSH19
@JoshMOSH19 Месяц назад
What a lifesaver. Was absolutely bashing my head against this problem. Couldn't find a good quest system to import because they were too complicated or fiddly for my project, but trying to write one from scratch was doing my head in. This implementation is perfect for what I need, and the tutorial is fantastic. You're a legend, mate
@kristophsams5036
@kristophsams5036 4 месяца назад
Probably the best starting point for quest systems. I was able to integrate it fairly well into my own project.
@richnaisanze
@richnaisanze 3 месяца назад
well-made tutorial, written in a clean code and very good architecture, love it.
@Magician3388
@Magician3388 2 месяца назад
Thank you so much for this video and all the others. They are a joy to follow and I've learned so much. I'm currently building a Paper Mario style RPG and getting to learn from you while making progress on my game is very rewarding.
@markorossie9296
@markorossie9296 Год назад
Very Interesting, Well done video. Thanks
@fernando_eac
@fernando_eac 2 месяца назад
This is the best Unity tutorial that I ever see, and I've seen a lot of then
@locnguyen-oj7pc
@locnguyen-oj7pc 2 месяца назад
Your tutorial is so amazing, thank you so much for making this.
@fakenuzz
@fakenuzz 10 месяцев назад
Great job on your sponsored video, Terver! I appreciate the time and effort you put into making high-quality content. Moving on to your FMOD videos next!
@ShapedByRainStudios
@ShapedByRainStudios 10 месяцев назад
Thanks so much for the kind words! Really glad to hear that you're finding the videos helpful!
@ven6815
@ven6815 Год назад
The GOAT is back!! I followed all of your previous tutorials, and I can't wait to see how I can use this quest system as well. Thank you for your hard work!
@ShapedByRainStudios
@ShapedByRainStudios Год назад
Haha, appreciate your kind words a ton! That means a lot and you're very welcome! 😁
@breynartstudios
@breynartstudios Год назад
Astonishing work you've done here!!! Two months... wow! But it's pure gold, mate! Thanks a lot for your work!
@ShapedByRainStudios
@ShapedByRainStudios Год назад
Thanks so much for the kind words! It was definitely a process to put this one together, haha. Really glad to hear you liked the video! 😁
@ninesupap
@ninesupap 10 месяцев назад
Thank you so much for this ^~^, this tutorial is clear and easy to follow.
@MohamadAlwalidHadba
@MohamadAlwalidHadba 2 месяца назад
Man your not brakeys, you're better! i swear your tutorials have been getting me through a school project for a game, ill try to send u its link when I finished for u to check it out!
@xmrfinlandx8110
@xmrfinlandx8110 Год назад
I was looking for guides for the achievement system, and this guide almost completely suits me, thank you
@ShapedByRainStudios
@ShapedByRainStudios Год назад
You're welcome and I'm really glad to hear that!
@abdou2247
@abdou2247 Год назад
You’re videos are just next level! I would very much like it if you upload more often, but to keep the high quality, i will say take all the time you need! Best of luck!
@ShapedByRainStudios
@ShapedByRainStudios Год назад
Thank you so much! That means a lot! 🙂
@ryanwilmink9531
@ryanwilmink9531 10 месяцев назад
Excellent tutorial. Despite being an hour long it went by fast and covered a lot of ground. This is definitely something I'll be looking to implement in my own games, and so will likely have to watch each part multiple times but with the wealth of information in here I don't think that will be an issue. Thanks for all the hard work in putting this video together, and for timestamping everything so efficiently! Great work!
@ShapedByRainStudios
@ShapedByRainStudios 10 месяцев назад
Thank you so much for the kind words! That means a lot and I'm really glad you found the video helpful! 🙂
@rootth7113
@rootth7113 Месяц назад
very good , watch all night, next day continue.
@armyofchickens6062
@armyofchickens6062 8 месяцев назад
It's crazy how many ways this could be implemented
@ShapedByRainStudios
@ShapedByRainStudios 8 месяцев назад
Absolutely!
@jillianjones5116
@jillianjones5116 10 дней назад
Thank you so much for this! Are there tutorials for the things needed that aren't expanded on like gold gained gems gained and others?
@ShapedByRainStudios
@ShapedByRainStudios 8 дней назад
I unfortunately don't have any tutorials outside of the 'Project Overview' section of this video regarding the project we start with. That said, for how gold/gems are gained, the biggest thing to understand is how Unity Events are being managed in the project. The Event System Tutorial below should help a lot with that if you haven't already seen it. The system discussed there is very similar to the one used in this video. Event System tutorial - ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-gx0Lt4tCDE0.html I know that's not a ton to go on, but I hope that helps a bit and best of luck!
@Firebunny26
@Firebunny26 11 месяцев назад
Hey Trever, I love your Unity tutorials. I was wondering if you would consider making a multiplayer tutorial that corresponds with your saving system. Multiplayer is one of the things that is really complicated and hard for me to do by myself right now.
@ShapedByRainStudios
@ShapedByRainStudios 11 месяцев назад
Hey there! Thanks so much for the kind words! I'd love to do a multiplayer tutorial at some point and tie that in with how to Save & Load a multiplayer game. That said, I don't have a ton of experience with multiplayer at the moment, so it'll probably be a ways out before I have the knowledge to cover anything multiplayer related. I appreciate the suggestion and I'll be keeping that topic in mind! 🙂
@Fyres11
@Fyres11 Год назад
Love it! Can't wait to see it couple with the dialog system. What I could see based on the pillar quest would be when you visit one. It could trigger a dialog before you continue the quest.
@ShapedByRainStudios
@ShapedByRainStudios Год назад
Thank you for the kind words! That's actually very close to what I was thinking as well, haha. 😁 Still not sure exactly how I'm going to do that tutorial yet, but it'll likely build off of the pillars quest in some way. Maybe some kind of riddle-like quest with the pillars? We shall see!
@breynartstudios
@breynartstudios Год назад
@@ShapedByRainStudios Great news! Also interested on Ink Dialogue System integration. Tomorrow I'll try to do it by myself, but I can tell you without fear to being wrong that it won't be as cleaner and straight to the point as your code XD Thanks!!
@breynartstudios
@breynartstudios Год назад
I've finally managed to achieve it and it 's awesome the combination of Ink and Unity. Thanks a lot!
@yomaja127
@yomaja127 7 месяцев назад
Hey, great video! I'm glad that I've found your channel and this video. The quest system is so versatile and suits my need perfectly. The code worked fine for my project but I need help with a problem I faced. How would I go about in making it so that it saves & loads the data whenever I change scene? I got the data to save when I change the scene but I can’t seem to figure out how to load/set it back when I go back to the same scene. It doesn’t do the same thing as if I were to quit/exit play mode.
@TheKr0ckeR
@TheKr0ckeR 11 месяцев назад
Very nice and detailed video about quests! Thanks for your great effort on this. Only thing that jiggles me is constantly checking all quests if their condition is met. Can't be also have some actions for that to check only things changed like EXP etc.
@ShapedByRainStudios
@ShapedByRainStudios 11 месяцев назад
Thank you for the kind words! Correct - you could alternatively only update the quests state when an event related to those requirements changes and get rid of that Update method all-together. In this video that would be the playerLevelChange event (for the player level requirement) AND the QuestStateChange (for prerequisite quests). Should work just as well if that approach feels better!
@jiayuzhu1154
@jiayuzhu1154 20 дней назад
❤Thank you sooooo much!!!!
@mikeha
@mikeha 7 месяцев назад
thanks for doing this video, it was very helpful and I will use this system in my game, which will be a 3d game but this should work just as well. I notice that once you complete a quest, you can never reset it again, unless by turning off the persistence. So this is good if you have a finite series of quests that needs to be completed only once. What about for random quests? Whats the best way to randomly spawn them? I guess I need a quest spawner that would generate a random number and have an array of possible quests that could be created? Also, it would be good to hook up a UI element to the quest so that something displays on screen to tell the player what they need to do to complete the current quest step
@Challseus
@Challseus 8 месяцев назад
Your videos are…. Jesus Christ… amazing… 💪🏾💪🏾 Even the background music is 👌🏾
@ShapedByRainStudios
@ShapedByRainStudios 8 месяцев назад
Yay! I tried something new with the background music in this one so I'm really glad to hear you liked it, haha! Thanks so much for the kind words! 🙂
@alexrupp609
@alexrupp609 7 месяцев назад
PLEASE make that quest focused dialogue system video I will be eternally grateful.
@ShapedByRainStudios
@ShapedByRainStudios 7 месяцев назад
It may be a bit before it's finished and released still, but it is in the works! 🙂
@ssalovaa
@ssalovaa 3 месяца назад
To me, the whole need for the defensive check at 57:03 is a code smell. Like if you release your game then need to update an existing quest for whatever reason, players will lose the data for their entire quest, potentially breaking other parts of the game and softlocking them. I believe it would be more efficient to create a QuestStepInfoSO and save the quest steps by a unique ID instead of by index. This way, you can add a step in between in the unlikely case that you need to, and players that are ahead in the quest won't lose any data. Another argument for this ScriptableObject middleman is that you can toss other stuff in there, such as a description for the current step to be displayed in a quest journal UI. What if you have a quest that, for example, first has you collect coins and then visit pillars as step 2? How do you communicate to the player what they need to do next? Wouldn't it make sense to store the journal entry with the step?
@CyprianBergonia
@CyprianBergonia 2 месяца назад
I'm not sure if it was noted. On 41:48 there is a bug in the code. If the first prereq is false, but the second is true. Then the function returns true. You should just return false in the for loop. Then return true at the end of the loop. No need to have a metRequirements bool.
@ShapedByRainStudios
@ShapedByRainStudios 2 месяца назад
Ah, you are correct. It's only actually checking the last quest prerequisite. Good catch! I'll add something to the pinned comment about this.
@speculaasman
@speculaasman 5 месяцев назад
Hey, big thanks for the tutorial! Managed to get the quest working in 3d! Im currently trying to make a quest log with a scrollview element. Im trying to add the quests inside the scrollview under each other. Im struggling however with which functions I should call in order to display my questitem prefab and fill in the desired information such as the title and objective (and maybe description) I would like to make a progress bar for each individual objective but am not sure how that would possibly work, do you have any suggestions? Thanks again for the amazing video!
@asdf-ip5mb
@asdf-ip5mb 9 месяцев назад
I love this video. By the way, can you please make a tutorial making fireflies in your shorts or share the codes or sell it in the asset store...? I really need it
@ShapedByRainStudios
@ShapedByRainStudios 9 месяцев назад
Hey there, glad you enjoyed the video! I would like to make the code from those shorts public in some way at some point, but I'm not sure how I'm going to go about that just yet. In the meantime, if you send me an email (shapedbyrainstudios@gmail.com) I can send you back the scripts I was using for the fireflies. I may take a bit to respond, but if you email me this week I can try and get you the scripts by this weekend.
@asdf-ip5mb
@asdf-ip5mb 9 месяцев назад
@@ShapedByRainStudios thanks! sended email
@mattcrye7416
@mattcrye7416 20 дней назад
Great Video Brotha, Works Great and is well explained! I just had one question related to the Save/Load system that you addressed in another video and handling saving the quests. If I'm correct in the GameData class we would create a questData string variable and then set it to empty but I am having trouble actually saving the serilazedData string that we created in this video under the quest managers save data function. Im assuming there would need to be another dictionary but Ive been scratching my head at it.
@ShapedByRainStudios
@ShapedByRainStudios 20 дней назад
Thanks so much for the kind words! You could go about integrating with the Save & Load System series in a couple of ways. Below is an outline of what I would recommend. 1. In the GameData class, add a variable that is a Dictionary that maps the unique id of a quest to it's quest data (SerializableDictionary). For a new game (in the constructor), you can simply initialize this to a new empty SerializableDictionary. 2. In the QuestManager, implement the IDataPersistence interface, which will give you the Save/Load data methods. 3. In the Save Data method, loop through each quest add add it to the dictionary (replacing previous values if necessary). When adding it, use the unique id of the quest as the Key and the QuestData as the Value. 4. In the Load Data method, loop through QuestInfoSO and check if the ID for that QuestInfoSO exists in the saved dictionary, If it does, initialize it with the saved Quest Data. If not, initialize it with new Quest Data. Similar to how we do in the LoadQuest() method currently, except you're pulling that saved info from the GameData instead of PlayerPrefs. 5. After those changes, you can remove the OnApplicationQuit method, and depending on your implementation, most likely the SaveQuest/LoadQuest methods from the Quest System tutorial. The main difference in the above and what you had described is that, in the above, we can save the QuestData object directly. Since the Save & Load system will handle serialization, we don't need to serialize it twice. That said, you could serialize it and save it as a string if you wanted to - it's just not necessary. In the above approach, you may run into some Unity Lifecycle oddities with how the Save & Load system works. In the Save & Load System, those Save/Load methods fire during the Start() lifecycle method, but in the Quest System, we're initializing the quest map during Awake(). You may have to do a few more changes to support what I outlined above so that this works correctly initializing from LoadData(), but I think that'll be a really good exercise in understanding both systems as well as Unity's lifecycle methods. I hope that helps a bit and best of luck! :)
@mattcrye7416
@mattcrye7416 20 дней назад
@@ShapedByRainStudios Thank you for the detailed overlay! I'm going to work on this today and see what I come up with. I'll start by dealing with saving and make sure that I'm saving the Data correctly then move forward to the Load method. And that makes a lot more sense as I was trying to force a string to take multiple iterations of actual quest data without a dictionary which was my first mistake! As always, I appreciate your thoroughness and advice! dropping a sub from my dev account and this one!
@mattcrye7416
@mattcrye7416 19 дней назад
@@ShapedByRainStudios You are Seriously God Tier, Just from you explaining it I came up with public void SaveData(GameData data) { //Loop through the existing quest map to access each quests Unique ID foreach (Quest quest in questMap.Values) { //Get the Quests data QuestData questData = quest.GetQuestData(); if(data.questData.ContainsKey(quest.info.id)) { data.questData.Remove(quest.info.id); } data.questData.Add(quest.info.id, questData); } } public void LoadData(GameData data) { QuestInfoSO[] allQuests = Resources.LoadAll("Quests"); Quest quest = null; foreach (QuestInfoSO questInfo in allQuests) { if (data.questData.ContainsKey(questInfo.id) && loadQuestState) { QuestData questData = data.questData[questInfo.id]; quest = new Quest(questInfo, questData.state, questData.questStepIndex, questData.questStepStates); Debug.Log(questData.questStepStates[0]); } else { quest = new Quest(questInfo); } } } This worked Amazing and is properly saving the questData I was struggling to before! You are seriously appreciated and I look forward to watching your content just for fun and to learn as coding is a never ending learning hole in a great way!! I am hardcore struggling with handling the lifecycle oddities, I wouldn't even know where to start with that 0.o
@AryanSingh-cw6ce
@AryanSingh-cw6ce 11 месяцев назад
Man your video rules.
@gamemacher87
@gamemacher87 10 месяцев назад
Thank You! For implementing saving with the save/load system you created in your other videos, would I need to create a serializable dictionary similar to the coins collected saving?
@ShapedByRainStudios
@ShapedByRainStudios 10 месяцев назад
Hey there! Correct! At least, I see that as the most straight forward way to go about it. I would (1) create a SerializableDictionary to store the key/value pairs for quests that we're saving in PlayerPrefs for this tutorial and then (2) implement IDataPersistence in the QuestManager class, replacing the Save/Load methods with the IDataPersistence methods. You may also want to move the code in the Start() method into the LoadData() method. Otherwise, there's the chance that Start() gets called before LoadData() which might cause some issues during initialization. There might be some other small changes that need to be made as well, but hopefully that helps a bit! Integrating the two systems should be a really good exercise! Best of luck!
@gamemacher87
@gamemacher87 10 месяцев назад
@@ShapedByRainStudios I got it! I had to move the Start logic after the load logic within the load method as you said. I also decided that instead of creating the questmap on awake that I would loop through the saved dictionary files and create the map directly in the Load method. Seems to work so far for anyone else trying to do this.
@nakato-bz4fr
@nakato-bz4fr Год назад
oh! I just want to say that I love you!
@noralkuhlmann750
@noralkuhlmann750 6 месяцев назад
Great tutorial! I would request when you make the dialog system please do not use ink. I would like to see a dialog system, built by you, from the ground up, preferable for 2D.
@NobSwitch
@NobSwitch Год назад
Trever is a boss
@xiakun592
@xiakun592 5 месяцев назад
I am a beginner programmer and I really like your lessons. You explain and show it perfectly. I have a problem. I don't know how to save completed dialogs in different save slots in the main menu. The scripts are completely written with two lessons on dialogs and the main menu. Please help me.
@friesandcats1919
@friesandcats1919 7 месяцев назад
how would you connect this system with the save/load system you developed earlier?
@davidcalderwood7041
@davidcalderwood7041 12 дней назад
How can I go about having multiple quest icons? If I have one quest ready to be started, and one ready to be finished at the same NPC, this would only show for the final quest, correct? If set state defaults to false for every quest, then how could I get around this so I could show the user that there might be more than on status available?
@furionstormrage4053
@furionstormrage4053 10 месяцев назад
So, if I have 2 quests, both require player to collects coins but with different amount, do I need 2 scripts and 2 prefabs for 2 quest stages ?
@ShapedByRainStudios
@ShapedByRainStudios 10 месяцев назад
Hey there and great question! With how this system is set up, you'd ideally use 1 script and 2 prefabs to accomplish what you mentioned. You'll always want a separate prefab for each quest step in this system; however, if you make your quest step scripts generic enough and parameterize them, you can reuse the scripts as appropriate. For example, in the Pillars quest at the end of this video (59:35 Creating One More Quest) we use a single script for 3 different quest step prefabs. The same can be done to the collect coins script; however, you'll need to parameterize it in a way that it can be reused across multiple quest step prefabs. I hope that helps a bit and best of luck!
@satriair04
@satriair04 3 месяца назад
I wondering if it's possible to make quest system using unity + ink integration
@jaderrocha500
@jaderrocha500 11 месяцев назад
Hey man, what's your visual code theme?
@ShapedByRainStudios
@ShapedByRainStudios 11 месяцев назад
Hey there! It's called Tokyo Night and can be found here - marketplace.visualstudio.com/items?itemName=enkia.tokyo-night
@slavic_sloth
@slavic_sloth 10 месяцев назад
i lob u trever
@gthpgth
@gthpgth Год назад
Thank you for the good course. However, unlike other courses, this course does not start from scratch. The completed code at the beginning is confusing. That's too bad.
@TheKr0ckeR
@TheKr0ckeR 11 месяцев назад
As he mentioned, its not for beginners. If you are unable to understand those, you need to practise more about programming to watch this video and implement it.
@mikeha
@mikeha 7 месяцев назад
the starter project is available for download on his github repo, and the pre-existing code itself is not that advanced, I spent some time looking at it before I started watching the video, and I was able to understand what it was doing after looking at it for maybe 30 minutes. all it is doing is spawning coins and gems and allowing the player to collect them, and updating the XP and gold, it's pretty simple to start with
@OpheliaNearl
@OpheliaNearl 7 месяцев назад
Is OnValidate not available in Unity 2018?
@AgniKai-ht2bv
@AgniKai-ht2bv 18 дней назад
Hi is this applicable on a 2d platformer game?
@WKUKAAR
@WKUKAAR 2 месяца назад
if you drink every time he says quest, you'll be dead by minute 10
@magusonline
@magusonline 11 месяцев назад
The captions are broken, could this be repaired? (hearing impaired person here). The whole captions for the entire video gets displayed all at once
@ShapedByRainStudios
@ShapedByRainStudios 11 месяцев назад
Hey there! I tried a couple of different devices and didn't see the behavior you're seeing. I did notice a bunch of 'unknowns' got added to the captions for some reason though. I removed those and re-uploaded the captions (it might take a day or so before they update on RU-vid). I'm thinking that the issue you're seeing could be related to that, so hopefully the re-upload of the captions fixes what you're seeing as well.
@magusonline
@magusonline 11 месяцев назад
@@ShapedByRainStudios Thank you for this :) I'll check again in a few days and see how it looks. Yeah it's weird, all my devices (I'll test it on a work computer tomorrow), just have it showing all of the subtitles all at once. Mobile devices are okay though, but desktops/laptops so far have proven to not work. Actually it seems to be with all the videos on your channel. I just looked at a bunch of them. I wonder what setting I have on my browser that is causing this.. other channels' videos are loading the CC just normally
@hamsterserdar197
@hamsterserdar197 Год назад
Hello sir, I have a request from you, I would be very happy if you could make an educational video for this. How can we switch the Ink dialogue system to the timeline? To know how to make a cutscene,there is a similar one on the Internet, but they did not give the codes explicit
@ShapedByRainStudios
@ShapedByRainStudios Год назад
Hey there! I'm learning a lot about Timeline right now myself. I'd love to do some tutorials on this in the future, since I agree it's been difficult to find good tutorials on it. It'll probably be awhile before I can get around to it, but I'll definitely be keeping that topic in mind!
@ros_cray
@ros_cray Год назад
i second that, I really need it!
@user-pq2hd3xo2k
@user-pq2hd3xo2k 6 месяцев назад
Why not use FSM to Manage Quest State . It is a little confusing in your tutorial
@robertorodriguez4304
@robertorodriguez4304 8 месяцев назад
Just a constructive criticism, I hope you are open to feedback. Trever you need to tell us earlier what are the "prerequisite" systems required which you will "not discuss" but are essential to the advanced tutorial. I had to stop watching the tutorial indefinitely every time there is something implemented which was not discussed and create multiple systems from scratch which is completely different from yours and modify every code you discussed to be compatible to the systems I've created. Thankfully it works but the project output on my side in a coding sense is looking completely different and my approach is slowly deviating from the tutorial the I'm trying to learn from.
@ShapedByRainStudios
@ShapedByRainStudios 8 месяцев назад
Hey there! I appreciate the feedback and I agree that there could have been some improvements in covering the prerequisite systems. Thank you and I'll certainly be keeping all of that in mind!
@pixel0009
@pixel0009 11 месяцев назад
Hello, Another great video btw. I know it is was a long time ago that you posted this video, but I came across a weird issue. I'm writing the code for the Quest.Point however for some reason, it does not show me the debug.log for the current quest state, but it shows me that "object reference not set to an instance of an object". I even changed the input system to the new one and the error still occurs. It shows me that it is happening at this line: private void OnEnable() { GameEventsManager.instance.questEvents.onQuestStateChange += QuestStateChange; GameEventsManager.instance.inputEvents.onSubmitPressed += SubmitPressed; } Maybe do you know why is that happening?
@ShapedByRainStudios
@ShapedByRainStudios 11 месяцев назад
Hey there! My best guess is that it's the race condition I describe at around 17:05 in the video. If you haven't added the GameEventsManager to the script execution order to go before other scripts, it has the potential of being 'null' when other scripts try to access it in OnEnable(). If it's already added to the execution order though, it could be something else - like the InputEvents or QuestEvents not being created in the GameEventsManager Awake() method, causing those to be null. I hope that helps you track it down and best of luck!
@pixel0009
@pixel0009 10 месяцев назад
@@ShapedByRainStudios Thank you for quick response and your help ❤️❤️❤️
Далее
Watch This Before Working on a Big Game in Unity
18:44
Просмотров 291 тыс.
ОБЗОР ТРЕЙЛЕРА STANDOFF 2 0.29.0 FUN&SUN
13:13
Rose Burrito #shorts
00:35
Просмотров 4,8 млн
How to make a Save & Load System in Unity | 2022
26:56
Просмотров 175 тыс.
Building Runtime UI with UI Toolkit In Unity
21:35
Просмотров 28 тыс.
Mediator Pattern - Reduce Chaotic Dependencies
15:47
Designing a Quest System - Chef RPG Devlog #11
17:19
Просмотров 100 тыс.
Build a beautiful 3D open world in 5 minutes | Unity
5:57
Chatting with NPCS - GAME dialog - unity3d ink
12:10
Просмотров 39 тыс.
UnityEvents Explained in 4 Minutes
4:28
Просмотров 41 тыс.
Raw 2024 Akra BMW M1000R Exhaust Sound #bmw
0:25
Просмотров 6 млн