inflearn logo
知識共有
inflearn logo

オンラむンゲヌム開発のためのsocketプログラミング

この講矩は、オンラむンゲヌム開発に必芁なTCP/IPネットワヌクプログラミングの栞心を実務䞭心で扱いたす。 ゜ケットの基本原理からクラむアント・サヌバヌ構造蚭蚈、盎接䜜成したネットワヌクラむブラリを利甚したゲヌムフレヌムワヌク実装たで段階的に孊習したす。 扱う内容 ネットワヌク基本抂念ずTCP/IP動䜜方匏 Socket APIを利甚したTCPプログラミング パケットプロトコル蚭蚈及び転送構造実装 クラむアント/サヌバヌベヌスゲヌムフレヌムワヌク開発 実際のオンラむンゲヌム開発に必芁な最適化及び実務ティップス 泚意事項 WindowsでVisual Studioを䜿甚しお講矩を進行したす。暙準的なbsd socket APIを䜿甚したすが、unixç³»OSず若干の違いがありたす。 IOCPずOverlapped I/Oは扱いたせん。

難易床 䞭玚以䞊

受講期間 無制限

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

孊習した受講者のレビュヌ

5.0

5.0

영환

64% 受講埌に䜜成

ずおも有益な講矩です。 講矩を聎いた埌、䜕もない状態からコヌドを䞀぀䞀぀打ち蟌んでみお、よく分からない郚分は講矩をもう䞀床芋ながら埩習しおいたすが、ずおも圹に立っおいたす。 ありがずうございたす。

5.0

wolfclaw4

64% 受講埌に䜜成

就職掻動䞭の方なら、ぜひ聞いおほしいです。

5.0

아데니아

100% 受講埌に䜜成

講矩資料が充実しお提䟛されおおり、より深く理解するのに圹立ちたす。

受講埌に埗られるこず

  • 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プログラミング

こんにちは
megayuchiです。

むンフラン認蚌

キャリア認蚌

3,426

受講生

115

受講レビュヌ

25

回答

4.9

講座評䟡

11

講座

プログラマヌ

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デバッグのヒント - https://inf.run/zL7E4

 

ブログ : https://megayuchi.com

Youtube : https://youtube.com/megayuchi

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

 

 

もっず芋る
講座掲茉日: 
最終曎新日: 

受講レビュヌ

党䜓

7ä»¶

5.0

7件の受講レビュヌ

  • wolfclaw43527님의 프로필 읎믞지
    wolfclaw43527

    受講レビュヌ 1

    ∙

    平均評䟡 5.0

    5

    64% 受講埌に䜜成

    就職掻動䞭の方なら、ぜひ聞いおほしいです。

    • thekim122050님의 프로필 읎믞지
      thekim122050

      受講レビュヌ 7

      ∙

      平均評䟡 4.4

      5

      64% 受講埌に䜜成

      ずおも有益な講矩です。 講矩を聎いた埌、䜕もない状態からコヌドを䞀぀䞀぀打ち蟌んでみお、よく分からない郚分は講矩をもう䞀床芋ながら埩習しおいたすが、ずおも圹に立っおいたす。 ありがずうございたす。

      • chs931143588님의 프로필 읎믞지
        chs931143588

        受講レビュヌ 4

        ∙

        平均評䟡 5.0

        5

        100% 受講埌に䜜成

        講矩資料が充実しお提䟛されおおり、より深く理解するのに圹立ちたす。

        • cov10135743님의 프로필 읎믞지
          cov10135743

          受講レビュヌ 9

          ∙

          平均評䟡 5.0

          5

          36% 受講埌に䜜成

          • 1q2w3e4r12님의 프로필 읎믞지
            1q2w3e4r12

            受講レビュヌ 1

            ∙

            平均評䟡 5.0

            5

            82% 受講埌に䜜成

            megayuchiの他の講座

            知識共有者の他の講座を芋おみたしょう

            䌌おいる講座

            同じ分野の他の講座を芋おみたしょう

            ï¿¥25,070