
独自のゲームエンジンを開発する
megayuchi
無料
中級以上 / C++, DirectX, Architecture
4.8
(18)
800+
独自のエンジンを開発する際に必要な知識とアプローチを紹介します。
中級以上
C++, DirectX, Architecture
この講義では、オンラインゲーム開発に必要なTCP/IPネットワークプログラミングの核心を、実務を重視して学びます。 ソケットの基本原理から、クライアント・サーバー構造の設計、自作のネットワークライブラリを用いたゲームフレームワークの実装まで、段階的に学習します。 扱う内容: ネットワークの基本概念とTCP/IPの動作方式 Socket APIを利用したTCPプログラミング パケットプロトコルの設計および転送構造の実装 クライアント/サーバー型ゲームフレームワークの開発 実際のオンラインゲーム開発に必要な最適化および実務上のヒント 注意事項: Windows上でVisual Studioを使用して講義を進めます。標準的なbsd socket APIを使用しますが、unix系OSとは若干の違いがあります。 IOCPとOverlapped I/Oは扱いません。
受講生 67名
難易度 中級以上
受講期間 無制限


学習した受講者のレビュー
5.0
영환
とても有益な講義です。 講義を聴いた後、何もない状態からコードを一つ一つ打ち込んでみて、よく分からない部分は講義をもう一度見ながら復習していますが、とても役に立っています。 ありがとうございます。
5.0
wolfclaw4
就職活動中の方なら、ぜひ聞いてほしいです。
5.0
아데니아
講義資料が充実して提供されており、より深く理解するのに役立ちます。
TCP/IPの理解と応用
ソケットプログラミング
ネットワークプログラミング
オンラインゲームサーバープログラミング
マルチプレイゲームや、大規模なプレイヤーが接続するMMOゲームがどのように動作するのか、疑問に思ったことはありませんか?自作ゲームにネットワーク機能を追加して、オンラインモードに対応したいと思ったことはありませんか?
そうであれば、本講義がお役に立ちます。
インターネット上で単純にデータを送受信するコードを書くのであれば、socket APIを使用して簡単に実装できます。しかし、単純にデータを送受信するコードは、ゲーム開発におけるネットワークプログラミングとはやや異なります。本講座では、単純なAPIの使用にとどまらず、実際に使用できるネットワークコードを作成し、それをクライアント/サーバーモデルのオンラインゲームに適用する方法を説明します。
OSI 7階層とTCP/IP 4階層について紹介し、これらの概念がインターネットにどのように組み込まれているかを説明します。
インターネットを構成する主要なプロトコルであるTCP/IPの技術的な動作原理を学びます。TCPヘッダーとIPヘッダーの構造、TCPのSEQ番号とACK応答システム、3ウェイハンドシェイクによる接続確立、4ウェイハンドシェイクによる接続終了について説明します。
WindowsにおけるSocket API実装であるWinsockを紹介します。
WinsockとUnix系Socket APIの違いを説明します。Winsockプログラミングで主に使用する関数と機能をプレビューします。
接続要求を受けるAPIと接続要求を行うAPIを使用して、最初のクライアントとサーバーのコードを作成します。
send()関数とrecv()関数を使用して、実際にデータを送受信してみます。この時点ではblocking mode socketについてのみ扱います。
blocking mode socketは使いやすいものの、リアルタイムゲームで使用するには無理があります。non-blocking socketを使用して、実際のゲームプログラミングに利用できるネットワークコードを作成する方法を説明します。
例外状況に対処するためには、socketの基本機能だけに依存することはできません。TCPの特性上発生し得る例外状況に備え、Recv-BufferとSend-Bufferを実装してみます。これは本格的なネットワークライブラリ開発における核心的な機能です。
ゲームサーバーとクライアントで共通して使用できるネットワークライブラリを設計し、実際に実装してみます。単に socket api を利用して送受信する機能を実装する段階から、実際の製品開発へと二段階以上ステップアップできます。
コードをコピー&ペーストするレベルを脱し、本当のモジュール化を実現するには、バイナリレベルで分離する必要があります。ネットワークライブラリのコードをDLLとして分離し、コンテンツレイヤーとネットワークレイヤーの境界を明確にする方法を紹介します。これは実際の製品開発に大いに役立ちます。
完全なゲームではありませんが、オンラインゲームを開発するための必須要素を実装してみます。前回の講義で作成したネットワークライブラリを使用し、複数のクライアントがサーバーに接続して移動処理を同期する簡単なデモを作成します。
オンラインゲームのネットワーク帯域幅とサーバー機器の性能効率を高めるための技術を紹介します。また、UDPとTCPに関する誤解についても整理します。
オペレーティングシステムおよびバージョン(OS):Windows 10/11
使用ツール:Visual Studio 2022
PDF提供
添付ファイルによるソースコードの提供
必須
C/C++
基礎的なWindowsプログラミング
推奨(以下の講義が役立つ場合があります。)
Windowsシステムプログラミング(https://inf.run/VciKC)
Windowsデバッグのヒント(https://inf.run/KH5J6)
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プログラミング
インフラーン認証
キャリア認証
3,494
受講生
126
受講レビュー
25
回答
5.0
講座評価
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/
全体
11件 ∙ (11時間 56分)
講座資料:
1. ネットワーク基礎 Part 1
01:36:25
2. ネットワーク基礎 Part 2 - TCP/IP
02:04:20
3. ソケットプログラミングの概要
32:47
5. send() / recv()
48:18
6. ノンブロッキングソケット
01:10:09
7. 送信バッファ / 受信バッファ
01:02:46
8. ネットワークライブラリの設計および実装
01:32:36
11. ゲームサーバーのパフォーマンス向上のための開発Tip
01:14:58
全体
8件
5.0
8件の受講レビュー
受講レビュー 1
∙
平均評価 5.0
受講レビュー 4
∙
平均評価 5.0
受講レビュー 7
∙
平均評価 4.4
受講レビュー 9
∙
平均評価 5.0
受講レビュー 1
∙
平均評価 5.0
知識共有者の他の講座はこちら
同じ分野の他の講座を見てみましょう!
¥24,884