KR20090000651A - User interface providing apparatus and method for on-line game - Google Patents
User interface providing apparatus and method for on-line game Download PDFInfo
- Publication number
- KR20090000651A KR20090000651A KR1020070025909A KR20070025909A KR20090000651A KR 20090000651 A KR20090000651 A KR 20090000651A KR 1020070025909 A KR1020070025909 A KR 1020070025909A KR 20070025909 A KR20070025909 A KR 20070025909A KR 20090000651 A KR20090000651 A KR 20090000651A
- Authority
- KR
- South Korea
- Prior art keywords
- game
- user interface
- script
- information
- control element
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000013515 script Methods 0.000 claims abstract description 153
- 238000012545 processing Methods 0.000 claims abstract description 25
- 238000012360 testing method Methods 0.000 claims description 16
- 230000000007 visual effect Effects 0.000 claims description 15
- 230000006870 function Effects 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 9
- 239000012634 fragment Substances 0.000 claims description 2
- 238000012795 verification Methods 0.000 claims description 2
- 238000011161 development Methods 0.000 abstract description 20
- 230000000694 effects Effects 0.000 abstract description 15
- 238000013461 design Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Tourism & Hospitality (AREA)
- Multimedia (AREA)
- General Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Economics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
Abstract
Description
도 1은 일반적인 온라인 게임 시스템의 개략적 구성도.1 is a schematic configuration diagram of a general online game system.
도 2는 본 발명 일 실시예의 구성도.2 is a block diagram of an embodiment of the present invention.
도 3은 본 발명 일 실시예에 따른 사용자 인터페이스 제공 방식을 보인 예시도.3 is an exemplary view showing a user interface providing method according to an embodiment of the present invention.
도 4는 본 발명 일 실시예에 따른 제어 요소의 프레임 구성 방식을 보인 예시도.4 is an exemplary view showing a frame configuration method of a control element according to an embodiment of the present invention.
도 5는 본 발명 일 실시예에 따른 제어 요소의 구체적 구성을 보인 예시도.5 is an exemplary view showing a specific configuration of a control element according to an embodiment of the present invention.
도 6은 본 발명 일 실시예에 따른 제어 요소의 제어 방식의 예를 보인 개념도.6 is a conceptual diagram illustrating an example of a control method of a control element according to an embodiment of the present invention.
도 7은 본 발명 일 실시예에 따른 사용자 인터페이스 저작부 구성을 보인 블록도.7 is a block diagram showing the configuration of a user interface authoring unit according to an embodiment of the present invention.
도 8 내지 도 9는 도 7의 사용자 인터페이스 저작부의 실례를 보인 예시도.8 to 9 illustrate examples of the user interface authoring unit of FIG. 7.
도 10은 본 발명 일 실시예에 따른 사용자 인터페이스 엔진의 동작 방식을 보인 개념도.10 is a conceptual diagram illustrating an operation method of a user interface engine according to an embodiment of the present invention.
도 11은 본 발명 일 실시예의 동작 과정을 보인 순서도.11 is a flowchart illustrating an operation process of an embodiment of the present invention.
** 도면의 주요 부분에 대한 부호의 설명 **** Description of symbols for the main parts of the drawing **
100: 게임 클라이언트 101: 게임 엔진부100: game client 101: game engine unit
102: 게임 엔진 인터페이스 103: 게임 로직부102: game engine interface 103: game logic unit
110: UI 엔진 111: UI 엔진부110: UI engine 111: UI engine unit
112: 인터페이스부 113: 라이브러리부112: interface unit 113: library unit
120: UI 저작부 125: 스크립트 파일120: UI Authoring 125: Script Files
130: 레이어부 200: UI 디자인부130: layer unit 200: UI design unit
210: 스트립트 파일부 220: 테스트부210: script file unit 220: test unit
300: UI 모듈정의부 310: LUA 스트립트부300: UI module definition part 310: LUA script part
320: UI 엔진 LUA API 330: 게임 클라이언트부320: UI engine LUA API 330: game client unit
본 발명은 게임의 사용자 인터페이스에 관한 것으로, 특히 온라인 게임의 사용자 인터페이스를 용이하게 설계 및 적용하기 위한 온라인 게임을 위한 사용자 인터페이스 제공 장치 및 그 방법에 관한 것이다.The present invention relates to a user interface of a game, and more particularly, to an apparatus and method for providing a user interface for an online game for easily designing and applying a user interface of an online game.
인터넷의 발달과 더불어 고부가가치 산업으로 급부상한 온라인 게임산업은 최첨단 지식형 복합 산업으로서 빠르게 성장해 나가고 있는 분야이다. 특히, 단일 시스템에 대한 단독 혹은 복수 플레이어의 조작을 기본으로 하던 종래의 게임에서 플레이어들의 위치에 관계없이 온라인상에 조성된 가상의 영역에서 동시에 게임을 진행할 수 있도록 함으로써 게임에 참여하는 복수의 플레이어들 간 경쟁과 협동을 유도하는 온라인 게임 방식은 게임의 영역을 획기적으로 확장한 것으로 평가받고 있다. The online game industry, which has emerged as a high value-added industry with the development of the Internet, is a rapidly growing field as a cutting-edge knowledge-based complex industry. In particular, in the conventional game, which is based on single or multiple player operation for a single system, a plurality of players participating in the game can be played simultaneously in a virtual area created online regardless of the player's position. The online game method that induces competition and cooperation between the games is regarded as a significant expansion of the game.
도 1은 일반적인 온라인 게임 시스템의 구성을 보인 것으로, 도시된 바와 같이 복수의 클라이언트들(10a~10n)이 인터넷을 포함하는 통신망(20)을 통해 온라인 게임 사업자 시스템(30)에서 제공하는 게임 서버(30a, 30b) 중 원하는 서버에 접속하여 해당 서버에 접속한 다른 클라이언트들(10a~10n)과 함께 게임을 진행할 수 있도록 구성되어 있다. 일반적으로, 상기 게임 서버(30a, 30b)는 다양한 가입자 정보와 해당 가입자의 게임 캐릭터 정보 및 상태 정보들을 관리하며, 특정한 게임의 진행 상태를 관리하게 된다. 그리고, 상기 게임 서버(30a, 30b)가 제공하던 다양한 게임 관련 연산들은 점차 상기 클라이언트들(10a~10n)이 분담하여 실시하게 됨으로써, 상기 게임 서버(30a, 30b)는 점차 다양한 클라이언트의 접속과 통합적인 게임 운영에 그 기능을 집중하고 있다. FIG. 1 illustrates a configuration of a general online game system. As shown in FIG. 1, a game server provided by an online
따라서, 상기 클라이언트에는 실질적인 게임 처리부분인 게임 클라이언트가 설치되며, 상기 게임 클라이언트를 동작시켜 상기 게임 서버에 접속을 실시한 후 게임을 진행하게 되는데, 대부분의 게임 관련 연산은 상기 클라이언트들(10a~10n)에 설치되는 게임 클라이언트가 수행하게 된다. Accordingly, the client is provided with a game client, which is a substantial game processing part, and the game client is operated to access the game server and proceed with the game. Most game-related operations are performed by the
상기 게임 클라언트는 기본적으로 게임을 구현하기 위한 각종 사용자 인터페이스와, 각 게임의 진행을 위한 고속 연산/그래픽 처리/캐릭터 설정 및 움직임/판정/인공지능 등을 전문적으로 처리하는 게임 엔진과, 상기 게임 엔진을 이용하여 해당 게임의 특정 시나리오를 상기 사용자 인터페이스들과의 연동을 통해 처리하는 게임 로직 부분으로 이루어지게 된다. The game client basically comprises a variety of user interfaces for implementing a game, a game engine that professionally processes high speed computation / graphic processing / character setting and movement / judgment / artificial intelligence for the progress of each game, and the game. It is composed of a game logic part that processes a specific scenario of a corresponding game using an engine through interworking with the user interfaces.
특히, 각 게임의 시나리오 부분은 대부분 게임 전용 스크립트를 이용하게 되며, 공개 스크립트 언어인 루아(LUA) 스크립트를 활용하는 것이 일반적이다. In particular, most of the scenario parts of each game use a game-specific script, and it is common to use a public scripting language (LUA) script.
따라서, 게임을 개발하기 위해서는 게임의 시나리오에 적절한 게임 엔진을 선택하고, 각 사용자 인터페이스를 위한 이미지들 및 배경들을 설정한 후 게임의 시나리오에 적합한 로직 부분을 구성한다. 그리고 상기 로직 부분을 유기적으로 통합하여 게임의 동작 방식을 런타임 기반으로 제어하는 스크립트를 작성하는 것이 일반적인 게임의 개발 과정이 된다. 이때, 게임을 즐기는 일반 사용자들은 가장 노출이 심한 사용자 인터페이스를 통해 해당 게임의 수준을 판단하게 되므로, 수준 높은 사용자 인터페이스의 개발이 게임의 설계에서 차지하는 비중은 점차 높아지고 있다. Therefore, in order to develop a game, a game engine suitable for a scenario of a game is selected, images and backgrounds for each user interface are set, and a logic part suitable for the scenario of the game is configured. In addition, it is a general game development process to write a script that integrates the logic part organically and controls the operation of the game on a runtime basis. At this time, the general users who enjoy the game to determine the level of the game through the most exposed user interface, the development of high-level user interface in the design of the game is gradually increasing.
예를 들어, 간단한 버튼이나 아이템을 표시할 경우에도 이를 단순히 제공하는 대신 다양한 애니메이션을 부가하여 동적인 효과를 제공하는 방식으로 게임의 사용자 인터페이스에 대한 복잡성은 점차 증가되고 있는 실정이다. 하지만, 이러한 게임에 대한 사용자 인터페이스의 복잡성에도 불구하고, 빠른 게임의 개발과 잦은 변경에 의해 부분적으로 개발된 게임의 기능부들에 대한 설정과 정의 및 게임에의 적용은 실시간 해석에 의존하는 스크립트 방식을 이용하고 있어 복잡한 사용자 인터페이스의 적용에는 많은 어려움이 존재하게 된다. For example, even when a simple button or item is displayed, the complexity of the user interface of the game is gradually increased by adding various animations to provide dynamic effects instead of simply providing them. However, despite the complexity of the user interface for these games, the settings, definitions, and application of the game's functional parts, which are partially developed by rapid game development and frequent changes, depend on scripting methods that rely on real-time interpretation. There are many difficulties in the application of complex user interfaces.
즉, 가능한 작은 리소스를 이용하여 사용자 인터페이스를 화려하게 생성 및 적용해야 하며, 이러한 사용자 인터페이스의 설정 내용을 용이하게 재사용할 수 있어야 함과 아울러 이를 스크립트 제어를 통해 가능한 간단한 방식으로 처리할 수 있도록 해야 하는 게임 개발의 제한에 의해서, 현재 일반적으로 알려진 각종 애니메이션 저작 도구(예를 들어 동적 GIF 저작도구, 화면 시나리오 저작 도구 등)나, 인터페이스 개발 도구(예를 들어 플래쉬(Flash) 저작 도구, 비주얼 계열 고수준 언어의 위지위그(WYSIWYG) 편집 도구), 혹은 게임 엔진을 활용하기 위한 도구(예를 들어 맵 에디터 등)들은 급변하는 게임 환경에 적합하지 않다. 부연하자면, 게임 엔진에 종속적인 개발 도구들은 게임의 특성에 따라 게임 엔진을 선택해야 하는 게임 개발 상황에 적합하지 않고, 기존의 인터페이스 개발 도구들은 제어를 위한 컨트롤 요소들을 프로그래머가 디자인 수준부터 관리해야하고, 범용적인 용도에 따라 방대한 설정 정보들을 가지는 기 설정된 컨트롤 요소를 이용해야 하기 때문에 게임에 적합하지 않다. 또한, 애니메이션 저작도구 역시 동일 대상에 대해 복수의 애니메이션이 요구되며 그에 대한 리소스를 최소화해야 하는 게임의 상황에는 적합하지 않다. 그 외에 사용자 인터페이스 부분과 게임 로직 부분의 고속 통신이 필요한 환경에서 단순한 스크립트만으로 모든 처리를 수행하기 어려워 사용자 인터페이스의 개발의 전반에 걸쳐 프로그래머가 단일 게임에 적합한 사용자 인터페이스를 설계해야 한다. In other words, the user interface should be created and applied colorfully using as little resources as possible, and the setting contents of the user interface should be easily reused, and the script control should be handled in the simplest possible way. Due to the limitations of game development, various animation authoring tools (e.g., dynamic GIF authoring tools, screen scenario authoring tools, etc.) commonly known today, or interface development tools (e.g., Flash authoring tools, visual high-level languages) WYSIWYG editing tools), or tools for utilizing game engines (e.g. map editors) are not suitable for rapidly changing game environments. In other words, game engine-dependent development tools are not suitable for the game development situation in which the game engine needs to be selected according to the characteristics of the game. Existing interface development tools require the programmer to manage the control elements for control from the design level. However, it is not suitable for games because it requires the use of a preset control element with a large amount of configuration information for general use. In addition, the animation authoring tool is also not suitable for a game situation where a plurality of animations are required for the same object and resources for the same are minimized. In addition, in environments that require high-speed communication between the user interface part and the game logic part, it is difficult to perform all processing with simple scripts, and the programmer has to design a user interface suitable for a single game throughout the development of the user interface.
따라서, 게임 개발시 사용자 인터페이스를 전용으로 설계하기 위한 시간과 노력이 필요하고, 게임 개발시 이전에 개발된 게임의 사용자 인터페이스를 활용하기 어려워 중복된 개발 시간과 비용이 낭비되는 상황이 발생하게 된다. 특히, 온라 인 게임은 빈번한 게임 설정과 시나리오 변경이 발생하고, 개발 시간이 짧기 때문에 최소한의 노력으로 수준 높은 사용자 인터페이스를 개발해야할 필요성이 절실하다.Therefore, when developing a game, it takes time and effort to design a user interface exclusively, and it is difficult to utilize a user interface of a previously developed game during game development, resulting in a situation in which redundant development time and cost are wasted. In particular, online games require frequent game settings, scenario changes, and short development times. Therefore, there is an urgent need to develop a high quality user interface with minimal effort.
상기와 같이 온라인 게임의 사용자 인터페이스 개발을 위한 노력을 줄이면서도 높은 품질의 사용자 인터페이스를 제공하기 위해 새롭게 제안하는 본 발명 실시예들의 목적은 게임 엔진에 대한 독립성을 유지하고, 사용자 인터페이스의 구성 요소들을 용이하게 구성하고 재사용할 수 있도록 하며, 스크립트만으로도 복잡한 사용자 인터페이스 환경 및 다양한 효과를 고속으로 구현할 수 있도록 하는 온라인 게임을 위한 사용자 인터페이스 제공 장치 및 그 방법을 제공하는 것이다.As described above, an object of the embodiments of the present invention, which is newly proposed to provide a high quality user interface while reducing the effort for developing the user interface of an online game, is to maintain the independence of the game engine and facilitate the components of the user interface. The present invention provides an apparatus and method for providing a user interface for an online game that can be configured and reused, and that a complex user interface environment and various effects can be implemented at high speed using only a script.
본 발명 실시예들의 다른 목적은 온라인 게임의 사용자 인터페이스를 컨트롤요소들이 배치되는 복수의 레이어들로 정의하고, 각 레이어에 컨트롤 요소들을 배치하여 모듈을 설정하며, 각 컨트롤 요소들을 복수의 프레임들로 설정하고, 각 프레임들의 구성 요소들을 개별 처리하도록 함으로써, 계층적이고 체계적으로 사용자 인터페이스를 구성 및 관리할 수 있도록 한 온라인 게임을 위한 사용자 인터페이스 제공 장치 및 그 방법을 제공하는 것이다.Another object of the embodiments of the present invention is to define a user interface of an online game as a plurality of layers in which control elements are arranged, to set a module by placing control elements in each layer, and to set each control element as a plurality of frames. The present invention provides an apparatus and method for providing a user interface for an online game that can be configured and managed by hierarchically and systematically by individually processing the components of the frames.
본 발명 실시예들의 또 다른 목적은 개발자가 용이하게 프로토타입의 컨트롤을 생성하고 이를 재사용하거나 런타임으로 생성하여 사용할 수 있도록 함과 아울러, 다양한 스트립트 파일들 간의 설정을 자유롭게 활용할 수 있도록 하여 컨트롤 생성 및 사용을 단순화 한 온라인 게임을 위한 사용자 인터페이스 제공 장치 및 그 방법을 제공하는 것이다.Another object of the embodiments of the present invention is to enable a developer to easily create a prototype control, reuse it, or generate and use it at runtime, and to freely utilize settings between various script files to create and use a control. To provide an apparatus and method for providing a user interface for an online game, which is simplified.
본 발명 실시예들의 또 다른 목적은 사용자 인터페이스를 구성하는 레이어 단위 컨트롤 요소의 설정을 텍스트 형태의 모듈로 구성하고 그 동작 방식을 범용 스크립트로 구성하며, 이러한 설정을 통해 동작하는 사용자 인터페이스 엔진이 스크립트 바인딩에 의해 게임 클라이언트와 고속으로 통신할 수 있도록 함으로써, 게임 클라이언트의 게임 로직과 사용자 인터페이스의 연동 성능을 극대화하도록 한 온라인 게임을 위한 사용자 인터페이스 제공 장치 및 그 방법을 제공하는 것이다.Another object of the embodiments of the present invention is to configure the setting of the layer-based control element constituting the user interface in the form of a text module and the operation method is composed of a general-purpose script, the user interface engine operating through such a setting script binding It is to provide a user interface providing apparatus and method for an online game to maximize the interworking performance of the game logic and the user interface of the game client by enabling high-speed communication with the game client.
본 발명 실시예들의 또 다른 목적은 온라인 게임에서 활용도가 높은 컨트롤 요소의 형태 변화 및 애니메이션을 라이브러리로 작성하여 사용자 인터페이스의 작성과 변경이 용이하도록 한 온라인 게임을 위한 사용자 인터페이스 제공 장치 및 그 방법을 제공하는 것이다.Another object of the embodiments of the present invention is to provide a user interface providing apparatus and method for providing an online game that makes it easy to create and change a user interface by creating a shape change and animation of a control element that is highly utilized in an online game as a library. It is.
본 발명 실시예들의 또 다른 목적은 온라인 게임의 인터페이스를 정의하는 모듈 및 스크립트 파일을 생성하고, 더미 클라이언트에서 상기 파일을 동작시키면서 스크립트 명령을 수작업으로 제공할 수 있도록 한 콘솔을 통해 상기 사용자 인터페이스의 동작을 검증하도록 함으로써, 각종 이벤트와 스크립트 실행 내용을 즉시 확인하여 오류 내용을 수정할 수 있도록 하는 온라인 게임을 위한 사용자 인터페이스 제공 장치 및 그 방법을 제공하는 것이다.Another object of the embodiments of the present invention is to generate a module and script file defining an interface of an online game, and to operate the user interface via a console which allows the dummy client to manually provide script commands while operating the file. The present invention provides an apparatus and method for providing a user interface for an online game that can immediately check various events and execution contents of scripts and correct errors.
상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 온라인 게임을 위한 사용자 인터페이스 제공 장치는 게임 엔진과, 범용 형식을 통해 사용자 인터페이스 관련 처리를 상기 게임 엔진에 요청하기 위한 커스텀 인터페이스와, 상기 게임 엔진의 이용을 포함하는 게임 진행 관련 처리를 수행하는 게임 로직부를 포함하는 게임 클라이언트와; 시각적인 사용자 인터페이스 정보와 상기 시각적인 사용자 인터페이스를 구성하는 레이어 및 컨트롤 요소의 동작 방식을 정의하는 정보를 구비한 사용자 인터페이스 스크립트부와; 상기 사용자 인터페이스 스크립트부의 정보를 해석하여 상기 정의된 사용자 인터페이스의 구성 요소들에 대한 동작을 상기 게임 클라이언트의 커스텀 인터페이스에 범용 형식으로 제공하며, 필요한 정보를 상기 게임 클라이언트의 게임 로직부와 주고 받는 사용자 인터페이스 엔진을 포함하여 이루어진다.In order to achieve the above object, an apparatus for providing a user interface for an online game according to an embodiment of the present invention includes a game engine, a custom interface for requesting the game engine for user interface related processing through a general-purpose format, A game client including a game logic unit that performs game progress related processing including use of the game engine; A user interface script unit having visual user interface information and information defining an operation manner of layers and control elements constituting the visual user interface; The user interface interprets the information of the user interface script unit to provide the operations of the components of the user interface defined in the general format to the custom interface of the game client, and the user interface for sending and receiving the necessary information with the game logic unit of the game client Including the engine.
또한, 본 발명의 다른 실시예에 따른 온라인 게임을 위한 사용자 인터페이스 제공 장치는 컨트롤 요소를 이루는 그림 조각을 배치하도록 하고, 그에 대한 속성을 설정하도록 하여 해당 컨트롤 요소를 프로토타입으로 등록받는 프로토타입 등록 수단과; 상기 프로토타입으로 등록된 컨트롤 요소를 레이어에 배치하고 그 속성을 설정하는 인터페이스를 제공하고 그에 따라 시각적 사용자 인터페이스 배치 정보를 스크립트 형식에 따른 모듈로 생성하는 모듈 정의부와; 상기 모듈에 정의된 레이어 및 컨트롤 요소를 제어하는 스크립트를 입력받는 스크립트 입력부를 포함하여 이루어진다.In addition, the apparatus for providing a user interface for an online game according to another exemplary embodiment of the present invention arranges a picture constituting a control element, sets a property thereof, and registers a prototype for registering the control element as a prototype. and; A module definition unit which provides an interface for arranging the control elements registered as the prototypes in a layer and setting properties thereof and accordingly generates visual user interface layout information as a module according to a script form; It includes a script input unit for receiving a script for controlling the layers and control elements defined in the module.
또한, 본 발명 또 다른 실시예에 따른 온라인 게임을 위한 사용자 인터페이 스 제공 방법은 이미지 리소스를 컨트롤 요소를 구성하는 조각 및 컨트롤 요소를 이루는 프레임에 맞추어 생성하는 단계와; 사용자 인터페이스 저작부가 제공하는 인터페이스를 통해 배치 및 속성을 정의한 컨트롤 요소의 정보를 스크립트 코드로 변환하여 프로토타입을 생성하는 단계와; 상기 생성된 프로토타입을 상기 사용자 인터페이스 저작부가 제공하는 인터페이스를 통해 레이어에 계증 배치하면 상기 정보를 근거로 사용자 인터페이스 모듈 정보를 스크립트 코드 형식으로 생성하는 단계와; 상기 생성된 스크립트 코드 형식에 연동되어 상기 컨트롤 요소를 사용자 인터페이스 엔진이 제공하는 기능을 이용하여 동작시키는 방식을 입력하는 스크립트 입력 수단을 제공하는 단계와; 상기 스크립트 입력 수단을 통해 입력된 정보와 상기 사용자 인터페이스 모듈 정보를 스크립트 형식의 파일로 생성하여 저장하는 단계를 포함하여 이루어진다.In addition, the method for providing a user interface for an online game according to another embodiment of the present invention comprises the steps of generating an image resource in accordance with the frame constituting the fragment and the control element constituting the control element; Generating a prototype by converting information of a control element defining a layout and an attribute into a script code through an interface provided by a user interface authoring unit; Generating the user interface module information in the form of a script code based on the information when the generated prototype is incrementally disposed on a layer through an interface provided by the user interface authoring unit; Providing a script input means linked to the generated script code format to input a manner of operating the control element using a function provided by a user interface engine; And generating and storing the information input through the script input means and the user interface module information in a file in a script format.
또한, 본 발명 또 다른 실시예에 따른 온라인 게임을 위한 사용자 인터페이스 제공 방법은 사용자 인터페이스 엔진이 프로토타입 형태의 컨트롤 요소와 레이어의 계층적 배치관계가 정의된 스크립트 코드와 상기 컨트롤 요소의 동작 방식을 정의한 스크립트 코드를 해석하는 해석 단계와; 사용자 인터페이스 엔진이 상기 해석된 스크립트 코드의 사용자 인터페이스 표시 정보와 동작 방식 및 게임 클라이언트로부터 수신한 정보를 근거로 기 구성된 라이브러리에 따라 상기 컨트롤 요소의 표시 및 동작 정보를 게임 클라이언트에 제공하는 처리 단계와; 상기 게임 클라이언트는 상기 수신된 컨트롤 요소의 표시 및 동작 정보를 게임 엔진에 제공하여 게임 상에 반영시키고, 게임 로직에 연동되는 정보인 경우 그에 대한 처리 내용을 상 기 인터페이스 엔진에 제공하는 수행 단계를 포함한다.In addition, according to another embodiment of the present invention, a method for providing a user interface for an online game includes: a user interface engine defining a script code in which a hierarchical arrangement relationship between a control element in a prototype form and a layer is defined and an operation method of the control element; An interpreting step of interpreting the script code; A processing step of providing, by the user interface engine, the game client with the display and the operation information of the control element according to a preconfigured library based on the user interface display information and the operation method of the interpreted script code and the information received from the game client; The game client includes the step of providing the game engine with the display and operation information of the received control element reflected on the game, and if the information is linked to the game logic, providing the processing content to the interface engine. do.
또한, 본 발명 또 다른 실시예에 따른 온라인 게임을 위한 사용자 인터페이스 제공 방법은 사용자 인터페이스 엔진이 프로토타입 형태의 컨트롤 요소와 레이어의 계층적 배치관계가 정의된 스크립트 코드와 상기 컨트롤 요소의 동작 방식을 정의한 스크립트 코드를 해석하는 해석 단계와; 상기 사용자 인터페이스 엔진이 상기 해석된 스크립트 코드의 사용자 인터페이스 표시 정보와 동작 방식 및 더미 게임 클라이언트와 스크립트 콘솔로부터 수신한 정보를 근거로 기 구성된 라이브러리에 따라 상기 컨트롤 요소의 표시 및 동작 정보를 상기 스크립트 코드의 검증을 위한 더미 게임 클라이언트에 제공하는 테스트 처리 단계와; 상기 더미 게임 클라이언트는 상기 수신된 컨트롤 요소의 표시 및 동작 정보를 게임 엔진에 제공하여 게임 상에 반영시키고, 게임 로직에 연동되는 정보인 경우 그에 대한 처리 내용을 상기 인터페이스 엔진에 제공하는 테스트 수행 단계를 포함한다.In addition, according to another embodiment of the present invention, a method for providing a user interface for an online game includes: a user interface engine defining a script code in which a hierarchical arrangement relationship between a control element in a prototype form and a layer is defined and an operation method of the control element; An interpreting step of interpreting the script code; The user interface engine displays the display and operation information of the control element in accordance with a preconfigured library based on the user interface display information and operation method of the interpreted script code and information received from the dummy game client and the script console. A test processing step of providing the dummy game client for verification; The dummy game client performs a test performing step of providing the game engine with the display and operation information of the received control element and reflecting it on the game, and providing the interface engine with the processing contents thereof when the information is linked to game logic. Include.
상기한 바와 같은 본 발명을 첨부된 도면들과 실시예를 통해 상세히 설명하도록 한다. The present invention as described above will be described in detail with reference to the accompanying drawings and embodiments.
도 2는 본 발명 일 실시예의 구성을 보인 것으로, 도시한 바와 같이 실질적으로 온라인 게임의 클라이언트측 동작을 담당하는 게임 클라이언트(100) 및 사용자 인터페이스(이하, UI라 칭함) 엔진(110)과, 상기 UI 엔진(110)을 이용한 UI의 구성 및 동작 방식을 정의한 스크립트 파일(125) 및 상기 스크립트 파일(125)을 저작하는 전용 UI 저작부(120)로 구성된다. 상기 구성은 본 발명 일 실시예에 따른 바람직한 구성을 모두 보인 것이며, 상기 각각의 구성이나, UI 엔진(110)과 게임 클라이언트(100)의 조합, 또는 상기 스크립트 파일(125)과 UI 저작부(120)의 조합과 같은 다양한 부분적 조합 만으로도 효과적인 온라인 게임 개발과 작성된 기존 코드의 활용과 같은 효과를 얻을 수 있다.2 illustrates a configuration of an embodiment of the present invention. As shown in FIG. 2, a
일반적으로, 온라인 게임을 개발하기 위해서는 다양한 목적으로 개발된 특정한 게임 엔진을 선택한 후 해당 게임 엔진에 맞추어 게임 로직을 개발하며, 상기 게임 로직 및 상기 게임 엔진의 특성에 맞춘 사용자 인터페이스를 개발하게 된다. 예를 들어, 널리 알려진 게임 엔진들(GameBryo, Renderware 등)은 주로 3차원 랜더링 기능에 특화된 엔진들로서, 해당 기능들을 효과적으로 구현할 수 있는 라이브러리와 인터페이스를 제공한다. 따라서 게임의 목적에 적합한 특정 게임 엔진을 선택한 후 해당 게임 엔진에 종속적인 형태로 게임 로직과 사용자 인터페이스를 작성하게 된다. 이때, 게임 로직과 사용자 인터페이스에 대한 기본 골격은 컴파일이 필요한 언어로 작성되며, 이를 활용하는 상위의 어플리케이션 계층으로 스크립트 언어가 사용된다. 온라인 게임 제작의 경우 일반적으로 공개용 스크립트인 루아(LUA) 스크립트를 사용하며, 그 이외의 범용 스크립트를 이용하기도 한다.In general, in order to develop an online game, a specific game engine developed for various purposes is selected, and game logic is developed according to the game engine, and a game interface and a user interface adapted to the characteristics of the game engine are developed. For example, well-known game engines (GameBryo, Renderware, etc.) are mainly engines specialized for 3D rendering functions, and provide libraries and interfaces for effectively implementing the functions. Therefore, after selecting a specific game engine suitable for the purpose of the game, game logic and user interface are written in a form dependent on the game engine. At this time, the basic skeleton of the game logic and the user interface is written in a language that requires compilation, and a script language is used as a higher application layer utilizing the same. In the case of online game production, the general public scripts are Lua scripts. Other general scripts are also used.
하지만, 이러한 경우 상기 게임 엔진에 종속적인 게임 클라이언트와 사용자 인터페이스를 매번 개발자가 직접 작성해야 하기 때문에 사용자 인터페이스의 개발에 소요되는 시간과 비용의 낭비가 반복되게 된다. 따라서, 도시된 바와 같이 사용자 인터페이스를 전용으로 관리하는 UI 엔진(110)을 구성하고, 상기 UI 엔진(110)과 연동 될 수 있도록 게임 클라이언트(100)를 구성하며, 상기 UI 엔진(100)을 활용하기에 적합한 포멧을 가지는 범용 스크립트 형식의 스크립트 파일(125)을 이용 하도록 한다. 그리고, 상기 스크립트 파일(125)을 상기 UI 엔진(110)을 최적으로 활용할 수 있도록 용이하게 작성하는데 도움이 되는 UI 저작부(120)를 구성한다. However, in this case, since a developer must write a game client and a user interface that is dependent on the game engine, each time, a waste of time and cost required for the development of the user interface is repeated. Therefore, as shown in the figure, a
도시된 본 발명 일 실시예의 구성에서, UI의 관리 단위는 겹쳐서 표시할 수 있는 레이어와, 상기 레이어에 단독 혹은 중복하여 배치될 수 있는 컨트롤 요소이며, 상기 컨트롤 요소는 복수의 프레임으로 구성될 수 있도록 하여 레이어/컨트롤 요소/프레임의 계층적 구성을 가지도록 한다. In the configuration of the embodiment of the present invention shown, the management unit of the UI is a layer that can be displayed overlapping, and a control element that can be arranged alone or overlapping the layer, so that the control element can be composed of a plurality of frames To have a hierarchical structure of layers / control elements / frames.
따라서, 상기 UI 엔진(110)은 상기 레이어와 컨트롤 요소의 구성을 관리하여 특정한 효과를 제공하는 다양한 라이브러리들을 구비할 수 있으며, 게임 클라이언트(100)가 사용하는 게임 엔진부(101)에 독립적으로 UI 관리 방식을 보편화 하는 기능을 구비한다. 간략하게 상기 UI 엔진(110)의 구성을 살펴보면 크게 스크립트 파일(125)을 해석하여 그에 따른 제어를 실시하는 UI 엔진부(111)와, 상기 UI 엔진부(111)의 제어 동작에 필요한 연산이나 일련의 동작 방식을 제공하는 라이브러리부(113)와, 상기 UI 엔진부(111)가 게임 클라이언트(100)의 게임 엔진부(101)에 무관하게 UI 표현에 관한 정보를 제공하도록 하는 인터페이스부(112)로 이루어진다. Therefore, the
상기 구성을 보면, 상기 UI 엔진부(111)는 레이어와 컨트롤 요소들에 대한 정의를 포함하는 스크립트와 상기 컨트롤 요소들의 표시와 동작 방식을 결정하는 스크립트들로 이루어지는 스크립트 파일(125)을 해석하여 원하는 동작 방식을 라이브러리부(113)를 통해 구현하여 그 구현 정보를 범용적인 형식으로 변환하는 인터페이스부(112)를 통해 게임 클라이언트(100)에 제공하고, 상기 스크립트 파일(125)의 스크립트와 직접 연동되는 정보는 직접 게임 클라이언트(100)와 주고 받는 기능 을 수행한다. In the above configuration, the
상기 게임 클라이언트(100)는 내부적으로 그래픽 표현에 특화되거나 복잡한 연산에 특화된 게임 엔진부(101)를 포함하며, 상기 게임 엔진부를 이용하여 게임을 구현하기 위한 게임 로직(103)과 상기 UI 엔진부(111)와 정보를 주고 받기 위한 바인딩 인터페이스부(미도시) 및 상기 UI 엔진(110)의 인터페이스부(112)가 제공하는 범용 구현 정보를 상기 게임 엔진부(101)에 맞추어 변환하도록 하여 상기 UI 엔진(110)의 독립성을 유지할 수 있도록 하는 게임 엔진 인터페이스부(102) 등을 구비할 수 있다. 그 외에도 필요한 경우 스크립트를 생성하여 상기 UI 엔진부에 제공하는 수단도 구성할 수 있으며, 상기 구성들 중 임의의 구성을 생략할 수도 있다.The
즉, 상기 UI 엔진(110)은 상기 게임 클라이언트(100)의 게임 엔진부(101)에 요청하는 구현 정보를 내부의 인터페이스부(112)를 통해 범용적인 형식으로 변환하여 제공하게 되고, 상기 게임 클라이언트(100)는 상기 범용적인 형식의 구현 정보를 상기 특정한 게임 엔진부(101)에 적합한 정보 형태로 변환시키는 게임 엔진 인퍼페이스부(102)를 통해 상기 게임 엔진부(101)에 제공하는 것으로 상기 요청되는 시각적 표현을 처리하기 때문에 상기 UI 엔진(110)의 독립성을 유지할 수 있게 된다. 따라서, 상기 게임 엔진(110)을 이용하도록 작성된 UI는 다른 종류의 게임 엔진부를 이용하더라도 큰 변화없이 그대로 활용할 수 있게 된다. 또한, 상기 게임 클라이언트(100)에 구성되는 상기 게임 엔진 인터페이스부(102)는 게임 엔진의 종류에 따라 각각 작성되는 커스텀 인터페이스로서, 이를 범용적으로 활용할 수 있으므로 그에 대한 개발 부담도 크지 않다. 상기 커스텀 인터페이스는 내부적으로 UI 랜더러(Renderer) 부분과 UI 팩토리(Factory) 부분으로 이루어질 수 있다.That is, the
상기 스크립트 파일(125)의 구성 및 UI 저작부(120)에 관해서는 이후 보다 상세히 설명하도록 한다. The configuration of the
도 3 내지 도 5는 사용자 인터페이스의 계층적 구성과, 상기 사용자 인터페이스를 구성하는 컨트롤 요소의 구성를 보인 것으로, 도 3은 도시한 바와 같이 복수의 겹칠 수 있는 레이어들(130)과, 상기 레이어들(130)에 배치될 수 있는 복수의 컨트롤 요소들(131, 132, 133, 140, 141, 142)의 예를 보인 것이다. 도시한 바와 같이 하나의 레이어(130)에는 복수의 컨트롤 요소들(131, 132, 133)이 각각 배치되거나 도시한 바와 같이 컨트롤 요소들(140, 141, 142)이 계층적으로 중복 배치될 수 있다. 3 to 5 illustrate a hierarchical structure of a user interface, a configuration of a control element constituting the user interface, and FIG. 3 illustrates a plurality of overlapping
그리고, 도 4에 도시한 바와 같이 하나의 컨트롤 요소(142)는 복수의 그림과 문자가 포함된 프레임들(142-1, 142-2, 142-3)로 이루어질 수 있으며, 도 5에 도시한 바와 같이 하나의 프레임(150)은 복수의 그림 조각들(153)과 문자 영역(155)으로 이루어질 수 있다. As illustrated in FIG. 4, one
특히, 온라인 게임의 경우 최소한의 리소스를 이용하여 최대한 미려한 그래픽을 제공해야 하기 때문에 비트맵으로 이루어지는 컨트롤 요소의 프레임을 제공할 경우 그 확대/축소 등을 고려하여 크기를 변경해도 되는 부분과 크기를 변경하면 안되는 부분 등으로 구분하여 도시된 바와 같은 조각 그림들로 해당 프레임을 구성하는 것이 바람직하다. 이 경우, 상기 UI 엔진은 이러한 각 조각 그림들의 확대/축소 등을 실시할 경우 상기 사항을 고려한 처리를 자동적으로 실시하도록 하는 기능 을 구비해야한다. 또한, 상기 UI 엔진은 특정한 형태(예를 들어 다각형 등)의 컨트롤 요소의 경우에는 단일 그림을 이용하여 이러한 분할 처리를 자동적으로 실시하도록 할 수도 있다.In particular, in the case of online games, it is necessary to provide the most beautiful graphics with the least resources. When providing a frame of a control element consisting of a bitmap, the part and size that can be changed in consideration of the enlargement / reduction etc. It is preferable to configure the frame with the pieces shown as divided into parts that should not be. In this case, the UI engine should be provided with a function to automatically perform the processing in consideration of the above matters when performing the enlargement / reduction of each of these pieces. In addition, the UI engine may automatically perform this division process using a single picture in the case of a control element of a particular type (for example, polygon).
도 6은 온라인 게임의 사용자 인터페이스 구현에 있어, 필요한 라이브러리의 예제를 보인 것으로, 도시한 바와 같이 특정한 카드들을 중첩하여 다양한 각도로 제공(160)하고, 임의의 카드(165)를 원하는 각도로 회전하면서 포함된 텍스트 상자(166) 역시 회전된 각도에서 입력을 받아들이도록 하며, 소정의 컨트롤 요소의 프레임을 임의의 방식으로 이동하고 크기 및 방향을 조절하면서 순차 제공(도시된 경우에는 프레임의 전개만 나타냄)하도록 하는 등의 효과가 필요하다. 또한, 특정한 애니메이션 효과의 경우, 컨트롤 요소의 프레임 순서, 표시 위치, 표시 크기, 회전 각도 등을 원하는 효과에 맞추어 순차 설정해 두고 이를 라이브러리화 하는 것으로 최소한의 리소스로도 다양한 애니메이션 효과를 제공할 수 있게 된다.6 illustrates an example of a library required for implementing an online game user interface, as shown, by superimposing certain cards at various angles (160) and rotating any card (165) at a desired angle. The included
즉, 온라인 게임의 사용자 인터페이스 구현에 필요한 각종 효과들을 라이브러리로 정리해 두고 다양한 게임 개발에 용이하게 활용할 수 있다. 특히, 이러한 라이브러리들은 비트맵 그림을 많이 사용하는 온라인 게임의 특성을 반영하도록 구성할 경우 최소한의 리소스 만으로도 뛰어난 시각적 효과를 제공할 수 있다. In other words, various effects required to implement the user interface of the online game can be organized into a library, which can be easily utilized for various game development. In particular, if these libraries are configured to reflect the characteristics of online games that use a lot of bitmap pictures, they can provide excellent visual effects with minimal resources.
도 7은 UI 저작부의 구성을 보인 것으로, UI 엔진을 최적으로 활용할 수 있는 스크립트 파일을 생성하기 위한 것이다. 상기 UI 저작부는 크게 UI 구성 요소들을 편집하고 그 동작 방식을 설정하는 스크립트를 입력 받아 스크립트 파일(210)을 생성하는 UI 디자인부(200)와, 상기 생성된 스크립트 파일(210)을 가상적인 게임 클라이언트인 더미 클라이언트(221)와 UI 엔진(223) 및 수동 조작을 위한 스크립트 콘솔부(222)를 포함하는 테스트부(220)로 이루어진다. 상기 테스트부(220)는 필수적이지는 않지만 오류를 용이하게 확인 및 수정할 수 있기 때문에 구성되는 것이 바람직하다.7 shows the configuration of the UI authoring unit, and is for generating a script file that can optimally utilize the UI engine. The UI authoring unit largely edits UI components and generates a
상기 UI 디자인부(200)의 구성을 보면, UI 설계자가 디자인한 복수 프레임의 조각 그림들을 이용하여 복수 프레임의 컨트롤 요소를 구성하고 그 설정 내용을 결정하는 것으로 언제 어디서나 활용될 수 있는 컨트롤 요소의 프로토타입을 스크립트 코드로 생성하는 부분과, 이러한 프로토타입의 컨트롤 요소를 레이어에 배치하면 이를 모듈 스크립트 코드로 생성하는 부분과, 상기 레이어에 배치된 컨트롤 요소의 동작 방식을 스크립트 형식으로 입력받는 스크립트 입력 부분 및 이러한 입력되거나 생성된 스크립트를 파일로 저장하거나 읽어들이는 파일 관리 부분으로 이루어질 수 있다.Looking at the configuration of the
이를 도시된 구성을 통해 살펴보면, 상기 UI 디자인부(200)는 우선 컨트롤 요소를 이루는 조각 그림들의 배치에 관한 인터페이스를 제공하는 컨트롤 요소 편집부(201)와, 상기 컨트롤 요소 편집부(201)를 통해 편집되는 컨트롤 요소에 대한 속성을 편집하는 컨트롤 요소 속성 편집부(203)와, 상기 컨트롤 요소에 대한 계층을 관리하는 컨트롤 요소 계층 표시부(204)와, 상기 컨트롤 요소를 레이어에 상기 컨트롤 요소 계층 표시부(204)의 정보에 맞추어 배치하는 인터페이스를 제공하는 레이어 배치부(202) 및 스크립트 파일을 생성하거나 읽어들이고 상기 인터페이스를 관리하는 파일 관리부 및 인터페이스부(205)와, 상기 컨트롤 요소의 표시 및 동작 방식에 대한 설계자의 스크립트 입력을 받아들이는 스크립트 편집부(206)를 포함하여 이루어진다. 이때, 상기 UI 디자인부는 기본적인 컨트롤 요소들에 대한 프로토타입을 구비하는 것이 바람직하며, 설계자가 설정한 프로토타입이나 프로토타입을 이용하여 생성된 컨트롤 요소를 별다른 설정 없이 그대로 활용(설계 단계 및 런타임 단계)할 수 있도록 하는 것이 바람직하다. 상기 파일 관리 및 인터페이스부(205)는 상기 컨트롤 요소 편집부(201)와 레이어 배치부(202)의 사용자 인터페이스를 제공하여 설계자의 시각적 요소 배치를 용이하도록 하며, 상기 컨트롤 요소 편집부(201)는 상기 컨트롤 요소 속성 편집부(203)의 설정 내용을 참조하여 컨트롤 요소에 대한 설정 내용을 스크립트 파일로 생성하고 필요한 경우 기 생성된 스크립트 파일을 불러들인다. 이때, 상기 컨트롤 요소 속성 편집부(203)는 제공되는 속성을 설정하는 기능 뿐만 아니라 속성 자체의 생성과 삭제를 지원하여 상기 컨트롤 요소 편집부(201)가 특정 컨트롤 요소의 프로토타입을 생성하거나 기존 프로토타입을 변형시켜 새로운 컨트롤 요소를 생성할 수 있도록 한다. 이러한 프로토타입은 별도의 스크립트 파일 포멧으로 저장되어 관리될 수 있으며, 임의의 스크립트 파일(210)에 추가되거나 해당 파일에서 호출될 수 있다. 즉, 스크립트 파일(210) 중 임의의 파일에 정의된 컨트롤요소는 다른 어떤 파일에서도 용이하게 연동되어 사용될 수 있다.Looking at this through the configuration shown, the
상기 레이어 배치부(202)는 상기 컨트롤 요소 계층 표시부(204)의 정보를 통해 자신에게 배치된 컨트롤 요소들에 대한 모듈 스크립트를 생성한다. The
상기 스크립트 편집부(206)는 설계자가 상기 레이어 배치부(202)에서 생성되 는 모듈 스크립트를 참조하여 해당 모듈에 대한 초기화/관련 컨트롤 요소들에 대한 이벤트 리스너/게임 클라이언트의 게임 로직과의 연동 관계를 포함하는 스크립트 로직(컨트롤 요소의 동작 방식 설정)을 생성하기 위한 인터페이스를 제공한다. The
따라서, 상기 스크립트 파일(210)은 크게 시각적 요소인 사용자 인터페이스 모듈 정의 내용과 상기 시각적 요소에 대한 동작 방식과 게임 로직과의 연동 관계를 정의하는 스크립트 내용, 그리고 컨트롤 요소에 대한 프로토타입 설정등이 저장된다. 또한, 이러한 파일들은 복수로 구성될 수 있으며, 그 기술된 코드들을 상호 참조할 수 있다.Therefore, the
상기 완성된 스크립트 파일(210)은 테스트부(220)의 UI 엔진(223)을 통해 해석되고, 상기 해석을 통해 요구되는 각종 동작을 테스트용 더미 클라이언트부(221)와 연동시켜 검증할 수 있으며, 특정한 반응이 필요하거나 임의의 제어 상태를 제공하기 위해서 별도의 스크립트 콘솔(222)이 제공될 수 있다. 그리고, 서버와의 연동을 실험하기 위해서 상기 더미 클라이언트(221)에는 서버 접속을 에뮬레이팅하는 스크립트 코드가 포함되거나, 상기 스크립트 콘솔(222)을 통해 서버와의 연동을 에뮬레이팅하는 스크립트 코드가 제공될 수 있다.The completed
도 8은 도 7의 상기 UI 디자인부에 대한 실제 구성예를 보인 예시도로서, 각각 좌측부터 컨트롤 요소 편집부, 레이어 배치부가 구성되고, 우측에는 상부에 컨트롤 요소 계층 표시부가, 하측에는 컨트롤 요소 속성 편집부가 구성되어 있다. FIG. 8 is an exemplary view showing an actual configuration example of the UI design unit of FIG. 7, wherein a control element editing unit and a layer arrangement unit are respectively configured from the left side, a control element hierarchy display unit at the upper side, and a control element attribute editing unit at the lower side. Is composed.
도 9는 도 7의 테스트부의 동작 화면을 보인 예로서, 도시된 바와 같이 실제 게임의 실행 화면을 표시하고, 필요한 동작은 직접 사용자 인터페이스를 조작하고, 스크립트 콘솔부를 통해 수동으로 제어하여 원하는 반응을 실험하게 된다. FIG. 9 is an example of an operation screen of the test unit of FIG. 7, and displays an execution screen of an actual game as shown in FIG. 7, and a necessary operation is directly operated by a user interface and manually controlled through a script console unit to experiment a desired reaction. Done.
도 10은 LUA 스크립트를 이용할 경우 스크립트 파일의 해석 및 게임 클라이언트와의 연동 방식을 보인 개념도로서, 스크립트 파일의 예로서, 레이어와 컨트롤 요소를 정의한 GUI(그래픽 사용자 인터페이스) 모듈 정의부(300)와, 상기 모듈 정의부(300)에 정의된 요소들에 대한 프로그래머의 설정 내용을 담은 LUA 스크립트부(310) 및, 상기 스크립트부(310)와 직접 연동되는 게임 클라이언트(330)의 관계가 나타나있다.10 is a conceptual diagram illustrating a method of interpreting a script file and interworking with a game client when using an LUA script. As an example of the script file, a GUI (graphical user interface)
예를 들어, 상기 모듈 정의부(300)에서 소정 레이어에 계층적으로 배치된 버튼부(301)와 텍스트 상자부(302)와 같은 컨트롤 요소들을 정의하는 경우, 상기 모듈 정의부의 내용은 예를 들어 다음과 같다.For example, when the
layerlayer { {
buttonbutton
{ ... } {...}
textboxtextbox
{ ... } {...}
}}
상기 모듈 정의부(300)에 정의된 컨트롤 요소들은 LUA 스크립트부(310)에 작성된 스크립트들에 의해 그 동작 방식이 기술 된다. 상기 LUA 스크립트부(310)는 소정의 시각적 요소들에 대한 정의를 하나의 단위로 묶어둔 모듈을 초기화하는 모듈 초기화 스크립트부(311), 상기 컨트롤 요소들에 대해 발생되는 이벤트들 중에서 원하는 이벤트의 발생을 감지하는 이벤트 리스너부(312), 그리고 상기 컨트롤 요소들에 대한 소정의 동작 방식을 정의하고 게임 클라이언트의 게임 로직부와 정보를 주고 받는 UI 로직부(313)를 포함하여 구성된다. Control elements defined in the
상기 모듈 정의부(300)의 버튼부(301)와 텍스트 상자부(302)에 대해서 간단하게 작성된 LUA 스크립트부(310)의 예는 다음과 같다.An example of the
functionfunction onClickonClick (( eventevent ) // 이벤트 ) // event 리스너부Listener section 대응 코드 Correspondence code
tbtb = = guigui :: SelectSelect (‘//('// textboxtextbox ’)’)
messagemessage = = getMessagegetMessage ()()
tbtb :SetText(: SetText ( messagemessage ))
endend
functionfunction getMessagegetMessage () // () // UIUI 로직부Logic section 대응 코드 Correspondence code
returnreturn gamegame __ getget __ messagemessage ()()
endend
button = gui : Select (‘// button ’) // 모듈 초기화 스크립트부 대응 코드 button = gui : Select ('// button ') // module initialization script part corresponding code
buttonbutton :SetListener(‘: SetListener (’ mousemouse __ clickclick ’, ’, onClickonClick ))
상기 예로 든 LUA 스크립트는 버튼부(301)에 이벤트가 발생할 경우 텍스트 상자부(302)에 'message' 변수에 저장된 문자열을 표시하도록 하는 구성을 가지며, 상기 'message' 변수에 저장되는 문자열은 'game_get_message()" 함수를 통해 게임 로직으로부터 획득하도록 되어 있다.The example LUA script has a configuration to display a string stored in the 'message' variable in the
상기 게임 클라이언트의 일부 구성을 나타낸 게임 클라이언트부(330)는 게임에 관련된 정보를 처리하는 게임 로직부(331)와, 상기 LUA 스크립트부(310)를 해석하여 처리하는 UI 엔진과 게임 로직부(331) 사이의 고속 정보 교환을 인터페이스하는 LUA C 바인딩부(332)를 포함한다. 상기 LUA C 바인딩부(332)는 상기 게임 로직부(331) 내부에 구성되거나 도시된 바와 같이 외부에 별도 구성될 수 있다. The
상기 게임 로직부(331)와 상기 스크립트를 바인딩하는 바인딩 인터페이스의 활용을 통해 UI 엔진은 게임 로직부(331)와 많은 정보를 고속으로 주고 받으면서 복잡한 게임 시나리오의 처리가 가능하도록 하며, 이때 필요한 각종 시각적 처리는 범용 형식을 이용하여 게임 엔진에 요청하도록 하여 처리하도록 하므로, 실제 UI 엔진을 활용한 UI는 개발의 편의성과 성능을 모두 만족시킬 수 있다.Through the use of a binding interface that binds the
예를 들어, 상기 게임 로직부(331)가 C 언어로 작성되는 경우일 때, 상기 LUA C 바인딩부(332)는 다음과 같은 코드를 포함할 수 있다. For example, when the
intint gamegame __ getget _message(_message ( lualua __ StateState * * lsls ))
{{
lualua __ pushstringpushstring (( lsls , _T(“, _T (“ hellohello !”));! ”));
returnreturn 1; One;
}}
따라서, 실질적인 동작을 살펴보면, UI 엔진이 상기 GUI 모듈 정의부(300)와 LUA 스크립트부(310)를 해석하여, 내부적인 UI 엔진 LUA API(응용 프로그램 인터페 이스)(320)를 통해 버튼부(301)에 대한 이벤트 발생시 그 정보를 상기 이벤트 리스너부(312)에 점선과 같은 제어 경로(S1,S2)를 통해 제공하고, 상기 UI 로직부(313)가 상기 게임 로직부(331)로부터 상기 텍스트 상자부(302)에 표시할 정보를 수신한 경우 해당 문자열 정보를 점선으로 도시된 제어 경로(S3, S4)를 통해 시각적으로 표시된 텍스트 상자부(302)에 적용하여 표시하도록 한다.Therefore, when looking at the actual operation, the UI engine interprets the GUI
전술한 바와 같이, 게임 엔진에 독립적이면서도 고속으로 게임 로직과 연동되고 게임 엔진을 범용 방식으로 활용함과 아울러, 다양한 효과를 제공하는 라이브러리를 갖추고, 컨트롤 요소에 대한 프로토타입을 활용하도록 하는 UI 엔진과, 상기 UI 엔진에 적합한 프로토타입과 모듈 설정 및 스크립트 작성을 지원하는 저작 도구를 이용할 경우 보다 게임에 적합한 UI를 용이하게 개발할 수 있으며, 이미 개발된 UI를 쉽게 활용하여 적용할 수 있다. 또한, 빈번한 UI 변경이나 갱신에도 쉽게 대응할 수 있게 된다.As described above, the UI engine, which is independent of the game engine and is linked to the game logic at high speed, utilizes the game engine in a general-purpose manner, has a library that provides various effects, and utilizes prototypes for control elements. When using an authoring tool that supports prototyping, module setting, and script writing suitable for the UI engine, a UI suitable for a game can be easily developed, and an already developed UI can be easily applied. In addition, it can easily cope with frequent UI changes and updates.
도 11은 상기 설명한 온라인 게임을 위한 사용자 인터페이스 제공 장치를 이용하여 사용자 인터페이스를 설계하는 전체적인 과정을 보인 순서도로서, 도시한 바와 같이 UI 엔진과 저작도구를 설치하고 환경을 설정한 후, UI 디자이너가 게임의 시나리오에 맞추어 컨트롤 요소의 프레임이나 배경 등에 적용될 이미지 리소스를 제작한다. FIG. 11 is a flowchart illustrating the overall process of designing a user interface using the apparatus for providing an online game for the online game described above. After installing the UI engine and the authoring tool and setting the environment as illustrated, the UI designer plays the game. Create an image resource to be applied to the frame or background of the control element according to the scenario of.
이후, 상기 UI 디자이너는 UI 저작부를 이용하여 이미지 리소스를 배치하고 설정 내용을 추가/삭제/편집하여 공통적으로 자주 사용될 컨트롤 요소의 프로토타입을 생성한다.Thereafter, the UI designer creates an prototype of a control element that will be commonly used by arranging image resources and adding / deleting / editing setting contents using a UI authoring unit.
상기 UI 디자이너는 상기 프로토타입이나 이를 이용하여 구성된 콘트롤 요소를 레이어에 계층적으로 배치하여 모듈 설정 내용을 생성한다. The UI designer generates module setting contents by hierarchically placing the prototype or a control element constructed using the same in a layer.
이후, UI 프로그래머가 상기 모듈 설정 내용을 포함하는 각종 정보와 시나리오 및 게임 로직을 고려하여 스크립트를 작성한다. 이를 통해 스크립트 파일이 생성될 수 있으며, 상기 각 단계별로 별도의 스크립트 파일들이 생성될 수도 있다.Thereafter, the UI programmer creates a script in consideration of various information, scenarios, and game logic including the module setting contents. Through this, a script file may be generated, and separate script files may be generated for each step.
상기 UI 저작부가 테스트부를 포함하는 경우, 상기 작성된 스크립트 파일을 UI 엔진과 더미 클라이언트 및 스크립트 콘솔을 이용하여 테스트하여 수정할 부분이 있는 경우 상기 스크립트 작성 내용을 수정하는 과정을 반복한다. When the UI authoring unit includes a test unit, the script script is repeated using a UI engine, a dummy client, and a script console to modify the script writing content when there is a part to be modified.
상기 과정을 통해 원하는 기능을 수행하는 스크립트 파일을 생성한 경우 이를 실제 게임에 적용한다. 게임에 적용한다는 의미는 UI 엔진을 통해 상기 스크립트와 게임 클라이언트의 게임 로직이 통신을 실시할 수 있도록 바인딩부를 구성하는 것을 의미한다. If a script file that performs the desired function is generated through the above process, it is applied to the actual game. Applying to the game means configuring the binding unit so that the script and the game logic of the game client can communicate through a UI engine.
따라서, 상기 UI 디자이너가 실제 UI 제작에 참여하는 비중이 커지며, UI 프로그래머는 간단한 방식으로 원하는 성능의 UI 스크립트를 작성할 수 있어 UI 개발 효율이 크게 높아지게 된다.Therefore, the proportion of the UI designer to participate in the actual UI production is increased, the UI programmer can write the UI script of the desired performance in a simple manner, greatly increasing the UI development efficiency.
이상에서 상술한 바와 같이, 본 발명 실시예들에 따른 온라인 게임을 위한 사용자 인터페이스 제공 장치 및 그 방법은 게임 엔진에 독립적으로 UI 구성 요소들을 용이하게 구성하고 재사용할 수 있도록 하며 스크립트만으로도 복잡한 사용자 인터페이스 환경 및 다양한 효과를 고속으로 구현할 수 있도록 함으로써, 사용자 인터페이스의 개발 효율과 성능을 모두 만족시킬 수 있는 효과가 있다.As described above, the apparatus and method for providing a user interface for an online game according to the embodiments of the present invention make it easy to configure and reuse UI components independently of a game engine, and a complex user interface environment using only a script. And by allowing various effects to be implemented at high speed, there is an effect that can satisfy both the development efficiency and performance of the user interface.
본 발명 실시예들에 따른 온라인 게임을 위한 사용자 인터페이스 제공 장치 및 그 방법은 온라인 게임의 사용자 인터페이스를 컨트롤요소들이 배치되는 복수의 레이어들로 정의하고, 각 레이어에 컨트롤 요소들을 배치하여 모듈을 설정하며, 각 컨트롤 요소들을 복수의 프레임들로 설정하고, 각 프레임들의 구성 요소들을 개별 처리하도록 함으로써, 계층적이고 체계적으로 사용자 인터페이스를 구성 및 관리할 수 있는 효과가 있다.An apparatus and method for providing a user interface for an online game according to embodiments of the present invention define a user interface of an online game as a plurality of layers in which control elements are arranged, and arrange a control element in each layer to set a module. By setting each control element to a plurality of frames and processing the components of each frame separately, there is an effect that the user interface can be organized and managed hierarchically and systematically.
본 발명 실시예들에 따른 온라인 게임을 위한 사용자 인터페이스 제공 장치 및 그 방법은 개발자가 용이하게 프로토타입의 컨트롤을 생성하고 이를 재사용하거나 런타임으로 생성하여 사용할 수 있도록 함과 아울러, 다양한 스트립트 파일들 간의 설정을 자유롭게 활용할 수 있도록 하여 컨트롤 생성 및 사용의 용이성을 높이는 효과가 있다.An apparatus and method for providing a user interface for an online game according to embodiments of the present invention allow a developer to easily create a prototype control, reuse it, or generate and use it at runtime, and to set up various script files. It can increase the ease of creating and using the control by freely utilizing the.
본 발명 실시예들에 따른 온라인 게임을 위한 사용자 인터페이스 제공 장치 및 그 방법은 사용자 인터페이스를 구성하는 레이어 단위 컨트롤 요소의 설정을 텍스트 형태의 모듈로 구성하고 그 동작 방식을 범용 스크립트로 구성하며, 이러한 설정을 통해 동작하는 사용자 인터페이스 엔진이 스크립트 바인딩에 의해 게임 클라이언트와 고속으로 통신할 수 있도록 함으로써, 게임 클라이언트의 게임 로직과 사용자 인터페이스의 연동 성능을 극대화하는 효과가 있다.An apparatus and method for providing a user interface for an online game according to the embodiments of the present invention configure a setting of a layer-based control element constituting a user interface as a module in a text form, and configure a method of operation as a general-purpose script. By enabling the user interface engine to operate at a high speed to communicate with the game client by script binding, there is an effect of maximizing the interworking performance of the game logic and the user interface of the game client.
본 발명 실시예들에 따른 온라인 게임을 위한 사용자 인터페이스 제공 장치 및 그 방법은 온라인 게임의 인터페이스를 정의하는 모듈 및 스크립트 파일을 생성하고, 더미 클라이언트에서 상기 파일을 동작시키면서 스크립트 명령을 수작업으로 제공할 수 있도록 한 콘솔을 통해 상기 사용자 인터페이스의 동작을 검증하도록 함으로써, 각종 이벤트와 스크립트 실행 내용을 즉시 확인하여 오류 내용을 수정할 수 있도록 하는 효과가 있다.An apparatus and method for providing a user interface for an online game according to embodiments of the present invention may generate a module and a script file defining an interface of an online game, and manually provide a script command while operating the file in a dummy client. By verifying the operation of the user interface through the console, there is an effect that it is possible to immediately check the various events and script execution contents to correct the error content.
Claims (26)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070025909A KR20090000651A (en) | 2007-03-16 | 2007-03-16 | User interface providing apparatus and method for on-line game |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070025909A KR20090000651A (en) | 2007-03-16 | 2007-03-16 | User interface providing apparatus and method for on-line game |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20090000651A true KR20090000651A (en) | 2009-01-08 |
Family
ID=40483800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070025909A KR20090000651A (en) | 2007-03-16 | 2007-03-16 | User interface providing apparatus and method for on-line game |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20090000651A (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019741A (en) * | 2012-12-30 | 2013-04-03 | 上海创图网络科技发展有限公司 | Webmax game engine and method for developing webgame by applying webmax game engine |
WO2013065948A1 (en) * | 2011-10-31 | 2013-05-10 | (주)네오위즈게임즈 | Apparatus and method for producing a game event effect |
CN106033367A (en) * | 2015-03-18 | 2016-10-19 | 广州四三九九信息科技有限公司 | Scripts game server engine |
CN111488146A (en) * | 2019-01-25 | 2020-08-04 | 上海原品网络科技有限公司 | Game development system based on android system |
US10866843B2 (en) | 2017-07-19 | 2020-12-15 | Nhn Entertainment Corporation | Method and system for invoking event-based package module |
CN118022337A (en) * | 2024-01-29 | 2024-05-14 | 深圳市奇迅新游科技股份有限公司 | Game component recommendation system, method, equipment and readable storage medium |
-
2007
- 2007-03-16 KR KR1020070025909A patent/KR20090000651A/en not_active Application Discontinuation
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013065948A1 (en) * | 2011-10-31 | 2013-05-10 | (주)네오위즈게임즈 | Apparatus and method for producing a game event effect |
KR101379662B1 (en) * | 2011-10-31 | 2014-04-01 | (주)네오위즈게임즈 | Apparatus and method for making effect of event in game |
CN103019741A (en) * | 2012-12-30 | 2013-04-03 | 上海创图网络科技发展有限公司 | Webmax game engine and method for developing webgame by applying webmax game engine |
CN106033367A (en) * | 2015-03-18 | 2016-10-19 | 广州四三九九信息科技有限公司 | Scripts game server engine |
US10866843B2 (en) | 2017-07-19 | 2020-12-15 | Nhn Entertainment Corporation | Method and system for invoking event-based package module |
CN111488146A (en) * | 2019-01-25 | 2020-08-04 | 上海原品网络科技有限公司 | Game development system based on android system |
CN118022337A (en) * | 2024-01-29 | 2024-05-14 | 深圳市奇迅新游科技股份有限公司 | Game component recommendation system, method, equipment and readable storage medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7865350B1 (en) | Partitioning a model in modeling environments | |
KR100876606B1 (en) | Heterogeneous interlocking program development method and its development device | |
Cantor et al. | WebGL beginner's guide | |
CN102135873B (en) | A kind of method and apparatus creating user interface | |
US8739120B2 (en) | System and method for stage rendering in a software authoring tool | |
Wilken | Angular in action | |
CN106484394A (en) | A kind of fast software development system with double engines | |
CN107408052A (en) | Binary Conversion in shared object level | |
KR20090000651A (en) | User interface providing apparatus and method for on-line game | |
Chin et al. | The Definitive Guide to Modern Java Clients with JavaFX 17 | |
Oehlke | Learning Libgdx Game Development | |
CN113010168B (en) | User interface generation method based on scene tree | |
Goetz et al. | An XML-based visual shading language for vertex and fragment shaders | |
Clarke et al. | JavaFX: Developing Rich Internet Applications | |
Achten et al. | Task oriented programming with purely compositional interactive scalable vector graphics | |
Werner et al. | Cloud-based design and virtual prototyping environment for embedded systems | |
Graf et al. | Correct development of embedded systems | |
Wenz | Essential Silverlight 2 Up-to-Date | |
CN112631587B (en) | Interface prototype design method, interface prototype operation method, and storage medium | |
Stenning | Direct3D Rendering Cookbook | |
Babu et al. | Lifecycle for game development to ensure enhanced productivity | |
Zainuddin et al. | An approach to low-fidelity prototyping based on SOFL informal specification | |
Ye | . NET MAUI Cross-Platform Application Development: Leverage a first-class cross-platform UI framework to build native apps on multiple platforms | |
JP5010000B2 (en) | Method and system for accessibility and control of parameters in a scene graph | |
bin Uzayr | Mastering Unity: A Beginner's Guide |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Withdrawal due to no request for examination |