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 |