지난 시간까지 프로토버프 사용과 자동화코드를 만들었다.
포폴을 만든다고 하면 여기까지만 해도 충분하다고 하다.
이제 잡큐와 관련된 내용을 공부할것인데 만약 몇천명 단위의 진지한 mmo를 만든다고 하면 그 때 필요한 것인듯.
채팅프로그램을 만들어 몇백명의 사람이 한 채팅방에 들어오고 채팅을 하는 실습을 해보자.
proto파일들 사용에 무슨 문제가 있다고 해서 proto파일들이 쓰는 라이브러리 (CMake로 만들었던)를 다시 만들어 넣어줬다.
Libraries-Libs-Protobuf 랑 Libraries-Include-google 을 강의자료 파일에서 가져옴.
다음으로 플레이어가 채팅방에 로그인한다는 상황을 상정하여 관련된 패킷과 Player, Room 클래스를 만들었다.
그리고 패킷핸들러에 있는 자동화로 만들어진 우리가 구현해줘야 하는 패킷 처리 함수들 안을 구현해서 로그인 프로세스를 만든다.
아직 해결해야할 문제가 있는데
뭘 할때마다 다 Lock을 잡고있다.
멀티스레드의 함정인게 클라가 몇천명이 있다 하면 20개의 워커스레드가 동시에 lock을 걸고 send 작업을 하고 풀어주는 식이면 20개중 1개만 일하고 나머지는 노는 그림이 그려진다.
그럼 이걸 어떻게 해결하냐? JobQueue가 그걸 해결해줄것이다~
'강의 수강 > 게임서버(1)' 카테고리의 다른 글
| 71. JobQueue #2 (0) | 2025.08.19 |
|---|---|
| 70. JobQueue #1 (0) | 2025.08.19 |
| 68. 패킷 자동화 #2 (0) | 2025.08.18 |
| 67. 패킷 자동화 #1 (0) | 2025.08.17 |
| 66. Protobuf (0) | 2025.08.16 |