[Hệ thống nhiệm vụ] để tạo và quản lý các nhiệm vụ mong muốn bằng cách tập hợp
[Lập trình mô-đun], xây dựng các đối tượng bằng cách phân tách và tập hợp các hàm
Dựa trên sự kiện [lập trình hướng sự kiện] không phụ thuộc vào chức năng cập nhật
Với lập trình mô-đun👨💻 Trình độ phát triển trò chơi được nâng cấp lên cấp độ tiếp theo!
Tôi muốn tạo một trò chơi đúng nghĩa Dành cho bạn! 🕹️
Xin chào mọi người. Tôi là Nhà phát triển G.
Hệ thống nhiệm vụ thiết yếu đến mức gần như không thể thiếu trong mọi trò chơi. Chính vì vậy, đây là một trong những tài sản bán chạy nhất trên Cửa hàng Tài sản của Unity và Chợ Unreal Engine.
Hệ thống nhiệm vụ cần phải có tính hệ thống và có thể áp dụng phổ biến cho nhiều loại trò chơi, điều này đòi hỏi phải phát triển theo mô-đun . Tuy nhiên, ngay cả trong các hướng dẫn trên YouTube có sẵn trực tuyến, việc phát triển theo mô-đun vẫn rất hiếm, và việc triển khai thường rất tùy tiện, sử dụng các câu lệnh if và switch .
Thành thật mà nói, bạn không thể làm được điều gì tốt đẹp theo cách đó.
Tại sao lập trình mô-đun lại quan trọng
✅ Các lớp học cá nhân trở nên nhẹ nhàng hơn. ✅ Giúp việc chỉnh sửa và gỡ lỗi dễ dàng hơn.
Nhờ đó, bạn có thể tăng năng suất phát triển của mình ! (Mở rộng, Khả năng tái sử dụng ▲)
Trong bài giảng này 📖
Nhiệm vụ Hệ thống
mô-đun Lập trình
Sự kiện thúc đẩy Lập trình
Tôi sẽ chỉ cho bạn cách phát triển một hệ thống nhiệm vụ có tính hệ thống và mục đích chung bằng cách sử dụng lập trình mô-đun để bạn có thể tạo ra 'thứ gì đó' tốt.
Tôi hy vọng rằng thông qua khóa học này, bạn sẽ tiến một bước từ một lập trình viên mới bắt đầu trở thành một lập trình viên có thể phát triển hệ thống có hệ thống của riêng mình.
Bạn có thể làm được điều này! ✨
Bước 1
Nhiệm vụ mô-đun với nhiều mục tiêu và phần thưởng khác nhau Hãy tạo một hệ thống nhiệm vụ để điều khiển các nhiệm vụ.
Bước 2
Chúng ta hãy áp dụng và mở rộng hệ thống chúng ta đã tạo thành một ví dụ .
Phần thưởng: Bao gồm phụ đề đầy đủ cho video! 📚
Các chức năng được triển khai trong bài giảng Để bạn có thể hiểu nó một cách dễ dàng và chính xác Mỗi video lớp học đều có phụ đề.
Bạn có thắc mắc gì không ? Hãy xem ngay bây giờ 💬
H. Tôi cần có bao nhiêu kiến thức về C#?
Bạn nên đã học cú pháp cơ bản của C# . Mặc dù chúng tôi sẽ đề cập đến tất cả cú pháp cơ bản của C#, bao gồm Linq, Sự kiện và Bộ sưu tập, nhưng chúng tôi sẽ không giải thích chi tiết từng cú pháp. Do đó, nếu bạn chưa quen với C# hoặc chỉ hiểu một phần, bạn có thể gặp khó khăn khi theo dõi.
Tuy nhiên, nếu bạn muốn phát triển một trò chơi, bạn chắc chắn cần phải biết ngữ pháp và vì trò chơi này không sử dụng ngữ pháp đặc biệt mà những trò chơi khác không sử dụng, ngay cả khi bạn có một phần kiến thức về C#, bạn vẫn có thể dễ dàng theo dõi nếu bạn tra cứu ngữ pháp riêng và nghiên cứu nó.
H. Tôi cần có bao nhiêu kiến thức về Unity?
Vì nội dung chính là phát triển hệ thống thông qua viết mã nên chỉ yêu cầu kiến thức cơ bản về Unity và kiến thức về ScriptableObject .
H. Nội dung bài học được trình bày ở mức độ nào?
Việc xây dựng một hệ thống nhiệm vụ phù hợp với mọi trò chơi hiện có đòi hỏi rất nhiều cân nhắc. Do hạn chế về thời gian và độ khó, chúng tôi sẽ chỉ triển khai các tính năng thiết yếu phổ biến của một hệ thống nhiệm vụ. Tuy nhiên, chúng tôi sẽ áp dụng và mở rộng hệ thống này sang một trò chơi mẫu, để học viên có thể học cách áp dụng hệ thống vào trò chơi của riêng mình và bổ sung, mở rộng các tính năng khi cần thiết.
H. Lợi ích của lập trình mô-đun là gì?
Thống kê cho thấy khả năng xảy ra lỗi tăng đáng kể khi một lớp vượt quá 300 dòng mã. Các chương trình trò chơi khá lớn, đòi hỏi phải chỉnh sửa và mở rộng thường xuyên, điều này chắc chắn dẫn đến mã phức tạp. Việc phân vùng mã không đúng cách có thể khiến các nhà phát triển bỏ dở quá trình phát triển trước khi hoàn thành, dẫn đến quá tải lỗi. Ngay cả sau khi quá trình phát triển hoàn tất, trò chơi thành phẩm vẫn sẽ đầy lỗi và chưa hoàn thiện.
Đó là lý do tại sao, nếu bạn muốn phát triển một trò chơi đúng nghĩa, bạn cần biết cách viết mã theo dạng mô-đun.
H. Đây có phải là khóa học mà sinh viên không chuyên ngành cũng có thể tham gia không?
Xây dựng một hệ thống nghe có vẻ khó khăn, nhưng quá trình tìm ra cách cấu trúc một hệ thống không hề khó; vấn đề nằm ở việc triển khai. Những người không phải lập trình viên chưa phát triển tư duy lập trình sẽ học cách thiết kế tính năng và viết mã một cách có hệ thống trong quá trình phát triển hệ thống cùng tôi, thay vì vội vàng triển khai tính năng và viết mã theo ý thích.
📢 Vui lòng kiểm tra trước khi tham gia lớp học!
Phiên bản Unity Engine được sử dụng trong khóa học này là 2021.2.0f1 . Vì khóa học này tập trung vào lập trình kịch bản nên không giới hạn ở bất kỳ phiên bản engine cụ thể nào. (Áp dụng cho Unity 6.)
Khuyến nghị cho những người này
Khóa học này dành cho ai?
[Lập trình viên tân binh] muốn nâng cao kỹ năng lập trình của mình lên một tầm cao mới
Những người muốn nghiên cứu [lập trình mô-đun] với cấu trúc có hệ thống, thay vì kiểu mã hóa đóng hộp dựa trên các câu lệnh if và switch.
Những người muốn phát triển một [hệ thống có hệ thống] có thể tái sử dụng nhưng không thể tìm ra nó
Bất cứ ai muốn tạo [Hệ thống nhiệm vụ] của riêng mình
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!