서버

서버1w1

yam3u 2025. 3. 14. 01:19

250304 1w1서버수업정리

게임의 구분... 

 

Standalone 게임

- 구입 후 혼자하는 게임.

- 게임 머신만 있으면 실행이 가능함.....(pc, 콘솔, 닌텐도 스위치등)

Online 게임

- 게임을 실행할 때 인터넷 연결이 필수인 게임..

- 로그인이 필수! 실행기계를 바꿔도 정보가 그대로 남아있다..

- standalone 게임의 온라인화라고 볼 수 있음 (steam)

 

온라인 게임의 구분

● 1인용 온라인 게임 (초기 모바일, 많은 steam 게임들이 예시..)

- 로긘필요, 게임은 standalone으로, 게임결과를 서버에 올림

● Peer to Peer (p2p) 게임

- standalone게임에 네트워크 대전을 지원, 로비서버를 사용해 match making함

- 게임 진행 자체는 사용자 기계에서만..

● Client/Server 게임

- 모든 게임 컨텐츠의 실행이 서버에서 이루어진다..

- 해킹에 강하다..

- MO/MMO로 구분할 수 있음..!

 

MO(Multiplayer Online)

- 실시간으로 클라이언트한테 모든 변화를 알려줘야함..(1초에 2~30번 정도?) -> 동기화구현

- FPS, RTS같은게임 (counterstrike, lol같은 겜)

- p2p로 구현 가능.

- 단점은.. 네트워크 부하가 크다/ 동접이 많이 안됨

 

MMO(Massively Mutiplayer Online)

- 게임의 단위가 서버

- 동접이 몇천명씩도 가능함.

- event 발생시에만 데이터를 전송 -> 동기화구현

- 네트워크 부하가 mo보다 적지는 않음(event  발생을 최소화 할 것...->최적화)

 

좋은 게임 서버란.....!?

 

안정성, 보안, 성능을 다 갖춰야함..

(안정성이 없으면 서버 다운 될 때마다 1/2법칙으로 동접자 수 줄어듬)

 

안정성 - 서버가 갑자기 다운되면 안된다..

보안 - 아이템 복사, 서버 프로그램 해킹 방지용... 보안에 신경을 쓴 구현이 필요하다!

성능 - 동접자 수와 HotSpot 허용량으로 평가한다..

*성능 개선을 위해선 *부하를 분산, 알고리즘 개선, 멀티코어 활용, 오버헤드 감소* 필요)

 

게임서버를 제작할 때 고려해야할점

- 네트워크 부하

서버와 클라이언트는 프로토콜 설계시.. 이렇게 하기로 하자.. 

프로토콜이란...? 서버와 클라가 데이터를 주고받을때 정한 규칙과 약속!

-> 가능한 적은양, 적은횟수의 데이터 전송! 

( 전송/수신할 때 마다 운영체제 호출에 부하가 일어남->성능저하) )

 

- 확장성

사용자가 많아질수록 서버를 확장할 수 있어야한다..

아무튼 설계를 잘해줘야함.. n^2이 나오지 않도록 효율적으로 최적화해주자..

CPU속도 한계 극복이 필요함.. -> 그냥 코어 100개씩 박아서 쓰자^^

분산구조를 사용하거나.. 

DB랑 서버는 무조건 분산해서 사용하자...(근데 분산하는건...너무어렵다..)

 

게임서버는 왜 필요해...?

왜 굳이 어려운 게임서버를 운영해...?

-> 보안 때문.. 서버 컴퓨터를 해킹하는건 거의 불가능하다..

 

우리는 고성능 게임서버가 필요하다!

성능, 게임성, 경제성을 모두 갖춘...

많은 동접->많은 사람 ->많은 재미 -> 많은 수익 이게 반복된다...

 

'서버' 카테고리의 다른 글

다중서버정리(iocp)  (0) 2025.04.06
일대일서버정리  (0) 2025.04.06
서버 2w1(네트워크프로그래밍)  (0) 2025.03.18
서버1w2  (0) 2025.03.18