[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR100692211B1 - Object management method by using fiber in a game-engine - Google Patents

Object management method by using fiber in a game-engine Download PDF

Info

Publication number
KR100692211B1
KR100692211B1 KR1020050059233A KR20050059233A KR100692211B1 KR 100692211 B1 KR100692211 B1 KR 100692211B1 KR 1020050059233 A KR1020050059233 A KR 1020050059233A KR 20050059233 A KR20050059233 A KR 20050059233A KR 100692211 B1 KR100692211 B1 KR 100692211B1
Authority
KR
South Korea
Prior art keywords
processing
fiber
game engine
game
engine
Prior art date
Application number
KR1020050059233A
Other languages
Korean (ko)
Other versions
KR20070003331A (en
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 KR1020050059233A priority Critical patent/KR100692211B1/en
Publication of KR20070003331A publication Critical patent/KR20070003331A/en
Application granted granted Critical
Publication of KR100692211B1 publication Critical patent/KR100692211B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/32Image data format

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Abstract

본 발명은 게임 엔진에서 오브젝트의 동작을 처리하기 위한 방법에 관한 것으로, 보다 상세하게는 게임 엔진에서 소정의 오브젝트의 동작 처리를 위하여 처리 명령을 제1 파이버로 전달하고, 상기 제1 파이버는 상기 처리 명령에 따라 렌더링을 수행한 후 제2 파이버로 또 다른 처리 명령을 전달하며, 이 후 제2 파이버는 상기 처리 명령에 따라 렌더링을 수행하고 상기 게임 엔진으로 소정의 제어권을 반환함으로써 오브젝트의 처리를 위한 검색 엔진의 참조를 줄여 처리 속도를 증가시키는 오브젝트의 동작 처리 방법에 관한 것이다. 본 발명에 따르면, 게임 엔진의 기저레벨부터 파이버 방식을 통해 게임 내 로딩, AI(Artificial Intelligence), 및 순차 처리를 포함하는 처리 동작을 수행함으로써 게임 어플리케이션의 개발 효율을 증가시킬 수 있다.The present invention relates to a method for processing an operation of an object in a game engine. More specifically, the game engine transmits a processing instruction to a first fiber for processing an operation of a predetermined object, and the first fiber processes the processing. After the rendering is performed according to the instruction, another processing instruction is transmitted to the second fiber, and the second fiber then performs rendering according to the processing instruction and returns a predetermined control right to the game engine for processing of the object. The present invention relates to a method of processing an operation of an object that reduces a reference of a search engine to increase processing speed. According to the present invention, the development efficiency of a game application can be increased by performing processing operations including in-game loading, artificial intelligence (AI), and sequential processing through a fiber method from the base level of the game engine.

파이버, 렌더링, 게임 엔진, 오브젝트, 스레드 Fiber, rendering, game engine, object, thread

Description

게임 엔진에서 파이버를 이용한 오브젝트 처리 방법{OBJECT MANAGEMENT METHOD BY USING FIBER IN A GAME-ENGINE}OBJECT MANAGEMENT METHOD BY USING FIBER IN A GAME-ENGINE}

도 1은 종래 스레드를 이용한 게임 엔진에서의 처리 방식을 도시한 도면이다.1 is a diagram illustrating a processing method in a game engine using a conventional thread.

도 2는 본 발명에 따른 게임 엔진이 파이버와 연동하여 오브젝트의 처리 동작을 수행하는 흐름을 도시한 흐름도이다.2 is a flowchart illustrating a flow in which a game engine according to the present invention performs an object processing operation in association with a fiber.

도 3은 본 발명에 따른 게임 엔진에서 파이버를 이용한 오브젝트 처리 방법을 수행하는 데 채용될 수 있는 범용 컴퓨터 장치의 내부 블록도이다.3 is an internal block diagram of a general purpose computer device that may be employed to perform a method for processing an object using fibers in a game engine according to the present invention.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

201: 게임 구동 202: 처리 명령 신호 전달201: Game Drive 202: Process Command Signaling

203: 제1 처리 204: 처리 완료 신호 전달203: First process 204: Process completion signal transfer

205: 제2 처리 206: 처리 완료 신호 전달205: Second Process 206: Process Completion Signaling

207: 제3 처리 208: 처리 완료 신호 전달207: Third processing 208: Signaling completion of processing

209: 렌더링 처리 210: 게임 구동209: Rendering Process 210: Game Driven

211: 처리 명령 신호 전달 212: 제1 처리211: Processing Instruction Signaling 212: First Processing

213: 처리 완료 신호 전달213: Signaling completion of processing

본 발명은 게임 엔진에서 오브젝트의 동작을 처리하기 위한 방법에 관한 것으로, 보다 상세하게는 게임 엔진에서 소정의 오브젝트의 렌더링 처리를 위하여 처리 명령을 제1 파이버로 전달하고, 상기 제1 파이버는 상기 처리 명령에 따라 렌더링을 수행한 후 제2 파이버로 또 다른 처리 명령을 전달하며, 이 후 제2 파이버는 상기 처리 명령에 따라 렌더링을 수행하고 상기 게임 엔진으로 소정의 제어권을 반환함으로써 오브젝트의 처리를 위한 검색 엔진의 참조를 줄여 처리 속도를 증가시키는 오브젝트의 동작 처리 방법에 관한 것이다.The present invention relates to a method for processing an operation of an object in a game engine. More specifically, the game engine transmits a processing instruction to a first fiber for rendering a predetermined object, and the first fiber is configured to process the object. After the rendering is performed according to the instruction, another processing instruction is transmitted to the second fiber, and the second fiber then performs rendering according to the processing instruction and returns a predetermined control right to the game engine for processing of the object. The present invention relates to a method of processing an operation of an object that reduces a reference of a search engine to increase processing speed.

오늘날 게임 엔진의 오브젝트 처리는 스레드(thread)를 이용한 처리 방식을 사용한다. 스레드는 프로세서보다 더 작은 실행 단위로서 보통 다수개의 멀티 스레드의 형태로서 작업을 처리한다. 일반적으로 컴퓨터의 운영체제에서 사용되는 멀티 스레드 방식의 작업 처리는 선점 멀티태스킹 방식을 통해 한 프로세서가 짧은 시간에 하나의 스레드를 수행하고 제어권을 다른 스레드로 넘겨준다. 제어권을 넘겨받은 스레드는 또 다시 다른 스레드로 제어권을 전달하고 작업이 완료되는 경우에 상기 프로세서로 제어권을 반환한다. 이때, 상기 제어권의 전달 및 반환 등의 중재는 운영체제에서 이뤄진다. 이러한 멀티 스레드를 이용한 처리 방식은 게임 엔진에서의 오브젝트 처리에도 동일하게 적용된다. 스레드를 이용한 게임 엔진에서의 처리 방식은 도 1에서 상세히 설명한다.Today's game engine object processing uses a thread-based approach. A thread is a unit of execution that is smaller than a processor and usually processes work in the form of multiple threads. In general, multi-threaded task processing used in a computer operating system is a preemptive multitasking method in which one processor executes one thread in a short time and transfers control to another thread. The thread that takes over control transfers control to another thread and returns control to the processor when the task is completed. At this time, the mediation such as transfer and return of the control right is performed in the operating system. This multithreaded processing method is equally applicable to object processing in a game engine. The processing method in the game engine using a thread will be described in detail with reference to FIG. 1.

도 1은 종래 스레드를 이용한 게임 엔진에서의 처리 방식을 도시한 도면이 다.1 is a diagram illustrating a processing method in a game engine using a conventional thread.

도 1에서 보는 바와 같이, 스레드(T1)는 게임 엔진으로부터 전달 받은 제1 처리 동작(101)을 수행한다. 이 때, 스레드는 자신만의 함수(또는 루프)를 유지하며, 상기 함수에 따라 제1 처리 동작(101)을 수행한다. 이 후 게임 엔진은 제2 처리 동작(102)을 수행하기 위하여, 스레드(T1)의 동작을 중지시키고, 처리 동작에 필요한 제어권을 스레드(T2)에 전달한다. 이로써, 게임 엔진은 제어권을 스레드(T1)으로부터 스레드(T2)로 변경한다. 이는 상기 게임 엔진이 제1 처리 동작(101) 및 제2 처리 동작(102)을 수행하기 위하여 스레드(T1)와 스레드(T2)의 중계인 역할(103)을 수행하는 것이다. 이는 게임 엔진과 연동하는 각각의 스레드에 대하여 모두 적용되며, 이러한 게임 엔진이 중계인 역할(103)로 인하여 게임 엔진과 연동되는 스레드의 개수가 한정 된다. 즉, 게임 엔진과 연동하는 스레드의 개수가 증가할수록 게임 엔진에 가중되는 메모리 효율의 저하 및 시스템의 과부하 등의 원인으로 인하여 하나의 게임 엔진과 연동하는 스레드의 개수가 한정된다.As shown in FIG. 1, the thread T1 performs a first processing operation 101 received from a game engine. At this time, the thread maintains its own function (or loop) and performs the first processing operation 101 according to the function. Thereafter, in order to perform the second processing operation 102, the game engine stops the operation of the thread T1 and transfers the control right necessary for the processing operation to the thread T2. In this way, the game engine changes the control right from the thread T1 to the thread T2. This means that the game engine plays a role 103 which is a relay between the thread T1 and the thread T2 in order to perform the first processing operation 101 and the second processing operation 102. This is applied to all the threads associated with the game engine, the number of threads that are linked with the game engine is limited due to the role 103 that the game engine is a relay. That is, as the number of threads linked with the game engine increases, the number of threads linked with one game engine is limited due to the decrease in memory efficiency and overload of the system.

또한, 스레드를 이용한 작업 처리 방식은 스레드를 처리하기 위하여 게임 엔진이 제어권의 분배를 수행하고, 각각의 스레드들은 상기 게임 엔진에 상태 변수(전역 변수)를 유지하여 수시로 참조하게 된다. 이러한 과정에서 게임 엔진은 각 스레드 별로 상태 변수를 할당하고 상기 스레드의 참조 요청에 따라 접근 권한을 부여하는 등, 상기 상태 변수이 참조에 따라 상기 게임 엔진에 부하가 집중된다.In addition, in the task processing method using a thread, a game engine distributes control rights to process a thread, and each thread maintains a state variable (global variable) in the game engine to refer to it from time to time. In this process, the game engine allocates a state variable for each thread and grants access according to the reference request of the thread. The load is concentrated on the game engine according to the reference of the state variable.

또한, 스레드를 이용한 방식에서는 스레드 간 공유되는 변수들에 대하여 스레드 간 중복 참조/설정의 문제가 발생하여 디버깅이 매우 까다로운 구조적 문제가 빈번하게 발생하는 문제점이 존재한다.In addition, in the thread-based method, there is a problem in that structural problems, which are very difficult to debug, occur frequently because duplicate thread reference / setting problems occur between variables shared among threads.

이에 따라, 상기 게임 엔진은 이러한 스레드의 참조 등을 수행하기 위한 충분한 저장 공간을 확보하고 있어야 한다. 이는 스레드를 이용하는 컴퓨터의 운영체제에서도 유사하게 적용되는 문제점이다. 스레드를 이용한 오브젝트의 처리 방식은 근래에 일분일초에 따라 승패가 좌우되는 게임 어플리케이션의 속도를 저해하는 요인으로 작용될 수 있으며, 이로 인한 게임 산업의 진화를 방해하는 결정적인 요소로 작용될 수 있다.Accordingly, the game engine must have sufficient storage space to perform such a thread reference or the like. This problem is similarly applied to the operating system of a computer using a thread. The method of processing an object using a thread may act as a factor that hinders the speed of a game application in which a win or lose depends on a minute and a second, and thus may act as a determinant to hinder the evolution of the game industry.

따라서, 게임 엔진에서 종래 스레드 방식을 이용한 오브젝트의 처리에 대한 저장 공간의 낭비 문제 및 속도 저하의 문제는 여전히 해결해야 하는 문제로 남아있는 실정이다.Therefore, the problem of wasted storage space and speed reduction for processing of objects using a conventional thread method in a game engine still remains a problem to be solved.

본 발명은 상기와 같은 종래기술을 개선하기 위해 안출된 것으로서, 게임 엔진에서 오브젝트의 동작을 파이버(fiber) 방식의 처리를 통해 수행함으로써 게임 엔진에서 낭비되는 메모리를 최소화하고 프로그램의 제어를 보다 간편하게 수행하는 것을 목적으로 한다.The present invention has been made to improve the prior art as described above, by performing the operation of the object in the game engine through the fiber (fiber) process to minimize the wasted memory in the game engine and to perform the control of the program more easily It aims to do it.

본 발명의 목적은 게임 엔진의 기저레벨부터 파이버 방식을 통해 게임 내 로딩, AI(Artificial Intelligence), 및 순차 처리를 포함하는 처리 동작을 수행함으로써 게임 어플리케이션의 개발 효율을 증가시키는 것이다.An object of the present invention is to increase the development efficiency of a game application by performing processing operations including in-game loading, artificial intelligence (AI), and sequential processing from the base level of the game engine through a fiber method.

본 발명의 다른 목적은, 파이버가 각각의 처리 결과에 따른 처리 결과 데이터를 상태 변수에 유지하고 필요 시 이를 참조하므로, 게임 엔진에 있어서, 스레드 의 참조로 인한 시스템 부하의 증가 및 처리 속도의 감소를 원천적으로 예방하는 것이다.Another object of the present invention is to increase the system load and decrease the processing speed due to the reference of a thread in the game engine, because the fiber maintains processing result data according to each processing result in a state variable and refers to it when necessary. It is prevented at the source.

상기의 목적을 달성하고, 상술한 종래기술의 문제점을 해결하기 위하여, 본 발명에 따른 게임 엔진에서 오브젝트의 동작을 처리하기 위한 방법은, 게임 엔진에서 소정의 오브젝트의 랜더링 처리를 위한 처리 명령 신호를 제1 파이버(fiber)로 전송하는 단계, 상기 제1 파이버에서 상기 오브젝트에 대한 제1 처리를 수행하고, 제2 파이버로 상기 제1 처리 완료 신호를 전송하는 단계, 상기 제2 파이버에서 상기 오브젝트에 대한 제2 처리를 수행하고, 상기 게임 엔진으로 상기 제2 처리 완료 신호를 전송하는 단계, 및 상기 게임 엔진은 상기 제1 및 상기 제2 처리 완료 신호에 따라 상기 오브젝트를 렌더링 하는 단계를 포함하고, 상기 제1 및 상기 제2 파이버는 상기 제1 및 상기 제2 처리를 위한 소정의 상태 변수를 상기 제1 및 상기 제2 파이버에 따라 각각 유지하는 것을 특징으로 한다.In order to achieve the above object and solve the above-mentioned problems of the prior art, the method for processing the operation of the object in the game engine according to the present invention, the game engine in the processing command signal for rendering processing of a predetermined object Transmitting to a first fiber, performing a first process on the object in the first fiber, and transmitting the first processing completion signal to a second fiber, to the object in the second fiber Performing a second process for the second engine, transmitting the second process completion signal to the game engine, and the game engine rendering the object according to the first and the second process completion signals, The first and second fibers maintain predetermined state variables for the first and second processing according to the first and second fibers, respectively. And that is characterized.

파이버는 마이크로 소프트사에서 개발된 프로세싱 방식으로서, DOS시절부터 Micro-Thread라는 별명으로 불려지며 사용되던 테크닉에 기반을 둔다. 이는 어셈블리함수를 통해 함수간 호출 스택을 저장/복원하는 테크닉을 통해서 각각의 프로그래머가 직접 구현해서 사용하던 것이다. 이러한 기능을 Windows OS에 마이크로 소프트사가 표준적으로 구현하고 탑재하여 파이버(Fiber)라 명명하게 되었다. 참고로 파이버는 아래와 같은 순서로 사용한다.Fiber, a processing method developed by Microsoft, is based on a technique that has been used under the nickname Micro-Thread since the DOS era. This was implemented by each programmer through the technique of saving / restore of the call stack between functions through assembly functions. Microsoft has implemented this feature in Windows OS as a standard and is called Fiber. For reference, fiber is used in the following order.

1. CreateFiber로 필요한 수만큼 파이버객체를 생성1. Create as many fiber objects as you need with CreateFiber

2. 각 파이버의 등록함수를 수행 후 SwitchToFiber로 다음 파이버로 수행 권한을 넘김2. After executing the registration function of each fiber, transfer the execution right to the next fiber with SwitchToFiber.

3. 작업 완료된 파이버를 DeleteFiber를 통해 제거3. Remove the completed fiber through DeleteFiber

즉, 파이버를 이용한 방식은 스레드의 효과를 가지지만 실제 스레드가 아니기에 이러한 중복 참조/설정의 문제가 발생하지 않는다.In other words, the fiber-based method has a thread effect, but since it is not a real thread, such a duplicate reference / setting problem does not occur.

이하, 첨부된 도면을 참조하여 본 발명에 따른 게임 엔진에서 파이버를 이용한 오브젝트 처리 방법에 대하여 상세히 설명한다.Hereinafter, an object processing method using fibers in a game engine according to the present invention will be described in detail with reference to the accompanying drawings.

도 2는 본 발명에 따른 게임 엔진이 파이버와 연동하여 오브젝트의 처리 동작을 수행하는 흐름을 도시한 흐름도이다.2 is a flowchart illustrating a flow in which a game engine according to the present invention performs an object processing operation in association with a fiber.

도 2를 참조하면, 본 발명에 따른 게임 엔진은 단계(201) 게임의 구동에 필요한 소정의 루틴을 진행한다. 상기 루틴의 처리 도중 게임 어플리케이션의 특성상 소정의 제1 처리를 수행하기 위하여 게임 엔진에서 제1 파이버로 소정의 오브젝트의 제1 처리를 위한 처리 명령 신호를 전송한다(단계(202)). 상기 제1 처리 명령 신호는 몬스터 및 총알 등 특정 오브젝트를 상기 게임의 구동에 포함시키거나 상기 오브젝트의 AI처리 또는 오브젝트의 동작에 따른 순차 처리 등의 게임의 구동에 필요한 소정의 루틴의 구동 명령 신호를 포함한다. 이는 게임 엔진에서 특정 오브젝트의 처리 동작에 대한 수행 권한(제어권)을 제1 파이버로 전달하는 것이다.2, the game engine according to the present invention proceeds to a predetermined routine required for driving the game in step 201. During the processing of the routine, in order to perform the predetermined first process due to the characteristics of the game application, the game engine transmits a process instruction signal for the first process of the predetermined object to the first fiber (step 202). The first processing command signal includes a driving command signal of a predetermined routine necessary for including a specific object such as a monster and a bullet in the driving of the game, or for driving the game such as AI processing of the object or sequential processing according to the operation of the object. Include. This is to transfer the execution right (control right) for the processing operation of the specific object to the first fiber in the game engine.

단계(203)에서, 제1 파이버는 상기 게임 엔진으로부터 수신한 상기 처리 명령 신호에 따라 제1 처리를 수행하고, 상기 제1 처리에 대한 처리 결과 데이터를 상기 제1 파이버에 따른 제1 상태 변수에 저장한다. 상기 제1 상태 변수는 종래 스레드를 통한 게임 구동 시 게임 엔진이 유지하는 전역 변수와 유사하며, 스택(stack) 형태의 지역 변수의 특성을 갖는다. 즉, 제1 파이버는 상기 제1 처리를 완료하고 상기 처리 명령 신호를 다른 파이버로 전달한 경우에도 상기 제1 처리에 대한 처리 결과 데이터를 계속 유지할 수 있다.In step 203, a first fiber performs a first process according to the process command signal received from the game engine, and processes the process result data for the first process into a first state variable according to the first fiber. Save it. The first state variable is similar to a global variable maintained by the game engine when a game is run through a conventional thread, and has a stack type local variable. That is, even when the first fiber completes the first processing and transmits the processing command signal to another fiber, the first fiber may maintain the processing result data for the first processing.

상기 제1 처리를 수행한 상기 제1 파이버는 상기 제1 처리 완료 신호(제어권)를 제2 파이버로 전달한다(단계(204)). 이 때, 제1 파이버는 자신이 수행한 제1 처리에 대한 처리 결과 데이터를 상기 제1 상태 변수에 유지한 후 슬립 모드로서 동작한다. 상기 슬립 모드는 상기 제1 파이버에서 상기 제1 처리에 대한 처리 결과 데이터를 상기 제1 파이버 내에 유지하면서 슬립모드(sleep mode)로 전환한 후 상기 제2 파이버로 상기 제2 처리에 대한 제1 처리 완료 신호를 넘겨주는 것이다. 일례로, 제1 파이버는 소정의 인터럽트 신호 등의 제어 신호에 대하여만 수신 대기 상태를 유지하고, 상기 처리 결과 데이터를 유지한 후 대기한다.The first fiber that has performed the first process transmits the first processing completion signal (control right) to a second fiber (step 204). At this time, the first fiber operates as a sleep mode after maintaining the processing result data for the first processing performed by the first fiber in the first state variable. The sleep mode is a first process for the second process with the second fiber after switching to a sleep mode while maintaining the processing result data for the first process in the first fiber in the first fiber. To pass the completion signal. For example, the first fiber maintains a reception wait state only for a control signal such as a predetermined interrupt signal, and waits after maintaining the processing result data.

상기 제2 파이버는 사전에 게임 어플리케이션에 기록된 처리 동작에 따라 제2 처리를 수행한다(단계(205)). 상기 처리 동작은 상기 게임 어플리케이션의 제작자 또는 관계자에 의하여 사전에 기록된 코딩이며, 상기 처리 동작에 따라 게임이 구동된다. 이러한 처리 동작은 게임 어플리케이션마다 다를 수 있으며, 본 발명에 따른 게임 엔진 및 각각의 파이버는 게임 어플리케이션에서 제공되는 상기 처리 동작을 확인하여 각각의 파이버로 상기 처리 동작의 수행을 할당한다. 이로써, 본 발명에 따른 파이버를 이용한 게임 엔진은 다양한 종류의 게임 어플리케이션에 그대로 적용될 수 있으며, 따라서 게임 서비스와 관련된 당업자에게 범용화된 게임 엔진으로 제공될 수 있다.The second fiber performs a second process according to a processing operation previously recorded in the game application (step 205). The processing operation is coding previously recorded by the producer or the person concerned of the game application, and the game is driven according to the processing operation. This processing operation may be different for each game application, and the game engine and each fiber according to the present invention identify the processing operation provided by the game application and allocate performance of the processing operation to each fiber. Thus, the game engine using the fiber according to the present invention can be applied to various kinds of game applications as it is, and thus can be provided as a generalized game engine to those skilled in the art related to game services.

상기 제2 처리를 수행한 제2 파이버는 상기 제1 파이버와 동일하게 처리 결과 데이터를 제2 상태 변수에 저장하고 제2 처리 완료 신호(제어권)를 제3 파이버로 전달하여 슬립 모드로 전환한다(단계(206)). 도 2에서는 상기 제1 파이버, 상기 제2 파이버, 및 상기 제3 파이버의 일례를 통해 본 발명에 따른 게임 엔진에서 파이버를 이용한 오브젝트 처리 방법에 대하여 설명하나, 이는 파이버의 개수가 변경되어도 그대로 적용될 수 있음은 자명한 일이다.After performing the second processing, the second fiber stores the processing result data in the second state variable in the same manner as the first fiber, and transfers the second processing completion signal (control right) to the third fiber to switch to the sleep mode ( Step 206). In FIG. 2, the object processing method using the fiber in the game engine according to the present invention will be described with an example of the first fiber, the second fiber, and the third fiber, but this may be applied even if the number of fibers is changed. It is self-evident.

제2 처리 완료 신호를 전달 받은 상기 제2 파이버는 사전에 게임 어플리케이션에 기록된 처리 동작에 따라 제3 처리를 수행한다(단계(207)). 제3 처리를 완료한 제3 파이버는 제3 처리 완료 신호(제어권)를 상기 게임 엔진으로 반환하고, 슬립 모드로 전환한다(단계(208)).The second fiber, which has received the second processing completion signal, performs the third processing according to the processing operation previously recorded in the game application (step 207). After completing the third processing, the third fiber returns a third processing completion signal (control right) to the game engine and switches to the sleep mode (step 208).

본 발명의 일실시예에 따른 제1 내지 제3 처리를 수행하기 위한 함수는 상기 게임 어플리케이션에서 유지되며, 상기 제1 내지 제3 파이버는 상기 제1 내지 제3 처리를 수행하기 위하여 상기 게임 어플리케이션으로 함수를 전달 받는다. 즉, 상기 제1 및 상기 제2 파이버는 상기 함수를 참조하여 상기 제1 및 상기 제2 처리에 따른 프로세스 루틴을 수행하며, 제1 내지 제3 파이버는 오브젝트의 처리를 수행하기 위하여 게임 엔진에서 유지되는 함수를 호출할 수 있다.A function for performing first to third processes according to an embodiment of the present invention is maintained in the game application, and the first to third fibers are sent to the game application to perform the first to third processes. Pass a function That is, the first and second fibers perform a process routine according to the first and second processing with reference to the function, and the first to third fibers are maintained in a game engine to perform processing of an object. Function can be called.

게임 엔진은 상기 제3 파이버로부터 제3 처리 완료 신호를 전달 받아, 제1 파이버로 처리 명령 신호를 전달하기 이전의 렌더링을 이어 수행한다(단계(209)). 이 때, 게임 엔진은 오브젝트의 렌더링에 따른 소정의 루틴을 수행할 수 있다. 게 임 엔진은 소정의 오브젝트를 표현하기 위하여, 게임 어플리케이션으로부터 상기 오브젝트에 대한 렌더링 명령을 전달받는다. 상기 렌더링 명령은 오브젝트의 속성으로서, 질감 정보, 밝기 수준 정보, 원근 정보, 및 오브젝트의 종류 등의 정보를 포함하고, 상기 게임 엔진은 상기 렌더링 명령에 기초하여 상기 오브젝트의 렌더링을 수행한다.The game engine receives the third processing completion signal from the third fiber and continues rendering before transmitting the processing command signal to the first fiber (step 209). At this time, the game engine may perform a predetermined routine according to the rendering of the object. The game engine receives a rendering command for the object from a game application in order to represent a certain object. The rendering command is an attribute of an object, and includes information such as texture information, brightness level information, perspective information, type of object, and the like, and the game engine performs rendering of the object based on the rendering command.

본 발명의 일실시예에 따른 상기 오브젝트는 제1 오브젝트 및 제2 오브젝트를 포함하고, 각 오브젝트의 렌더링은 제1 파이버 또는 제2 파이버에서 수행될 수 있다. 즉, 뷰(view)에 묘화되는 오브젝트가 두 개에 상기 제1 처리는 상기 게임 엔진에서 랜더링하는 단일 뷰에 포함된 상기 제1 오브젝트에 대한 렌더링 처리이고, 상기 제2 처리는 상기 뷰에 포함된 상기 제2 오브젝트에 대한 렌더링 처리이다. 일례로, 뷰에 묘화되는 오브젝트가 사과와 나무가 있는 경우에 상기 제1 파이버에서 수행하는 제1 처리는 상기 사과에 대한 렌더링 처리이고, 상기 제2 파이버에서 수행하는 제2 처리는 상기 나무에 대한 렌더링 처리일 수 있다. 이 때, 상기 게임 엔진은 상기 제1 처리 및 상기 제2 처리에 대해 소정의 우선 순위에 따라 상기 제1 오브젝트 및 상기 제2 오브젝트의 렌더링 처리 순서를 결정한다. 상기 우선 순위는 게임 어플리케이션의 제작자 등 게임과 관련한 관리자가 사전에 설정한 소정의 우선 순위 룰(rull)에 의하여 상기 렌더링 순서를 결정할 수 있다.The object according to an embodiment of the present invention may include a first object and a second object, and the rendering of each object may be performed in the first fiber or the second fiber. That is, the first process is a rendering process for the first object included in a single view rendered by the game engine, and the second process is included in the view when two objects are drawn in the view. Rendering processing for the second object. For example, when the object drawn in the view includes apples and trees, the first process performed by the first fiber is a rendering process for the apples, and the second process performed by the second fiber is performed on the tree. It may be a rendering process. At this time, the game engine determines the rendering processing order of the first object and the second object according to a predetermined priority with respect to the first processing and the second processing. The priority may be determined by the rendering order according to a predetermined priority rule set in advance by an administrator related to the game, such as the creator of a game application.

단계(210)에서, 상기 게임 엔진은 게임의 구동에 필요한 소정의 루틴을 진행한다. 게임 엔진은 오브젝트에 소정의 처리가 필요한 경우, 상기 게임 엔진은 제1 파이버로 제어권을 넘기고(단계(211)), 제1 파이버는 게임 어플리케이션에 유지되 는 함수를 참조하여 제1 처리를 수행하며, 상기 제어권을 제2 파이버로 전달하는 등, 단계(201) 내지 단계(208)에 따른 처리 동작을 수행한다. 또한, 이 때, 제1 파이버에서 유지되는 제1 상태 변수를 처리 결과 데이터의 저장 시간으로 구분하여 세분화할 수 있다. 즉, 가장 먼저 저장된 처리 결과 데이터를 제1-1 상태 변수, 다음으로 저장된 처리 결과 데이터를 제1-2 상태 변수 등으로 유지할 수 있다.In step 210, the game engine goes through a predetermined routine required to drive the game. When the game engine needs a certain process for the object, the game engine transfers control to the first fiber (step 211), and the first fiber performs the first process by referring to a function maintained in the game application. The processing operation according to steps 201 to 208 is performed, such as transferring the control right to the second fiber. In this case, the first state variable held in the first fiber may be divided into storage times of processing result data and subdivided. That is, the first stored processing result data may be maintained as the first-first state variable, and the next stored processing result data may be maintained as the first-second state variable.

도 3은 본 발명에 따른 게임 엔진에서 파이버를 이용한 오브젝트 처리 방법을 수행하는 데 채용될 수 있는 범용 컴퓨터 장치의 내부 블록도이다.3 is an internal block diagram of a general purpose computer device that may be employed to perform a method for processing an object using fibers in a game engine according to the present invention.

본 발명의 실시예들은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독 가능 매체를 포함한다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.Embodiments of the invention include a computer readable medium containing program instructions for performing various computer-implemented operations. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical recording media such as CD-ROMs, DVDs, magnetic-optical media such as floppy disks, and ROM, RAM, flash memory, and the like. Hardware devices specifically configured to store and execute the same program instructions are included. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.

컴퓨터 장치(300)는 램(RAM: Random Access Memory)(320)과 롬(ROM: Read Only Memory)(330)을 포함하는 주기억장치와 연결되는 하나 이상의 프로세서(310)를 포함한다. 프로세서(310)는 중앙처리장치(CPU)로 불리기도 한다. 본 기술분야에서 널리 알려져 있는 바와 같이, 롬(330)은 데이터(data)와 명령(instruction)을 단방향성으로 CPU에 전송하는 역할을 하며, 램(320)은 통상적으로 데이터와 명령을 양방향성으로 전송하는 데 사용된다. 램(320) 및 롬(330)은 컴퓨터 판독 가능 매체의 어떠한 적절한 형태를 포함할 수 있다. 대용량 기억장치(Mass Storage)(340)는 양방향성으로 프로세서(310)와 연결되어 추가적인 데이터 저장 능력을 제공하며, 상기된 컴퓨터 판독 가능 기록 매체 중 어떠한 것일 수 있다. 대용량 기억장치(340)는 프로그램, 데이터 등을 저장하는데 사용되며, 통상적으로 주기억장치보다 속도가 느린 하드 디스크와 같은 보조기억장치이다. CD 롬(360)과 같은 특정 대용량 기억장치가 사용될 수도 있다. 프로세서(310)는 비디오 모니터, 트랙볼, 마우스, 키보드, 마이크로폰, 터치스크린 형 디스플레이, 카드 판독기, 자기 또는 종이 테이프 판독기, 음성 또는 필기 인식기, 조이스틱, 또는 기타 공지된 컴퓨터 입출력장치와 같은 하나 이상의 입출력 인터페이스(350)와 연결된다. 마지막으로, 프로세서(310)는 네트워크 인터페이스(370)를 통하여 유선 또는 무선 통신 네트워크에 연결될 수 있다. 이러한 네트워크 연결을 통하여 상기된 방법의 절차를 수행할 수 있다. 상기된 장치 및 도구는 컴퓨터 하드웨어 및 소프트웨어 기술 분야의 당업자에게 잘 알려져 있다.Computer device 300 includes one or more processors 310 coupled with a main memory device including random access memory (RAM) 320 and read only memory (ROM) 330. The processor 310 is also called a central processing unit (CPU). As is well known in the art, the ROM 330 serves to transfer data and instructions to the CPU unidirectionally, and the RAM 320 typically transmits data and instructions bidirectionally. Used to. RAM 320 and ROM 330 may include any suitable form of computer readable media. Mass storage 340 is bidirectionally coupled to processor 310 to provide additional data storage capability, and may be any of the computer readable recording media described above. The mass storage device 340 is used to store programs, data, and the like, and is a secondary memory device such as a hard disk which is generally slower than the main memory device. Certain mass storage devices such as CD ROM 360 may also be used. The processor 310 may include one or more input / output interfaces, such as video monitors, trackballs, mice, keyboards, microphones, touchscreen displays, card readers, magnetic or paper tape readers, voice or handwriting readers, joysticks, or other known computer input / output devices. Is connected to 350. Finally, the processor 310 may be connected to a wired or wireless communication network through the network interface 370. Through this network connection, the procedure of the method described above can be performed. The apparatus and tools described above are well known to those skilled in the computer hardware and software arts.

상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프 트웨어 모듈로서 작동하도록 구성될 수 있다.The hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention.

지금까지 본 발명에 따른 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서는 여러 가지 변형이 가능함은 물론이다. 그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.While specific embodiments of the present invention have been described so far, various modifications are possible without departing from the scope of the present invention. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be defined not only by the claims below, but also by those equivalent to the claims.

본 발명에 따르면, 게임 엔진에서 오브젝트의 동작을 파이버(fiber) 방식의 처리를 통해 수행함으로써 게임 엔진에서 낭비되는 메모리를 최소화하고 프로그램의 제어를 보다 간편하게 수행할 수 있다.According to the present invention, the operation of the object in the game engine through the fiber (fiber) processing can minimize the memory wasted in the game engine and can more easily control the program.

본 발명에 따르면, 게임 엔진의 기저레벨부터 파이버 방식을 통해 게임 내 로딩, AI(Artificial Intelligence), 및 순차 처리를 포함하는 처리 동작을 수행함으로써 게임 어플리케이션의 개발 효율을 증가시킬 수 있다.According to the present invention, the development efficiency of a game application can be increased by performing processing operations including in-game loading, artificial intelligence (AI), and sequential processing through a fiber method from the base level of the game engine.

본 발명에 따르면, 파이버가 각각의 처리 결과에 따른 처리 결과 데이터를 상태 변수에 유지하고 필요 시 이를 참조하므로, 게임 엔진에 있어서, 스레드의 참조로 인한 시스템 부하의 증가 및 처리 속도의 감소를 원천적으로 예방할 수 있다.According to the present invention, since the fiber maintains the processing result data according to each processing result in a state variable and refers to it when necessary, in the game engine, the increase in the system load and the processing speed due to the reference of the thread are inherently inherent It can be prevented.

Claims (6)

게임 엔진에서 오브젝트의 동작을 처리하기 위한 방법에 있어서,In the method for processing the operation of the object in the game engine, 게임 엔진에서 소정의 오브젝트의 제1 처리를 위한 처리 명령 신호를 제1 파이버(fiber)로 전송하는 단계;Transmitting, by a game engine, a processing command signal for first processing of a predetermined object to a first fiber; 상기 제1 파이버에서 상기 오브젝트에 대한 제1 처리를 수행하고, 제2 파이버로 상기 제1 처리 완료 신호를 전송하는 단계;Performing a first processing on the object in the first fiber and transmitting the first processing completion signal to a second fiber; 상기 제2 파이버에서 상기 오브젝트에 대한 제2 처리를 수행하고, 상기 게임 엔진으로 상기 제2 처리 완료 신호를 전송하는 단계; 및Performing a second process on the object in the second fiber and transmitting the second process completion signal to the game engine; And 상기 게임 엔진은 상기 제1 및 상기 제2 처리 완료 신호에 따라 상기 오브젝트를 렌더링 하는 단계The game engine rendering the object according to the first and second processing completion signals 를 포함하고,Including, 상기 제1 및 상기 제2 파이버는 상기 제1 및 상기 제2 처리를 위한 소정의 상태 변수를 상기 제1 및 상기 제2 파이버에 따라 각각 유지하는 것을 특징으로 하는 게임 엔진의 오브젝트 동작 처리 방법.And the first and second fibers maintain predetermined state variables for the first and second processing according to the first and second fibers, respectively. 제1항에 있어서,The method of claim 1, 상기 제1 및 상기 제2 처리를 수행하기 위한 하나 이상의 함수는 소정의 게임 어플리케이션에 유지되고, 상기 제1 및 상기 제2 파이버는 상기 함수를 참조하여 상기 제1 및 상기 제2 처리에 따른 프로세스 루틴을 수행하는 것을 특징으로 하 는 게임 엔진의 오브젝트 동작 처리 방법.One or more functions for performing the first and second processing are maintained in a given game application, and the first and second fibers are referenced to the function to process routines according to the first and second processing. The object motion processing method of the game engine, characterized in that for performing. 제1항에 있어서,The method of claim 1, 상기 제2 파이버로 상기 제1 처리 완료 신호를 전송하는 상기 단계는,The step of transmitting the first processing completion signal to the second fiber, 상기 제1 파이버에서 상기 제1 처리에 대한 처리 결과 데이터를 상기 제1 파이버 내에 유지하면서 슬립모드(sleep mode)로 전환한 후 상기 제2 파이버로 상기 제2 처리에 대한 제어권을 넘겨주는 것임을 특징으로 하는 게임 엔진의 오브젝트 동작 처리 방법.Characterized in that the first fiber transfers the control right for the second process to the second fiber after switching to the sleep mode while maintaining the processing result data for the first process in the first fiber. An object motion processing method of a game engine. 제1항에 있어서,The method of claim 1, 상기 오브젝트는 제1 오브젝트 및 제2 오브젝트를 포함하고,The object includes a first object and a second object, 상기 제1 처리는 상기 게임 엔진에서 랜더링하는 단일 뷰에 포함된 상기 제1 오브젝트에 대한 처리이고, 상기 제2 처리는 상기 뷰에 포함된 상기 제2 오브젝트에 대한 처리인 것을 특징으로 하는 게임 엔진의 오브젝트 동작 처리 방법.Wherein the first processing is processing for the first object included in a single view rendered by the game engine, and the second processing is processing for the second object included in the view. How to handle object behavior. 제4항에 있어서,The method of claim 4, wherein 상기 게임 엔진은 상기 제1 처리 및 상기 제2 처리에 대해 소정의 우선 순위에 따라 상기 제1 오브젝트 및 상기 제2 오브젝트의 랜더링 순서를 결정하는 것을 특징으로 하는 게임 엔진의 오브젝트 처리 방법.And the game engine determines a rendering order of the first object and the second object according to a predetermined priority with respect to the first process and the second process. 제1항 내지 제5항 중 어느 한 항의 방법을 컴퓨터에서 실행하기 위한 프로그램을 기록하는 컴퓨터 판독 가능한 기록매체.A computer-readable recording medium for recording a program for executing the method of any one of claims 1 to 5 on a computer.
KR1020050059233A 2005-07-01 2005-07-01 Object management method by using fiber in a game-engine KR100692211B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050059233A KR100692211B1 (en) 2005-07-01 2005-07-01 Object management method by using fiber in a game-engine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050059233A KR100692211B1 (en) 2005-07-01 2005-07-01 Object management method by using fiber in a game-engine

Publications (2)

Publication Number Publication Date
KR20070003331A KR20070003331A (en) 2007-01-05
KR100692211B1 true KR100692211B1 (en) 2007-03-09

Family

ID=37870198

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050059233A KR100692211B1 (en) 2005-07-01 2005-07-01 Object management method by using fiber in a game-engine

Country Status (1)

Country Link
KR (1) KR100692211B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160045545A (en) 2014-10-17 2016-04-27 엘지전자 주식회사 Refrigerator

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050034162A (en) * 2003-10-08 2005-04-14 엘지전자 주식회사 Java emulation method for mobile communication device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050034162A (en) * 2003-10-08 2005-04-14 엘지전자 주식회사 Java emulation method for mobile communication device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
1020050034162

Also Published As

Publication number Publication date
KR20070003331A (en) 2007-01-05

Similar Documents

Publication Publication Date Title
US9128736B1 (en) Common scheduling and synchronization primitives
JP2520543B2 (en) Method and system for managing program execution
RU2286595C2 (en) Method for realization of computer multi-task system through virtual organization of thread processing
US5632032A (en) Cross address space thread control in a multithreaded environment
JP2692609B2 (en) Multitask program debugging method and apparatus
CN106462395B (en) Thread in multiline procedure processor framework waits
US5748959A (en) Method of conducting asynchronous distributed collective operations
CN101556545B (en) Method for realizing process support, device and multithreading system
US7543295B2 (en) Method for enhancing efficiency in mutual exclusion
US20020046230A1 (en) Method for scheduling thread execution on a limited number of operating system threads
JP2561801B2 (en) Method and system for managing process scheduling
WO2000029937A2 (en) Computer system, computer-readable storage medium and method of operating same, and method of operating that system
KR20040086214A (en) Enhanced runtime hosting
JPH11237989A (en) Method and device for executing byte code optimization during pause
US6769121B1 (en) Program execution device and process migrating method thereof and storage medium which stores process migration control program
US7275183B2 (en) Method of restoring processes within process domain
KR20200014378A (en) Job management
US7389507B2 (en) Operating-system-independent modular programming method for robust just-in-time response to multiple asynchronous data streams
US7032099B1 (en) Parallel processor, parallel processing method, and storing medium
US20040098722A1 (en) System, method, and computer program product for operating-system task management
KR100692211B1 (en) Object management method by using fiber in a game-engine
JP5678347B2 (en) IT system configuration method, computer program thereof, and IT system
US8359602B2 (en) Method and system for task switching with inline execution
US20030204639A1 (en) Task dispatch in priority pre-emptive real-time operating systems
CN114281529A (en) Distributed virtualized client operating system scheduling optimization method, system and terminal

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120130

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131224

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20151223

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20161227

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20181226

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20200102

Year of fee payment: 14