[Quest System] that allows you to create and manage quests of your choice by assembling them.
[Modular programming] that divides functions and assembles them to form objects.
[Event-driven programming] based on events that do not rely on the Update function
With modular programming👨💻 Game development level, upgraded to the next level!
I want to make a game properly For you! 🕹️
Hello everyone. This is Developer G.
The quest system is so essential to every game that it's practically indispensable. As such, it's one of the best-selling assets on Unity's Asset Store and Unreal Engine's Marketplace.
Quest systems need to be systematic and universally applicable to a wide range of games, which necessitates modular development . However, even in YouTube tutorials readily available online, modular development is rare, and implementations are often haphazard, using if and switch statements .
To be honest, you can't make anything good that way.
Why modular programming is important
✅ Individual classes become lighter. ✅ Makes editing and debugging easier.
As a result, you can increase your development productivity ! (Expansion, Reusability ▲)
In this lecture 📖
Quest System
modular Programming
Event-driven Programming
I'll show you how to develop a systematic and general-purpose quest system using modular programming so you can create 'something' well.
I hope that through this course, you will take a step forward from being a beginner programmer to a programmer who can develop his own systematic system.
You can do this! ✨
Step 1
Modular quests with various objectives and rewards Let's create a quest system that controls quests.
Step 2
Let 's apply and extend the system we created to an example .
Bonus: Full video subtitles included! 📚
Functions implemented in the lecture So that you can understand it easily and accurately Subtitles are provided for each class video.
Any questions you have ? Check it out now 💬
Q. How much knowledge of C# do I need?
You should have studied the basic syntax of C# . While we'll cover all the basic C# syntax, including Linq, Events, and Collections, we won't provide a detailed explanation of each. Therefore, if you're not familiar with C# or have only a partial understanding, you may have difficulty following along.
However, if you want to develop a game, you definitely need to know grammar, and since it doesn't use special grammar that others don't use, even if you have partial knowledge of C#, you can easily follow along if you look up the grammar separately and study it.
Q. How much knowledge of Unity do I need?
Since the main content is system development through code writing, only beginner-level Unity knowledge and knowledge of ScriptableObject are required.
Q. What level of content is covered in the class?
Creating a quest system that works for every existing game requires a lot of considerations. Due to time constraints and the difficulty involved, we'll only implement the universal essential features of a quest system. However, we'll apply and extend our system to a sample game, so students will learn how to apply the system to their own games and add and expand features as needed.
Q. What are the benefits of modular programming?
Statistics show that the probability of bugs occurring increases dramatically when a class exceeds 300 lines of code. Game programs are quite large, requiring frequent modifications and expansion, which inevitably leads to complex code. Failure to properly partition the code can lead to developers abandoning development before it's even fully completed, overwhelmed by bugs. Even after development is complete, the resulting game will be riddled with bugs and unfinished.
That's why, if you want to develop a proper game, you need to know how to write code in a modular way.
Q. Is this a course that non-majors can also take?
Building a system might sound daunting, but the process of figuring out how to structure a system isn't that difficult; it's the implementation itself. Non-programmers who haven't yet developed a programming mindset will learn how to design features and write code systematically while developing a system with me, rather than rushing to implement features and writing code according to their whims.
📢 Please check before taking the class!
The Unity engine version used in this course is 2021.2.0f1 . Since this course focuses on scripting, it's not limited to any specific engine version. (Applicable to Unity 6.)
Recommended for these people
Who is this course right for?
[Rookie Programmer] who wants to take his programming skills to the next level
Those who want to study [modular programming] with a systematic structure, rather than the haphazard coding that relies on if and switch statements
Anyone who wants to develop a reusable [systematic system] but can't figure out how to do it
Anyone who wants to create their own [Quest System]
Thank you for taking the class!
One of the most important things in development is to know for sure what I need to make. So I always document what elements I need to make before development, and while developing, I organize things I need to think about and additional elements while working.
This is a really good lecture. I've been watching too many lectures on YouTube that are roughly followed, so I've been using Unity for a few years now, but I feel like my skills have stagnated a lot. When I heard that Scriptable Objects are just for storing data, I thought I could just use the serialization class, so I didn't use it. I was surprised that I could use it for modularization like this, and I'm going to listen to it as much as I can during this holiday to get a lot of inspiration. ㅎㅎㅎㅎ
If you film the next lecture, it would be even more helpful!! Thank you.
Thank you for taking the course!
ScriptableObject is a convenient feature that can be used in a variety of places and in a variety of ways, such as systems, tools, and containers, but it is one of the unfortunate features that we do not learn how to use during the learning phase. Now, the use has been reduced somewhat due to the addition of the unfinished polymorphic serialization feature called SerializeReference, but there are still many irreplaceable uses, so I am glad that you have learned about the use of ScriptableObject through this course.
I will come back with a better course that will satisfy you. Thank you!
At first, I thought, "Is it really that much of a problem to add functions using switches?", but when I saw that the code was simple without a single switch because it was made modularly, I thought, "That's the problem;;;" This was a lecture that made it clear. I'm not sure if I can write code modularly without using switches like the instructor, but I'll practice hard as the instructor said. Thank you for the great lecture :D
I think it was worth making the lecture since your thoughts have changed that much.
I wasn't able to make functions in a modular way from the beginning. I spent days thinking about what to separate and how to combine them, and even now, sometimes I think about making a modular structure for a few hours at the shortest and a day or two at the longest.
Since it's your first time, it may take a long time to make a modular structure, but it's worth investing time, so don't be too impatient and take your time designing.
One thing to keep in mind is that a slapdash implementation is selling the future to buy the present, so don't be tempted to think, "It's hard to think about and it's a waste of time, so should I just slap it and implement it?" Because 'this time' becomes 'next time' and 'in the future'.
If it's a game, you do content updates or balance patches, and I think easy and stable maintenance is important at that time. I think it was a good lecture that taught me about that structure, and I felt like I met a good teacher because the questions were answered quickly and seriously.
I hope you make more modular series, and even if it's not modular, I hope you make a lot of good content!