inflearn logo
Challenge
Đang tiến hành

[Thử thách khắc nghiệt Khóa 4] Lộ trình 5 tuần dành cho nhà phát triển game mạng

Mục tiêu của tôi là trở thành một nhà phát triển client có khả năng trực tiếp triển khai phát triển mạng và máy chủ — những kỹ năng đang ngày càng trở nên quan trọng đối với các nhà phát triển game client — đồng thời phát triển thành một nhà phát triển có lợi thế cạnh tranh rõ rệt trên thị trường việc làm.

Unity
Network
game-programming
socket-programming

113개 수업 학습

7회 미션 수행

라이브 4 회

성취의 증표, 수료증을 발급해요.

지식공유자와 멘토링 혜택!

무제한 복습, 내 것으로 만들어요.

추가 자료를 통해 학습을 이어나가요.

질문하고 즉시 답을 얻어요.

완주 시 쿠폰을 제공해요.

indiegamemaker님과 함께해요!

689

Học viên

77

Đánh giá

67

Trả lời

4.9

Xếp hạng

10

Các khóa học

Xin chào, tôi là Lee Jae-hyun.

Tôi bắt đầu tự học Unity với ước mơ trở thành nhà phát triển game độc lập, và từ năm 2009 đến năm 2012, tôi đã phát hành khoảng 10 loại trò chơi di động thông qua hình thức phát triển cá nhân. Tôi đã xuất bản cuốn sách Khóa học tuyệt đối! Unity và tiến hành các bài giảng trực tiếp. Trong quá trình giảng dạy, tôi luôn nhận ra rằng việc hiểu rõ kiến thức và việc truyền tải kiến thức tốt là hai điều hoàn toàn khác nhau. Dựa trên những kinh nghiệm này, tôi luôn nỗ lực để truyền đạt kiến thức của mình đến các bạn một cách hiệu quả nhất.

Hy vọng bài giảng lần này sẽ là điểm khởi đầu tốt đẹp, góp phần nhỏ bé giúp các bạn tiến bước vào thế giới phát triển game đầy thú vị. ~


Lịch sử giảng dạy chính

  • Bài giảng đặc biệt tại NC Soft

  • NHN Entertainment

  • Học viện Game Netmarble

  • Fastcampus - Unity Camp Khóa 1 ~ Khóa 8

  • Gia sư trực tuyến tại Team Sparta

  • T Academy

  • ETRI (Viện Nghiên cứu Điện tử và Viễn thông Hàn Quốc)

  • KOCCA (Cơ quan Nội dung Sáng tạo Hàn Quốc), GCA (Cơ quan Thúc đẩy Văn hóa Gyeonggi), Viện Thúc đẩy Công nghiệp Seongnam

  • Bài giảng đặc biệt tại KAIST, Đại học Sogang, Đại học Chung-Ang, Đại học Hansung, Đại học Dankook

Hoạt động chính

  • Viết sách Giáo trình Tuyệt đỉnh! Unity (Xuất bản tại Nhật Bản, Trung Quốc)

  • Bài giảng chuyên đề tại phiên họp Unity UNITE 2014

  • Bài giảng chuyên đề phiên thực hành (Hands-on Session) tại Unity UNITE 2018

  • Bài giảng chuyên đề phiên thảo luận thực hành (Hand-on Session) tại Unity Industry 2022

  • Hoạt động với tư cách là Unity Masters chính thức của Unity Korea từ khóa 2 đến khóa 5

     

 

Thêm

Chúng tôi đang tiến hành đăng ký Git&Github cho những người đã đăng ký. Nếu bạn thực hiện việc học trước khi thử thách bắt đầu, bạn sẽ có thể tiến hành buổi học một cách dễ dàng hơn. Lời mời tham gia Slack sẽ được gửi đồng loạt vào lúc 12 giờ trưa ngày khai giảng.

[Thử thách khắc nghiệt khóa 2] – Lộ trình 5 tuần dành cho nhà phát triển game mạng

Thử thách này không chỉ đơn thuần dạy "cách tạo trò chơi bằng Unity".

Mục tiêu là giúp bạn phát triển thành một nhà phát triển có lợi thế cạnh tranh rõ rệt trên thị trường việc làm bằng cách trực tiếp triển khai mạng và máy chủ, những yếu tố ngày càng trở nên quan trọng đối với các nhà phát triển game client.

Mục tiêu đạt 100 người chơi cùng lúc trong dự án cuối khóa - Game TPS mạng (Fusion2)

Mục tiêu cốt lõi của [Thử thách khắc nghiệt]

Thử thách này bắt đầu dành cho những người học mới tiếp xúc với C# và Unity lần đầu,

  • Cơ bản về ngôn ngữ C# và tư duy cấu trúc

  • Khả năng thiết kế logic thông qua TextRPG dựa trên bảng điều khiển (console)

  • Lý thuyết mạng TCP/UDP và lập trình socket thực tế

  • Thực hiện máy chủ trò chuyện đa máy khách hoạt động thực tế

  • Phát triển máy chủ trò chơi dựa trên UDP phản ánh cấu trúc máy chủ trò chơi

  • Thực hành Dedicated Server sau khi triển khai AWS EC2 (Game server UDP và Fusion2)

  • Thực hiện giao tiếp thời gian thực và RPC với Unity Client

  • Cuối cùng là phát triển trò chơi TPS dựa trên Photon Fusion 2

đã được cấu trúc để kết nối thành một luồng nhất quán.

Không chỉ dừng lại ở mức độ sử dụng API đơn thuần,

  • "Tại sao nó lại hoạt động như thế này" để hiểu rõ,

  • "Cách server và client tách biệt cũng như cộng tác với nhau như thế nào" là quá trình để bạn tự mình trải nghiệm và lĩnh hội.

Chương trình học của [Thử thách khắc nghiệt]

0⃣ Học trước - Sử dụng Git & Github

Trước khi bắt đầu thử thách chính thức, bạn sẽ được học cách sử dụng Git và GitHub, những công cụ mà mọi nhà phát triển nhất định phải thành thạo. (Tùy chọn)

Thông qua bài giảng Git/GitHub được cung cấp trước, bạn sẽ hiểu được khái niệm quản lý phiên bản và trực tiếp quản lý tất cả mã nguồn được sử dụng trong suốt thử thách bằng Git. Ngoài ra, bạn cũng sẽ thực hành cách chia sẻ và cấu trúc hóa mã nguồn thông qua GitHub.

Thử thách lần này không chỉ dừng lại ở việc viết mã đơn thuần.

Trở thành một nhà phát triển có khả năng hợp tác thông qua trải nghiệm quản lý, ghi lại và chia sẻ mã nguồn là một trong những mục tiêu quan trọng. Tôi hy vọng rằng thông qua khóa học này, tất cả những người tham gia sẽ sử dụng thành thạo Git và tiến xa hơn nữa để trở thành những nhà phát triển có khả năng làm việc nhóm tốt. (Cung cấp mã giảm giá miễn phí)

Bài giảng được cung cấp trước (https://inf.run/CR6ur)

1⃣ Học về server được thiết kế dưới góc nhìn của nhà phát triển client

Thử thách này không dành cho những người theo đuổi chuyên môn server thuần túy.
Nó tập trung vào cấu trúc server và luồng mạng mà các nhà phát triển Unity client nhất định phải hiểu.

  • Làm thế nào để xử lý đồng bộ hóa vị trí/góc quay?

  • Làm thế nào để thiết kế RPC để có thể mở rộng?

  • Khi nào dùng UDP và khi nào dùng TCP?

Mục tiêu là đạt đến cấp độ có thể giải thích được "tại sao lại triển khai như vậy" trong công việc thực tế.

Triển khai server game và module kiểm thử dựa trên UDP

2⃣ Không phải là 'code chép lại', mà là 'dự án tích lũy'

Mọi giai đoạn đều được mở rộng dựa trên kết quả của giai đoạn trước đó.

  • Quản lý trạng thái đã học từ TextRPG → Thiết kế logic server

  • Server chat TCP → Hiểu cấu trúc xử lý đa máy khách (multi-client)

  • UDP server → mở rộng tự nhiên thành kiến trúc máy chủ trò chơi

  • Unity Client → Thiết kế cấu trúc tách biệt với máy chủ

Kết quả là, một lịch sử phát triển có thể giải thích được bằng danh mục hồ sơ năng lực (portfolio) sẽ được hoàn thành.

TextRPG dựa trên Console - Khóa học C# nâng cao

3⃣ Đào tạo nhà phát triển có khả năng thử thách ở cả Client + Server

Một mục tiêu khác của thử thách này là,

  • Nhà phát triển chỉ biết mỗi Unity

  • Mạng là lĩnh vực mà engine sẽ tự xử lý

thoát khỏi suy nghĩ rằng

  • Nhà phát triển Client hiểu rõ cấu trúc mạng

  • Nhà phát triển có khả năng thử sức ở cả vị trí phát triển server cấp độ Junior

là nền tảng để bạn có thể phát triển thành một người như vậy.

Ví dụ dưới đây là trò chơi Tank, nơi bạn kết nối với máy chủ trò chơi UDP do chính mình tạo ra để thực hiện các trận chiến. Bạn sẽ được trải nghiệm quá trình vận hành máy chủ tự phát triển, chơi game và phân tích nhật ký (log). Ngoài ra, bạn cũng sẽ thử vận hành máy chủ trò chơi của mình bằng cách sử dụng AWS EC2.

Ví dụ liên kết máy chủ trò chơi C# UDP (Triển khai sau khi trích xuất tài nguyên Tank và bản đồ)

Triển khai máy chủ trò chuyện TCP và Unity Client

Kiểm tra sau khi triển khai AWS EC2 Dedicated Server

4⃣ Hướng tới Clean Code

Khi phát triển Unity client, tôi luôn tuân thủ clean code và nguyên tắc SOLID. Năng lực của một nhà phát triển client được quyết định bởi chất lượng mã nguồn. Khi phát triển các mô-đun client, tôi cung cấp mã nguồn theo các nguyên tắc sau.

  • Áp dụng nguyên tắc SOLID, đồng thời xác định mã đang viết vi phạm ở điểm nào và cách triển khai phù hợp là gì., identifying which parts the code violates and what the appropriate implementation should be.

  • Sử dụng các mẫu thiết kế (design pattern) bắt buộc. (Singleton, Strategy, Object Pool, Dependency Injection, ...)

  • Thực hiện thiết kế lớp phù hợp và tận dụng ScriptableObject


5⃣ Game Fusion2 TPS được phát triển với mục tiêu 100 người chơi cùng lúc

Chương trình học cuối cùng đã chuẩn bị một trò chơi TPS được thiết kế và phát triển với mục tiêu 100 người dùng đồng thời. Nếu chỉ triển khai bằng các tính năng cơ bản của Fusion2, băng thông mạng và CPU phía client sẽ bị quá tải.

Bản thân Fusion2 được thiết kế cho mục tiêu 100 người, nhưng nếu không sử dụng tính năng AOI thì gần như là không thể. Do đó, tôi đã chuẩn bị các nội dung sau đây về việc sử dụng kỹ thuật mở rộng mạng (network scaling) để đạt được 100 người chơi cùng lúc.

  • Dự đoán phía máy khách (Client-side Prediction)

  • Bù đắp độ trễ (Lag Compensation)

  • Sử dụng Interest Management (AOI)

  • Điều chỉnh Send Rate và Tick

  • Tối ưu hóa dữ liệu đồng bộ hóa

  • Triển khai và kiểm tra trên AWS EC2

AOI để tối ưu hóa lưu lượng mạng

Hitbox để bù trễ (Lag compensation)

Xử lý sát thương phân hóa theo từng bộ phận sử dụng Hitbox

[Tổng cộng 4 buổi đặc giảng trực tiếp và cố vấn cá nhân 1:1]

Bài giảng đặc biệt được tổ chức vào mỗi tối thứ Ba từ 21:00 đến 23:00 (2 giờ). Trong tổng cộng 4 buổi giảng đặc biệt, các bài giảng trực tuyến sẽ được tiến hành tập trung vào những nội dung không có trong chương trình thử thách hoặc những nội dung cần bổ sung.
(Tham gia tự nguyện, ngày giờ và chủ đề bài giảng có thể thay đổi.)

  • Chủ đề của bài giảng đặc biệt sẽ được xác nhận cuối cùng vào ngày mở thử thách.

  • Chúng tôi cung cấp bản ghi hình để bạn có thể ôn tập sau khi bài giảng đặc biệt kết thúc.

  • Mentoring video 1:1 cá nhân mỗi tuần một lần sẽ được tiến hành (30 phút). Chỉ dành cho những người đăng ký và diễn ra sau 21 giờ tối, thời gian sẽ được điều chỉnh qua kênh Slack.

  • Chủ đề cố vấn cá nhân sẽ được thực hiện không giới hạn.


Cố vấn video mỗi tuần một lần

👤 Đề xuất cho những đối tượng sau

  • Những ai muốn xây dựng nền tảng C# và Unity một cách bài bản

  • Những người cảm thấy việc phát triển game mạng khó khăn một cách mơ hồ

  • Những ai muốn sở hữu lợi thế cạnh tranh khác biệt với tư cách là một nhà phát triển client

  • Những người đang hướng tới cả vị trí phát triển server game về lâu dài

  • Những người muốn trở thành nhà phát triển có thể giải thích được "tại sao lại triển khai theo cách này"


"Không chỉ dừng lại ở người tạo ra trò chơi bằng Unity,

Khóa học đào tạo nhà phát triển game mạng có khả năng hiểu và giải thích cấu trúc máy chủ"

[Thử thách khắc nghiệt] Quà tặng dành cho người hoàn thành mục tiêu

Dành cho những người tham gia đã hoàn thành dự án đến cuối cùng, chúng tôi sẽ tặng phiếu giảm giá miễn phí cho khóa học "Khóa học tuyệt đỉnh! Unity 6 - Phát triển RPG 2D với Netcode". Tôi tin rằng việc trải nghiệm nhiều loại engine mạng thương mại đa dạng hơn là điều vô cùng ý nghĩa.

Khóa học Netcode for GameObject

강사 프로필
LIVE

함께 소통할 수 있는 라이브가 예정되어 있어요!

04.28.T3

PM 12:00

UGS 인증 및 CloudSave 활용 (Unity Gaming Service)

3월

29일

챌린지 시작일

2026년 3월 29일 PM 03:00

챌린지 종료일

2026년 4월 30일 PM 02:30

챌린지 커리큘럼

Tất cả

124 bài giảng ∙ (34giờ 9phút)

Tài liệu khóa học:

Tài liệu bài giảng
챌린지 전용 수업
Trực tiếp

챌린지에서 배워요

  • Phát triển Client Unity

  • Phát triển và lý thuyết công cụ trò chơi mạng (Network Game Engine)

  • Giao thức truyền thông TCP / UDP

  • Sử dụng engine thương mại Photon Fusion2

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Nhà phát triển muốn tiếp cận các engine mạng thương mại sau khi đã học các khái niệm về mạng.

  • Sinh viên mới tốt nghiệp đang chuẩn bị tìm việc với mong muốn sở hữu năng lực phát triển mạng.

  • Lập trình viên mới vào nghề đã sẵn sàng với kiến thức vững chắc về mạng.

  • Nhà phát triển muốn tự phát triển máy chủ trò chơi mạng riêng.

Cần biết trước khi bắt đầu?

  • C# cơ bản

  • Lựa chọn sử dụng Claude Code Plus

Đánh giá

Chưa có đủ đánh giá.
Hãy trở thành tác giả của một đánh giá giúp mọi người!

이 강의의 지난 수강평

Hỏi đáp thường gặp

취소 및 환불 규정
챌린지는 지식공유자가 설정한 수업 최소 정원이 충족되지 않을 경우, 폐강 안내가 고지되며 결제 내역이 자동취소됩니다.

Khóa học khác của indiegamemaker

Hãy khám phá các khóa học khác của giảng viên!

13.797.513 ₫