Lập trình socket để phát triển trò chơi trực tuyến

Khóa học này tập trung vào các nội dung cốt lõi của lập trình mạng TCP/IP cần thiết cho phát triển game trực tuyến, theo định hướng thực tiễn. Bạn sẽ học từng bước, từ những nguyên lý cơ bản của socket, thiết kế cấu trúc client–server, cho đến việc triển khai framework game bằng thư viện mạng tự xây dựng. Nội dung bao gồm: Các khái niệm cơ bản về mạng và cách thức hoạt động của TCP/IP Lập trình TCP bằng Socket API Thiết kế giao thức gói tin và triển khai cấu trúc truyền dữ liệu Phát triển framework game dựa trên mô hình client/server Các kỹ thuật tối ưu hóa và mẹo thực tiễn cần thiết cho phát triển game trực tuyến Lưu ý: Khóa học được thực hiện trên Windows bằng Visual Studio. Mặc dù sử dụng bsd socket API tiêu chuẩn, hệ điều hành thuộc dòng Unix có một số điểm khác biệt. Không đề cập đến IOCP và Overlapped I/O.

(5.0) 8 đánh giá

63 học viên

Độ khó Trung cấp trở lên

Thời gian Không giới hạn

winsock
winsock
game-programming
game-programming
bsd-sockets
bsd-sockets
tcpip
tcpip
windows-programming
windows-programming
winsock
winsock
game-programming
game-programming
bsd-sockets
bsd-sockets
tcpip
tcpip
windows-programming
windows-programming

Đánh giá từ những học viên đầu tiên

5.0

5.0

영환

64% đã tham gia

Đây là một bài giảng vô cùng hữu ích. Sau khi nghe giảng, tôi đang luyện tập bằng cách tự gõ từng dòng mã từ trang giấy trắng, rồi xem lại bài giảng để ôn tập những phần chưa hiểu rõ, và điều đó giúp ích rất nhiều. Xin cảm ơn.

5.0

wolfclaw4

64% đã tham gia

Nếu bạn là người đang chuẩn bị tìm việc, tôi rất hy vọng bạn sẽ nghe điều này.

5.0

아데니아

100% đã tham gia

Tài liệu giảng dạy được cung cấp đầy đủ giúp hiểu sâu hơn về nội dung.

Bạn sẽ nhận được điều này sau khi học.

  • Hiểu biết và ứng dụng TCP/IP

  • lập trình socket

  • Lập trình mạng

  • Lập trình máy chủ game trực tuyến

Bạn đã bao giờ tưởng tượng cảnh người chơi kết nối với máy chủ trò chơi do chính mình tạo ra chưa? Bây giờ, hãy cùng tự tay xây dựng máy chủ và client của một trò chơi trực tuyến.

Bạn đã bao giờ thắc mắc các game nhiều người chơi hoặc những game MMO có lượng lớn người chơi kết nối hoạt động như thế nào chưa? Bạn có từng nghĩ rằng mình muốn tích hợp mạng vào game tự phát triển để hỗ trợ chế độ trực tuyến không?
Nếu vậy, khóa học này có thể giúp bạn.
Nếu chỉ viết mã để gửi và nhận dữ liệu đơn giản trên Internet thì có thể dễ dàng thực hiện bằng cách sử dụng socket API. Tuy nhiên, mã chỉ đơn giản gửi và nhận dữ liệu khá khác biệt so với lập trình mạng trong phát triển game. Khóa học này sẽ vượt qua việc chỉ sử dụng API đơn thuần để hướng dẫn cách viết mã mạng có thể sử dụng trong thực tế và áp dụng nó vào các game trực tuyến theo mô hình client/server.

Bạn sẽ học những nội dung như thế này

1. Kiến thức cơ bản về mạng - Cấu trúc của Internet

Giới thiệu về mô hình 7 tầng OSI và 4 tầng TCP/IP, đồng thời giải thích cách các khái niệm này được áp dụng trong Internet.

2. Mạng cơ bản - TCP/IP

Tìm hiểu nguyên lý hoạt động về mặt kỹ thuật của TCP/IP, các giao thức chính cấu thành Internet. Giải thích cấu trúc của tiêu đề TCP và tiêu đề IP, hệ thống số thứ tự seq và phản hồi ack của TCP, thiết lập kết nối bằng 3 way handshake và kết thúc kết nối bằng 4 way handshake.

3. Tổng quan về lập trình Winsock

Giới thiệu Winsock, một triển khai socket API trên Windows.
Giải thích sự khác biệt giữa Winsock và socket API trên các hệ điều hành Unix. Xem trước các hàm và tính năng sẽ được sử dụng chủ yếu trong lập trình Winsock.

4. Kết nối (listen/accept/connect)

Sử dụng API nhận yêu cầu kết nối và API thực hiện yêu cầu kết nối để viết mã máy khách và máy chủ đầu tiên.


5. send / recv

Hãy thực sự gửi và nhận dữ liệu bằng cách sử dụng các hàm send() và recv(). Ở thời điểm này, chúng ta chỉ đề cập đến socket ở chế độ blocking.

6. socket không chặn

Blocking mode socket dễ sử dụng, nhưng không phù hợp để sử dụng trong game thời gian thực. Phần này sẽ giải thích cách viết mã mạng có thể sử dụng trong lập trình game thực tế bằng cách sử dụng non-blocking socket.

7. Send-Buffer / Recv-Buffer

Để xử lý các tình huống ngoại lệ, không thể chỉ dựa vào các chức năng cơ bản của socket. Chúng ta sẽ triển khai Recv-Buffer và Send-Buffer để ứng phó với những tình huống ngoại lệ có thể xảy ra do đặc tính của TCP. Đây là chức năng cốt lõi trong quá trình phát triển một thư viện mạng hoàn chỉnh.

8. Thiết kế và triển khai Network Library

Thiết kế và hiện thực một thư viện mạng có thể được sử dụng chung cho máy chủ trò chơi và máy khách. Bạn có thể tiến xa hơn ít nhất hai bước, từ việc đơn thuần hiện thực chức năng gửi nhận bằng socket api đến phát triển sản phẩm thực tế.

9. Đóng gói thư viện Network

Để vượt qua mức độ chỉ sao chép & dán mã và đạt được khả năng mô-đun hóa thực sự, các mô-đun cần được cô lập ở cấp độ nhị phân. Phần này giới thiệu cách tách mã thư viện mạng thành DLL để phân định rõ ràng ranh giới giữa lớp nội dung và lớp mạng. Điều này sẽ hỗ trợ rất nhiều cho việc phát triển sản phẩm thực tế.

10. Demo game Network

Mặc dù chưa phải là một trò chơi hoàn chỉnh, chúng ta sẽ triển khai các yếu tố cần thiết để phát triển trò chơi trực tuyến. Sử dụng thư viện mạng đã viết trong bài giảng trước, chúng ta sẽ tạo một bản demo đơn giản, trong đó nhiều máy khách kết nối với máy chủ và đồng bộ hóa việc xử lý di chuyển.

11. Mẹo để cải thiện hiệu suất

Giới thiệu các kỹ thuật nhằm nâng cao hiệu quả băng thông mạng và hiệu năng thiết bị máy chủ của trò chơi trực tuyến. Đồng thời, chúng ta sẽ làm rõ những hiểu lầm về UDP so với TCP.

Lưu ý trước khi tham gia khóa học

Môi trường thực hành

  • Hệ điều hành và phiên bản (OS): Windows 10/11

  • Công cụ sử dụng: Visual Studio 2022


Tài liệu học tập

  • Cung cấp PDF

  • Cung cấp mã nguồn thông qua tệp đính kèm

Kiến thức nền tảng

  • Bắt buộc

    • C/C++

    • Lập trình Windows cơ bản

  • Khuyến nghị (các khóa học sau có thể hữu ích.)

Lưu ý

  • Khóa học được tiến hành trong môi trường Windows bằng cách sử dụng API Winsock.

  • Chúng tôi sẽ tìm hiểu các kỹ thuật API socket phổ biến có thể sử dụng trên các hệ Unix, bao gồm cả Linux, nhưng môi trường thực hành là Windows + Visual Studio 2022.

  • Không đề cập đến các công nghệ như Overlapped I/O và IOCP (I/O Completion Port) ngoài socket API tiêu chuẩn.


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 tự mình triển khai cấu trúc mạng máy chủ/máy khách của trò chơi

  • Dành cho những ai muốn học thực tế các công nghệ cốt lõi về mạng như TCP/IP và socket

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

  • C/C++

  • lập trình Windows

Xin chào
Đây là megayuchi

Xác minh Inflearn

Xác minh sự nghiệp

3,441

Học viên

117

Đánh giá

25

Trả lời

4.9

Xếp hạng

11

Các khóa học

Lập trình viên

C++,x86/x64 ASM, DirectX9/11/12, Metal, OpenGL, CUDA, win32, winsock/bsd socket

 

Các khóa học trên Inflearn

D3D12프로그래밍 기초편 - https://inf.run/7gJhS

Lập trình D3D12 Cơ bản Plus - https://inf.run/itHDW

Lập trình DirectX Raytracing - https://inf.run/cQqx7

Lập trình Hệ thống Windows - https://inf.run/AwfCv

Mẹo gỡ lỗi Windows - https://inf.run/zL7E4

 

Blog : https://megayuchi.com

Youtube : https://youtube.com/megayuchi

LinkedIn : https://www.linkedin.com/in/megayuchi/

 

 

Thêm
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

8 đánh giá

5.0

8 đánh giá

  • wolfclaw43527님의 프로필 이미지
    wolfclaw43527

    Đánh giá 1

    Đánh giá trung bình 5.0

    5

    64% đã tham gia

    Nếu bạn là người đang chuẩn bị tìm việc, tôi rất hy vọng bạn sẽ nghe điều này.

    • chs931143588님의 프로필 이미지
      chs931143588

      Đánh giá 4

      Đánh giá trung bình 5.0

      5

      100% đã tham gia

      Tài liệu giảng dạy được cung cấp đầy đủ giúp hiểu sâu hơn về nội dung.

      • thekim122050님의 프로필 이미지
        thekim122050

        Đánh giá 7

        Đánh giá trung bình 4.4

        5

        64% đã tham gia

        Đây là một bài giảng vô cùng hữu ích. Sau khi nghe giảng, tôi đang luyện tập bằng cách tự gõ từng dòng mã từ trang giấy trắng, rồi xem lại bài giảng để ôn tập những phần chưa hiểu rõ, và điều đó giúp ích rất nhiều. Xin cảm ơn.

        • alstjr123qwe3562님의 프로필 이미지
          alstjr123qwe3562

          Đánh giá 1

          Đánh giá trung bình 5.0

          5

          64% đã tham gia

          • cov10135743님의 프로필 이미지
            cov10135743

            Đánh giá 9

            Đánh giá trung bình 5.0

            5

            36% đã tham gia

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

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

            Khóa học tương tự

            Khám phá các khóa học khác trong cùng lĩnh vực!

            4.104.111 ₫