강의

멘토링

커뮤니티

Game Dev

/

Game Programming

Lập trình socket cho phát triển game online

Khóa học này tập trung vào các kiến thức cốt lõi về lập trình mạng TCP/IP cần thiết cho phát triển game online theo hướng thực tế. Học viên sẽ được học từng bước từ nguyên lý cơ bản của socket đến thiết kế cấu trúc client·server, và triển khai game framework sử dụng thư viện mạng tự phát triển. Nội dung bao gồm: 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 sử dụng Socket API Thiết kế giao thức packet và triển khai cấu trúc truyền tải Phát triển game framework dựa trên client/server Tối ưu hóa và các mẹo thực tế cần thiết cho phát triển game online thực tế Lưu ý: Khóa học được tiến hành trên Windows sử dụng Visual Studio. Mặc dù sử dụng bsd socket API chuẩn nhưng có một số khác biệt nhỏ với các hệ điều hành họ unix. Không đề cập đến IOCP và Overlapped I/O.

(5.0) 3 đánh giá

41 học viên

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

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

  • megayuchi
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

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

5.0

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 đã từng tưởng tượng cảnh các người chơi kết nối vào game server do chính bạn tạo ra chưa? Bây giờ hãy cùng tự tay tạo ra server và client cho game online nhé.

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

Chúng ta sẽ học những nội dung như thế này

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

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

2. Cơ bản về mạng - TCP/IP

Học về nguyên lý hoạt động kỹ thuật của TCP/IP - giao thức chính cấu thành nên Internet. Giải thích về cấu trúc tcp header và ip header, hệ thống số seq và phản hồi ack của tcp, thiết lập kết nối bằng 3 way handshake, 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 - triển khai socket API trên windows.
Giải thích sự khác biệt giữa winsock và socket API của hệ Unix. Xem trước các hàm và tính năng chủ yếu sẽ được sử dụng trong lập trình winsock.

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

Viết mã client và server đầu tiên bằng cách 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.


5. send / recv

Sử dụng hàm send() và recv() để thực sự trao đổi dữ liệu. Tại thời điểm này, chúng ta chỉ xử lý blocking mode socket.

6. non-blocking socket

blocking mode socket thì dễ sử dụng nhưng khó có thể sử dụng trong game thời gian thực. 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ệ, chúng ta 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 để chuẩn bị cho các 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 việc phát triển thư viện mạng chính thức.

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

Thiết kế và triển khai thực tế thư viện mạng có thể sử dụng chung cho cả game server và client. Có thể nhảy vọt ít nhất hai bước từ giai đoạn triển khai chức năng gửi nhận đơn giản bằng socket api đến phát triển sản phẩm thực tế.

9. Đóng gói Network Library

Để vượt ra khỏi mức độ copy & paste code và đạt được modularization thực sự, cần phải có sự cách ly ở cấp độ binary. Tôi sẽ giới thiệu cách tách code thư viện network thành DLL để tạo ranh giới rõ ràng giữa content layer và network layer. Điều này sẽ giúp ích rất lớn trong việc phát triển sản phẩm thực tế.

10. Demo trò chơi Network

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

11. Mẹo để tối ưu hiệu suất

Giới thiệu các công nghệ để nâng cao hiệu quả băng thông mạng và hiệu suất thiết bị máy chủ của game online. Đồng thời làm rõ những hiểu lầm về UDP vs TCP.

Những lưu ý trước khi 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 tiên quyết

  • 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 ý

  • Tiến hành bài giảng sử dụng winsock API trong môi trường Windows.

  • Chúng tôi sẽ đề cập đến công nghệ socket API chung có thể sử dụng trên các hệ thống họ Unix bao gồm cả Linux, nhưng môi trường thực hành là Windows + Visual Studio 2022.

  • Chúng tôi không đề cập đến các công nghệ như Overlapped I/O, IOCP(I/O Completion Port) ngoài API socket 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ự tay triển khai cấu trúc mạng máy chủ/máy khách game

  • Những người muốn học các công nghệ mạng cốt lõi như TCP/IP, socket một cách thực tế

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

  • C/C++

  • lập trình windows

Xin chào
Đây là

3,104

Học viên

83

Đánh giá

20

Trả lời

5.0

Xếp hạng

10

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

Lập trình viên C++,x86/x64 ASM, DirectX9/11/12, Metal, OpenGL, CUDA, win32, winsock/bsd socket

Khóa học trên Inflearn

Lập trình D3D12 cơ bản - 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/

Chương trình giảng dạy

Tất cả

11 bài giảng ∙ (11giờ 56phút)

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

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

3 đánh giá

5.0

3 đánh giá

  • hanmuson18725님의 프로필 이미지
    hanmuson18725

    Đánh giá 31

    Đánh giá trung bình 5.0

    5

    64% đã tham gia

    • rudev님의 프로필 이미지
      rudev

      Đánh giá 30

      Đánh giá trung bình 5.0

      5

      64% đã tham gia

      • chs931143588님의 프로필 이미지
        chs931143588

        Đánh giá 3

        Đá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.

        4.085.213 ₫

        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!