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