강의

멘토링

커뮤니티

NEW
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.

30 học viên đang tham gia khóa học này

  • megayuchi
게임프로그래밍
네트워크프로그래밍
게임서버
winsock
game-programming
bsd-sockets
tcpip
windows-programming

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

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à

2,944

Học viên

70

Đánh giá

17

Trả lời

5.0

Xếp hạng

10

Các khóa học

프로그래머

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

 

인프런 강의

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

D3D12프로그래밍 기초플러스 - https://inf.run/itHDW

DirectX Raytracing 프로그래밍 - https://inf.run/cQqx7

Windows System 프로그래밍 - https://inf.run/AwfCv

Windows Debugging Tips - 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á

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!

4.151.357 ₫

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!