prev
next

'Unity3D/NetWork'에 해당되는 글 2건

  1. 2017.05.09 서드파티 네트워크 게임 엔진.
  2. 2017.05.08 네트워크 (NetWork)

서드파티 네트워크 게임 엔진.


P2P 방식이 아닌 온라인 게임을 개발하려면 물리적인 서버와 네트워크 게임 서버가 필요하다.

네트워크 게임 서버를 자체적으로 개발하기 위해서는 오랜 시간과 개발 경험, 실력있는 개발자가 필요하다.


서버를 직접 개발하는 것이 현실적으로 어려울 때는 이미 검증된 네트워크 게임 엔진을 도입하는 것도 좋은 방법이다.


※ 유니티를 지원하는 대표적인 게임 엔진 목록.

 제품명

홈페이지 

 Photon 

 http://www.photonengine.com

 Muchefferent 

 http://www.muchdifferent.co.kr

 ElectroServer 

 http://www.electrotank.com

 SmartFox 

 http://www.smartfoxserver.com

 프라우드넷 

 http://www.nettention.co


포톤 네트워크 게임 엔진은 현재 유니티에서 가장 많이 사용하는 엔진 중 하나다.

또한 포톤 PUN(Photon Unity NetWorking)의 경우 20명의 동시 접속 사용자(CCU, ConcurrentUser)까지는 무료로 사용할 수 있다.


포톤 관련 제품은 다양하지만 크게 포톤 서버와 포톤 PUN으로 분류할 수 있다.

포톤 PUN은 포톤 클라우드와 동일하며, 이름만 포톤 PUN으로 바뀌었다.




포톤서버? 포톤 클라우드?


포톤 서버 : 물리적으로 서버를 운영하는 것.

포톤 클라우드 : 서버를 임대해 사용하는 것.


포톤 서버를 운영하려면 서버의 보안, 로드 밸런싱, 백업 및 네트워크 트래픽을 관리할 수 있는 전문 인력이 필요하다.

하지만, 포톤 클라우드는 이러한 문제를 전혀 신경쓰지 않아도 된다.

SaaS(Software as a Service)의 개념으로 소프트웨어를 임대해 사용하는 방식이다. 



 

포톤 서버 

포톤 클라우드 

서버 운영 및 관리 

 필요

 불필요 

확장성(로드밸런싱) 

 직접 관리 

 관리 없음 

서버 사이드 게임 로직 

 커스터마이징 가능 

 불가능 

라이선스 

 서버당 과금 체계

 동시 접속 사용자별 과금 체계 

※ 포톤 서버와 클라우드 비교



포톤 쿨라우드 서버스를 이용하려면 먼저 회원가입을 해야한다.

www.photonengine.com에 접속한 후 신규 가입 메뉴를 선택하면 회원가입 페이지가 나온다.


'Unity3D > NetWork' 카테고리의 다른 글

네트워크 (NetWork)  (0) 2017.05.08

네트워크 (NetWork)


네트워크 게임 정의

네트워크 게임이란 물리적으로 떨어져 있는 다른 사용자와 통신망(LAN, 인터넷)을 이용해 서로 게임하는 것을 말한다.


네트워크 게임을 개발하려면 TCP/IP, UDP 같은 통신 프로토콜의 개념과 소켓 프로그래밍에 관한 지식뿐 아니라 서버와 네트워크에 관한 지식도 필요하다.

물론 단시간 내에 이런 지식과 경험을 쌓을 수 없을 정도로 방대하고 다양한 경우의 수가 있는 것이 바로 네트워크 게임 개발이다. 따라서 네트워크 게임을 개발해본 경험이 없는 대부분의 개발자가 쉽사리 접그하긴 어렵다.


이처럼 난이도가 높고 개발 실력이 있어야 하는 네트워크 게임을 유니티는 쉽게 개발할 수 있도록 고수준 API(High Level API)를 제공한다. 물론 쉽게 개발할 수 있다는 것이지 네트워크의 이론적 배경을 전혀 몰라도 된다는 것은 아니다.



네트워크 게임의 물리적 구조.

네트워크 게임의 물리적 구조에 따라 크게 두 가지로 나눌 수 있다.


1. P2P(Peer to Peer) 방식

2. 클라이언트 / 서버 방식


첫 번째 방식은 개인과 개인이 별도의 서버 없이 연결해 데이터를 송수신하는 구조를 말한다.

주로 메신저나 파일 공유 프로그램에서 사용하는 방식이다. 네트워크 상에 사용자가 직접 접속해 게임을 하며,

비교적 접속자 수가 적은 게임에 적용할 수 있다.




두 번째 방식은 별도의 게임 서버를 두고 여러 클라이언트(사용자)가 접속한 후 서로의 데이터를 게임 서버를 이용해 송수신하는 방식이다. 게임 서버의 역할은 접속한 사용자 간의 데이터를 릴레이 하고 게임 데이터를 데이터베이스에 저장하는 것이다.

대부분의 온라인 게임은 클라이언트/서버 방식으로 구현돼 있다.




네트워크 통신 프로토콜

프로토콜은 네트워크 상에서 데이터 통신을 하기 위한 일종의 규약이다.

다양한 프로토콜이 있지만, 게임에서 주로 TCP/IP, UDP 프로토콜을 사용한다.

정해진 프로토콜로 송수신하는 데이터의 단위를 패킷(Packet)이라 한다.

TCP/IP, UDP 프로토콜은 패킷 전송 방식과 관련해서 다음과 같은 차이점이 있다.


- TCP/IP

데이터의 유실 없이 100개를 보내면 상대편에서 100개를 받을 수 있게 정합성을 최우선으로 하는 통신 규약.

중간에 패킷이 유실됐을 때 다시 재전송 한다. 또한 패킷을 보내는 순서도 정확히 지켜 전송한다.

다만 속도가 UDP 프로토콜에 비해 상대적으로 느리다.


- UDP

TCP/IP와 달리 상대편이 받을 준비가 돼 있는지 확인하는 절차 없이 무조건 보내는 프로토콜.

매우 빠른 전송 속도를 보장한다. 또한 네트워크 상황에 따라 중간에 패킷이 유실된다.

패킷을 보내는 중간이 유실된다고 해도 재전송 절차가 없다. 또한 패킷의 순서도 보장할 수 없다.

중간에 패킷이 하나씩 유실돼도 크게 관계없는 환경에 주로 사용되며, FPS 게임처럼 액션의 비중이 크고 속도감 있는 게임에서는 주로 UDP 프로토콜을 사용한다.


'Unity3D > NetWork' 카테고리의 다른 글

서드파티 네트워크 게임 엔진.  (0) 2017.05.09
prev 1 next