KR101854201B1 - Game producing system using combined server and client - Google Patents

Game producing system using combined server and client Download PDF

Info

Publication number
KR101854201B1
KR101854201B1 KR1020160138990A KR20160138990A KR101854201B1 KR 101854201 B1 KR101854201 B1 KR 101854201B1 KR 1020160138990 A KR1020160138990 A KR 1020160138990A KR 20160138990 A KR20160138990 A KR 20160138990A KR 101854201 B1 KR101854201 B1 KR 101854201B1
Authority
KR
South Korea
Prior art keywords
game
server
data
platform
template
Prior art date
Application number
KR1020160138990A
Other languages
Korean (ko)
Inventor
이명원
Original Assignee
주식회사 디지털쿠키
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 디지털쿠키 filed Critical 주식회사 디지털쿠키
Priority to KR1020160138990A priority Critical patent/KR101854201B1/en
Application granted granted Critical
Publication of KR101854201B1 publication Critical patent/KR101854201B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06F17/248
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Abstract

The present invention relates to a server and client integrated game authoring system. The present invention is also capable of developing a server and client integrated game regardless of a heterogeneous platform. The server and client integrated game authoring system comprises: a multi-operating system build template for storing hardware and software for generating a game application for each platform; an application template for storing a source code and a standard template for each platform generated by a multi-operating system build template and a multi-operating system game development library; a multi-operating system game development library for providing game data for each platform to generate a source code of a game application for each platform and storing the game data for each platform in association with a source code for each platform stored in the application template; a server and client game system for playing a game by interworking with the game application for each platform; and a multi-operating system game development server for controlling the game application for each platform on the basis of the library and the template to enable a network game between multiple clients having a heterogeneous platform to be possible as a game server controls a corresponding network traffic for each of multiple clients having heterogeneous platforms.

Description

서버 및 클라이언트 통합형 게임 저작시스템{Game producing system using combined server and client}[0001] The present invention relates to a server and a client integrated game production system,

본 발명은 서버 및 클라이언트 통합형 게임 저작시스템에 관한 것이다.The present invention relates to a server and client integrated game authoring system.

더 구체적으로 본 발명은, 서버 및 클라이언트 통합형으로 게임을 개발하고, 이기종 모바일 플랫폼에 관계없이 게임 개발이 가능하도록 한 것이다.More specifically, the present invention develops games in a server and client integration manner, and enables game development regardless of heterogeneous mobile platforms.

모바일 게임시장은 스마트폰이 보급된 후로 급성장하기 시작했고, 이후 카카오톡 게임 플랫폼 출시로 대중화에 성공하면서 성장에 날개를 달았다.The mobile game market has been growing rapidly since the spread of smartphones, and since then, the KakaoTalk game platform has become popular with the launch of the platform.

이에 PC 또는 온라인, 비디오 게임만 개발하던 개발사들이 모바일 게임 개발을 시작하였으나, 모바일 게임 개발사들은 다른 모바일 플랫폼과 개발언어의 다양성으로 인해 추가적인 개발에 대한 부담감을 안게 되었다.Developers who have only developed PCs or online and video games have begun developing mobile games, but mobile game developers are burdened with additional development due to the diversity of other mobile platforms and development languages.

즉 게임 개발사들이 현재 활용하고 있는 Unreal, Unity3D, COCOS 2D-X 등의 게임 저작환경들은 모두 외국산으로서, 순수 국내기술을 기반으로 개발되고 상용화되어 범용되고 있는 국산게임 저작환경은 사실상 부재한 상황이며, 더구나 외국산 저작환경들은 대부분 클라이언트 중심으로서 네트워크 서버 개발 지원 측면에서 취약점을 드러내고 있다. In other words, game authoring environments such as Unreal, Unity3D, and COCOS 2D-X, which are used by game developers at present, are all foreign, and there is virtually no domestic game authoring environment that is developed and commercialized based on pure domestic technology, Furthermore, most of the foreign authoring environments are client-centric, which reveals vulnerabilities in terms of network server development support.

또한, COCOS 2D-X, Unity3D 등 각 저작환경들은 아티스트와 프로그래머의 작업이 쉽게 연동될 수 있도록 서로 이질적인 플랫폼에 대한 다중운영체계를 지원하고 있다.In addition, COCOS 2D-X and Unity3D support multiple operating systems for heterogeneous platforms so that artists and programmers can easily work together.

그런데 스마트폰 출시와 앱스토어의 등장으로 모바일 게임의 비중이 기하급수적으로 커지며 이러한 플랫폼들을 추가로 지원해야 할 필요성이 증가하였다. 이에 부응하여 코드 구현을 플랫폼별로 포팅하는 과정을 거치거나 스크립트 언어를 사용하여 게임 구현의 플랫폼 의존성을 제거하는 등, 네트워크적 모바일 환경에 대응할 수 있는 게임 개발이 가속화되고는 있으나 아직 기대에 못 미치는 것이 사실이다.However, due to the launch of smartphones and the introduction of the App Store, the proportion of mobile games has grown exponentially and the need to support these platforms has increased. In response to this, the game development that can cope with the networked mobile environment is accelerated, such as porting the code implementation to each platform or removing the platform dependency of the game implementation by using a script language, It is true.

클라이언트 통합형 게임 저작환경에 대한 구체적인 종래 기술을 살펴보면, 한국특허공개 제10-2012-0092454호가 있다.A specific prior art for a client integrated game authoring environment is disclosed in Korean Patent Publication No. 10-2012-0092454.

이 공개기술은, 사용자가 복수의 카드 게임을 수행할 수 있도록 사용자의 단말에 설치되는 클라이언트 프로그램, 및 게임 서버에 설치되는 서버 프로그램에 관련된 것으로써, 사용자는 하나의 통합 게임 클라이언트 프로그램을 이용하여, 복수의 카드 게임을 탭 선택하여 이용할 수 있고, 복수의 카드 게임 모두에 대응하는 하나의 통합 대기실에 접속할 수도 있도록 한 것이다.This disclosure relates to a client program installed on a user's terminal and a server program installed on the game server so that a user can perform a plurality of card games, A plurality of card games can be selected by tapping, and can be connected to one integrated waiting room corresponding to all of a plurality of card games.

이러한 공개기술은, 사용자는 동일한 게임 사이트에서 하나의 게임 클라이언트 프로그램을 이미 설치하였더라도, 다른 게임을 이용하기 위해서는 다른 게임 클라이언트 프로그램을 또 설치해야만 하는 문제를 해결하기 위한 것으로서, 보다 진보된 기술이라 할 수 있으나, 이질적인 플랫폼에 대응이 가능한 서버 및 클라이언트 통합 환경 구축에는 부족한 점이 있다.This disclosure technique is intended to solve the problem that another game client program must be installed in order to use another game even if one user has already installed one game client program in the same game site, However, there is a shortcoming in establishing a server and client integration environment capable of handling heterogeneous platforms.

한국특허공개 제10-2012-0092454호Korean Patent Laid-Open No. 10-2012-0092454

본 발명은, PC 기반의 게임 개발환경과 게임 개발에 유용한 각종 저작도구(Tool과 Library)를 포함하여 서버와 클라이언트 연동형 게임 개발이 가능하도록 한, 서버 및 클라이언트 통합형 게임 저작시스템을 제공하는데 있다.The present invention provides a server-based and client-integrated game authoring system capable of developing a server-client interlocking game including a PC-based game development environment and various authoring tools (tools and libraries) useful for game development.

본 발명의 다른 목적은, 이기종의 모바일 플랫폼 등에 연동하여 게임 개발이 가능하도록 한, 서버 및 클라이언트 통합형 게임 저작시스템을 제공하는데 있다.It is another object of the present invention to provide a server and client integrated game authoring system which enables game development in cooperation with a heterogeneous mobile platform or the like.

본 발명의 또 다른 목적은, 플러그 인(Plug-in) 방식의 모듈을 제공하여 다른 저작환경에서 필요로 하는 기능을 선택적으로 사용하여 게임 개발이 가능하도록 한, 서버 및 클라이언트 통합형 게임 저작시스템을 제공하는데 있다.It is still another object of the present invention to provide a server and a client integrated game authoring system in which a plug-in type module is provided to enable game development by selectively using functions required in other authoring environments .

본 발명의 또 다른 목적들은 이하에서 설명되는 내용에 따라 유추 가능할 것이다.Other objects of the present invention will become apparent from the following description.

상기 목적을 달성하기 위한 본 발명의 서버 및 클라이언트 통합형 게임 저작시스템은, 각 플랫폼별 게임 애플리케이션 생성을 위한 하드웨어 및 소프트웨어를 저장하는 다중운영체계 빌드 템플릿; 다중운영체계 빌드 템플릿과 다중운영체계 게임 개발 라이브러리에 의해 생성되는 각 플랫폼별 소스 코드와 표준 템플릿을 저장하는 애플리케이션 템플릿; 각 플랫폼별 게임 애플리케이션의 소스 코드가 생성되도록 각 플랫폼별 게임 데이터를 제공하고, 각 플랫폼별 게임 데이터를 애플리케이션 템플릿에 저장되는 각 플랫폼별 소스 코드와 연관하여 저장하는 다중운영체계 게임 개발 라이브러리; 각 플랫폼별 게임 애플리케이션에 연동하여 게임을 실행하는 서버 및 클라이언트 게임시스템; 및 게임 서버가 이기종 플랫폼을 갖는 다수의 클라이언트 각각에 대해 해당 네트워크 트래픽을 제어함에 따라 이기종 플랫폼을 갖는 다수의 클라이언트간 네트워크 게임이 가능하도록 하는 다중운영체계 게임 개발 서버로 이루어진 것을 특징으로 한다.According to another aspect of the present invention, there is provided a server and client integrated game authoring system, comprising: a multi-operating system build template for storing hardware and software for creating game applications for respective platforms; Multiple operating system build templates and multiple operating systems Application templates that store source code and standard templates for each platform generated by the game development library; A multi-operating system game development library for providing game data for each platform so that source code of the game application for each platform is generated, and storing game data for each platform in association with each platform-specific source code stored in the application template; A server and a client game system for executing a game in cooperation with each platform-specific game application; And a multi-operating system game development server that enables a network game between a plurality of clients having heterogeneous platforms as a game server controls network traffic for each of a plurality of clients having heterogeneous platforms.

게임 애플리케이션의 소스 코드는, 각 모바일 기기에서 실행되는 게임 애플리케이션을 생성하는데 이용되도록 다중운영체계 게임 개발 라이브러리를 연계하여 구동시킬 수 있는 각 플랫폼별 스타트업 파일에 링크되는 것을 특징으로 한다. The source code of the game application is characterized in that it is linked to a start-up file for each platform that can be linked to a multi-operating system game development library to be used for creating a game application executed in each mobile device.

애플리케이션 템플릿의 정보는, 사용자가 요청한 템플릿 정보에 링크된 데이터 정보 중 사용자가 요청한 특정 데이터 정보만 게임 개발 서버로 제공되도록 다중운영체계에 따른 버젼 정보와 템플릿명 정보를 포함하는 것을 특징으로 한다. The information of the application template includes version information and template name information according to multiple operating systems so that only the specific data information requested by the user among the data information linked to the template information requested by the user is provided to the game development server.

버젼 정보와 템플릿 정보는 라이브러리와 연계되어 사용자에게 제공되는 것을 특징으로 한다. The version information and the template information are provided to the user in association with the library.

표준 템플릿은, 사용자로부터 요청받은 특정 모바일 기기 게임 데이터를 모바일 기기 표준데이터로 저장한 상태에서 특정 플랫폼에 대한 표준 템플릿에 따라 상기 모바일 기기에 대한 표준 데이터를 추출하고, 이를 표준 템플릿에 포함시켜 모바일 기기 표준 템플릿 데이터를 생성한 후 게임 개발 서버로 제공되도록 모바일 기기별 표준데이터와 연동되도록 구성되는 것을 특징으로 한다. The standard template extracts the standard data for the mobile device in accordance with the standard template for the specific platform while storing the specific mobile device game data requested by the user as the mobile device standard data, Standard template data is generated and then linked to standard data for each mobile device so as to be provided to a game development server.

애플리케이션 템플릿은, 사용자가 요청한 템플릿 유형 및 콘텐츠가 어느 소스 코드에 연관된 것인지 확인 가능하도록 소스 코드를 게임 개발 라이브러리와 연계하여 저장하는 것을 특징으로 한다. The application template is characterized by storing the source code in association with the game development library so as to be able to check which type of template the user requested and contents to which the source code is related.

게임 데이터는, 스케쥴러에 의해 구성되어 다수의 쓰레드를 포함하는 쓰레드 풀을 통해 병렬 처리되어 게임 개발 서버로 제공되는 것을 특징으로 한다. The game data is characterized by being configured by a scheduler and being processed in parallel through a thread pool including a plurality of threads and provided to a game development server.

다중운영체계 게임 개발 서버는, 클라이언트와 클라이언트간 P2P 통신 모듈과, 웹서버와 직접 Http 통신 프로토콜을 할 수 있도록 하며, 개발 환경에 맞는 메타 스크립트를 출력하여 해당언어의 로컬 API로 사용할 수 있도록 자동으로 환경을 구축하는 웹서비스 모듈과, 스키마(Schema) 및 콘스트레인트 스키마(constraints Schema)와 비독점적 엑세스 기능을 지원하도록 로드 발란서가 구성되는 데이터베이스 캐시(DB Cache) 모듈과, 분산 서버 간 통신 모듈을 지원하고 멀티 코어를 사용하여 이벤트는 이벤트 콜백(Event callback) 사용자 루틴을 이용하여 처리하는 분산 서버 모듈과, 쓰레드 풀(Thread Pool)을 통해 커널 타임(kernel time)을 단축하도록 구성되는 서버 모듈로 구성되는 것을 특징으로 한다. The multi-operating system game development server enables the P2P communication module between the client and the client and the Http communication protocol directly with the web server, and outputs the meta-script suitable for the development environment and automatically A database cache module in which a load balancer is configured to support a schema service, a constraint schema, and a non-exclusive access function, and a distributed server-to-distributed communication module The event is composed of a distributed server module that processes events using a multi-core event callback user routine, and a server module that is configured to shorten the kernel time through a thread pool. .

서버 및 클라이언트 게임시스템에 구성된 서버 및 클라이언트는, 발생되는 데이터를 패킷데이터로 처리하여 송신측의 프록시(Proxy)와 수신측의 스터브(Stub)로 구분 전송하는 것을 특징으로 한다. The server and the client configured in the server and the client game system process the generated data as packet data and separately transmit the packet data to a proxy on the transmission side and a stub on the reception side.

게임 시스템의 서버 및 클라이언트는, 모두 게임 애플리케이션에 의해 실행되는 모바일 네트워크 게임의 진행 상태를 사용자에게 전송하는 것을 특징으로 한다. The server and the client of the game system all transmit the progress status of the mobile network game executed by the game application to the user.

상기 목적을 달성하기 위한 본 발명의 서버 및 클라이언트 통합형 게임 저작시스템을 이용한 게임 개발 방법은, 개발되는 게임을 컴퓨터에 실행시키기 위한 프로그램을 기록한 매체를 이용하여, GUI(Graphical User Interface) 기반의 사용자 인터페이스가 제공되어 게임데이터들을 작성하는 제1단계; 게임데이터를 확장한 게임 모델을 작성하는 제2단계; 게임 모델 데이터에 대하여 데이터 생성 프로세스를 통해 오류를 검출하고, 저작환경에 맞는 데이터 형식으로 변환하는 제3단계; 데이터 생성 프로세스를 통해 변환되어 출력된 데이터를 각 플랫폼에 맞는 데이터로 변환하는 제4단계;각 플랫폼별 게임 애플리케이션으로 최종 변환 생성된 데이터를 게임 시스템을 통해 시연 동작하는 제5단계; 및 데이터에 정의한 이벤트 및 게임 진행 스크립트 등은 런타임 동작을 통하여 확인하는 제6단계로 이루어진 것을 특징으로 한다. According to another aspect of the present invention, there is provided a game development method using a server and a client integrated game authoring system, comprising the steps of: using a medium recording a program for causing a computer to execute a developed game, A first step of providing game data, A second step of creating a game model in which game data is expanded; A third step of detecting an error through the data generation process for the game model data and converting the error into a data format suitable for the authoring environment; A fourth step of converting the data converted and output through the data generation process into data suitable for each platform, a fifth step of performing a demonstration operation of data finally converted and generated in each platform-specific game application through a game system; And a sixth step of confirming events and game progress scripts defined in the data through a run-time operation.

제3단계에서는, 이벤트 처리를 위하여 이벤트 관리자에서 식별 가능한 이벤트 코드를 부여하고, 사용자에 의해 수정 가능한 복수의 포맷으로 변환하여 서버로 전송하는 것을 특징으로 한다. In the third step, an event code, which can be identified by the event manager, is provided for event processing, and the event code is converted into a plurality of formats that can be modified by the user and is transmitted to the server.

본 발명의 서버 및 클라이언트 통합형 게임 저작시스템에 따르면, 다음과 같은 효과들이 있다.According to the server and client integrated game authoring system of the present invention, there are the following effects.

첫째, 서버와 클라이언트의 연동 개발이 가능하여 별도 개발에 따른 시간 및 비용부담을 덜어준다.First, it is possible to develop interworking between server and client, which saves the time and expense of separate development.

둘째, 이질적인 저작환경에 연동하여 게임 개발이 가능하도록 하여 이질적인 플랫폼 간의 연동에서 발생하는 문제를 해결할 수 있다. Secondly, it is possible to develop games in conjunction with heterogeneous authoring environment, thereby solving the problems arising in linking between heterogeneous platforms.

셋째, 게임 개발자들에게 서버 및 클라이언트 통합형으로 저작환경을 제공할 수도 있지만, 플러그 인(Plug-in) 방식의 모듈을 제공하여 저작환경에서 필요한 기능을 선택적으로 사용할 수 있는 등, 기존 저작환경이나 저작도구들과의 호환성을 제공하여 편리하게 사용할 수 있다.Third, it is possible to provide a game environment with server and client integration to game developers, but it is possible to provide a plug-in module to selectively use necessary functions in the authoring environment, It provides compatibility with tools and can be used conveniently.

도 1은 본 발명의 실시예에 따른 서버 및 클라이언트 통합형 게임 저작시스템의 모듈화 개념도.
도 2는 본 발명의 실시예에 따른 서버 및 클라이언트 통합형 게임 저작시스템의 구성도.
도 3은 본 발명의 멀티 플랫폼 레이어 예시도.
도 4는 본 발명의 클라이언트 게임 진행도.
도 5는 본 발명의 다중운영체계 라이브러리 클래스 다이어그램.
도 6은 본 발명의 애니메이션 이벤트 생성도.
도 7은 본 발명의 멀티 프로세스 개념도.
도 8은 본 발명의 인스톨러 구조 예시도.
도 9는 본 발명의 DB Cache 구조 예시도.
도 10은 본 발명의 서버 및 클라이언트 통합형 게임 저작시스템의 게임 개발 엔진 구조도.
도 11은 본 발명의 동작 흐름 예시도.
1 is a conceptual diagram illustrating the modularization of a server and client integrated game authoring system according to an embodiment of the present invention;
BACKGROUND OF THE INVENTION Field of the Invention [0001]
3 is an illustration of a multiplatform layer of the present invention.
4 is a client game progression diagram of the present invention.
Figure 5 is a multi-operating system library class diagram of the present invention.
6 is an animation event generation diagram of the present invention.
7 is a multi-process conceptual diagram of the present invention.
8 is an exemplary view of the installer structure of the present invention.
FIG. 9 is a diagram exemplifying the DB Cache structure of the present invention; FIG.
10 is a structural view of a game development engine of the server and client integrated game authoring system of the present invention.
11 is an exemplary operational flow diagram of the present invention.

이하, 본 발명의 바람직한 실시예의 상세한 설명은 첨부된 도면들을 참조하여 설명할 것이다. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, a detailed description of preferred embodiments of the present invention will be given with reference to the accompanying drawings.

본 발명을 설명함에 있어서, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.In the following description of the present invention, detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It is to be understood, however, that the invention is not to be limited to the specific embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs.

1. 개요1. Overview

게임엔진이 가지는 주요 기능으로는 3D 그래픽의 표현을 위한 렌더링 엔진(Rendering Engine), 3D 공간의 충돌 감지 및 현실적인 물리 효과(Physics Effect)를 내기 위한 물리엔진(Physics Engine), 각종 개발 도구(Development Tool) 등이 있다. 여기에 개발자의 편의와 개발 속도 향상을 위하여 스크립트 에디터(Script Editor), 맵 에디터(Map Editor) 등 다양한 기능들이 추가될 수 있다.The main functions of the game engine are a rendering engine for rendering 3D graphics, a physics engine for detecting collisions in 3D space and realistic physics effects, ). Various functions such as a script editor and a map editor can be added to improve convenience and speed of development.

본 발명은 이러한 게임엔진을 이용한 게임 개발에 있어서, 본 발명 특유의 다양한 기능을 통해 서버와 클라이언트의 연동 개발이 가능하도록 하고, 다른 플랫폼 등 이질적인 저작환경 간에 발생하는 문제를 해결하면서 게임에서 요구되는 다양한 기능을 안정적으로 개발할 수 있도록 한다.In the game development using the game engine according to the present invention, it is possible to develop a server and a client interlockingly through various functions peculiar to the present invention, and to solve a problem occurring between heterogeneous authoring environments such as other platforms, So that the function can be stably developed.

본 발명은 게임 개발자의 고유한 창의적인 목표와 비전에 부합하기 위해 솔루션을 쉽게 수정, 확장, 리팩토링할 수 있게 해주는 모듈식의 아키텍처를 기반으로 한다. 즉 기존 저작환경을 바탕으로 미리 개발되었거나, 필요에 따라 다른 저작환경을 바탕으로 개발되었더라도 도 1에 도시한 바와 같이 플러그-인(Plug-in) 방식의 모듈을 제공하여 각각 처한 저작환경에서 필요로 하는 기능을 선택적으로 사용할 수 있도록 한다. The present invention is based on a modular architecture that allows a developer to easily modify, extend and refactor the solution to meet the unique creative goals and vision of the game developer. In other words, even if it is developed on the basis of the existing authoring environment or developed on the basis of another authoring environment as needed, a plug-in module is provided as shown in FIG. 1, And the like.

본 발명은 서버 운영체제에서 TCP(Transmission Control Protocol), UDP(User Datagram Protocol) 패킷 처리를 위해 커널-유저 모드(Kernel-User Mode) 전환이 발생하는 경우 많은 처리 시간과 서버 성능의 현저한 저하를 고려하여 최소한의 Kernel-User Mode 전환을 가능하게 한다. The present invention takes into consideration a considerable decrease in processing time and server performance when a kernel-user mode is switched for processing a Transmission Control Protocol (TCP) and a User Datagram Protocol (UDP) packet in a server operating system Enables minimal kernel-user mode switching.

운영체계에서는 낮은 권한에서 악성 코드 등에 의해 운영체계가 손상되는 것을 방지하고, 각 계층별로 할 수 있는 일을 정하여 계층에 대한 역할을 구조화하기 위한 차원에서 계층별로 자원에 대한 접근을 허용하는바, 유저 모드와 커널 모드는 자원에 대한 접근에서 그 차이가 발생한다. 유저 모드에서 실행되는 응용 프로그램은 각각의 가상 메모리를 할당받고, 각자의 독립성을 보장받으므로 다른 프로그램 영역을 침범할 수 없다, 또한 유저 모드에서 실행되므로 커널 공간에도 침범할 수 없다. 그러나 커널 모드에서 실행되는 응용 프로그램은 모든 메모리를 자유롭게 사용할 수 있다. 따라서 이러한 점을 감안하여 Kernel-User Mode 전환이 단시간에 이루어지도록 하는 것이다.In the operating system, the operating system is prevented from being damaged by malicious code or the like at a low level of authority, and access to resources is allowed for each layer in order to structure a role for the hierarchy by determining what can be done for each hierarchy. Mode and kernel mode differ in access to resources. Application programs running in user mode can not invade other areas of the program because they are allocated virtual memory and are guaranteed to be independent of each other. They also run in user mode and therefore can not penetrate kernel space. However, applications running in kernel mode can freely use all memory. Therefore, in consideration of this, Kernel-User Mode switching is performed in a short time.

본 발명은 네트워크 기능을 가진 게임의 경우 게임 로직의 구조적 문제로 인한 클라이언트 접속 장애 등의 문제를 방지하기 위해 사용자 루틴(user routine)과 네트워크 입출력 루틴(network I/O routine)을 서로 다른 쓰레드 풀(thread pool)에서 처리하도록 한다.In order to prevent problems such as a client connection failure due to a structural problem of a game logic in a game having a network function, a user routine and a network I / O routine are provided in different thread pools thread pool).

본 발명은 분산 서버 구성에서 thread pool과 서버 인스턴스 간 관계가 일대다 구조가 아닐 경우 커널 타임(kernel time)이 상승하면서 서버의 성능이 떨어질 수 있으므로 thread pool과 서버 인스턴스 간 관계를 사용자가 원하는 대로 맺을 수 있도록 구성하고, 최소한의 kernel time을 유지하면서 고성능 게임 서버 개발이 가능하도록 한다. In the distributed server configuration, if the relationship between the thread pool and the server instance is not one-to-many, the performance of the server may deteriorate due to an increase in the kernel time. And to develop a high performance game server with minimum kernel time.

2. 실시예2. Example

도 2는 본 발명의 서버 및 클라이언트 통합형 게임 저작시스템의 구성도이다.2 is a block diagram of a server and client integrated game authoring system according to the present invention.

도 2에 도시한 바와 같이 본 발명의 서버 및 클라이언트 통합형 게임 저작시스템은, 각 플랫폼에서 구동되는 애플리케이션을 생성하기 위한 각종 도구와 소스 코드를 제공하는 수단인 모바일 다중운영체계 빌드 템플릿(100) 및 애플리케이션 템플릿(200)과, 상기 템플릿(100)(200)을 통해 생성된 애플리케이션을 구동하여 서버 및 클라이언트간 게임을 진행하는 서버 및 클라이언트 게임시스템(300)을 포함한다.As shown in FIG. 2, the server and client integrated game authoring system of the present invention includes a mobile multi-operating system build template 100, which is a means for providing various tools and source code for creating applications running on each platform, A template 200 and a server and a client game system 300 for driving an application generated through the templates 100 and 200 to play a game between the server and the client.

본 발명의 서버 및 클라이언트 통합형 게임 저작시스템은 또한, 상기 애플리케이션 생성에 필요한 각종 도구, 예를 들어 애니메이션 등 여러 가지 도구들을 취합한 수단인 모바일 다중운영체계 게임 개발 라이브러리(400) 및, 상기 빌드 템플릿, 애플리케이션 템플릿 및 게임 개발 라이브러리를 이용하여 서버 및 클라이언트 데이터를 생성하는 등, 다중운영체계에서 실행되는 게임을 개발하는 모바일 다중운영체계 게임 개발 서버(500)를 포함한다. The server and client integrated game authoring system of the present invention may further include a mobile multi-operating system game development library 400, which is a means for collecting various tools necessary for creating the application, for example, animation, And a mobile multi-operating system game development server 500 that develops a game executed in multiple operating systems, such as generating server and client data using an application template and a game development library.

실시예에서 모바일 다중운영체계 빌드 템플릿(100)은, 예를 들어 iOS, Android, Windows phone 등 여러 가지 플랫폼들에 연동하여 구동 가능한 애플리케이션이 개발되도록 각종 도구들을 제공하는 것으로, 도 3에 도시한 바와 같이 멀티 플랫폼 레이어로 구성된다. In the embodiment, the mobile multi-operating system build template 100 provides a variety of tools for developing applications that can be run in conjunction with various platforms, such as iOS, Android, Windows phone, and the like, As well as multi-platform layers.

이러한 멀티 플랫폼 레이어는 PC 기반 시뮬레이터 및 모바일 다중운영체계 게임 개발 라이브러리(400)를 이용하여 생성된 게임 애플리케이션 소스 코드를 컴파일하여 각 플랫폼에서 실행될 수 있는 애플리케이션을 생성할 수 있도록 각종 도구들을 제공한다. The multi-platform layer provides a variety of tools to compile game application source code generated using the PC-based simulator and mobile multi-operating system game development library 400 to create applications that can be executed on each platform.

애플리케이션 생성 도구들은 하드웨어와 하드웨어에서 동작하는 운영체계 및 특정 기능의 소프트웨어로서, 예를 들어 오디오(Audio), 데이터베이스(DataBase), 애니메이션 디자이너(Animation Designer), 스크립트 에디터(Script Editor) 등을 포함하는 도구들이다. Application creation tools are operating systems and specific functions of software that run on hardware and hardware, and include tools such as Audio, DataBase, Animation Designer, Script Editor, admit.

실시예에서 애플리케이션 템플릿(200)은, 개발자들에게 초기 프레임 워크 작성과, 독립적인 모바일 솔루션에 대한 적응이 용이하게 이루어지도록 정형화된 소스 코드를 제공한다. 소스 코드는 예를 들어 게임 리소스나 로직 등을 포함하는 것으로서 게임 애플리케이션의 기초 설계 부분에 해당하므로 개발자들은 이를 통해 게임의 기초적인 프레임을 만들 수 있다. In the embodiment, the application template 200 provides developers with formalized source code to facilitate initial framework creation and adaptation to an independent mobile solution. The source code includes, for example, game resources or logic, and corresponds to the basic design part of the game application, so that the developers can create basic frames of the game.

게임 애플리케이션 소스 코드는, 각 플랫폼에서 실행되는 애플리케이션을 만드는 과정을 입력하는데 이용되는 것으로, 각 플랫폼에서 구동되는 애플리케이션으로 컴파일된다. 즉 특정 언어로 쓰여 있는 문서를 컴파일 프로그램을 통해 다른 프로그래밍 언어로 옮기는데, 예를 들어, ARM 기반 CPU를 위해 컴파일된 다중 운영체계 게임 개발 라이브러리(400)와, 이 라이브러리(400)를 연계하여 구동시킬 수 있는 각 플랫폼별 스타트업 파일을 링크하여 각 모바일 기기에서 동작되는 애플리케이션을 생성한다.The game application source code is used to input the process of creating an application that runs on each platform and is compiled into an application running on each platform. That is, when a document written in a specific language is transferred to another programming language through a compiling program, for example, a multi-operating system game development library 400 compiled for an ARM-based CPU and a library 400 And links the start-up file for each platform to create an application that runs on each mobile device.

애플리케이션 템플릿(200)은 각 플랫폼별 표준 템플릿을 제공할 수 있다. 즉 라이브러리(400)에 있는 각 플랫폼별 게임 데이터를 가공하여 각 플랫폼에서 구동 가능한 애플리케이션이 생성되면, 이를 표준 템플릿으로 저장하고, 사용자의 요청이 있을 경우 제공하는 것이다.The application template 200 may provide a standard template for each platform. That is, if game data for each platform in the library 400 is processed and an application that can be run on each platform is generated, the application is stored as a standard template, and provided when a user requests the game.

한편, 상기 애플리케이션 템플릿(200)에 저장되는 표준 템플릿은 각 모바일 기기별 표준데이터와 연동되는 식으로 변형 구현될 수 있다. 즉 특정 모바일 기기에 연동되는 게임 개발을 위하여 특정 모바일 기기 게임 데이터가 요청되면, 상기 수신한 게임 데이터를 모바일 기기 표준데이터로 저장한다. 이러한 상태에서 게임 개발 서버로부터 특정 플랫폼에 대한 표준 템플릿을 요청받으면, 이 표준 템플릿에 따라 상기 모바일 기기에 대한 표준 데이터를 추출한다. 추출된 모바일 기기 표준데이터를 표준 템플릿에 포함시켜 모바일 기기표준 템플릿 데이터를 생성한 후 게임 개발 서버로 제공하는 식으로 구현될 수 있다.Meanwhile, the standard template stored in the application template 200 may be transformed in a manner interlocked with the standard data for each mobile device. That is, when specific mobile device game data is requested for development of a game linked to a specific mobile device, the received game data is stored as mobile device standard data. When a standard template for a specific platform is requested from the game development server in this state, standard data for the mobile device is extracted according to the standard template. The extracted standard data of the mobile device may be included in the standard template to generate the mobile device standard template data and then provided to the game development server.

상기 애플리케이션 템플릿의 정보로는 다중운영체계에 따른 버젼 정보와 템플릿명 정보를 포함할 수 있다. 따라서 이들 정보들이 게임 개발 서버로 제공되는 정보가 될 수 있다. 이는 사용자가 요청한 템플릿 정보에 링크된 데이터 정보 중 사용자가 요청한 특정 데이터 정보만 게임 개발 서버로 제공될 수 있음을 의미한다. The information of the application template may include version information and template name information according to multiple operating systems. Therefore, these pieces of information can be information provided to the game development server. This means that only the specific data information requested by the user among the data information linked to the template information requested by the user can be provided to the game development server.

구체적인 동작을 예를 들면, 서버로부터 상기 멀티 플랫폼 레이어의 GUI를 통해 애플리케이션 템플릿 유형 및 적어도 하나의 컨텐츠를 요청받으면, 요청받은 애플리케이션 템플릿 유형에 대응하는 템플릿 소스 코드를 메모리에서 검색하며, 검색된 템플릿 소스 코드 및 적어도 하나의 컨텐츠에 기초하여 상기 요청받은 애플리케이션을 생성하는 흐름으로 구성할 수 있다. For example, when the application template type and at least one content are requested from the server through the GUI of the multi-platform layer, the template source code corresponding to the requested application template type is retrieved from the memory, and the retrieved template source code And a flow for generating the requested application based on at least one content.

실시예에서 서버 및 클라이언트 게임 시스템(300)은, 상기 모바일 다중운영체계 빌드 템플릿(100) 및 애플리케이션 템플릿(200)을 바탕으로 생성된 게임 애플리케이션의 구동에 의한 모바일 네트워크 게임의 진행 상태를 사용자에게 전송한다. The server and client game system 300 transmits the progress status of the mobile network game by driving the game application generated based on the mobile multi-operating system build template 100 and the application template 200 to the user do.

게임 진행은 서버가 수행하고, 게임 진행에 따라 처리된 결과는 이벤트 형태로 클라이언트에게 전송된다. 클라이언트에게 전송된 이벤트는 게임 환경, 예를 들어 사용자의 게임 만족도를 높이기 위해 그래픽, 애니메이션 및 사운드 등으로 처리되어 표현된다.The game progress is performed by the server, and the processed result according to the game progress is transmitted to the client as an event type. The events sent to the client are processed and represented in a game environment, for example, graphics, animation, and sound, to enhance the user's game satisfaction.

클라이언트 또한, 모바일 네트워크 게임에서 사용자에게 게임의 진행 및 상태를 전송한다. 클라이언트는 모바일폰, PC, 셋톱박스 등 네트워크를 통하여 컨텐츠를 제공받을 수 있는 모든 기기를 포함한다. The client also transmits the progress and status of the game to the user in the mobile network game. The client includes all devices capable of receiving contents through a network such as a mobile phone, a PC, and a set-top box.

서버와 클라이언트에 의해 처리되는 데이터는 패킷데이터로 정의되며 서로 네트워킹된다. 따라서 각각의 패킷데이터는 이벤트 처리기를 거치면서 처리되며, 이벤트가 발생된 경우 이를 사용자가 처리하도록 안내한다. 패킷데이터로 정의된 이벤트는 송신측의 프록시(Proxy)와 수신측의 스터브(Stub)로 구분되어 사용자의 혼동을 방지한다.Data processed by the server and client are defined as packet data and are networked with each other. Therefore, each packet data is processed through the event handler, and guides the user to process the event when the event occurs. The event defined by the packet data is divided into a proxy on the transmitting side and a stub on the receiving side to prevent confusion of the user.

상기 모바일 네트워크 게임 진행은 사용자의 입력이 발생되면 게임 루프를 통하는데, 서버로부터 네트워크를 통해 전송되는 이벤트와 함께 메시지, 그래픽 및 사운드 등이 처리되어 네트워크를 통해 다시 서버로 전송되는 등 게임의 전반적 흐름을 안내하는 식으로 이루어지며, 디바이스 자원 사용 및 게임 코드 작성으로 구현된다. 이를 도시한 것이 도 4이다.The mobile network game progresses through a game loop when an input of a user is generated. The mobile network game progresses through a game loop, in which messages, graphics, and sounds are processed along with events transmitted through the network from the server, And is implemented by using device resources and writing game code. This is shown in Fig.

디바이스 자원 사용은 시스템 콜백 루틴을 통해 제공되며, 코드 템플릿을 따라 사용자는 게임 코드를 작성하게 된다. 즉 키보드, 마우스 입력과 같은 사용자 입력, 맵, 애니메이션, 레벨 등과 같은 게임 상태 갱신, 충돌 검사 등과 같은 물리 효과, 음악과 효과음 재생, 디스플레이 등의 작업들이 이루어지게 된다. Device resource usage is provided through a system callback routine, and the user follows the code template to write the game code. Such as user input such as keyboard and mouse input, physical effects such as game state update such as map, animation, level, etc., collision inspection, music and sound effect reproduction, display and the like.

실시예에서 모바일 다중운영체계 게임 개발 라이브러리(400)는, 다중운영체계 라이브러리를 구성하는 주요 클래스들 간의 의존 및 계층 관계를 나타내는 식으로 구현된다. 도 5에 도시한 바와 같이 빌드 템플릿(100) 및 애플리케이션 템플릿(200)을 바탕으로 생성되는 게임 애플리케이션에 사용되는 자원 관리, 객체 관리, 사용자 인터페이스, 애니메이션 처리, 출력 등의 기본적인 기능들을 처리 및 관리할 수 있도록 구성된다. 라이브러리(400)는 이에 의해 생성되어 저장 관리되는 소스 코드와 연관되어 관리될 수 있다. 즉 상기에서 설명한 바와 같이, 사용자가 요청한 템플릿 유형 및 콘텐츠가 어느 소스 코드에 연관된 것인지 인식이 쉽도록 관리된다.In the embodiment, the mobile multi-operating system game development library 400 is implemented by expressing dependency and hierarchical relationship among the main classes constituting the multi-operating system library. As shown in FIG. 5, basic functions such as resource management, object management, user interface, animation processing, and output used for game applications generated based on the build template 100 and the application template 200 are processed and managed . The library 400 can be managed in association with the source code generated and stored and managed thereby. That is, as described above, the type of the template requested by the user and the content to be associated with the source code are managed so as to be easily recognized.

각각의 라이브러리(400)는 요청된 기능들에 대하여 서로 병렬처리가 가능하도록 구성되며, 이에 따라 특히 게임 개발에 사용이 집중될 수 있는 자원에 대한 처리가 효율적으로 수행될 수 있다. 예를 들어, 10 개의 처리 장치로 병렬 처리하면 최대 10배 정도 처리 속도를 향상시킬 수 있다. Each of the libraries 400 is configured to be capable of parallel processing with respect to the requested functions, so that processing for resources that can be particularly concentrated in game development can be efficiently performed. For example, parallel processing with 10 processors can improve processing speed up to 10 times.

구체적인 예로써 애니메이션 라이브러리의 경우, 게임에서 캐릭터와 기하학적 객체들의 자연스러운 움직임을 묘사해 내기 위하여 여러 가지 기능들을 구성한다. 상기에 언급한 계층구조로 구성된 애니메이션을 통해 Material, Mesh, Texture, Transform, shader, Text 등 기본 그래픽 데이터들이 일반화하여 반복적 처리 과정을 거쳐 복잡한 애니메이션을 표현할 수 있도록 한다. 이러한 과정을 블록으로 도시한 것이 도 6이다. As a specific example, an animation library constructs various functions to describe the natural movement of characters and geometric objects in a game. Basic graphic data such as Material, Mesh, Texture, Transform, Shader, and Text are generalized through an animation composed of the above-mentioned hierarchical structure, and a complex animation can be represented through an iterative processing process. This process is shown in FIG. 6 as a block.

또한, 캐릭터 격투 동작 등 애니메이션 이벤트 발생지점을 사용자가 정의할 수 있도록 하고, 게임 시스템의 이벤트에 전송될 수 있도록 애니메이션 이벤트와 게임 시스템의 이벤트 처리기를 동기화한다.In addition, the user can define an animation event occurrence point such as a character fighting action, and synchronize an animation event and an event handler of the game system so as to be transmitted to an event of the game system.

또한, 사실감 있는 표현을 위해 예를 들어 충돌과 충돌 반응의 경우 3D 공간의 충돌 감지 및 현실적인 물리 효과를 내기 위한 물리 모듈과 연계하여 처리하도록 한다. 물리 모듈과의 상호 통신은 게임 시스템의 클라이언트 이벤트로 정의하여 게임 시스템의 이벤트 처리기에서 기본적으로 처리하며, 사용자가 수정할 수 있도록 한다.Also, for realistic representation, for example, in the case of collision and collision response, it is processed in conjunction with a physical module for detecting collision of 3D space and realistic physics effect. Inter-communication with the physical module is defined as a client event of the game system, It is processed by the event handler of the system basically, and it can be modified by the user.

게임은 통상적으로 단일 게임 루프로 프로그램되어 있다. 따라서 사용자 입력, 디스플레이 갱신, 다음 애니메이션 프레임 처리 등, 처리해야 될 것들과 처리하는 것들의 복잡도가 점차 증가하고 있다. 이러한 복잡한 문제들을 빠르게 연산하여 응답을 출력하고, 다양한 입출력 처리를 거의 동시에 하는 것이 필요하다. 이러한 점을 감안하여 본 발명에서는 모바일 멀티 코어 프로세서를 사용하여 게임 성능을 높일 수 있도록 한다. The game is typically programmed as a single game loop. Therefore, the complexity of things to be processed and processing, such as user input, display update, next animation frame processing, etc., is increasing. It is necessary to calculate these complicated problems quickly, output the response, and perform various input and output processes almost simultaneously. Given this, In the present invention, a game performance can be improved by using a mobile multicore processor.

도 7에 도시한 바와 같이 다수의 쓰레드를 포함하는 쓰레드 풀을 스케쥴러를 통해 구성하고, 상기 다수의 쓰레드를 처리하는 식으로 그래픽 렌더와 정보를 주고받을 수 있다. 또한 다수의 쓰레드를 이용함으로써 데이터 다운로드와 로딩이 용이하게 이루어질 수 있다. As shown in FIG. 7, a thread pool including a plurality of threads is configured through a scheduler, and information can be exchanged with graphics renderers by processing the plurality of threads. Also, by using a large number of threads, data downloading and loading can be facilitated.

또한, PC 기반 미들웨어들은 병렬처리 기능을 제공하고 있으나, 현재의 모바일 미들웨어들은 그렇지 못하다, 따라서 본 발명에서는 3D 그래픽의 표현을 위한 렌더링 출력과 입출력 등을 병렬처리하여 모바일 게임에서 하드웨어 사용 효율을 높일 수 있도록 한다.In addition, although PC-based middleware provides a parallel processing function, current mobile middleware does not. Therefore, in the present invention, rendering output and input / output for rendering 3D graphics are processed in parallel, .

모바일 게임들은 다양한 컨텐츠, 예를 들어 캐릭터, 아이템, 무기, 상점 등도 포함하고 있으며, 이러한 컨텐츠들은 소비자들의 욕구에 따라 계속하여 수정, 보완 또는 추가되어야 한다. 그러나 모바일 게임을 수정 배포하는 것은 쉽지 않다. 이를 위해서는 마켓 수정 등록, 마켓 검수, 사용자 배포 등의 과정을 거쳐야 한다. Mobile games also include a variety of content, such as characters, items, weapons, and stores, which must be continually revised, supplemented, or added to meet consumer needs. However, it is not easy to modify and distribute mobile games. In order to do this, it is necessary to go through processes such as market correction registration, market inspection, and user distribution.

따라서 본 발명에서는 도 8에 도시한 바와 같이 인스톨러(Installer(Updater))를 통해 이러한 수정 및 보완을 손쉽게 하여 컨텐츠 유지보수 효율을 높이도록 한다. 즉 필요한 부분만 최소의 비용으로 다운로드 받아 사용자 편의성을 극대화해주는 것이다.Accordingly, in the present invention, as shown in FIG. 8, the content maintenance efficiency is improved by facilitating such correction and supplementation through an installer (updater). In other words, only the necessary parts are downloaded at the minimum cost, maximizing user convenience.

실시예에서 모바일 다중운영체계 게임 개발 서버(500)는, 다중운영체계를 위한 하드웨어 및 특정 기능의 소프트웨어가 저장되어 있는 플랫폼에 대해 상기 플랫폼에 속하는 하드웨어 중에서 적어도 하나 이상의 하드웨어의 성능 차이가 있는 이기종 하드웨어 플랫폼들이 네트워크로 연결된 상태에서, 클라이언트에서 상기 플랫폼의 성능 및 각 시점의 네트워크 상태에 대한 성능 프로파일을 구성하여 서버로 전달하면, 서버에서는 이기종 하드웨어 플랫폼을 갖는 클라이언트 각각에 대해 해당 네트워크 트래픽을 제어함으로써 플랫폼이 서로 다른 환경에서 다중 사용자가 접속하여 단일 게임을 즐기는 환경을 만들어준다.In the embodiment, the mobile multi-operating system game development server 500 may be configured to allow the multi-operating system game development server 500 to use a different hardware having at least one hardware among hardware belonging to the platform, In a state where the platforms are connected to the network, a performance profile of the performance of the platform and a network state at each point of time is configured by the client and transmitted to the server. The server controls the corresponding network traffic for each client having the heterogeneous hardware platform, This creates an environment where multiple users can access and enjoy a single game in different environments.

이를 위해 모바일 다중운영체계 게임 개발 서버(500)는, P2P 통신 모듈과, 웹서비스 모듈과, DB Cache 모듈과, 분산 서버 처리 모듈과, 서버 모듈을 포함한다.To this end, the mobile multi-operating system game development server 500 includes a P2P communication module, a web service module, a DB Cache module, a distributed server processing module, and a server module.

P2P 통신 모듈은, 서버를 경유하여 통신하기에는 데이터량이 너무 많은 경우, 클라이언트와 서버간에 지리적으로 먼 경우, 보다 좋은 레이턴시(Latency)가 필요한 경우 등, 과도한 트래픽과 해킹으로부터 안전성을 향상시키도록 클라이언트 통신 또는 peer-to-peer 네트워킹과 같이 서버를 경유하지 않고 클라이언트 호스트끼리 직접 통신하도록 한다.The P2P communication module can be used to communicate with the client through a server to improve security from excessive traffic and hacking, such as when the amount of data is too large, when the client is far from the server, or when a better latency is required. Peer-to-peer networking allows client hosts to communicate directly with each other without going through the server.

웹서비스 모듈은, 모바일 게임이 점차 소셜과 연동이 보편화되면서 웹사이트 연동이 활발해지고 있음을 감안하여, 게임의 일부 정보의 열람, 예를 들어 캐릭터 정보, 경매장, 친구 리스트, 길드 등과, 운영 툴, 지표 등을 게임 서버와 용이하게 연동하도록 한다. Considering that mobile games are becoming more and more integrated with social websites gradually, web service modules can be used for browsing some information of games, for example, character information, auction sites, friend lists, guilds, Indexes and the like can be easily linked to the game server.

또한, 웹서버와 직접 Http 통신 프로토콜을 할 수 있도록 하며, JAVA나 ASP.NET 같은 개발 환경에 맞는 메타 스크립트를 출력하여 해당언어의 로컬 API처럼 사용할 수 있도록 자동으로 환경을 구축한다. In addition, it enables the Http communication protocol directly with the web server, and automatically outputs the meta-script for the development environment such as JAVA or ASP.NET and automatically uses the environment as the local API of the corresponding language.

이러한 환경은, 클라이언트와 웹서버 및 온라인 게임 서버가 인터넷망으로 네트워킹된 상태에서 웹서버와 게임 서버가 계정 정보를 서로 공유함으로써 가능해진다. This environment can be realized by sharing account information between the web server and the game server while the client, the web server, and the online game server are networked with the internet network.

DB Cache 모듈은, 게임 서버의 프로세스 상당부분이 데이터베이스 엑세스 시간으로 소모되고, 게임 서버의 로직을 복잡하게 만드는 요인이 되는 점을 감안하여, 자유로운 Schema 및 constraints Schema와 비독점적 엑세스 기능을 지원하여 데이터를 안전하고 빠르게 엑세스할 수 있도록 하는 것으로서 도 9에 도시한 바와 같이 로드 발란서를 구성한다.The DB Cache module supports free schema and constraint schemas and non-exclusive access functions in consideration of the fact that a large part of the game server process consumes database access time and complicates the game server's logic. The load balancer is configured as shown in Fig. 9 so as to enable safe and quick access.

분산 서버 처리 모듈은, 한 개의 게임 서버로는 많은 동시 접속자를 처리하기 어려움 점을 해소하고자 구성되는 분산 서버들 간에도 클라이언트와 서버 연결 관계는 동일하게 유지해야 하므로, 서버 간 통신 모듈을 지원하고 게임 서버 모듈과 마찬가지로 저작환경 내부도 멀티 코어를 사용하고 이벤트 콜백(Event callback) 사용자 루틴을 이용하여 처리하도록 한다. The distributed server processing module needs to maintain the connection relationship between the client and the server even between the distributed servers configured to solve the problem that it is difficult to process a large number of concurrent users with one game server. Therefore, As in the case of the module, the authoring environment also uses a multi-core and processes it using an event callback user routine.

이러한 분산 서버 처리는, 적어도 하나의 서버상에 기억된 사용자의 상태 정보를 검색하여 업데이트되도록 클라이언트 디바이스의 세션과 대화하고, 적어도 하나의 서버상에 상기 업데이트된 상태 정보를 기억하여 상기 세션이 다른 클라이언트 디바이스상에서 계속될 때 상기 업데이트된 상태 정보를 검색하고, 상기 업데이트된 상태 정보에 근거하여 상기 다른 클라이언트 디바이스와 상기 계속된 세션에서 대화하는 등의 동작을 통해 이루어질 수 있으며, 복수의 서버는 둘 이상의 서버에 의해 협력적으로 수행될 수 있다.The distributed server process may include: communicating with a session of a client device to retrieve and update status information of a user stored on at least one server, storing the updated status information on at least one server, Retrieving the updated status information when continuing on the device and communicating with the other client device based on the updated status information in the continued session, As shown in FIG.

서버 모듈은, 도 7에 도시한 바와 같은 Thread Pool 관계 구성을 통해 kernel time을 최소화하고, 동시 접속자를 많이 처리할 수 있도록 한 개의 서버 프로세스와 저작환경 내부 및 사용자 정의함수를 모두 멀티코어를 활용할 수 있도록 구성하여 멀티코어 프로세서의 사용 성능을 극대화하도록 한다.The server module minimizes the kernel time through the configuration of the thread pool as shown in FIG. 7, and can use one server process, the authoring environment, and the user-defined functions as multi-cores To maximize the use of multicore processors.

이와 같이 구성된 본 발명의 모바일 게임 개발시스템은 도 10에 도시한 바와 같은 구조를 갖는다. The mobile game development system of the present invention configured as described above has a structure as shown in FIG.

도 10에 도시한 바와 같이, 플래너, 프로그래머 및 디자이너 각각에 구성된 각종 도구들을 이용하여 게임이 개발 편집되며, 이와 같이 편집된 게임은 서버 및 클라이언트 시스템의 서버와 클라이언트간 네트워크 통신을 통해 시연되어 정의된 이벤트 및 게임 진행 스크립트 등이 확인된다. As shown in FIG. 10, a game is developed and edited using various tools configured in the planner, the programmer, and the designer, and the edited game is demonstrated by network communication between the server and the client of the client and the client, Events, and game progress scripts.

이를 동작 흐름으로 도시한 도 11에 따르면, 게임 데이터가 작성되면, 보다 확장된 게임 모델을 작성하고, 저작환경에 최적화된 데이터 형식으로 변환되며, 각각의 플랫폼에 최적화된 데이터로 변환된 후 게임이 시연되면서 런타임 동작을 통해 확인되는 흐름을 갖는다.11, when game data is created, a more extended game model is created, converted into a data format optimized for the authoring environment, converted into data optimized for each platform, And has a flow that is confirmed through run-time operation while being demonstrated.

먼저, GUI(Graphical User Interface) 기반의 사용자 인터페이스가 제공되며, 게임의 캐릭터, 배경, 장면 등의 게임 데이터들을 작성할 수 있다(S10). 게임 데이터는 각 플랫폼별 빌드 도구들을 제공하는 다중운영체계 빌드 템플릿(100)과 게임 데이터 요소들을 제공하는 라이브러리(400)를 이용하여 작성된다. First, a graphical user interface (GUI) -based user interface is provided, and game data such as a character, a background, and a scene of a game can be created (S10). The game data is created using a multiple operating system build template 100 providing build tools for each platform and a library 400 providing game data elements.

따라서 사용자는 제공되는 게임 데이터들을 확장하여, 복잡한 게임 모델을 작성하게 된다(S20). Accordingly, the user enlarges the game data to be provided and creates a complicated game model (S20).

사용자가 작성한 게임 모델 데이터는 데이터 생성 프로세스를 통해 오류 검출과 저작환경에 최적화된 데이터 형식으로 변환된다(S30). 이때, 애니메이션 등 이벤트 처리를 위하여 이벤트 관리자에서 식별 가능한 이벤트 코드를 부여한다. 또한, 데이터 이력을 추적하기 위하여(디버그용) 버젼, 생성일 등 상세 정보를 추가한다. 출력 데이터 포맷은 자체 바이너리 포맷으로 하나, 별도로 구성된 출력기를 통해 예를 들어, xml, html 등 다양한 포맷으로 출력할 수 있도록 하며, 출력포맷은 사용자에 의해 수정할 수 있도록 한다.The game model data created by the user is converted into a data format optimized for error detection and authoring environment through a data generation process (S30). At this time, an event code that can be identified by the event manager is given for event processing such as animation. In addition, to track data history, add details such as version (for debug), creation date, and so on. The output data format can be output in various formats such as xml, html and the like through a separate output device in its own binary format, and the output format can be modified by the user.

상기 데이터 생성 프로세스를 통해 출력된 데이터는 최종적으로 각각의 플랫폼에 최적화된 데이터로 변환된다(S40). 즉 애플리케이션 템플릿(200)을 통해 제공되는 각 플랫폼별 소스코드를 이용하여 플랫폼별로 최적화된 데이터, 즉 게임 애플리케이션으로 변환되는 것이다. The data output through the data generation process is finally converted into data optimized for each platform (S40). That is, the data is optimized for each platform using the source code for each platform provided through the application template 200, that is, converted into a game application.

상기 플랫폼별 게임 애플리케이션으로 최종 변환 생성된 데이터는 게임 시스템을 통해 시연 동작되며(S50), 데이터에 정의한 이벤트 및 게임 진행 스크립트 등은 런타임 동작을 통하여 확인된다(S60). 정의하지 않은 이벤트나 데이터의 사용은 런타임이 검출하여 보고하게 된다(S70).The data converted and generated by the platform-specific game application is previewed through the game system (S50), and events and game progress scripts defined in the data are confirmed through a run-time operation (S60). The use of undefined events or data is detected and reported by the runtime (S70).

이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 캐리어 웨이브 매체 등이 포함될 수 있다.While the present invention has been described in connection with what is presently considered to be the most practical and preferred embodiments, it is to be understood that the invention is not limited to the disclosed embodiments. That is, within the scope of the present invention, all of the components may be selectively coupled to one or more of them. In addition, although all of the components may be implemented as one independent hardware, some or all of the components may be selectively combined to perform a part or all of the functions in one or a plurality of hardware. As shown in FIG. The codes and code segments constituting the computer program may be easily deduced by those skilled in the art. Such a computer program can be stored in a computer-readable storage medium, readable and executed by a computer, thereby realizing an embodiment of the present invention. As the storage medium of the computer program, a magnetic recording medium, an optical recording medium, a carrier wave medium, or the like may be included.

100 : 모바일 다중운영체계 빌드 템플릿
200 : 애플리케이션 템플릿
300 : 서버 및 클라이언트 게임시스템
400 : 모바일 다중운영체계 게임 개발 라이브러리
500 : 모바일 다중운영체계 게임 개발 서버
100: Mobile multi-operating system build template
200: Application template
300: Server and client game systems
400: Mobile multi-operating system game development library
500: Mobile multi-operating system game development server

Claims (12)

각 플랫폼별 게임 애플리케이션 생성을 위한 하드웨어 및 소프트웨어를 저장하는 다중운영체계 빌드 템플릿;
상기 다중운영체계 빌드 템플릿과 다중운영체계 게임 개발 라이브러리에 의해 생성되는 각 플랫폼별 소스 코드와 표준 템플릿을 저장하는 애플리케이션 템플릿;
상기 각 플랫폼별 게임 애플리케이션의 소스 코드가 생성되도록 각 플랫폼별 게임 데이터를 제공하고, 각 플랫폼별 게임 데이터를 애플리케이션 템플릿에 저장되는 각 플랫폼별 소스 코드와 연관하여 저장하는 다중운영체계 게임 개발 라이브러리;
상기 각 플랫폼별 게임 애플리케이션에 연동하여 게임을 실행하는 서버 및 클라이언트 게임시스템; 및
게임 서버가 이기종 플랫폼을 갖는 다수의 클라이언트 각각에 대해 해당 네트워크 트래픽을 제어함에 따라 이기종 플랫폼을 갖는 다수의 클라이언트간 네트워크 게임이 가능하도록 상기 라이브러리와 템플릿을 바탕으로 각 플랫폼별 게임 애플리케이션을 제어하는 다중운영체계 게임 개발 서버로 이루어진 것을 특징으로 하는 서버 및 클라이언트 통합형 게임 저작시스템.
Multiple operating system build templates that store hardware and software for creating game applications for each platform;
An application template for storing source codes and standard templates for each platform, which are generated by the multiple operating system build templates and the multiple operating system game development libraries;
A multi-operating system game development library for providing game data for each platform so as to generate source code of each game application for each platform, and storing game data for each platform in association with each platform-specific source code stored in an application template;
A server and a client game system for executing a game in cooperation with each of the platform-specific game applications; And
The game server controls the corresponding network traffic for each of a plurality of clients having heterogeneous platforms, so that a network game between a plurality of clients having heterogeneous platforms can be performed. And a system game development server.
제1항에 있어서,
상기 게임 애플리케이션의 소스 코드는, 각 모바일 기기에서 실행되는 게임 애플리케이션을 생성하는데 이용되도록 라이브러리를 연계하여 구동시킬 수 있는 각 플랫폼별 스타트업 파일에 링크되는 것을 특징으로 하는 서버 및 클라이언트 통합형 게임 저작시스템.
The method according to claim 1,
Wherein the source code of the game application is linked to a start-up file for each platform that can be linked to the library so as to be used for creating a game application executed in each mobile device.
제1항에 있어서,
상기 애플리케이션 템플릿의 정보는, 사용자가 요청한 템플릿 정보에 링크된 데이터 정보 중 사용자가 요청한 특정 데이터 정보만 게임 개발 서버로 제공되도록 다중운영체계에 따른 버젼 정보와 템플릿명 정보를 포함하는 것을 특징으로 하는 서버 및 클라이언트 통합형 게임 저작시스템.
The method according to claim 1,
Wherein the information of the application template includes version information and template name information according to multiple operating systems so that only the specific data information requested by the user among the data information linked to the template information requested by the user is provided to the game development server And a client integrated game authoring system.
제3항에 있어서,
상기 버젼 정보와 템플릿 정보는 라이브러리와 연계되어 사용자에게 제공되는 것을 특징으로 하는 서버 및 클라이언트 통합형 게임 저작시스템.
The method of claim 3,
Wherein the version information and the template information are provided to the user in association with the library.
제1항에 있어서,
상기 표준 템플릿은, 사용자로부터 요청받은 특정 모바일 기기 게임 데이터를 모바일 기기 표준데이터로 저장한 상태에서, 특정 플랫폼에 대한 표준 템플릿에 따라 상기 모바일 기기에 대한 표준 데이터를 추출하고, 이를 표준 템플릿에 포함시켜 모바일 기기 표준 템플릿 데이터를 생성한 후 게임 개발 서버로 제공되도록 모바일 기기별 표준데이터와 연동되도록 구성되는 것을 특징으로 하는 서버 및 클라이언트 통합형 게임 저작시스템.
The method according to claim 1,
The standard template extracts standard data for the mobile device according to a standard template for a specific platform while storing the specific mobile device game data requested by the user as mobile device standard data and includes the extracted standard data in the standard template And is configured to be linked with standard data for each mobile device so as to be provided to a game development server after generating mobile device standard template data.
제1항에 있어서,
상기 애플리케이션 템플릿은, 사용자가 요청한 템플릿 유형 및 콘텐츠가 어느 소스 코드에 연관된 것인지 확인 가능하도록 소스 코드를 라이브러리와 연계하여 저장하는 것을 특징으로 하는 서버 및 클라이언트 통합형 게임 저작시스템.
The method according to claim 1,
Wherein the application template stores the source code in association with the library so that the template type requested by the user and the source code associated with the content can be checked.
제1항에 있어서,
상기 게임 데이터는, 스케쥴러에 의해 구성되어 다수의 쓰레드를 포함하는 쓰레드 풀을 통해 병렬 처리되어 게임 개발 서버로 제공되는 것을 특징으로 하는 서버 및 클라이언트 통합형 게임 저작시스템.
The method according to claim 1,
Wherein the game data is composed of a scheduler and is parallel-processed through a thread pool including a plurality of threads, and is provided to a game development server.
제1항에 있어서,
상기 다중운영체계 게임 개발 서버는,
클라이언트와 클라이언트간 P2P 통신 모듈과,
웹서버와 직접 Http 통신 프로토콜을 할 수 있도록 하며, 개발 환경에 맞는 메타 스크립트를 출력하여 해당언어의 로컬 API로 사용할 수 있도록 자동으로 환경을 구축하는 웹서비스 모듈과,
스키마(Schema) 및 콘스트레인트 스키마(constraints Schema)와 비독점적 엑세스 기능을 지원하도록 로드 발란서가 구성되는 DB Cache 모듈과,
분산 서버 간 통신 모듈을 지원하도록 구성되고, 이벤트는 이벤트 콜백(Event callback) 사용자 루틴을 통해 멀티 코어 처리하는 분산 서버 모듈과,
쓰레드 풀(Thread Pool)을 통해 커널 타임(kernel time)을 단축하도록 구성되는 서버 모듈로 구성되는 것을 특징으로 하는 서버 및 클라이언트 통합형 게임 저작시스템.
The method according to claim 1,
The multi-operating system game development server includes:
P2P communication module between client and client,
A web service module that allows the Http communication protocol to be directly performed with the web server, outputs a meta-script suitable for the development environment, and automatically configures the environment so that the meta-script can be used as a local API of the corresponding language,
A DB Cache module in which a load balancer is configured to support schemas and constraint schemas and non-exclusive access,
A distributed server module that is configured to support a distributed server-to-server communication module, the event includes a multi-core process through an event callback user routine,
And a server module configured to shorten a kernel time through a thread pool.
제1항에 있어서,
상기 서버 및 클라이언트 게임시스템에 구성된 서버 및 클라이언트는, 발생되는 데이터를 패킷데이터로 처리하여 송신측의 프록시(Proxy)와 수신측의 스터브(Stub)로 구분 전송하는 것을 특징으로 하는 서버 및 클라이언트 통합형 게임 저작시스템.
The method according to claim 1,
Wherein the server and the client configured in the server and client game system process the generated data as packet data and separately transmit the packet data to a proxy on the transmitting side and a stub on the receiving side. Authoring system.
제1항에 있어서,
상기 게임 시스템의 서버 및 클라이언트는, 모두 게임 애플리케이션에 의해 실행되는 모바일 네트워크 게임의 진행 상태를 사용자에게 전송하는 것을 특징으로 하는 서버 및 클라이언트 통합형 게임 저작시스템.
The method according to claim 1,
Wherein the server and the client of the game system all transmit the progress status of the mobile network game executed by the game application to the user.
제1항의 구성에 의해 개발되는 게임을 컴퓨터에 실행시키기 위한 프로그램을 기록한 매체를 이용하여,
GUI(Graphical User Interface) 기반의 사용자 인터페이스가 제공되어 게임데이터들을 작성하는 제1단계;
상기 게임데이터를 확장한 게임 모델을 작성하는 제2단계;
상기 게임 모델에 대하여 데이터 생성 프로세스를 통해 오류를 검출하고, 저작환경에 맞는 데이터 형식으로 변환하는 제3단계;
상기 데이터 생성 프로세스를 통해 변환되어 출력된 데이터를 각 플랫폼에 맞는 데이터로 변환하는 제4단계;
상기 각 플랫폼별 게임 애플리케이션으로 최종 변환 생성된 데이터를 게임 시스템을 통해 시연 동작하는 제5단계; 및
상기 데이터에 정의한 이벤트 및 게임 진행 스크립트 등은 런타임 동작을 통하여 확인하는 제6단계로 이루어진 것을 특징으로 하는 서버 및 클라이언트 통합형 게임 저작시스템을 이용한 게임 개발 방법.
A program for causing a computer to execute a game developed by the constitution of claim 1,
A first step of generating game data by providing a graphical user interface (GUI) -based user interface;
A second step of creating a game model in which the game data is expanded;
A third step of detecting an error through the data generation process for the game model and converting the error into a data format suitable for the authoring environment;
A fourth step of converting data converted and output through the data generation process into data suitable for each platform;
A fifth step of performing a trial operation of the data converted and generated by the platform-specific game application through the game system; And
And a sixth step of confirming events and game progress scripts defined in the data through a run-time operation.
제11항에 있어서,
상기 제3단계에서는, 이벤트 처리를 위하여 이벤트 관리자에서 식별 가능한 이벤트 코드를 부여하고, 사용자에 의해 수정 가능한 복수의 포맷으로 변환하여 서버로 전송하는 것을 특징으로 하는 서버 및 클라이언트 통합형 게임 저작시스템을 이용한 게임 개발 방법.
12. The method of claim 11,
Wherein in the third step, an event code that can be identified by the event manager is provided for event processing, and the event code is converted into a plurality of formats that can be modified by a user and is transmitted to a server. Development method.
KR1020160138990A 2016-10-25 2016-10-25 Game producing system using combined server and client KR101854201B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160138990A KR101854201B1 (en) 2016-10-25 2016-10-25 Game producing system using combined server and client

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160138990A KR101854201B1 (en) 2016-10-25 2016-10-25 Game producing system using combined server and client

Publications (1)

Publication Number Publication Date
KR101854201B1 true KR101854201B1 (en) 2018-05-03

Family

ID=62244717

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160138990A KR101854201B1 (en) 2016-10-25 2016-10-25 Game producing system using combined server and client

Country Status (1)

Country Link
KR (1) KR101854201B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113838171A (en) * 2021-08-25 2021-12-24 网易(杭州)网络有限公司 Data processing method, data processing apparatus, storage medium, and electronic apparatus

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113838171A (en) * 2021-08-25 2021-12-24 网易(杭州)网络有限公司 Data processing method, data processing apparatus, storage medium, and electronic apparatus
CN113838171B (en) * 2021-08-25 2023-10-24 网易(杭州)网络有限公司 Data processing method, data processing device, storage medium and electronic device

Similar Documents

Publication Publication Date Title
Cantelon et al. Node. js in Action
WO2018228211A1 (en) Application conversion method, apparatus and device
US10600149B1 (en) Multi-user application system environment engine
EP4142259A1 (en) System and method for facilitating sharing of virtual three-dimensional space
US10331423B1 (en) Utilizing cross platform streamable user interfaces to reduce software deployment frequency caused by user interface improvements
Hales HTML5 and JavaScript Web Apps: Bridging the gap between the web and the mobile web
Mardan et al. Practical Node. js
Zammetti Modern Full-Stack Development: Using TypeScript, React, Node. js, Webpack, and Docker
US7904877B2 (en) Systems and methods for an extensive content build pipeline
Ingalls et al. A world of active objects for work and play: the first ten years of lively
CN113434197A (en) Resource publishing method and device, computer equipment and computer readable storage medium
Friston et al. 3DRepo4Unity: Dynamic loading of version controlled 3D assets into the Unity game engine
US8645489B1 (en) Systems and methods for the developing content and applications in hosted and non-hosted development environments
Boduch Flux architecture
KR101854201B1 (en) Game producing system using combined server and client
Spieldenner et al. FiVES: an aspect-oriented approach for shared virtual environments in the web
Gracia et al. Integrated 3D web application for structural analysis software as a service
Phelps et al. Fun and Games: Multi-Language Development: Game development can teach us much about the common practice of combining multiple languages in a single project.
Tiwari et al. AdvancED Flex 4
El Rhalibi et al. 3D Java web-based games development and deployment
Ingebrigtsen SignalR: Real-time Application Development
Kumpulainen Web application development with Vue. js
Hatledal A Flexible Network Interface for a Real-time Simulation Framework
Nivanaho Developing a cross-platform mobile application with React Native
Pasquali Deploying Node. js

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant