강의

멘토링

커뮤니티

NEW
Game Dev

/

Game Programming

オンラインゲーム開発のためのsocketプログラミング

この講義は、オンラインゲーム開発に必要なTCP/IPネットワークプログラミングの核心を実務中心で扱います。 ソケットの基本原理からクライアント・サーバー構造設計、直接作成したネットワークライブラリを利用したゲームフレームワーク実装まで段階的に学習します。 扱う内容: ネットワーク基本概念とTCP/IP動作方式 Socket APIを利用したTCPプログラミング パケットプロトコル設計及び転送構造実装 クライアント/サーバーベースゲームフレームワーク開発 実際のオンラインゲーム開発に必要な最適化及び実務ティップス 注意事項: WindowsでVisual Studioを使用して講義を進行します。標準的なbsd socket APIを使用しますが、unix系OSと若干の違いがあります。 IOCPとOverlapped I/Oは扱いません。

30名 が受講中です。

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

学習した受講者のレビュー

受講後に得られること

  • TCP/IPの理解と応用

  • socketプログラミング

  • ネットワークプログラミング

  • オンラインゲームサーバープログラミング

自分が作ったゲームサーバーにプレイヤーたちが接続する様子を想像したことはありますか?今度はオンラインゲームのサーバーとクライアントを直接作ってみましょう。

マルチプレイゲームや大規模なプレイヤーが接続するMMOゲームがどのように動作するのか気になったことはありませんか?自作ゲームにネットワークを組み込んでオンラインモードをサポートしたいと思ったことはありませんか?
それなら本講義がお手伝いできます。
インターネット上で単純にデータをやり取りするコードを書くとすれば、socket APIを使用して簡単に実装することは可能です。しかし、単純にデータをやり取りするコードは、ゲーム開発におけるネットワークプログラミングとは多少距離があります。本講座は単純なAPI使用を超えて、実際に使用可能なネットワークコードを作成し、これをクライアント/サーバーモデルのオンラインゲームに適用する方法を説明します。

このような内容を学びます

1. ネットワークの基本 - インターネットの構成

OSI 7層とTCP/IP 4層について紹介し、これらの概念がインターネットにどのように組み込まれているかを説明します。

2. ネットワーク基礎 - TCP/IP

インターネットを構成する主要プロトコルであるTCP/IPの技術的な動作原理を学びます。tcpヘッダーとipヘッダーの構造、tcpのseq番号とack応答システム、3 way handshakeを利用した接続確立、4 way handshakeを利用した接続終了について説明します。

3. winsockプログラミング概要

WindowsでのSocket API実装体であるWinsockを紹介します。
WinsockとUnix系Socket APIの違いを説明します。Winsockプログラミングで主に使用することになる関数と機能をプレビューします。

4. 接続(listen/accept/connect)

接続リクエストを受信するAPIと接続リクエストを実行するAPIを使用して、最初のクライアントとサーバーコードを作成します。


5. send / recv

send()関数とrecv()関数を使用して実際にデータをやり取りしてみます。この時点では、blocking mode socketについてのみ扱います。

6. ノンブロッキングソケット

blocking mode socketは使いやすいですが、リアルタイムゲームで使用するには無理があります。non-blocking socketを使用して実際のゲームプログラミングに使用できるネットワークコードを作成する方法を説明します。

7. Send-Buffer / Recv-Buffer

例外状況処理のためには、socketの基本機能だけに依存することはできません。TCP特性上発生する可能性のある例外状況に備えて、Recv-BufferとSend-Bufferを実装してみます。これは本格的なネットワークライブラリ開発において核心的な機能です。

8. Network Libraryの設計と実装

ゲームサーバーとクライアントで共通して使用できるネットワークライブラリを設計し、実際に実装してみます。単純にsocket apiを利用して送受信する機能を実装する段階から実際の製品開発まで二段階以上ジャンプできます。

9. Network Libraryのパッケージング

コードをコピー&ペーストするレベルを超えて真のモジュール化を達成するには、バイナリレベルで分離される必要があります。ネットワークライブラリのコードをDLLに分離してコンテンツレイヤーとネットワークレイヤーの境界を明確にする方法を紹介します。これは実際の製品開発に大きな助けになります。

10. Networkゲームデモ

完全なゲームではありませんが、オンラインゲームを開発するための必須要素を実装してみます。前の講義で作成したネットワークライブラリを使用して、複数のクライアントがサーバーに接続し、移動処理を同期化する簡単なデモを作成します。

11. パフォーマンスのためのtip

オンラインゲームのネットワーク帯域幅とサーバー機器の性能効率を向上させるための技術を紹介します。また、UDP vs TCPの誤解を整理してみます。

受講前の参考事項

実習環境

  • オペレーティングシステムおよびバージョン(OS): Windows 10/11

  • 使用ツール:Visual Studio 2022


学習資料

  • PDF提供

  • 添付ファイルによるソースコード提供

前提知識

  • 必須

    • C/C++

    • 基礎的なWindowsプログラミング

  • 推奨(以下の講義が役に立つ可能性があります。)

注意事項

  • Windows環境でwinsock APIを使用して講義を進めます。

  • linuxを含むunix系でも使用できる共通的なsocket API技術を扱いますが、実習環境はWindows + Visual Studio 2022です。

  • 標準socket API以外のOverlapped I/O、IOCP(I/O Completion Port)などの技術は扱いません。


こんな方に
おすすめです

学習対象は
誰でしょう?

  • ゲームサーバー/クライアントネットワーク構造を直接実装したい開発者

  • TCP/IP、ソケットなどのネットワーク核心技術を実務的に学びたい方

前提知識、
必要でしょうか?

  • C/C++

  • Windowsプログラミング

こんにちは
です。

2,943

受講生

69

受講レビュー

17

回答

5.0

講座評価

10

講座

프로그래머

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/

 

 

カリキュラム

全体

11件 ∙ (11時間 56分)

講座資料(こうぎしりょう):

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

まだ十分な評価を受けていない講座です。
みんなの役に立つ受講レビューを書いてください!

¥24,504

megayuchiの他の講座

知識共有者の他の講座を見てみましょう!

似ている講座

同じ分野の他の講座を見てみましょう!