강의

멘토링

커뮤니티

NEW
Game Dev

/

Game Programming

Socket programming for online game development

This course covers the core aspects of TCP/IP network programming essential for online game development with a practical focus. You'll learn step by step from the basic principles of sockets to client-server architecture design, and implementation of game frameworks using custom-built network libraries. Topics covered: Basic network concepts and TCP/IP operation principles TCP programming using Socket API Packet protocol design and transmission structure implementation Client/server-based game framework development Optimization and practical tips needed for actual online game development Important notes: The course is conducted on Windows using Visual Studio. While it uses standard BSD socket API, there are slight differences from Unix-based operating systems. IOCP and Overlapped I/O are not covered.

30 learners are taking this course

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

Reviews from Early Learners

What you will gain after the course

  • Understanding and Application of TCP/IP

  • socket programming

  • Network Programming

  • Online Game Server Programming

Have you ever imagined players connecting to a game server you created? Now let's build the server and client for an online game ourselves.

Have you ever been curious about how multiplayer games or MMO games with large numbers of players work? Have you ever thought about adding network functionality to your own game to support online mode?
If so, this course can help you.
If you simply want to write code that sends and receives data over the internet, you can easily implement it using socket APIs. However, code that simply exchanges data is somewhat different from network programming in game development. This course goes beyond simple API usage to explain how to write actually usable network code and apply it to online games using a client/server model.

You'll learn this kind of content

1. Network Basics - Structure of the Internet

Introduces the OSI 7 layers and TCP/IP 4 layers, and explains how these concepts are integrated into the internet.

2. Network Basics - TCP/IP

Learn the technical operating principles of TCP/IP, the main protocol that constitutes the Internet. This covers the structure of TCP headers and IP headers, TCP's sequence number and ACK response system, connection establishment using 3-way handshake, and connection termination using 4-way handshake.

3. Winsock Programming Overview

Introducing Winsock, the socket API implementation for Windows.
Explains the differences between Winsock and Unix-based socket APIs. Previews the functions and features commonly used in Winsock programming.

4. Connection (listen/accept/connect)

Write the initial client and server code using the API that receives connection requests and the API that performs connection requests.


5. send / recv

We use the send() and recv() functions to actually exchange data. At this point, we only deal with blocking mode sockets.

6. non-blocking socket

Blocking mode sockets are easy to use, but they are not suitable for real-time games. This explains how to write network code that can be used in actual game programming using non-blocking sockets.

7. Send-Buffer / Recv-Buffer

Exception handling cannot rely solely on the basic functionality of sockets. We implement Recv-Buffer and Send-Buffer to prepare for exceptional situations that can occur due to TCP characteristics. This is a core functionality in full-scale network library development.

8. Design and Implementation of Network Library

We will design and implement a network library that can be used commonly by both game servers and clients. This will allow you to jump at least two stages from simply implementing send/receive functionality using socket APIs to actual product development.

9. Network Library Packaging

To achieve true modularization beyond the level of copying and pasting code, isolation must be achieved at the binary level. This introduces a method of separating network library code into a DLL to clearly establish the boundary between the content layer and network layer. This is of great help in actual product development.

10. Network Game Demo

While not a complete game, we'll implement the essential elements needed to develop an online game. Using the network library created in previous lectures, we'll write a simple demo where multiple clients connect to a server and synchronize movement processing.

11. Tips for Performance

This introduces technologies for improving network bandwidth efficiency and server equipment performance in online games. It also clarifies misconceptions about UDP vs TCP.

Pre-enrollment Reference Information

Practice Environment

  • Operating System and Version (OS): Windows 10/11

  • Tools Used: Visual Studio 2022


Learning Materials

  • pdf provided

  • Providing source code through attachments

Prerequisites

Precautions

  • The course is conducted using the winsock API in a Windows environment.

  • This covers common socket API technology that can be used in Unix-based systems including Linux, but the practice environment is Windows + Visual Studio 2022.

  • This course does not cover technologies such as Overlapped I/O and IOCP (I/O Completion Port) beyond the standard socket API.


Recommended for
these people

Who is this course right for?

  • Developers who want to directly implement game server/client network architecture

  • Those who want to learn core network technologies like TCP/IP and sockets from a practical perspective

Need to know before starting?

  • C/C++

  • Windows programming

Hello
This is

2,933

Learners

68

Reviews

17

Answers

5.0

Rating

10

Courses

프로그래머

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/

 

 

Curriculum

All

11 lectures ∙ (11hr 56min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

Not enough reviews.
Please write a valuable review that helps everyone!

$152.90

megayuchi's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!