NETDRONE ENGINE GUIDE BOOK 목차 어떤게임을만들수있나요?...2 주요특징은무엇인가요?...2 넷드론엔진제품소개...3 시스템요구사항...3 제품구성...4 상호작용게임구조...5 멀티플레이어게임의흐름...5 분산처리서버구성...6 개발방법알아보기...7 Unity Editor 로 C# 클라이언트만들기...7 MonoDevelop 으로 C# 독립형서버만들기...8 Visual Studio 로 C# 독립형서버만들기...9 Eclipse CDT 로 C++ 독립형서버만들기...10 Eclipse PDT 로 PHP 웹서버만들기...11 예제및도구설명...12 서버예제...12 클라이언트예제...15 CSV to Binary CSV...18 구입안내...19 인디 & 스튜디오...19 기업...19 ORIGIN STUDIO INC. 1
어떤게임을만들수있나요? 네트워크엔진이란렌더링및피직스엔진과는성격이다른다수의클라이언트들이실시간상호작용을할수있도록도와주는엔진입니다. 이를위해논리적인클라이언트및서버를만들게되며제작에필요한모든것을넷드론엔진이제공합니다. 넷드론은 MMO(Massively Multiplayer Online) 또는 MO(Multiplayer Online) 게임제작에특화된엔진입니다. 콤팩트한프로토콜설계가되어있어 MMORPG, FPS, TPS 같이트래픽이심한게임에서사용해도쾌적한플레이환경을제공할수있습니다. 또한 NDP(NetDrone Protocol) 는빠르고강력한패킷암호화기술을사용하고있어해킹에매우안전합니다. 이제 Mobile 및 Console 환경에서도 PC 환경과동일한게임을만들어보세요. 주요특징은무엇인가요? 넷드론엔진은 C# 및 C++ API 구조가 90% 이상동일합니다. 이는어떠한언어로개발하여도동일한구조의설계가가능하다는뜻이되며 C# 프로그래머, C++ 프로그래머상관없이하나의프로젝트를진행할수있음을의미합니다. 개발방법이동일하니자신있는언어로개발하세요. 확장기능으로는게임을웹서버로도개발할수있도록 NDP over HTTP 를지원하고있습니다. 프로토콜규격만준수한다면 Node.js, Java/Spring, Asp.net 등어떠한 Framework 를사용하여도무방합니다. 물론 JSON, XML, HTML 등도배려되어사용할수있지만게임패킷으로는가장콤팩트한 NDP over HTTP 를사용하세요. 트래픽양을극단적으로줄여줍니다. 2
넷드론엔진제품소개 Native Command Queue Extend Command Queue Tcp Block Queue Command Queue Dispatcher Tcp Listener Network Dispatcher List Tcp Socket Tcp Connector Raw Socket Connector Sender Threads Waiting Event Thread Sensor Udp Socket Udp Connector Udp Listener Network Sensor Udp Block Queue Net Manager Udp Order Queue Framework 네트워크엔진구조 시스템요구사항 실행환경 개발도구 Ubuntu 14.04 LTS 이상 CentOS 6.7 이상 Windows 7 이상 OSX 10 이상 Unity Editor 5 이상 Monodevelop 5 이상 Visual Studio 2010 이상 Eclipse Luna 이상 넷드론엔진은 Windows, OSX, Linux, ios, Android 플랫폼에서테스트되었습니다. 3
제품구성 지원기능 예제 도구 TCP, Reliable UDP NDP, NDP over HTTP Multi-Platform Multi-Language Multi-Threading RC5/RC6 Packet Encryption/Decryption Reuse memory allocation Singleton Pattern Factory Pattern Compact Packet Design Compact Game Log Tracer Poll(Overlapped IO), Epoll Raw Sockets CSV, Binary CSV Packet Queue Room, Chat, Web examples for Unity3D Linux, Windows, Mac C#, C++, PHP TCP Header: 8 bytes UDP Header: 12 bytes SmartClient C# based NDP server StudyServer C++ based NDP server PHP based NDP over HTTP server Console Client RC5/RC6 encrypt tester Reuse memory tester CSV to Binary CSV tool UnityServer HyperServer DummyClient CryptTester ReuseMemory DataConverter 게임네트워킹에필요한모든것이넷드론엔진에있습니다. 4
상호작용게임구조 멀티플레이어게임의흐름 Warehouse Inventory Equipment Shop Item Slot Post Inbox User Friend Online Sent Offline User List Login Server List Channel List Lobby Chat Room List Create Room Join Room Leave Ready Waiting Start Playing Stop Restart 게임시스템구조 일반적인 MO(Multiplayer Online) 게임시스템의구조는이러한연결흐름을가지고있습니다. 당신이만약 MMO(Massively Multiplayer Online) 게임을만들고싶다면 Channel 을시스템설계단계에서제거하세요. MMO(Massively Multiplayer Online) 게임은 Broadcast 기준이 Channel 이아닌 Zone 이됩니다. 5
분산처리서버구성 Auth DB 1 (Auth) DB 5 (Replication 1) DB 2 (Player Data 1) DB 6 (Replication 2) Main 1 Set 1 Relay 1 Clients Link Set 2 Main 2 Relay 2 Set 3 Main 3 Relay 3 DB 3 (Player Data 2) All Servers DB 4 (Server) 서버시스템구조 클라이언트가서버에로그인하여어떻게다른플레이어들과통신하는지와서버간통신에대한연결흐름을이해할수있는순서입니다. 당신이만약멀티플레이어게임을만들고싶다면되도록서버시스템구조를참고하세요. 넷드론엔진을활용할경우 Auth Server, Link Server, Relay Server, Main Server 등을빠르고안전하게개발할수있습니다. 계획된게임시스템설계에맞게서버간연결구조를변경하세요. 6
개발방법알아보기 Unity Editor 로 C# 클라이언트만들기 Unity IDE 넷드론엔진의클라이언트예제는패킷흐름을명확히분석할수있게데이터로모든것을표현합니다. 게임 Scene 으로는볼수없었던정확한패킷처리단계등을예제를통해확인하세요. 대규모 ( 복잡한 ) 게임을제작할경우이런식으로데이터검증을하게됩니다. 이제테스트용 Scene 을참고하면서게임 Scene 작업을시작하세요. 7
MonoDevelop 으로 C# 독립형서버만들기 MonoDevelop IDE 넷드론유니티와 Study Server 는 Mono /.NET 4.5 기반에서제작되었습니다. 테스트된실행환경은 Windows, OSX, Linux 이며 MonoDevelop 5 로개발됩니다. 프로토콜타입을추가하면서자신만의게임서버를만들어보세요. 8
Visual Studio 로 C# 독립형서버만들기 Visual Studio IDE 넷드론유니티와 Study Server 는 Windows 의 Visual Studio 2010 / 2015 와.NET Framework 4.5 를지원합니다. Visual Studio 2010 의경우프로젝트구성을다시해야하지만 Visual Studio 2015 의경우 MonoDevelop 5 프로젝트와호환됩니다. 프로토콜타입을추가하면서자신만의게임서버를만들어보세요. 9
Eclipse CDT 로 C++ 독립형서버만들기 Eclipse CDT 넷드론라이트와 Unity Server 는 Gentoo Linux 의 GLIBC / GCC 환경에서제작되었습니다. 테스트된실행환경은 Ubuntu 14 / 15, CentOS 6 / 7, Gentoo Hardened 이며 Eclipse CDT 로개발됩니다. 프로토콜타입을추가하면서자신만의게임서버를만들어보세요. 10
Eclipse PDT 로 PHP 웹서버만들기 Eclipse PDT 넷드론엔진은웹서버로구현이가능한 SO(Single player Online) 게임을위해 Hyper Server 예제를제공합니다. PHP 5.3 환경에서제작되었으며 Eclipse PDT 로개발됩니다. NDP over HTTP 규격을사용하게되면기존넷드론기반의클라이언트기능을모두사용하는것이가능합니다. 프로토콜타입을추가하면서자신만의게임서버를만들어보세요. 11
예제및도구설명 서버예제 Study Server 당신이만약 C# 프로그래머라면 Study Server 예제를이용하세요. Unity Editor 와함께편리한개발이가능합니다. 로컬에서클라이언트를여러개실행하거나팀원들이내주소로접속할수있습니다. 방화벽설정도잘해주세요. 12
Unity Server 당신이만약 C++ 프로그래머라면 Unity Server 예제를이용하세요. Native Code 만의강력한성능을경험할수있습니다. VirtualBox 등을이용해 Linux 를설치하면로컬에서개발하는것이가능하며브리지어댑터를이용할경우팀원들이내주소로접속할수있습니다. 방화벽설정도잘해주세요. 13
Hyper Server 당신이만약 PHP 프로그래머라면 Hyper Server 예제를이용하세요. 익숙한웹서버로개발이가능합니다. GET Query String 으로 Debug 를명시할경우디버깅용로그가포함됩니다. 프로토콜테스트폼으로확인하세요. 14
클라이언트예제 Dummy Client 넷드론유니티는유니티엔진없이도독립적인사용이가능합니다. Dummy Client 예제는 TCP 와 Reliable UDP 를구현하고있으며넷드론기반클라이언트구조를알기쉽게만든프로그램입니다. Login 후연결유지를위해 Ping / Pong 패킷을전송합니다. Smart Client 를실행해보면 Dummy Client 를찾을수있어요. 15
Crypt Tester 넷드론엔진은 RC5 / RC6 를구현하여가장게임에적합한암호화기법을제공합니다. Crypt Tester 예제를실행하여문자열및패킷암호화를실험하세요. 16
Reuse Memory 넷드론엔진은메모리재사용및할당속도개선을위해 New와 Delete를구현하였습니다. CAllocator를상속한모든클래스는메모리재사용이가능합니다. Reuse Memory 예제를실행하여패킷생성및재사용을실험하세요. 17
CSV to Binary CSV Data Converter 넷드론유니티는 CSV 및 Binary CSV Loader 를제공합니다. 또한 Data Converter 도구를이용하여 CSV to Binary CSV 로변환할수있습니다. Binary CSV 는많은양의데이터처리에유리하지만잘못입력된게임데이터확인이불편합니다. 개발할때는 CSV 를배포할때는 Binary CSV 를사용해보세요. 18
구입안내 인디 & 스튜디오 에셋스토어구입비용 $50 가전부입니다. 넷드론유니티는엔진소스가제공되며동시접속수에제한이없는상용화가능솔루션입니다. 또한구매여부와상관없이포럼을통해온라인기술지원을해드립니다. 에셋스토어 : http://u3d.as/mzz 포럼 : http://www.vogie.net 기업 넷드론엔터프라이즈는분산처리서버및 DB 예제가제공되며넷드론라이트의엔진소스가포함됩니다. 또한협의내용에따라교육및컨설팅, 커스터마이징, 오프라인기술지원등이가능하며상용화를위한집중을해드립니다. 넷드론엔터프라이즈기본구성 기업용엔진영구라이선스 ( 소스코드포함 ) 패킷암호화확장기능 분산처리서버및 RDBMS 예제 (MySQL) 무료기술지원 (1 년 ) 제품가격 넷드론엔터프라이즈 : 20,000,000 원부터 주문제작 : 100,000,000 원부터 정확한가격은해당프로젝트의요청사항및기간등을기준으로산출합니다. 연락처로문의사항을보내주시면신속히답변을드리겠습니다. 필요한자료요청이나질문등을보내주세요. 감사합니다. 이메일 : contact@vogie.net 포럼 : http://www.vogie.net 19