KR20030080218A - Integration of real-time data into a gaming application - Google Patents
Integration of real-time data into a gaming application Download PDFInfo
- Publication number
- KR20030080218A KR20030080218A KR10-2003-7010366A KR20037010366A KR20030080218A KR 20030080218 A KR20030080218 A KR 20030080218A KR 20037010366 A KR20037010366 A KR 20037010366A KR 20030080218 A KR20030080218 A KR 20030080218A
- Authority
- KR
- South Korea
- Prior art keywords
- aircraft
- data
- game
- real
- world
- Prior art date
Links
- 230000010354 integration Effects 0.000 title 1
- 238000000034 method Methods 0.000 claims description 179
- 230000008569 process Effects 0.000 claims description 151
- 230000004044 response Effects 0.000 claims description 34
- 230000008859 change Effects 0.000 claims description 29
- 238000004088 simulation Methods 0.000 claims description 27
- 230000007613 environmental effect Effects 0.000 claims description 22
- 230000009471 action Effects 0.000 abstract description 4
- 238000004891 communication Methods 0.000 description 38
- 230000000694 effects Effects 0.000 description 19
- 238000009877 rendering Methods 0.000 description 19
- 238000004422 calculation algorithm Methods 0.000 description 16
- 238000004364 calculation method Methods 0.000 description 14
- 239000013598 vector Substances 0.000 description 14
- 238000010586 diagram Methods 0.000 description 10
- 238000009825 accumulation Methods 0.000 description 8
- 238000013459 approach Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 4
- 238000000354 decomposition reaction Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 238000004090 dissolution Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000001556 precipitation Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000010792 warming Methods 0.000 description 2
- 241000251468 Actinopterygii Species 0.000 description 1
- 241001620634 Roger Species 0.000 description 1
- 241000009298 Trigla lyra Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009975 flexible effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000002844 melting Methods 0.000 description 1
- 230000008018 melting Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012876 topography Methods 0.000 description 1
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
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B9/00—Simulators for teaching or training purposes
-
- 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
- A63F13/20—Input arrangements for video game devices
- A63F13/21—Input arrangements for video game devices characterised by their sensors, purposes or types
- A63F13/216—Input arrangements for video game devices characterised by their sensors, purposes or types using geographical information, e.g. location of the game device or player using GPS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/401—Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference
- H04L65/4015—Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference where at least one of the additional parallel sessions is real time or time sensitive, e.g. white board sharing, collaboration or spawning of a subconference
-
- 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
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
-
- 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
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
- A63F13/65—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor automatically by game devices or servers from real world data, e.g. measurement in live racing competition
-
- 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
- A63F13/80—Special adaptations for executing a specific game genre or game mode
- A63F13/803—Driving vehicles or craft, e.g. cars, airplanes, ships, robots or tanks
-
- 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
- A63F2300/00—Features 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/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
-
- 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
- A63F2300/00—Features 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/60—Methods for processing data by generating or executing the game program
- A63F2300/69—Involving elements of the real world in the game world, e.g. measurement in live races, real video
-
- 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
- A63F2300/00—Features 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/80—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
- A63F2300/8017—Driving on land or water; Flying
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Educational Administration (AREA)
- Educational Technology (AREA)
- Tourism & Hospitality (AREA)
- Economics (AREA)
- Human Resources & Organizations (AREA)
- Environmental & Geological Engineering (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Health & Medical Sciences (AREA)
- Radar, Positioning & Navigation (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Processing Or Creating Images (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
실세계 데이터는 게임 및 플레이어의 액션에 영향을 주는 게밍 경험으로 통합된다. 게임 모듈은 장소에 관련한 실세계 데이터로부터 게임 요소를 만든다. 날씨 조건은 세계에서 다른 관측 장소에 대한 날씨 정보를 근거로 시뮬레이트되고, 교통 조건도 마찬가지로 시뮬레이트된다. 비행 시뮬레이터 게임에서, 게임은 플레이어의 항공기가 세계를 네비게이트하는 것처럼 실제 항공기와 실제 날씨 조건을 통합한다.Real-world data is integrated into gaming experiences that affect game and player actions. The game module creates game elements from real world data related to the place. Weather conditions are simulated based on weather information for other observation sites in the world, and traffic conditions are likewise simulated. In a flight simulator game, the game integrates real aircraft and real weather conditions as if the player's aircraft navigates the world.
Description
종래 컴퓨터 게밍 상항에서, 플레이어는 애플리케이션 개발자에 의해 운영된 폐쇄 환경내에 깊이 빠져든다. 실세계 위치를 시뮬레이팅하는 게임들에서도, 환경 조건, 액터 및 옵젝트는 미리정해져 있고 단지 예정 파라미터 또는 알고리즘에 따라서만 변하거나, 기껏해야 가상 랜덤 변화를 사용할 뿐이다. 플레이어의 경험은 애플리케이션 개발자의 구상력과 플레이어 자신의 선택의 경계에 국한된다. 종래 게임 구성은 단지 게임이 실행되어질 알려진 조건을 이용해서 설계되어 있고, 실세계의 새로운 또는 랜덤하게 변하는 요소를 고려해서 설계되어 있지 않다.In conventional computer gaming, players are deeply immersed in a closed environment run by an application developer. Even in games simulating real world locations, environmental conditions, actors, and objects are predefined and only vary according to predetermined parameters or algorithms, or at most use virtual random changes. The player's experience is limited to the boundaries of the application developer's thinking and the player's own choices. Conventional game configurations are designed using only the known conditions under which the game will be executed, and are not designed to account for new or randomly changing elements of the real world.
종래 게임은 플레이어에게 실세계 조건들이 제공하는 가변성과 자극을 주지 못한다. 예를 들어, 비행 시뮬레이터 게임에서, 플레이어는 통상적으로 여러 다른 날씨 조건, 교통 조건 및 게임 환경의 다른 특성을 선택한다. 이런 애플리케이션은 이들 파라미터에 따르는 시뮬레이트 환경을 만든다. 예를 들어, 종래의 시뮬레이터는 외부 데이터를 "시뮬레이트"할 수 있지만, 이 데이터는 실세계의 현 날씨 또는교통 조건을 반영하지 못한다. 종래 비행 시뮬레이터 애드 온(add-ons)은 또한 게임을 시작하기 전에 구름 데이터(cloud data)를 업데이트 시켜서, 비행 시뮬레이터가 업데이트 시간에 실세계 조건을 반영하는 구름 범위를 제공할 수 있게 할 수 있다. 그러나, 게임내의 환경은 한번의, 사전 실행, 시간만 업데이트 되므로, 게임동안 변하지 않으며 실시간 데이터를 게임 플레이에 반영할 수 없다. 이와 대조적으로, 실세계에서는, 날씨가 갑작스럽게 그리고 예상치 못하게 변할 수 있고, 항공 교통이 예상치 못하게 안 좋고, 기계 고장이 일어날 수 있고, 공항이 폐쇄될 수 있고, 비행기가 때때로 추락할 수 있으므로, 실제 피일롯은 이들 조건들을 적용해야 한다. 그러나, 이들 사건중 아무것도 통상적인 게임에서는 모델화되어 있지 않거나, 또는 이들이 모델화되어도, 약간의 비-랜덤 패턴으로 발생되거나 사용자에 의해 선택시만 일어난다. 이들 조건들이 가상 랜덤 패턴으로 일어날 지라도, 플레이어는 신속히 가능한 조건의 범위를 배우며, 여전히 플레이어가 비행하고 있는 조건이 플레이어의 즐거움 레벨의 큰 차이를 제공할 수 있는 "실제(real)"이다는 흥분을 주지 못한다.Conventional games do not give players the variability and stimulus that real-world conditions provide. For example, in a flight simulator game, players typically select different weather conditions, traffic conditions, and other characteristics of the game environment. Such an application creates a simulated environment that follows these parameters. For example, a conventional simulator can "simulate" external data, but this data does not reflect current weather or traffic conditions in the real world. Conventional flight simulator add-ons can also update the cloud data before starting the game, allowing the flight simulator to provide cloud coverage reflecting real world conditions at update time. However, the in-game environment is updated only once, pre-executed, and time, so it does not change during the game and real-time data cannot be reflected in game play. In contrast, in the real world, the weather can change suddenly and unexpectedly, air traffic can be unexpectedly bad, machine breakdowns can occur, airports can be closed, and planes can sometimes crash, which is why Ilot must apply these conditions. However, none of these events are modeled in a typical game, or even if they are modeled, they occur in some non-random pattern or only upon selection by the user. Even if these conditions occur in a virtual random pattern, the player quickly learns the range of possible conditions, and still feels the excitement that the condition in which the player is flying is "real" which can provide a large difference in the player's level of enjoyment. I can't give it.
따라서, 플레이어에게 실세계 경험의 사실 시뮬레이션을 제공하고, 이들이 일어날 때 현실 실세계 이벤트에 참가하는 추가의 흥분을 제공한다면, 실세계 이벤트, 환경, 액터 및 옵젝트를 게밍 동안 통합할 수 있는 새로운 게임 구성을 필요로 한다.Thus, if you provide players with a true simulation of real-world experiences and provide additional excitement to participate in real-world events when they happen, you need a new game configuration that can incorporate real-world events, environments, actors, and objects during gaming. Shall be.
본 발명은 비디오 게임(electronic games), 특히 실세계 데이터를 게임 플레이를 시뮬레이트하는데 사용하는 게임에 관한 것이다.FIELD OF THE INVENTION The present invention relates to electronic games, in particular games that use real world data to simulate game play.
도 1은 본 발명에 따른 실시간 데이터를 이용하기 위한 시스템의 블록다이어그램.1 is a block diagram of a system for using real time data in accordance with the present invention.
도 2는 본 발명에 따른 게임 데이터 서버의 보다 상세한 블록다이어그램.2 is a more detailed block diagram of a game data server in accordance with the present invention.
도 3은 본 발명에 따른 게임 시스템의 블록다이어그램.3 is a block diagram of a game system in accordance with the present invention.
도 4는 본 발명에 다른 날씨 관리기의 블록다이어그램.4 is a block diagram of another weather manager of the present invention.
도 5는 본 발명에 따른 날씨 요소 종속의 블록다이어그램.5 is a block diagram of a weather component dependency in accordance with the present invention.
도 6은 본 발명에 따른 카메라 패스의 다이어그램.6 is a diagram of a camera path in accordance with the present invention.
도 7은 본 발명에 따른 장소에 의한 보간을 설명하는 다이어그램.7 is a diagram illustrating interpolation by place in accordance with the present invention.
도 8은 본 발명에 따른 구름 옵젝트 그리드의 다이어그램.8 is a diagram of a cloud object grid in accordance with the present invention.
도 9는 본 발명에 따른 교통 관리자 시스템의 블록다이어그램.9 is a block diagram of a traffic manager system in accordance with the present invention.
본 발명에 따라서, 실세계 정보는 게임에 제공된 가상 환경으로 통합된다.소프트웨어 생산의 실시예에서, 애플리케이션 모듈은 플레이어로부터 장소 선택을 수신한다. 장소 선택은 게임이 일어날 지리적 장소, 예를 들어 샌프란시스코를 선택한다. 그 다음에 애플리케이션은 실세계 정보를 검색한다. 실세계 정보는 게임의 특성에 따라서 다를 수 있다. 비행 시뮬레이터 게임에서, 실세계 정보는 구름 커버, 강우량, 바람, 안개와 같은 날씨 정보 뿐만 아니라 플레이어 근방의 다른 비행기의 위치, 다른 비행기의 변경된 루트와 공항 조건을 포함하는 교통 데이터를 포함한다. 선택된 장소에 대해서는, 그 때의 시간 동안 또는 그 근방의 시간에서의 정보가 필요하다. 실세계 정보를 수신한 후에, 애플리케이션 모듈은 실세계 정보에 응답해서 시뮬레이션된 실세계 구성물을 만든다. 예를 들어, 비행 시뮬레이터 게임에서, 구성물은 구름, 바람, 비 및 항공 교통을 포함할 수 있다. 예를 들어 구름은 실세계 데이터베이스에서 확인된 바와 같은 구름의 장소와 특성에 대응해서 가상 환경내에서 생성한다. 항공 교통, 즉 플레이어의 비행기 가까이에 날아가는 다른 비행기는 실세계 비행기의 실제 장소에 대응해서 만들어진다. 카 레이싱 실시예에 있어서, 시뮬레이트된 거리 상의 차량 교통은 대응하는 실세계 거리상의 실세계 차량 교통에 대응해서 만들어진다. 그러므로, 본 발명에 따라서 실세계를 플레이어에 대해서 시뮬레이트하여 플레이어에게 실세계의 고유의 예측할 수 없는 흥분을 제공한다.In accordance with the present invention, real-world information is integrated into the virtual environment provided in the game. In an embodiment of software production, the application module receives a place selection from the player. Place selection selects the geographic place where the game will take place, for example San Francisco. The application then retrieves real world information. Real world information may vary depending on the nature of the game. In a flight simulator game, real-world information includes not only weather information such as cloud cover, rainfall, wind and fog, but also traffic data including the location of other planes near the player, modified routes of other planes and airport conditions. For the selected place, information is needed for the time at or near that time. After receiving the real world information, the application module creates a simulated real world construct in response to the real world information. For example, in a flight simulator game, the composition may include clouds, wind, rain and air traffic. Clouds, for example, are created in a virtual environment corresponding to the location and characteristics of the clouds as identified in the real-world database. Air traffic, that is, another plane flying near the player's plane, is created corresponding to the actual location of the real-world plane. In a car racing embodiment, vehicle traffic on a simulated street is made corresponding to real world vehicle traffic on a corresponding real world street. Therefore, the real world is simulated with respect to the player in accordance with the present invention to provide the player with the inherent unpredictable excitement of the real world.
한 실시예에서, 애플리케이션 모듈은 마지막으로 검색되어진 이후에, 또는 플레이어가 새로운 장소로 이동되었다면, 장소에 대한 정보가 변경되었는지를 결정한다. 어느 경우든 변경이 되었다면, 시뮬레이트된 구성물은 정보에 대응해서 재생되거나, 시뮬레이트된 구성물은 보간 과정(interpolation procedure)에 대응해서 만들어진다. 이렇게 해서 실세계 정보가 연속적으로 이용될 수 없는 게임 환경에서도 실세계 정보가 사용될 수 있게 한다. 예를 들어, 현재로, 항공 교통 정보는 2 내지 3분 마다만 이용할 수 있으며, 그러므로 플레이어에 디스플레이된 교통은 실세계 정보 데이터베이스로 새로운 정보가 수신되기 전까지는, 이전 헤딩(heading) 및 비행 계획 정보를 근거해서 보간되어진다. 날씨 데이터는 매 장소마다 이용할 수 없으며, 그러므로, 날씨 데이터는 실세계 데이터가 관련이 없는 장소에 대해서 시뮬레이트된다. 추가로, 도시될 수 있는 모든 날씨 요소는 날씨 데이터베이스에 나타나지 않으며, 그러므로 이들 날씨 요소를 나타내려면 이용가능한 데이터로부터 추정해야 한다. 그러므로, 본 발명은 실세계 데이터를 플레이어와 대화할 수 있게 허용한다. 그러므로, 특정 날에 교통이 나쁘면, 플레이어는 나쁜 교통상황에서 비행해야 하고, 날씨가 나쁘면, 플레이어는 그의 기술을 사용해서 열악한 날씨 조건과 싸워야 한다. 실제 날씨 또는 교통에 대응해서 모든 것이 현재 선택 장소에서의 세계에서 일어난다. 그러므로, 시스템, 방법 및 애플리케이션은 플레이어의 진행중인 게임 경험을 얻도록 데이터베이스로 실세계 데이터를 통합하기 위해서 제공된다.In one embodiment, the application module determines whether information about the place has changed since the last time it was retrieved, or if the player was moved to a new place. In either case, the simulated construct is reproduced in response to the information, or the simulated construct is made in response to an interpolation procedure. This allows real world information to be used even in game environments where real world information cannot be used continuously. For example, at present, air traffic information is available only every two to three minutes, so traffic displayed on the player can be stored in the previous heading and flight plan information until new information is received into the real-world information database. Interpolated based on Weather data is not available at every location and therefore weather data is simulated for places where real world data is not relevant. In addition, all weather elements that may be shown do not appear in the weather database and therefore must be estimated from the available data to represent these weather elements. Therefore, the present invention allows real world data to be communicated with the player. Therefore, if the traffic is bad on a certain day, the player must fly in bad traffic conditions, and if the weather is bad, the player must use his skills to fight poor weather conditions. In response to actual weather or traffic, everything happens in the world at the current location of choice. Therefore, systems, methods, and applications are provided for integrating real-world data into a database to obtain a player's ongoing gaming experience.
여기의 설명이 본 발명의 내용을 설명하기 위한 예시적 실시예로서 비행 시뮬레이션 게임을 사용할지라도, 본 발명은 여기에 제한되지 않으며 쉽게 카 레이싱, 선박 레이싱, 사이클 레이싱, 스키 또는 야외 경기 게밍의 어느 다른 형태와 같은 다양한 게임으로 확장될 수 있다. 비행 시뮬레이터 실시예에 있어서, 게임에 통합되어지는 것이 유용한 두 개의 실세계 조건은 날씨와 항공 교통이다. 날씨와 항공 교통은 모두 제 3자에 의해 수집되어 공개적으로 접근가능한 데이터베이스로 이용가능하다. 데이터베이스는 전세계의 특정 장소("관찰 장소"로 언급함)에 대한 특정 날씨 조건에 대한 정보를 저장하고 장소, 항공기의 위치, 헤딩 및 형태를 포함하는 교통 정보를 저장한다. 본 발명은 이런 정보를 사용해서 본 발명에 따라서 만들어진 게임의 플레이어에 대해서 흥분적으로, 사실적이고 예상할 수 없는 게밍 경험을 할 수 있게 한다.Although the description herein uses a flight simulation game as an exemplary embodiment to illustrate the subject matter of the present invention, the present invention is not limited thereto and may be easily car racing, ship racing, cycle racing, skiing or any other game of outdoor game gaming. It can be extended to various games such as shapes. In flight simulator embodiments, two real-world conditions that are useful to integrate into the game are weather and air traffic. Weather and air traffic are both collected by third parties and made available as publicly accessible databases. The database stores information about specific weather conditions for certain places around the world (referred to as "observation places") and stores traffic information including the location, the location of the aircraft, the headings, and the form. The present invention uses this information to enable an exciting, realistic and unexpected gaming experience for the players of the game made in accordance with the present invention.
도 1을 참조하면, 게임 데이터 서버(108)는 교통 및 날씨 데이터제공자(100, 104) 시스템로부터 "실시간" 데이터를 연속적으로 수집한다. 요청시, 게임 데이터 서버(108)는 데이터를 게임(112, 116)과 플레이어(120, 124)에서 이용할 수 있게 허용한다. 데이터 제공자(100, 104)는 먼 거리에 위치되어 있고 통상적으로 인터넷 또는 다른 통신 수단(예를 들어, 인공위성 또는 임대 라인)을 통해서 접근된다. 데이터 제공자(100, 104)는 종래에 있던 것으로 월드(세계)에 관한 관측물(날씨, 항공기 교통 등)을 수집해서 엔코드(encode)하고, 이를 공지의 포맷 및 구조로 실시간(가능한 빨리 처리되어 이용할 수 있게)으로 이용할 수 있게 한다. 본 발명의 게임 데이터 서버(108)는 데이터에 접근해서 이 데이터를 데이터베이스 저장 영역으로 전달한다. 제공자(100, 104)로부터 게임 데이터 서버까지 "스냅숏(snapshot)" 데이터를 전송해서, 게임(112, 116)으로부터 데이터 억세스의 주요 로드가 게임과 게임 데이터 서버(108)사이에서 처리되고 게임과 제공자사이에서는 처리되지 않게 한다.Referring to FIG. 1, game data server 108 continuously collects “real time” data from traffic and weather data provider systems 100 and 104. Upon request, game data server 108 allows data to be available to games 112 and 116 and players 120 and 124. Data providers 100 and 104 are located at a distance and are typically accessed via the Internet or other communication means (e.g., satellite or rental lines). Data providers 100 and 104 collect and encode observations (weather, aircraft traffic, etc.) relating to the world as they were conventional, and then process them in real time (as soon as possible) in known formats and structures. Available). The game data server 108 of the present invention accesses the data and passes the data to the database storage area. By sending “snapshot” data from the provider 100, 104 to the game data server, a major load of data access from the games 112, 116 is handled between the game and the game data server 108 and associated with the game. Do not process between providers.
제공된 날씨 데이터의 한 예는 몇몇 고도에서의 온도, 풍향, 풍속, 구름 커버와 형태 및 강우 형태를 포함한다. 항공 교통의 예는 위치(고도와 위도), 속도, 헤딩, 표시등 및 지리적 영역(예, 미국)내의 각 항공기의 비행 계획일 수 있다. 데이터의 실시간 특성은 모니터되는 과정의 변화 속도와 업데이트에 이용가능한 주기에 관한 것이다. 날씨 데이터는 정상적으로 예를 들어, METAR 데이터베이스내의 물리적(사람에 의해) 또는 전자 수단에 의해서 업데이트되고, 한 시간에 한번 이용가능하며, 이것으로 날씨 조건의 변화의 정상 속도를 포착하기에 충분하다. 특별한 경우에(허리케인 폭풍 또는 매우 나쁜 날씨의 경우에), 날씨 데이터는 보다 더 종종 업데이트될 수 있다. 이런 관점에서, 실시간은 실세계내에서의 인식할 수 있는 변화 속도를 반영하도록, 한 시간에 한번 고려되거나, 필요시 종종 고려될 수 있다. 국내 항공 관제 시스템은 통상적으로 매 3분마다 교통 데이터를 업데이트시켜서 항공기의 위치, 헤딩 및 속도 변화를 포착한다. 이것은 항공기의 위치가 본 발명에 따라서 보간되어 항공기의 비행로의 사실적 시뮬레이션을 제공할 수 있게 허용하기에 충분할 정도로 매우 빠른 것이다.One example of the weather data provided includes temperature, wind direction, wind speed, cloud cover and shape, and rainfall type at some altitudes. Examples of air traffic may be location (altitude and latitude), speed, headings, lights and flight plans for each aircraft within a geographic area (eg, the United States). The real-time nature of the data relates to the rate of change of the process being monitored and the frequency available for updating. Weather data is normally updated by, for example, physical (by human) or electronic means in the METAR database and is available once an hour, which is sufficient to capture the normal rate of change in weather conditions. In special cases (in the case of hurricane storms or very bad weather), weather data can be updated even more often. In this regard, real time may be considered once an hour, or sometimes as needed, to reflect the perceived rate of change in the real world. Domestic air traffic control systems typically update traffic data every three minutes to capture aircraft position, heading and speed changes. This is very fast enough to allow the position of the aircraft to be interpolated in accordance with the present invention to provide a realistic simulation of the aircraft's flight path.
플레이어(120)가 게임(112)내의 게밍 유닛, 예를 들어, 항공기, 카 등을 제어하면, 게임(112)은 게임에 대한 사실적인 환경을 제공하기 위해서 필요에 따라서 게임 데이터 서버(108)로부터 데이터를 요청한다. 게임(112)에 의해 요청된 데이터는 플레이어(120)가 게임(112)내에서 버히클을 조정하는 방향에서의 날씨 보고서 또는 항공 교통과 같은 데이터를 포함한다. 그러므로, 게임(112)은 플레이어 게밍 유닛의 시간과 현재 장소를 근거한 데이터를 요청한다. 시간 정보는 명시적으로 또는 암시적으로 제공될 수 있다. 게임의 데이터 요청의 주기는 양호하게 제공자(100, 104)에 의해 유지되는 데이터베이스내의 데이터의 업데이트의 주기에 따른다. 이것으로 게임(112)이 월드에서 나타나는 실시간과 월드의 버히클을 가능한 가장 빠른 속도로 플레이어에 제공하도록 허용한다. 변경적으로, 요청은 비동시적으로 할 수 있고 많은 양의 데이터를 요청해서 보다 오랜 기간 동안에 사용할 수 있다. 게임 데이터 서버(108)는 게임(112)의 데이터 요청을 처리하고 게임(112)에 요청된 데이터를 게임(112)내의 렌더링(rendering) 및 시뮬레이션에 제공한다. 멀티 플레이어(124)는 다른 카피들의 게임(116)을 플레이할 수 있으며 플레이어(120)와 같거나 다른 세계의 지역에 대응하는 데이터를 위해서 게임 데이터 서버(108)에 접근할 수 있다. 더욱이, 제 2 플레이어(124)는 제 1플레이어(120)에 의해 플레이되어지는 게임(112)과는 완전히 다른 게임(116)(예를 들면, 카 레이싱 게임, 또는 풋볼 게임)을 플레이할 수 있다. 그러나, 다른 게임(116)은 제 1게임(112)과 같은 동일한 형태의 데이터(예를 들어, 날씨)를 요청할 수 있다. 본 발명의 구성물은 폭 넓게 해서, 다른 게임의 데이터 요구사항과 일치시킬 수 있다. 예를 들어, 날씨 보고서에 추가해서, 로드 레이싱 게임은 자동차 교통에 관한 실시간 데이터를 저장하는 데이터베이스를 만들고 사용할 수 있다. 해상 게임은 게임 등에서 사용될 수 있는 바다 조건에 대한 실시간 데이터를 수집해서 저장할 수 있다.If the player 120 controls a gaming unit, such as an aircraft, a car, etc. within the game 112, the game 112 may be moved from the game data server 108 as needed to provide a realistic environment for the game. Request data. The data requested by the game 112 includes data such as weather reports or air traffic in the direction in which the player 120 adjusts the vehicle within the game 112. Therefore, game 112 requests data based on the time and current location of the player gaming unit. Time information may be provided explicitly or implicitly. The period of the data request of the game is preferably in accordance with the period of update of the data in the database maintained by the provider (100, 104). This allows the game 112 to provide the player with the real-time appearing in the world and the vehicle of the world at the fastest speed possible. Alternatively, the request can be made asynchronously, requesting a large amount of data and using it for a longer period of time. The game data server 108 processes the data request of the game 112 and provides the data requested for the game 112 to the rendering and simulation in the game 112. The multiplayer 124 can play different copies of the game 116 and can access the game data server 108 for data corresponding to regions of the same or different world as the player 120. Moreover, the second player 124 can play a game 116 (eg, a car racing game or a football game) that is completely different from the game 112 being played by the first player 120. . However, other games 116 may request the same type of data (eg, weather) as the first game 112. The constructs of the present invention can be broad, to match the data requirements of other games. For example, in addition to weather reports, road racing games can create and use a database that stores real-time data about car traffic. Marine games can collect and store real-time data on sea conditions that can be used in games.
도 2를 참조하면, 게임 데이터 서버(108)는 상술한 바와 같이 외부 항공 교통 및 날씨 제공자(100, 104)로부터 요청된 데이터를 사용하는, 자신의 항공 교통 및 날씨 데이터베이스(200, 204)를 가지고 있다. 외부 데이터 시스템(100, 104)으로 이루어진 데이터의 요청 형태와 주기를 제어하기 위해서, 게임 서버(108)는 타이머 프로세서(208, 212)에 의해 데이터 요청을 시작한다. 시작시, 또는 완전한 재설정시, 타이머 프로세스(108, 212)는 데이터 요청자(216, 220)에 지시해서 날씨와 교통에 관해서 이용가능한 모든 현재 데이터를 요청한다. 데이터의 이런 스냅숏은 데이터 업데이트 프로세스(216, 220)에 의해 사용되어 데이터베이스(200, 204)를 채우기(populate) 시작한다. 데이터베이스(200, 204)가 완전히 채워진 후, 그리고 나서, 타이머(208, 212)는 데이터 요청 프로세스(216, 220)에 데이터를 요청하라는 지시를 하고 각각의 데이터베이스(200, 204)에 개별 데이터에 대한 가장 양호한 업데이트 주기 및 기간으로 업데이트한다. 상술한 바와 같이, 날씨 데이터의 예에서는, 한 시간에 한번 하는데 약 10분대에 한다. 항공 교통 데이터의 경우에는, 약 매 3분마다 실시한다. 타이머(208, 212)에 의해 사용된 업데이트 시간 및 주기는 데이터 제공자(100, 104)의 업데이트 시간 및 주기에 맞추어 선택되어 최상으로 된다.Referring to FIG. 2, game data server 108 has its own air traffic and weather database 200, 204, using the data requested from external air traffic and weather providers 100, 104 as described above. have. In order to control the request form and the period of data made up of the external data system 100, 104, the game server 108 initiates a data request by the timer processors 208, 212. At startup, or upon complete reset, timer processes 108 and 212 instruct data requestor 216 and 220 to request all current data available with respect to weather and traffic. This snapshot of data is used by the data update process 216, 220 to begin to populate the database 200, 204. After the databases 200, 204 are completely filled, then the timers 208, 212 instruct the data request process 216, 220 to request data and for each database 200, 204 for individual data. Update to the best update cycle and duration. As described above, in the example of the weather data, it is performed once in an hour for about 10 minutes. In the case of air traffic data, it is carried out approximately every three minutes. The update time and period used by the timers 208 and 212 are selected to be best according to the update time and period of the data provider 100 and 104.
플레이어(120)가 컴퓨터 게임(112)을 플레이할 때, 게임은 플레이어의 게밍 유닛의 장소와 시간의 변화에 대응해서 항공 교통 및 날씨 데이터를 요청하게 될 것이다. 데이터에 대한 요청은 양호하게 개별의 항공 교통과 날씨 요청 프로세스(224, 228)를 통해서 이루어진다. 게임(112)은 필요한 데이터를 지정하는 형태로 데이터를 요청한다. 예를 들어, 게임(112)은 비행 시뮬레이션 게임에서는 게임 항공기의 현재 위치( 위도, 경도 및 고도), 스테이트 헤딩 및 속도를 지정할 수 있다. 게임(112)에 의한 데이터의 요청은 플레이어(120)에 의한 선택 및 제어 입력, 예를 들어 비행 시뮬레이션 게임에서 플레이어(120)가 비행기를 어느 곳으로 어떻게 비행할 것인가에 대응해서 만들어진다. 게임 데이터 요청은 항공 교통 요청 프로세스(224)와 날씨 요청 프로세스(228)에 의해 각 교통 및 날씨 데이터베이스(200, 204)에 대한 데이터 질문을 만든다.When player 120 plays computer game 112, the game will request air traffic and weather data in response to a change in the location and time of the player's gaming unit. Requests for data are preferably made through individual air traffic and weather request processes 224, 228. The game 112 requests data in the form of specifying the required data. For example, the game 112 may specify the current position (latitude, longitude and altitude), state heading, and speed of the game aircraft in a flight simulation game. The request for data by the game 112 is made in response to selection and control input by the player 120, for example how and where the player 120 will fly the plane in a flight simulation game. The game data request creates data queries for each traffic and weather database 200, 204 by the air traffic request process 224 and the weather request process 228.
예를 들어, 한 실시예에서, 최상의 적절한 데이터를 결정하기 위해서, 요청 프로세스(224, 228)는 항공기의 성능(747vs, Piper cub), 스테이트(크루즈, 랜딩, 데이크오프, 택싱(taxiing)), 현재 항공기 데이터(위치, 헤딩, 속도와 방향)와 이전의 요청데이터(위치, 헤딩, 속도와 방향)를 고려한다. 항공기 스테이트는 항공기제어의 위치(예를 들어, 랜딩 스테이트는 747 스타일 항공기에 대해서는, 속도 120kts이하, 기어 다운, 플랩>15)와 항공기의 위치(4000 피트 아래와 공항으로부터 10마일 이내)를 내포하고 있다.For example, in one embodiment, in order to determine the best appropriate data, the request process 224, 228 may be performed by the aircraft's performance (747vs, Piper cub), state (cruise, landing, day off, taxiing), Consider current aircraft data (position, heading, speed and direction) and previous request data (position, heading, speed and direction). The aircraft state contains the position of the aircraft control (for example, the landing state speeds below 120 kts, gear down, flap> 15 for 747-style aircraft) and the position of the aircraft (4000 feet below and within 10 miles of the airport). .
요청 프로세스(224, 228)는 항공기와 스테이트에 알맞은 항공기의 이동 방향으로 그리고 주기적으로 데이터를 모은다. 랜딩 747의 이전 예에서, 요청 프로세스(224, 228)는 비행기 위치가 완전 비행에 있을 때보다 주기적으로 덜 변하기 때문에, 낮은 비율로( 10분마다 한번) 항공기 주위의 원형 30마일 내의 데이터를 요청한다. 크로즈(순항) 스테이트에 있을 때, 747은 통상적으로 35,000 피트에서 한 시간에 400마일 이상으로 비행한다. 이 경우에, 요청 프로세스(224, 228)는 200마일 폭과 400마일 길이인 타원형내에서 매 5분마다 데이터를 요청하고, 긴 길이는 항공기의 현재 헤딩을 가리킨다. 물론, 데이터 요청에 대한 다른 파라미터는 본 발명에 따라서 사용될 수 있다. 그러므로, 게임(112)은 게임 항공기가 나오지만 항공기의 위치 또는 루트에 관련해서 여과되는 데이터(날씨 또는 항공기)를 기술하는 보다 큰 데이터베이스(200, 204)의 서브셋(subset)을 프로세스한다. 상술한 프로세스의 한 장점은 게임으로 다시 돌아가게 되는데 필요한 데이터가 최소화되고 그러므로 시간과 대역폭(bandwidth)을 절약한다는 것이다.The request process 224, 228 collects data in the direction of movement of the aircraft and its aircraft appropriately and periodically. In the previous example of landing 747, the request process 224, 228 requests data within 30 miles of the circle around the aircraft at a low rate (once every 10 minutes) because the plane position changes less periodically than when in full flight. . When in the close state, the 747 typically flies more than 400 miles an hour at 35,000 feet. In this case, request processes 224 and 228 request data every 5 minutes within an oval that is 200 miles wide and 400 miles long, with the long length indicating the aircraft's current heading. Of course, other parameters for the data request can be used according to the present invention. Thus, game 112 processes a subset of a larger database 200, 204 that describes the data (weather or aircraft) that the game aircraft emerges but is filtered with respect to the location or route of the aircraft. One advantage of the process described above is that the data required to return to the game is minimized, thus saving time and bandwidth.
항공기 데이터의 경우에, 서브셋은 요청 프로세스가 결정된 영역내에 있을 수 있게 결정되는 항공기 데이터의 리스트(예, 식별, 비행로, 헤딩, 고도 및 속도)로 이루어질 수 있다. 날씨의 경우에, 회수된 데이터는 날씨 요청 프로세스 알고리즘이 결정된 지역내의 날씨 보고서(온도, 바람 방향, 이슬점 온도(냉기), 강수량등)를 구성하고 있다. 교통 및 날씨 요청 프로세스(224, 228)는 이들의 특정 필요사항(예를 들어, 교통은 교통 프로세스(224)가 잘 작동되는데 단지 50마일내에서만 필요하고, 반면에 날씨 프로세스(228)는 잘 작동되는데 100마일 이내 데이터가 필요할 수 있다)에 의해 다를 수 있다.In the case of aircraft data, the subset may consist of a list of aircraft data (eg, identification, air route, heading, altitude, and speed) that determine that the request process is within the determined area. In the case of weather, the recovered data constitutes a weather report (temperature, wind direction, dew point temperature (cold), precipitation, etc.) in the area where the weather request process algorithm is determined. The traffic and weather request process 224, 228 may have their specific needs (eg, traffic is only needed within 50 miles of the traffic process 224 to work well, while the weather process 228 works well). (Data may be required within 100 miles).
도 3을 참조하면, 게임 시스템(107)을 도시하고 옵젝트 방위된 디자인을 사용해서 도시하고 있다. 이런 특정화된 옵젝트는 양호하게 이들 자신의 데이터를 저장하고, 필요시 다른 옵젝트로부터 데이터를 요청하고, 다른 옵젝트가 요청하면 데이터를 제공한다. 도 3은 교통 관리자(300), 날씨 관리자(304), 항공기 관리자(308), 월드 관리자(312), 랜더링 엔진(316) 및 플레이어 제어(328) 사이의 연결관계를 도시한다. 이들 모든 프로세스들은 서로로부터 데이터를 요청하기 때문에, 이들은 버스 구성물(bus architecture)상에 있는 것과 같이 예상할 수 있다. 다른 게임 프로세스, 오디오 엔진(320) 및 포스 피드백 엔진(324)은 보다 덜 밀접하게 결합되어 있으며, 항공 관리자(308)와 교통 관리자(300)로부터 만으로 입력될 수 있다.Referring to FIG. 3, a game system 107 is shown and shown using an object oriented design. These specialized objects preferably store their own data, request data from other objects as needed, and provide data when other objects request them. 3 shows the connection between traffic manager 300, weather manager 304, aircraft manager 308, world manager 312, rendering engine 316, and player control 328. Since all these processes request data from each other, they can be expected as they are on the bus architecture. Other game processes, audio engine 320 and force feedback engine 324 are less tightly coupled and can be input solely from aviation manager 308 and traffic manager 300.
교통 관리자(300)는 사용자가 경험하는 세상내의 실시간 교통의 내부 데이터베이스를 보관한다. 또한 항공 관제기에 의해서 교통의 이동과 이의 제어를 시뮬레이트한다. 플레이어 제어/게임 스테이트 프로세스(328)로부터 수신된, 스테이트 및 위치와 플레이어 항공기 형태를 근거해서, 교통 관리자(300)는 플레이어의 항공기 주위의 미리정한 지리적 지역내에 있게 될 게임 데이터 서버(108)로부터 교통 데이터를 요청한다. 데이터는 이들 요청과 교통 관리자의 내부 프로세스에 의해 교통을시뮬레이션함으로써 연속적으로 업데이트되는 플레이어의 컴퓨터내에 위치된 내부 데이터베이스내에 보관된다.The traffic manager 300 maintains an internal database of real-time traffic in the world that the user experiences. The air controller also simulates the movement of traffic and its control. Based on the state and location and the player aircraft type, received from the player control / game state process 328, the traffic manager 300 may transport traffic from the game data server 108 that will be in a predetermined geographic area around the player's aircraft. Request data. The data is stored in an internal database located in the player's computer that is continuously updated by simulating traffic by these requests and the traffic manager's internal process.
교통 관리자(300)는 연속적으로 랜더링 엔진(316)으로부터 항공 교통 데이터 위치(장소, 헤딩, 고도, 속도 및 식별)에 대한 요청을 처리한다. 랜더링 엔진(316)은 어느 종래의 랜더링 프로세스일 수 있다. 이런 데이터는 게임 디스플레이상의 세계내로 항공기를 디스플레이하는데 사용된다. 또한, 교통 관리자(300)는 실시간 데이터를 근거해서, 게임 세계내로 항공 교통의 교신을 시뮬레이트한다. 이것의 외적 현실화는 교신을 통한 오디오 엔진(336)으로 보내지는 컴맨드(commands)이다. 오디오 엔진(336)은 이들 컴맨드를 사용하여 사실적 오디오 교신 메시지를 게임내의 플레이어의 스테이트와 다른 항공기상을 근거해서 사용자(예, 항공 관제(ATC)와 항공기로부터 음성 교신)에 출력한다. 이들 메시지는 ATC와 다른 항공기사이와 ATC와 플레이어(120) 사이의 메시지를 포함한다. 음성은 이 기술분야에 알려진 바와 같은 종래의 기술을 사용해서 시뮬레이트된다.Traffic manager 300 subsequently processes requests for air traffic data locations (places, headings, altitudes, speeds and identifications) from rendering engine 316. The rendering engine 316 may be any conventional rendering process. This data is used to display the aircraft into the world on the game display. The traffic manager 300 also simulates communication of air traffic into the game world based on real time data. Its external realization is the commands sent to the audio engine 336 via communication. The audio engine 336 uses these commands to output realistic audio communication messages to the user (e.g., voice communication from the ATC and aircraft) based on the player's state and other aircraft phases in the game. These messages include messages between ATC and other aircraft and between ATC and player 120. Voice is simulated using conventional techniques as known in the art.
날씨 관리자(304)는 사용자가 경험하는 세계내의 실시간 날씨의 내부 데이터베이스를 보관한다. 플레이어 제어/게임 스테이트 프로세스(328)로부터 수신된, 플레이어 항공기 스테이트 데이터(장소, 헤딩, 고도 및 식별)를 근거해서, 날씨 관리자(304)는 게임 데이터 서버(108)로부터 플레이어의 항공기 가까이에 있게 될 날씨 데이터를 요청한다. 데이터는 이들 요청(날씨 데이터의 변화 속도와 항공기 이동의 속도를 근거함)과 날씨 관리자 룰을 근거한 프로세스에 의해 날씨를 시뮬레이션함으로써 연속적으로 업데이트되는 플레이어의 내부 데이터베이스내에 보관된다. 날씨 관리자(304)는 연속적으로 랜더링 엔진(316)으로부터 일반적인 지역 상의 날씨 스테이트(온도, 바람, 강우량, 가시성)에 대한 요청을 처리한다. 이런 데이터는 게임 디스플레이상의 세계내로 실시간 변하는 날씨를 디스플레이하는데 사용된다.The weather manager 304 maintains an internal database of real-time weather in the world that the user experiences. Based on the player aircraft state data (place, heading, altitude and identification) received from the player control / game state process 328, the weather manager 304 will be in close proximity to the player's aircraft from the game data server 108. Request weather data. The data is stored in an internal database of players that are continuously updated by simulating the weather by a process based on these requests (based on the rate of change of weather data and the speed of aircraft movement) and weather manager rules. The weather manager 304 continuously processes the request for the weather state (temperature, wind, rainfall, visibility) on the general area from the rendering engine 316. This data is used to display real-time changing weather into the world on the game display.
또한, 날씨 관리자(304)는 날씨 관리자(304)내의 실시간 날씨 피드 및 미리 규정해 놓은 규칙대로 수행하는 프로세스(룰-근거 프로세스(rule-based processes))를 근거해서, 현실적인 날씨 변화를 시뮬레이트하여, 이용가능한 실세계 데이터로 제공할 수 없는 날씨 효과, 예를 들어, 돌풍, 뇌우, 구름이동 속도, 약간의 강우의 세기 등을 제공한다. 돌풍과 같은, 거리와 시간에 좌우되는 날씨 변화와 트렌드(trends)에 반응하는 룰-근거 프로세스는 마이크로 레벨 프로세스(micro level processes)라 한다. 마이크로 프로세스는 일자 또는 카렌더 트렌드(daily or calendar trends)에 의해서 일어날 수 있는 트렌드를 기술한다. 마이크로 레벨 프로세스의 예는 일중에 의해 일어나는 것(뇌우는 늦은 오후에 발생하는 경향이 있음) 또는 년중에 의해 일어나는 것(큰 층운(heavy stratus)과 뇌우 구름은 겨울동안 미국에서 발생하는 경향이 없음)을 포함한다. 날씨 변화는 랜더링 엔진(316)을 통해서 사용자에게 나타난다. 그러므로 마이크로 및 매크로 프로세스를 사용하면, 이들의 존재가 실세계의 날씨에 좌우되기 때문에 실세계 데이터 정보를 확장해서 랜덤인 새로운 게임 조건을 만들 수 있다. 추가로, 이들 프로세스는 뇌우 또는 폭풍이 비행 시뮬레이션 게임내에서의 비행기를 운행하거나, 카 레이싱 게임내에서 카를 운전하는 운전자의 능력에 중대한 영향을 줄 수 있을 때, 플레이어의 게임플레이어와 상호작용할 날씨 효과를 만든다.The weather manager 304 also simulates realistic weather changes based on real-time weather feeds within the weather manager 304 and processes that perform according to predefined rules (rule-based processes), Weather effects that cannot be provided by the available real-world data, such as gusts, thunderstorms, cloud movement speeds, slight rainfall intensities, and the like. Rule-based processes that respond to weather changes and trends that depend on distance and time, such as gusts, are called micro level processes. Micro-processes describe trends that can be caused by daily or calendar trends. Examples of micro-level processes are those occurring during the day (thunderstorms tend to occur late in the afternoon) or during the year (heavy stratus and thunderstorms do not tend to occur in the US during winter) It includes. Weather changes are presented to the user through the rendering engine 316. Therefore, using micro and macro processes, since their presence depends on the weather in the real world, it is possible to extend real world data information to create new random game conditions. In addition, these processes are weather effects that will interact with the player's game player when a thunderstorm or storm can significantly affect the driver's ability to drive an airplane in a flight simulation game or drive a car in a car racing game. Make
마이크로 프로세스Micro process
날씨 데이터가 한 시간에 한번 업데이트되면, 본 발명의 한 실시예는 마이크로 프로세스 룰을 사용해서 한 시간당의 이들 업데이트사이의 세계 데이터로 이동과 변화를 반영한다. 이들 룰셋은 데이터가 통상적으로 시간에 따라서 어떻게 변하는 가를 보여주고, 얻어진 실세계 데이터가 다음 업데이트를 받기 전까지, 다음 시간에 거쳐서 변할 수 있는 곳을 반영하도록 개발된 간단한 룰을 사용한다.Once the weather data is updated once an hour, one embodiment of the present invention uses microprocess rules to reflect shifts and changes to world data between these updates per hour. These rulesets use simple rules developed to show how data typically changes over time and reflect where the real world data obtained can change over time until the next update is received.
바람 마이크로 프로세스Wind micro process
바람은 방향, 속도 및 돌풍( 360, 10kts, 20kts의 돌풍을 가진 바람)으로서 보고되고 나타난다. 이 데이터는 통상적으로 각 보고 스테이션에 의해 매 시간 마다 업데이트된다. 날씨 관리자(304)는 현재 및 이전 시간에 대한 각각 보고된 장소의 날씨 관측 데이터를 보관한다. 바람 마이크로 프로세스는 이들 관측 지역의 바람 방향, 속도와 돌풍 값을 비교해서 다음 시간에 거쳐서 플레이어가 경험하는 바람 조건을 적극적으로 변경한다.Wind is reported and indicated as direction, speed and gusts (winds with gusts of 360, 10 kts and 20 kts). This data is typically updated every hour by each reporting station. The weather manager 304 keeps weather observation data for each reported place for the current and previous times. The wind micro process compares the wind direction, speed and gust values of these observation areas and actively changes the wind conditions the player experiences over time.
게임 날씨를 현재 관측 날씨로 변경Change Game Weather to Current Observation Weather
새로운 관측 날씨를 얻으면, 날씨 관리자(304)는 플레이어가 다음 10분에 거쳐서 그 장소에서 알 수 있게 바람을 느리게 바꾼다. 바람이 급속히 변할 수 있어도, 합리적으로 짧은 기간에 거쳐서 값을 변경하면 환경을 보다 신뢰성있게 한다. 한 실시예에서, 게임(116)은 방향, 속도, 돌풍의 값을 각 분당 약 10%만큼 변경한다. 예를 들어, 장소에 대한 현재 게임 날씨가 방향 180, 속도 5, 돌풍 10이고; 동일한 장소에서 새로운 관측이 시간 t에서 방향 150, 속도 10 및 돌풍 15라고 가정하자. 한 실시예에서, 바람 마이크로 프로세스는 현재와 새로운 관측사이의 차이를 다음과 같이 계산한다.When a new observed weather is obtained, the weather manager 304 changes the wind slowly so that the player knows the location over the next ten minutes. Even if the wind can change rapidly, changing the value over a reasonably short period of time makes the environment more reliable. In one embodiment, game 116 changes the values of direction, speed, and gust by about 10% per minute. For example, the current game weather for a place is direction 180, speed 5, gust 10; Suppose the new observations in the same place are direction 150, velocity 10 and gust 15 at time t. In one embodiment, the wind micro process calculates the difference between the current and new observations as follows.
방향 -30(150-180), 속도 +5(10-5) 및 돌풍 +5(15-10)Direction -30 (150-180), Speed +5 (10-5), and Blast +5 (15-10)
그 다음, 바람 마이크로 프로세스는 이 장소에서의 바람이 이 양만큼 변하게 되는 다음 수십분에 거쳐서 반영하여 관측된 값과 일치하도록 한다. 날씨 관리자(304)는 다음 10분에 거쳐서 각 분당 각 값으로 상기 반영된 변화의 1/10(적합하게 가장 가까운 정수(the nearest integer) 주위)을 준다. 플레이어가 볼 수 있는 값은 대략 다음과 같이 변할 것이다;The wind micro process then reflects over the next few minutes that the wind at this location changes by this amount to match the observed value. The weather manager 304 gives 1/10 (approximately the nearest integer) of the reflected change to each value per minute over the next 10 minutes. The value the player sees will change approximately as follows;
: 00 방향 180, 속도 5, 돌풍 10: 00 direction 180, speed 5, gust 10
: 01 방향 177, 속도 5, 돌풍 10: 01 direction 177, speed 5, gust 10
: 02 방향 174, 속도 6, 돌풍 11: 02 direction 174, speed 6, gust 11
: 03 방향 171, 속도 6, 돌풍 11: 171 direction 03, speed 6, gust 11
: 04 방향 168, 속도 7, 돌풍 12: 04 direction 168, speed 7, gust 12
..............
: 10 방향 150, 속도 10, 돌풍 1510 directions 150, speed 10, gust 15
날씨 트렌드 반영Reflecting weather trends
게임 날씨가 점차적으로 변하여 실제 날씨의 것과 일치하는 10분 기간 후에, 게임 마이크로 프로세스는 인지된 트렌드의 방향으로 나머지 시간 동안 날씨를 변경하도록 작용한다. 프로세스는 그 변화의 범위내에서 랜덤 변화도를 계산하고, 그리고 나서 그 변화와 일치하도록 시간에 맞추어 날씨를 변경한다.After a 10 minute period in which the game weather gradually changes to match that of the real weather, the game micro process acts to change the weather for the rest of the time in the direction of the perceived trend. The process calculates a random gradient within the range of the change, and then changes the weather in time to match the change.
예를 들어, 시간 t-1에서 위치에 대해서 보고된 관측은 방향 200, 속도 5, 돌풍 10이고, 시간 t에서 동일 위치에 대해서 보고된 관측은 방향 1500, 속도 10, 돌풍 15이다. 그리고, 바람 마이크로 프로세스는 두 개의 관측사이의 차이를 계산한다; 방향 -50(150-200), 속도 +5(10-5) 및 돌풍 +5(15-10). 그리고 바람 마이크로 프로세스는 변경의 범위(예, -20, 3, 2)내에서 램덤 값을 선택하고 이 값에 현 날씨 값을 더해서, 다음 반영된 날씨: 방향 120, 속도 13, 돌풍 17을 만들어낸다. 날씨 관리자(304)는 양호하게 다음의 시간적 업데이트까지 각 10분에 대해 이 반영된 변화의 20%(가장 가까운 정수 주위)을 준다. 이런 변화는 다음과 같다;For example, an observation reported for a location at time t-1 is direction 200, velocity 5, gust 10, and an observation reported for the same location at time t is direction 1500, velocity 10, gust 15. The wind micro process then calculates the difference between the two observations; Direction -50 (150-200), speed +5 (10-5) and gust +5 (15-10). The wind micro process then selects a random value within the range of change (eg -20, 3, 2) and adds the current weather value to the next reflected weather: direction 120, speed 13, gust 17. The weather manager 304 preferably gives 20% (around the nearest integer) of this reflected change for each 10 minutes until the next temporal update. These changes are as follows;
: 10 방향 150, 속도 10, 돌풍 1510 directions 150, speed 10, gust 15
: 20 방향 146, 속도 10, 돌풍 1520 directions 146, speed 10, gust 15
: 30 방향 142, 속도 11, 돌풍 16: 30 directions 142, speed 11, gust 16
: 40 방향 138, 속도 11, 돌풍 1640 direction 138, speed 11, gust 16
: 50 방향 134, 속도 12, 돌풍 1750 direction 134, speed 12, gust 17
: 60 방향 130, 속도 13, 돌풍 17: 60 directions 130, speed 13, gust 17
그러므로, 본 발명은 바람 마이크로 프로세스를 사용해서 게밍 경험을 컨트롤하는데 실세계 조건을 근거로 날씨 효과를 적극적으로 만들어낸다.Therefore, the present invention actively creates weather effects based on real-world conditions in controlling the gaming experience using wind micro processes.
매크로 프로세스Macro process
이전에 기술한 바와 같이, 매크로 프로세스는 데이터가 없을 때 시간내에 데이터를 채우거나 반영하도록 작용한다. 매크로 프로세스는 데이터 업데이트 사이의 시간내에 작용한다. 다른 한편으로 매크로 프로세스는 보다 큰 스케일로 작용해서 정보가 있는 곳에의 날씨 데이터에 정보를 추가하지만, 이러한 것은 시뮬레이션에 크게 도움을 주지 못한다.As previously described, the macro process acts to fill or reflect data in time when there is no data. The macro process operates in time between data updates. On the other hand, the macro process acts on a larger scale to add information to the weather data where it is, but this doesn't help much with simulation.
뇌우 매크로프로세스의 주기Cycle of Thunderstorm Macro Process
한 실시예에서, 매크로 프로세스는 지역내의 뇌우 주기를 계산하는데 사용된다. 특정 지역에 대한 날씨 관측은 단지 뇌우가 일어날 수 있고 이들의 상대적인 심한 정도( 심하든지 또는 심하지 않은 것으로 보고됨)를 리스트한다. 이 실시예에서, 본 발명은 가을 또는 겨울보다는 여름 달에 뇌우가 발생하고 있는 정해진 지역내에서는 통상적으로 보다 많은 뇌우 구름 또는 셀(cell)이 있다는 간단한 룰을 사용함으로써 이런 데이터를 증가시킨다. 예를 들어, 뇌우가 발생되어진다고 보고되는 지역에서 구름 정보가 발생하면, 프로그램은 일년 내 동안 발생된 섹터 당 3뇌우 구름의 베이스 레벨을 평균한다고 하자. 북반구내의 여름 달 동안( 6월과 8월 사이), 추가의 가온은 보다 자주 추가의 뇌우를 일으킨다.In one embodiment, the macro process is used to calculate thunderstorm cycles in the area. Weather observations for specific areas only list the degree of thunderstorms and their relative severity (reported as severe or not severe). In this embodiment, the present invention augments this data by using simple rules that typically have more thunderstorm clouds or cells within a given area where thunderstorms are occurring in the summer months rather than in the fall or winter. For example, if cloud information occurs in areas where thunderstorms are reported, the program averages the base level of three thunderstorm clouds per sector generated over a year. During the summer months in the Northern Hemisphere (between June and August), additional warming causes more frequent thunderstorms.
섹터에 뇌우를 할당함에 있어서, 매크로 프로세스는 플레이어가 현재에 게임(112)내에서 플레이하는 달을 결정한다. 이 정보는 쉽게 플레이어의 컴퓨터를 포함하는, 약간의 소오스 또는 외부 데이터베이스로부터 이용할 수 있다. 6월과 8월 사이에, 프로세스는 기본 평균값에, 정해진 지역당 많은 뇌우의 두 배 만큼 많게 일어나게 할 수 있는 램덤수(random number)를 추가한다. 이런 방법으로, 게임(112)은 현재 날짜 데이트와 또한 년중 시간에 대응해서 날씨 변화를 일으켜서, 현실적인 프로세스를 근거해서 다른 경험을 플레이어에게 제공한다.In assigning a thunderstorm to a sector, the macro process determines the month the player is currently playing in game 112. This information is readily available from some source or external database, including the player's computer. Between June and August, the process adds a random number to the baseline average, which can cause as many as twice as many thunderstorms per given region. In this way, game 112 causes weather changes corresponding to the current date date and also time of year, providing the player with a different experience based on a realistic process.
도 3을 다시 참조하면, 항공기 관리자(308)는 플레이어의 항공기와 내부 시스템에 관한 정보를 처리하고 보관한다. 항공기 관리자(308)는 플레이어 제어 프로세스(328)(항공기의 이동, 시스템의 제어)로부터 제어 입력한다. 그리고 나서 항공기 관리자(308)는 항공기의 작동에 영향을 줄 수 있는 실시간 날씨 정보(예, 강우량, 바람, 온도)에 대한 날씨 관리자(304), 조종실 디스플레이내의 실시간 교통의 디스플레이를 제공하는 교통 관리자(300)와 세계에 관한 항해 및 물리적 정보에 대한 월드 관리자(312)와 인터페이스한다. 항공기 관리자(308)는 항공기에 관한 항공기 특정 정보를 랜더링 엔진(316)에 제공한다. 항공기 관리자(308)는 또한 필요에 따라서 이 기술분야에서 알려진 바와 같은 항공기의 사운드와 실시간 느낌(feel)을 시뮬레이트하도록, 오디오 엔진(320)과 포스 피드백 엔진(324)에 지령을 출력한다.Referring again to FIG. 3, the aircraft manager 308 processes and stores information about the player's aircraft and internal systems. The aircraft manager 308 controls input from the player control process 328 (movement of the aircraft, control of the system). The aircraft manager 308 then provides a weather manager 304 for real-time weather information (e.g. rainfall, wind, temperature) that may affect the operation of the aircraft, and a traffic manager providing a display of real-time traffic within the cockpit display. 300 and a world manager 312 for navigation and physical information about the world. The aircraft manager 308 provides aircraft specific information about the aircraft to the rendering engine 316. The aircraft manager 308 also outputs instructions to the audio engine 320 and the force feedback engine 324 as needed to simulate the sound and real-time feel of the aircraft as known in the art.
월드 관리자(312)는 이 기술분야에 알려진 바와 같은 세계의 물리적 스테이트에 관한 정보를 보관한다. 이것은 지세, 지피(ground cover), 수문(hydrology), 빌딩, 로드 및 항해 특성을 포함한다. 월드 관리자(312)는 지세의 외형에 영향을 줄 수 있는 날씨 관리자(304)(온도, 강우량)로부터 실시간 입력한다. 월드 관리자(312)는 교통 관리자(300)와 항공기 관리자(304)에 항해 및 지세 정보를 제공한다. 월드 관리자(312)는 또한 랜더링 엔진(316)에 정보를 제공한다.World manager 312 maintains information about the physical state of the world as known in the art. This includes topography, ground cover, hydrology, building, road and navigational characteristics. The world manager 312 inputs in real time from the weather manager 304 (temperature, rainfall) which can affect the appearance of the terrain. World manager 312 provides navigation and terrain information to traffic manager 300 and aircraft manager 304. World manager 312 also provides information to rendering engine 316.
랜더링 엔진(316)은 종래 기술을 사용해서 디스플레이(332)를 통해서 게임의 내부(조종실) 및 외부(지세, 날씨, 다른 항공기) 스테이트를 사용자에게 디스플레이한다. 오디오 엔진(320)은 사용자에게 사실적인 항공기, 교신 및 월드 사운드를만들어주는 종래의 엔진이다. 항공기 관리자(308)와 교통 관리자(300)로부터의 입력값에 근거해서, 오디오 시스템(336)을 통해서 사용자에 이벤트 기반 사운드(event based sounds)와 회화 교신(spoke communication)을 출력한다. 이벤트 기반 사운드(예, 엔진 소음, 조정실 스위치 이동 또는 항공기 충돌)는 항공기 관리자(308)에 의해 오디오 엔진(320)에 보내진 이벤트에 반응하여 오디오 엔진(320)에 의해 발생된다. 이들 사운드는 스위치 이동의 경우에 한번 출력되든지 또는 (무인 엔진(engine drone)인 경우에) 변할 때 까지 연속적으로 출력된다.The rendering engine 316 displays the interior (cockpit) and exterior (territory, weather, other aircraft) states of the game to the user via the display 332 using conventional techniques. The audio engine 320 is a conventional engine that produces realistic aircraft, communication, and world sounds to the user. Based on inputs from the aircraft manager 308 and the traffic manager 300, the event based sounds and spoken communication are output to the user via the audio system 336. Event-based sound (eg, engine noise, cockpit switch movement, or aircraft crash) is generated by the audio engine 320 in response to an event sent to the audio engine 320 by the aircraft manager 308. These sounds are output continuously until they are output once in the case of switch movement or until they change (in the case of an engine drone).
오디오 시스템은 또한 사용자가 들을 수 있는 다른 항공기와 항공 관제기(ATC)로부터 교통 관리자(300)에 의해 발생된 회화 오디오 메시지를 만든다. 게임에서 허용가능한 교신 어구(예를 들어, "turn left to heading 350" 또는 "Roger, left to 350")은 모든 위치(ATC, 가상 항공기 및 플레이어 항공기)에 대해서 우선적으로 나온다. 이들은 컴맨드에 의해 찾을 수 있는 데이터베이스내에 놓여있다. 보이스 액터는 그 위치에서 행해진 모든 어구내에 함유되어져 있는 모든 단어나 숫자(예를 들어, 단어: 턴(turn), 레프트(left), 라이트(right), 투(to), 프롬(from), 헤딩(heading), 0, 1, 2, 3, 4, 5 등이 ATC 제어기를 조정하는 사람에 의해서 기록되어져 왔다)를 기록하는데 사용될 수 있다. 이들은 위치와 단어에 의해서 찾을 수 있게 데이터베이스내에 놓여있다.The audio system also produces conversational audio messages generated by the traffic manager 300 from other aircraft and air traffic controllers (ATCs) audible to the user. Acceptable phrases in the game (eg, "turn left to heading 350" or "Roger, left to 350") come first for all positions (ATC, virtual aircraft and player aircraft). These are placed in a database that can be found by the command. A voice actor is any word or number contained within every phrase performed at that location (e.g. words: turn, left, right, to, from, heading). (heading), 0, 1, 2, 3, 4, 5, etc. have been recorded by the person controlling the ATC controller. They are placed in the database so that they can be found by location and word.
교신 컴맨드가 오디오 엔진(320)에 의해 수신되면, 어구내에 지정되고 채워질 필요가 있는 모든 정보: 위치(ATC, 플레이어 항공기, 가상 항공기), 컴맨드(예, TURN-TO-HEADING) 및 어구(Direction: left, Heading: 350)를 메우는데 필요한 약간의 특정 데이터를 포함한다. 그리고 나서 오디오 엔진(320)은 그 위치에 대한 어구를 찾고, 그 위치에 대해서 기록된 단어 데이터의 보이스 데이터를 찾고, 어구에 의해 표시된 명령으로 "stitching"으로 불리는 종래의 프로세스를 사용해서 상기 보이드 데이터를 오디오 스피커로부터 출력한다.When a communication command is received by the audio engine 320, all the information that is specified and needs to be populated within the phrase: location (ATC, player aircraft, virtual aircraft), command (e.g. TURN-TO-HEADING) and phrase ( Direction: left, Heading: 350) contains some specific data needed to fill it. The audio engine 320 then finds a phrase for that location, finds voice data of the word data recorded for that location, and uses the conventional process called " stitching " with the command indicated by the phrase. Output from the audio speaker.
포스 피드백 엔진(324)은 이 기술분야에 알려진 바와 같은, 조이스틱내에 포함된 햅틱스 하드웨어(haptic hardware)를 통해서 사용자에게 포스 피드백 정보를 제공한다. 피드백 정보는 항공기 관리자(308)로부터 입력에 대응해서 발생된다. 이 피드백의 예는 제어 압력, 휠 스핀 진동, 터치다운 범프 또는 항공기 엔진 문제에 의한 진동을 포함한다.The force feedback engine 324 provides force feedback information to the user through haptic hardware contained within the joystick, as known in the art. Feedback information is generated in response to input from the aircraft manager 308. Examples of this feedback include vibrations caused by control pressures, wheel spin vibrations, touchdown bumps or aircraft engine problems.
플레이어 제어/게임 스테이트 프로세스(328)는 사용자로부터 선택 및 제어 정보로부터 게임의 시작과 실행을 제어하고 플레이어에 의해 제어된 게밍 유닛에 대해서 현재 정보를 다른 엔진에 제공한다. 또한 게임 및 월드의 스테이트에 관한 데이터를 보관한다.The player control / game state process 328 controls the start and execution of the game from selection and control information from the user and provides current information to other engines for the gaming units controlled by the player. It also keeps data about the state of the game and the world.
조이스틱(340)은 사용자가 플레이어 제어/게임 스테이트 프로세스(328)를 통해서 게임에 입력할 수 있게 허용한다. 이들 입력은 제어 정보(편요, 전후요동(pitch), 좌우요동(roll)), 드로틀 위치, 기능 선택(예, 하강 기어 또는 플랩 제어)을 포함할 수 있다. 사용자는 또는 포스 피드백 엔진(324)을 통해서 게임으로부터 적절한 포스 피드백 정보를 수신한다. 키보드(344)는 표준 컴퓨터 키보드이다. 플레이어는 코드화된 키프레스와 매크로를 사용해서 게임의 구성과 항공기를 제어한다.Joystick 340 allows a user to enter the game through player control / game state process 328. These inputs may include control information (shifting, pitch, roll), throttle position, function selection (eg, lowering gear or flap control). The user also receives appropriate force feedback information from the game via force feedback engine 324. Keyboard 344 is a standard computer keyboard. Players use coded key presses and macros to control the game structure and aircraft.
그러므로, 본 발명은 실세계 데이터를 게임에 통합하기 위한 시스템을 제공하고 사실적이고 램덤 방식으로(실세계가 램덤하는 정도로) 게임의 플레이어의 경험에 영향을 주어, 실세계 날씨와 교통 데이터가 게임의 결과에 작용해서 영향을 주도록 한다.Therefore, the present invention provides a system for integrating real-world data into a game and influences the player's experience of the game in a realistic and random way (to the extent that the real world is random), so that real-world weather and traffic data affects the game's outcome. To influence.
다음 설명은 본 발명의 비행 시뮬레이터 실시예에서의 두 개의 중요 요소: 날씨 엔진과 교통 관리자를 기술한다.The following description describes two key elements in a flight simulator embodiment of the present invention: a weather engine and a traffic manager.
I. 날씨 엔진I. Weather Engine
도 4는 날씨 엔진(400)과 날씨 관리자(304) 사이의 관계를 나타낸다. 날씨 엔진(400)은 날씨 관리자(304)로부터 날씨 입력 데이터(관측값)를 수신하고 날씨 관리자(304)가 데이터를 요청할 때 현 날씨 스테이트 계산을 실행한다. 상술한 바와 같이, 날씨 관리자(304)는 항공기 주위의 날씨 또는 게임에 필요한 약간의 다른 시각 좌표계(viewing position)를 기술하는데 사용되어지는 날씨 데이터를 보관한다. 양호한 실시예에서, 날씨 엔진(400)은 날씨 시뮬레이션에 대한 보간을 수행하는 독립 모듈이다. 실제 실세계 데이터가, 플레이어가 게임(112)을 플레이하고 있는 매 장소와 시간마다 이용할 수 없을 때, 게임(112)은 실세계 데이터를 근거해서 데이터를 보간해서 게임 플레이를 제어한다.4 shows a relationship between the weather engine 400 and the weather manager 304. The weather engine 400 receives weather input data (observation values) from the weather manager 304 and performs current weather state calculations when the weather manager 304 requests the data. As mentioned above, the weather manager 304 stores weather data that is used to describe the weather around the aircraft or some other viewing position required for the game. In a preferred embodiment, the weather engine 400 is an independent module that performs interpolation for weather simulations. When the actual real world data is not available every time and place where the player is playing the game 112, the game 112 interpolates the data based on the real world data to control the game play.
날씨 엔진(400)의 입력은 양호하게 특정한 장소와 시간값을 가진 한 세트의 날씨 관측값이다. 날씨 엔진(400)의 출력은 약간의 특정 장소와 시간값에 대해서 보간한 날씨 현상(interpolated weather status)이다. 그리고 나서 날씨 엔진(400)은 플레이어의 항공기가 한 장소에서 다른 장소로 이동할 때, 또는 플레이어의 항공기가 시간상으로 이동할 때, 게임내에서 날씨를 변경하여 부드럽게 플레이어(120)에 사실적인 실시간 날씨 경험을 제공한다. 추가로, 날씨 엔진(400)은 대부분 날씨 요소에 대한 "포인트(point)" 날씨 현상과 약간의 구름형에 대한 "환경(environmental)" 현상 모두를 만든다. 날씨 엔진(400)은 보간된 날씨를 생성하는데 사용되어질 수 있는 다양한 날씨 요소에 대해서 속성 정보(attribute information)를 저장하는 날씨 요소 데이터베이스(404)에 결합되어 있다.The input of the weather engine 400 is preferably a set of weather observations with specific location and time values. The output of the weather engine 400 is an interpolated weather status for some specific place and time value. The weather engine 400 then changes the weather in-game to smoothly bring the player 120 a realistic real-time weather experience when the player's aircraft moves from one place to another, or when the player's aircraft moves in time. to provide. In addition, the weather engine 400 creates both "point" weather phenomena for most weather elements and "environmental" phenomena for some clouds. The weather engine 400 is coupled to a weather element database 404 that stores attribute information for various weather elements that can be used to generate interpolated weather.
날씨 요소Weather elements
다음은 날씨 요소 데이터베이스(404)내에 보관된 날씨 요소의 예시적인 리스트이다.The following is an exemplary list of weather elements stored in weather element database 404.
·구름.구름은 구름형태와 구름층에 의해 나누어진다. 구름은 다음의 속성: 구름 형태, 하부층 고도, 상부층 고도, 밀도(범위)로 특정된다. ·cloud. Clouds are divided by cloud form and cloud layer. Clouds are characterized by the following properties: cloud shape, bottom elevation, top elevation, and density (range).
·바람.바람은 층으로 분리되고, 또한 바람은 층사이를 선형으로 변경한다. 바람은 다음 속성: 높이, 방향 및 속도로 특정된다. 또한 돌풍과 국부적인 돌풍(squalls)이 특정될 수 있다. ·wind. The wind is separated into layers, and the wind changes linearly between layers. Wind is specified by the following attributes: height, direction, and speed. Also, gusts and local squalls can be specified.
·가시성.가시성은 수평으로 볼 수 있는 마일 수로 특정된다. 한계 가시성은 아지랑이(haze)와 안개를 디스플레이함으로써 이루어진다. Visibility. Visibility is specified by the number of miles visible horizontally. Limit visibility is achieved by displaying haze and fog.
·온도.온도는 섭씨로 특정된다. ·Temperature. The temperature is specified in degrees Celsius.
·압력.압력은 미리바로 특정된다. ·pressure. The pressure is previously specified.
·강우량(Precipitation).지지된 강우량은 혼존할 수 있는 비, 눈 및 우박이다. 강우량은 밀도로 특정된다. Precipitation. Supported rainfall is rain, snow and hail that can coexist. Rainfall is characterized by density.
·뇌우.뇌우는 힘으로 특정된다. Thunderstorms . Thunderstorms are characterized by power.
·아이싱(icing).아이싱(착빙)의 존재 가능성은 다른 날씨 요소에 따라서 예상되고 아래에 설명되어 있다. Icing . The possibility of icing is expected depending on other weather factors and is described below.
·난류.난류의 존재 가능성은 날씨 요소에 따라서 예상된다. ·turbulence. The possibility of turbulence is expected depending on weather factors.
날씨 요소의 종속성Dependency of weather elements
관측점은 날씨 데이터 제공자(104)에 의해 준비된 날씨 데이터베이스내에 수집되고 보고된 한 세트의 날씨 데이터이다. 약간의 날씨 요소는 관측점에서 정해지며, 다른 요소는 다른 날씨 요소에 따라서 합성된다. 예를 들어, "아이싱"과 "난류"는 관측점에서 특정되지 않고, 그러므로 다른 날씨 요소의 존재와 정도에 따라서 계산된다. 도 5는 서로 상이한 요소, 이들의 출력과 요소들이 의존하는 다른 요소(필요시)를 도시하는 블록 다이어그램이다. 서로 상이한 날씨 요소는 서로 상이한 출력을 필요로 한다. 예를 들어, 강우량은 랜더링과 오디오를 필요로 하고 구름과 온도 정보를 근거로 합성된다. 아이싱은 온도와 가시성 요소를 근거로 합성된다. 그러나, 구름 자신도 랜더링되고, 이는 정해진 관측점에 대한 실제 데이터를 근거로 하거나, 또는 게밍 유닛의 현 장소가 관측 장소사이에 있을 때 보간된다.A viewpoint is a set of weather data collected and reported in a weather database prepared by weather data provider 104. Some weather components are determined at the viewpoint, while others are synthesized according to different weather components. For example, "icing" and "turbulence" are not specified at the viewpoint, and are therefore calculated according to the presence and extent of other weather elements. 5 is a block diagram showing different elements, their output and other elements (if necessary) on which they depend. Different weather elements require different outputs. Rainfall, for example, requires rendering and audio and is synthesized based on cloud and temperature information. Icing is synthesized based on temperature and visibility factors. However, the clouds themselves are also rendered, which are based on actual data for a given viewpoint or interpolated when the current location of the gaming unit is between the locations of observation.
A. 날씨 요소 보간A. Weather Element Interpolation
날씨 보간의 주요 목표는 한 장소와 다른 장소로 이동하거나, 그 시간과 장소에 가까운 이들 관측 장소에 대한 날씨 요소의 보간을 근거해서 시간에 맞게 플레이어 게밍 유닛의 현 장소와 시간으로 이동할 때 날씨를 부드럽게 변경하는 것이다. 아래의 알고리즘은 실제 날씨 데이터를 가지는 관측점을 사용해서 시간과 장소양자에 의해서 날씨 보간을 실시하는 한 실시예이다.The main goal of weather interpolation is to smooth the weather when moving from one place to another, or moving to the current place and time of the player's gaming unit in time based on the time and the interpolation of weather elements for these observations close to the place. To change. The following algorithm is an example in which weather interpolation is performed by time and place quantum using observation points with actual weather data.
스텝 1.장소에 의한 필터 날씨 관측Step 1. Filter weather observation by place
날씨 보간의 제 1단계는 보간에 사용되어질 관련 관측 장소를 선택하는 것이다. 도 6은 되풀이 선택 블록의 프로세스를 도시하며 여기서 관측 장소를 선택한다. 모든 관측은 블록으로서 저장되며, 블록은 위도와 경도값에 의해 특정된다. 태스크(task)는 플레이어의 항공기의 현재 장소에 가까운 관측 장소를 시공간적으로 선택하는 것이다. 먼저, 날씨 엔진(400)은 항공기의 장소를 둘러싸는 블록을 처리해서 블록이 관측 장소를 포함하는지 결정한다. 그리고 나서, 블록이 관측점을 포함하지 않으면, 날씨 엔진(400)은 도 6에 도시한 바와 같이, 항공기의 장소를 포함하는 블록둘레의 블록들을 처리한다. 그러나, 도 6은 항공기의 장소내에 관측점이 없으면, 서치의 반경값을 증가시켜서 현재 장소에 가장 가까운 블록을 포함한다. 그리고 나서 날씨 엔진(400)은 도 6에 도시한 바와 같이, 다음 패스에서 다음의 가장 가까운 블록을 처리한다. 날씨 엔진(400)은 어느 관측점이 패스내에서 발견되면 어느 패스상에 멈춘다. 이들 관찰점은 보간에 사용된다.The first step in weather interpolation is to select the relevant observation site to be used for interpolation. 6 shows the process of the recurring selection block, where the observation location is selected. All observations are stored as blocks, which are specified by latitude and longitude values. The task is to select, in time and space, an observation location close to the player's current location. First, the weather engine 400 processes the block surrounding the location of the aircraft to determine if the block includes an observation location. Then, if the block does not include a viewpoint, the weather engine 400 processes the blocks around the block that contain the location of the aircraft, as shown in FIG. However, FIG. 6 includes blocks closest to the current location by increasing the radius of the search if there are no observation points in the location of the aircraft. The weather engine 400 then processes the next nearest block in the next pass, as shown in FIG. The weather engine 400 stops on any pass if any viewpoint is found within the pass. These observation points are used for interpolation.
스텝 2. 시간에 의한 보간Step 2. Interpolation by Time
날씨 보간의 제 2단계는 현 시간값에 따라서 관련 관측을 선택하는 것이다. 제 1단계에서 선택한 관측 장소의 각각에 대해서, 현 시간값에 가장 가까운(최소와 최대 시간값에 가장 가까운) 관측 장소가 선택된다.The second step in weather interpolation is to select relevant observations based on the current time value. For each of the observation sites selected in the first step, the observation place closest to the current time value (closest to the minimum and maximum time values) is selected.
아래의 경우가 일어날 수 있다.The following cases may occur.
·스텝 1내에서 발견된 모든 관측 장소는 과거에 있다. 이 상황에서, 날씨엔진(400)은 보간에 의해 시간적으로 가장 나중의 관측 장소를 선택할 것이다.All observation places found in step 1 are in the past. In this situation, the weather engine 400 will select the last observed location in time by interpolation.
·모든 관측 장소는 미래에 있다. 이 예에서, 가장 오랜된 관측 장소가 선택된다.All places of observation are in the future. In this example, the oldest viewing place is selected.
· 미래와 과거 양쪽의 관측 장소가 존재한다. 이 경우에, 날씨 엔진(400)은 과거에서는 가장 나중의 관측 장소를 선택하고 미래에서는 가장 가까운 관측 장소를 선택하고, 각 관측 장소에 대한 날씨 요소를 근거해서 보간된 관측 장소가 만들어진다. 한 실시예에서, 보간된 관측 장소는 현 시간값과 선택된 관측 시간값에 따라서 선형적으로 선택된다.Observation sites exist in both the future and the past. In this case, the weather engine 400 selects the last observation site in the past and the nearest observation site in the future, and an interpolated observation site is created based on the weather elements for each observation site. In one embodiment, the interpolated observation location is selected linearly according to the current time value and the selected observation time value.
스텝 3. 장소에 의한 보간Step 3. Interpolation by Place
다음으로, 카메라 장소에 대한 보간 관측은 이전 단계에서 선택되고 보간된 모든 관측 장소에 따라서 만들어진다. 도 7은 보간 메카니즘의 한 실시예를 도시하며, 여기서 Di는 카메라 장소와 관측 장소 #i사이의 거리의 제곱이며; 관측 #i에 대한 비표준화된 중량은 1/Di로서 계산되며; 표준화의 총 중량은 표준화되지 않은 중량의 합: {S= 1/D1 + 1/D2 + 1/D3 ....}으로 계산되고, 관측 #i에 대한 표준화된 중량은 비표준화된 중량을 총 중량으로 나눔: 1/(Di * S)로서 계산된다.Next, interpolation observations for the camera locations are made according to all observation sites selected and interpolated in the previous step. 7 illustrates one embodiment of an interpolation mechanism, where Di is the square of the distance between the camera location and the observation location #i; Unstandardized weight for observation #i is calculated as 1 / Di; The total weight of normalization is calculated as the sum of the unstandardized weights: {S = 1 / D1 + 1 / D2 + 1 / D3 ....}, and the standardized weight for observation #i totals the non-standardized weight Division by weight: Calculated as 1 / (Di * S).
특별한 경우는 하나 또는 매우 조밀한 관측 장소(Di은 약 0임)가 있을 때 존재한다. 이 경우에, 시간적으로 가장 가까운 관측 장소는 카메라 장소에 대한 관측점으로서 선택된다.A special case exists when there is one or very dense observation site (Di is about zero). In this case, the closest observation place in time is selected as the observation point for the camera place.
스텝 4. 무정의 요소(undefined elements) 계산Step 4. Calculate undefined elements
약간 날씨 요소는 선택된 관측 장소에 대해서는 존재하지 않을 것이다. 이경우에, 값들은 특정 날씨 요소 룰에 따라서 현 날씨 요소의 보간후에 계산되어야 한다. 예를 들어, 압력은 표준 압력 감율 테이블을 통해서 계산된다. 아이싱은 그 위치에서의 강우량, 구름형태 및 온도를 고려해서 계산된다.Some weather elements will not exist for the selected location of observation. In this case, the values should be calculated after interpolation of the current weather component according to the specific weather component rules. For example, pressure is calculated through a standard pressure reduction table. Icing is calculated taking into account rainfall, cloud shape and temperature at that location.
스텝 5. 높이에 의한 보간Step 5. Interpolation by Height
약간 날씨 요소는 층(예를 들어, 바람)으로서 정의되지만, 특정 카메라 높이 장소(바람, 그리고 나서 온도, 아이싱 및 난류)로 계산된다. 이들 요소에 대해서, 날씨 요소값은 선형으로 가장 가까운 층값사이를 보간해야만 한다. 추가로, 특정 높이에서의 바람 계산은 양호하게 바람 속도와 방향을 램덤하게 변하게 할 수 있는 돌풍을 고려한다.Some weather components are defined as layers (eg wind), but are calculated as specific camera height locations (wind and then temperature, icing and turbulence). For these elements, the weather element values must be linearly interpolated between the nearest layer values. In addition, wind calculations at certain heights take into account gusts that can cause random changes in wind speed and direction.
B. 구름 보간B. Cloud Interpolation
비행 시뮬레이션 게임에서 중요한 구름 범위는 또한 양호하게 본 발명에 따라서 보간된다. 한 실시예에서, 구름 옵젝트는 플레이어의 항공기가 이동할 때 이동하는 그리드(grid)로 실행된다. 구름 파라미터는 그리드의 각 정점에 대해서 보간되어지는 실세계 관측 데이터에 따라서 계산된다. 도 8은 약 2/8 구름 범위에 대한 구름 옵젝트를 도시한다. 그리드 내의 각 셀은 하나의 구름 옵젝트를 포함한다. 구름 옵젝트의 장소는 각 셀에 랜덤하게 있지만, 보다 큰 구름(보다 큰 구름 범위)은 보다 적은 장소 "freedom"을 가질 것이다. 그러므로, 전 범위에 대해서, 각 구름 옵젝트는 정확하게 그리드 정점내에 놓여진다. 구름 옵젝트의 크기는 관측 데이터로부터 얻어진 것과 같은 현 구름 범위값에 따라서 계산된다. 한 실시예에서, 램덤 값(포지티브와 네가티브 사이즈 양쪽 모두)이 추가되어 보다 사실적인 시뮬레이션을 제공한다. 각 구름 옵젝트는 구름의 형상을 만들도록 대응 시드값(seed value)을 가진다. 시드값은 구름이 사이클당 위로 소용돌이치게 될 량을 가리킨다. 시드값은 양호하게 시간에 따라 부드럽게 변경되어 구름 형태의 사실적인 변화를 에뮬레이트(emulate)한다. 추가로, 각 구름 옵젝트는 시간에 따라 변하지 않은 편요 랜덤값을 가진다. 편요값은 구름이 소용돌이치게 되는 버티컬로부터의 각도로 정해진다.Important cloud ranges in flight simulation games are also preferably interpolated in accordance with the present invention. In one embodiment, the cloud object is executed in a grid that moves as the player's aircraft moves. The cloud parameters are calculated according to the real world observation data that is interpolated for each vertex of the grid. 8 shows the cloud object for the about 2/8 cloud range. Each cell in the grid contains one cloud object. The location of the cloud object is random in each cell, but larger clouds (larger cloud range) will have fewer places "freedom". Therefore, for the full range, each cloud object is exactly within the grid vertex. The size of the cloud object is calculated according to the current cloud range value as obtained from the observation data. In one embodiment, random values (both positive and negative sizes) are added to provide more realistic simulations. Each cloud object has a corresponding seed value to shape the cloud. Seed indicates the amount of cloud swirling up per cycle. The seed value is preferably smoothly changed over time to emulate realistic changes in cloud form. In addition, each cloud object has a random random value that does not change over time. The yaw value is determined by the angle from the vertical to which the cloud swirls.
구름 그리드 발생Cloud grid generation
구름 그리드는 각 구름층과 각 새로운 항공기에 대해서 발생된다. 각 그리드 정점(구름 옵젝트)에 대해서, 아래 값은 그리드 생성시 발생된다.Cloud grids are generated for each cloud layer and for each new aircraft. For each grid vertex (cloud object), the following values are generated during grid generation.
·크기 변동 계수, 최소 구름 크기 변동으로부터 최대 크기 변동까지 범위의 크기 변동(size variation)Size variation coefficient, size variation ranging from minimum cloud size variation to maximum size variation
· 오프셋 변동 계수(offset variation), 0 내지 1 범위Offset variation, range from 0 to 1
·초기 시드값(seed value), 0.0 내지 255.0 범위Initial seed value, in the range from 0.0 to 255.0
항공기를 이동하기 위한 구름 그리드 핸들링Cloud grid handling for moving aircraft
구름 그리드는 항상 구름 그리드 스텝 값(cloud grid step)에 정렬되어 있다. 그러므로, 항공기가 새로운 위치로 이동할 때, 약간의 그리드 로우 및/또는 칼럼은 삭제되고 새로운 그리드 로우 및/또는 칼럼이 추가될 수 있다(이동이 충분히 클 때). 이 경우에, 메모리 블록(정점으로 이동되지만 여전히 존재하기 위해서)이 이동되고 새로운 정점(구름 옵젝트) 값(이전 섹션에서 정의한 바와 같음)이 발생된다.The cloud grid is always aligned with the cloud grid step value. Therefore, when the aircraft moves to a new position, some grid rows and / or columns may be deleted and new grid rows and / or columns may be added (when the movement is large enough). In this case, the memory block (moved to the vertex but still exists) is moved and a new vertex (cloud object) value (as defined in the previous section) is generated.
정점값 계산Vertex value calculation
각 정점에 대한 값은 또한 한 실시예에서 각 날씨 사이클에 대해서 재계산된다. 이 실시예에서, 아래 값이 재계산된다.The value for each vertex is also recalculated for each weather cycle in one embodiment. In this embodiment, the following values are recalculated.
크기size
구름 크기는 Cloud Density * cloud grid step *Size variation과 같은, 장소에서 구름 범위(Cloud Density, 0 내지 1 범위의 값)에 따라서 계산된다. 계산된 구름 크기는 0 내지 cloud grid step 범위내에 있다. 이 값은 오버플루 케이스(overflow cases)로 조정된다.The cloud size is calculated according to the cloud range (Cloud Density, a value in the range 0-1), such as Cloud Density * cloud grid step * Size variation. The calculated cloud size is in the range of 0 to cloud grid step. This value is adjusted for overflow cases.
구름 높이Cloud height
구름 높이는 장소에서 구름층의 현 높이이다.The height of the cloud is the current height of the cloud layer at the place.
오프셋offset
그리드 정점으로부터 구름 오프셋은 (cloud grid step-cloud size) *offset variation으로서 계산된다.The cloud offset from the grid vertex is calculated as (cloud grid step-cloud size) * offset variation.
시드값Seed value
시드값은 Current Seed + Time Elapsed * CLOUD_SEED_CHANGE로서 삭제된 시간값(time_t, 초)에 따라서 계산된다( CLOUD_SEED_CHANGE는 미세조정(fine-tuning)의 주체이며, 0.2값이 첫 번째로 가정될 수 있다).The seed value is calculated according to the deleted time value (time_t, seconds) as Current Seed + Time Elapsed * CLOUD_SEED_CHANGE (CLOUD_SEED_CHANGE is the subject of fine-tuning, and a value of 0.2 can be assumed first).
C. 아이싱 모듈C. Icing Module
양호한 실시예에서, 본 발명은 실시간 데이터를 사용해서 항공기상의 아이싱 조건을 시뮬레이트한다. 아이싱 조건은 실시간 데이터에 의해 제공되지 않지만 실시간 데이터에 의해 발생되고 일어나는 날씨 효과이다. 아이싱 조건은 또한 심한 아이싱 조간이 비행기를 오작동시키고 심지어 추락시킬 수 있기 때문에, 플레이어의 게밍 경험상의 직접 효과를 가지는 날씨 효과이다. 한 실시예에서, 아이싱 모듈은 날씨 엔진(400)내에 포함된 모듈이다. 아이싱 모듈은 아이싱의 존재와 심한정도를 결정하는 날씨에 관한 입력 정보로서 취해진다. 아이싱 모듈은 또한 항공기상의 디아이싱 시스템의 현상을 포함하는, 항공기에 관한 구성상의 정보를 받는다. 아이싱 모듈은 날씨, 항공기 구성, 항공기 위치 및 파일롯의 액션에 근거해서 항공기상의 아이싱 존재와 레벨을 계산하고 보관한다. 아이싱의 형태와 심한정도의 차이점과 항공기 구성을 달리했을 경우의 작용을 반영할 수 있다. 아이싱 모듈의 출력은 아이싱에 의해 나쁜 결과를 가져온 항공기의 몇몇 주요한 섹션(윈드시일드, 측면 윈도우, 윙, 동체, 및 엔진 흡입부)에 대한 아이싱의 최대 레벨(0.0 내지 1.0) 퍼센트이다. 이 데이터는 항공기 시스템 모델(다이나믹스, 엔진) 내의 다른 모듈에 의해서 사용되며 항공기의 성능 및 핸들링의 사실적인 변화를 초래한다. 이 데이터는 아이싱의 사실적인 효과(에어프레임상의 아이싱, 아이싱된 윈도우의 가시성 감소)를 사용자에게 디스플레이하기 위해서 사용된다.In a preferred embodiment, the present invention uses real time data to simulate icing conditions on the aircraft. Icing conditions are not provided by real-time data but are weather effects that occur and occur by real-time data. Icing conditions are also weather effects that have a direct effect on the player's gaming experience, as severe icing tides can malfunction and even crash the plane. In one embodiment, the icing module is a module included in the weather engine 400. The icing module is taken as input information about the weather that determines the presence and severity of the icing. The icing module also receives configuration information about the aircraft, including the phenomenon of the deicing system on the aircraft. The icing module calculates and stores the icing presence and level on the aircraft based on weather, aircraft configuration, aircraft location and pilot action. It can reflect the differences in the severity and severity of the icing and the effects of different aircraft configurations. The output of the icing module is the maximum level (0.0 to 1.0) percent of icing for some major sections (windshield, side window, wing, fuselage, and engine intake) of the aircraft that have been badly resulted by the icing. This data is used by other modules in the aircraft system model (dynamics, engine), resulting in realistic changes in aircraft performance and handling. This data is used to display the realistic effects of icing (icing on airframes, reducing the visibility of the iced window) to the user.
1. 아이싱 고레벨 프로세스1. Icing high level process
한 실시예에서, 가장 높은 레벨에서, 아이싱 모듈은 다음으로 이루어지는 루프에 의해 나타난다.In one embodiment, at the highest level, the icing module is represented by a loop consisting of:
1. 항공기 및 월드 현재 스테이트 입력1. Enter the aircraft and world current state
2. 아이싱 축적 계산2. Icing accumulation calculation
3. 아이싱 분해(용융) 계산3. Icing Decomposition
4. 항공기의 아이상의 업데이트된 스테이트 출력4. Updated state output on the aircraft's eye
5. 반복5. Repeat
이 모델은 사용자에 의해 작용되어지는 약간의 변수를 입력으로서 취하고 있기 때문에, 모듈은 양호하게 계획되어 사용자에게 아이싱의 변화를 볼 수 있는 속도로 실행한다. 그러나, 아이스가 빠른 속도로 얼거나 녹지 않기 때문에, 통상적으로 매 5초마다 한번 주기로 해서 모듈을 실행하는 것으로 충분한다.Because this model takes as input some variables that are acted upon by the user, the module is well planned and runs at a rate that allows the user to see changes in icing. However, since ice does not freeze or melt at high speed, it is usually sufficient to run the module once every 5 seconds.
2. 아이싱 일반적인 변수2. Icing common variables
게임 스테이트 제어(328)로부터:From game state control 328:
·항공기 위치(위도와 경도)Aircraft location (latitude and longitude)
·항공기 고도(피트)Aircraft altitude (feet)
·윈드시일드_디아이스_온(windshield_deice-on)( 윈드시일드 디아이싱 시스템이 현재로 작동중인지를 알리는 논리(Boolean))Windshield_deice-on (Boolean indicating whether the windshield deicing system is currently running)
·윙_디아이스_온(wing_deice-on)( 윙 디아이싱 시스템이 현재로 작동중인지를 알리는 논리)Wing_deice-on (logic indicating whether the wing deicing system is currently running)
·이들 변수들은 이들 시스템을 포함하고 있지 않은 항공기내에서는 FALSE일 것이다. 한 실시예에서, 시스템을 사용할 수 없게 하여 사용자가 제어를 온(TRUE)으로 이동할 지라도 시스템이 오프(FALSE)될 수 있다.These variables will be FALSE on aircraft that do not include these systems. In one embodiment, the system may be FALSE even if the user moves control to TRUE by disabling the system.
날씨 관리자(304)로부터:From weather manager 304:
·현 위치에서의 지상_온도· Ground temperature at current location
·OAT(외기 온도), 이것은 지상_온도(70℉ 지상_온도로 정해짐)로부터 1000피트상 3도의 표준 감율 계산을 사용해서 계산되며, 이렇게 하면 10,000 피트에서는 40℉의 OAT를 예상값을 얻을 수 있다.OAT (outside air temperature), which is calculated using a standard decay calculation of 3 degrees above 1000 feet from ground_temperature (specified at 70 ° F ground_temperature). Can be.
·구름_범위(그 위치와 고도에서의 구름_범위). 이것은 그 위치를 포함하는 날씨 렉탕글(weather rectangle)내의 그 고도에서의 0(구름 없음)과 1(전 범위)사이의 수로 나타난다.Cloud_range (cloud_range at its location and altitude). This is represented by a number between 0 (no clouds) and 1 (full range) at that altitude in the weather weather rectangle that contains the location.
3. 아이싱 특정 변수3. Icing specific variables
아래의 변수는 아이싱 모듈에 의해 보관되고 다른 모델로 이용가능하다. 변수는 0.0(아이스 없음)과 1.0(완전히 아이싱됨)사이의 값을 가질 수 있다.The following variables are stored by the icing module and are available for other models. The variable can have a value between 0.0 (no ice) and 1.0 (fully iced).
윈드시일드_아이싱(항공기의 전면상의 가시 윈드시일드의 아이싱 레벨)Windshield_Icing (Icing level of visible windshield on the front of the aircraft)
·측면_윈도우_아이싱(측면 윈도우상의 아이싱 레벨)Side_Window_Icing (Icing Level on Side Window)
·윙_아이싱(윙상의 아이싱 레벨)Wing icing (Icing level on the wing)
·동체_아이싱(동체상의 아이싱 레벨)Fuselage_Icing (Icing Level on Fuselage)
·엔진_흡입_아이싱(엔진 흡입부의 아이싱 레벨)Engine_Suction_Icing (Icing Level of Engine Suction)
이들 변수의 각각은 항공기의 플랫폼과 구성을 근거해서 이들의 레벨을 다른 레벨로 변경할 수 있다.Each of these variables can change their levels to other levels based on the aircraft's platform and configuration.
4. 아이싱 프로세싱:4. Icing Processing:
실세계내의 항공기상의 아이싱의 효과의 개산(approximation)은 본 발명에 의해서 아이싱 효과를 계산하는데 사용된다.Approximation of the effects of icing on aircraft in the real world is used by the present invention to calculate the icing effect.
I) 입력 스테이트 데이터I) input state data
게임 스테이트와 날씨 데이터를 아이싱 모듈로 접근해서 판독Access and read game state and weather data with icing modules
ii) 아이싱 축적 계산ii) icing accumulation calculation
항공기상의 아이싱은 항공기가 가시성 습기(구름)내에 있고 외기 온도(OAT)가 습기가 접촉시 냉동될 수 있는 온도(10과 30℉)내에 있을 때 다양한 표면 변수에 따라 축적된다. 따뜻한 온도는 아이싱을 녹일 것이다. 추운 온도에서는 습기는 접촉시 녹지 않을 것이다.Icing on the aircraft accumulates according to various surface variables when the aircraft is in visible moisture (clouds) and the outside temperature (OAT) is within temperatures (10 and 30 ° F) where moisture can freeze upon contact. Warm temperatures will melt the icing. At cold temperatures, moisture will not melt on contact.
예를 들면, 축적의 보다 높은 속도는 심한 퍼센트 범위보다 높은 구름 범위(통해 흐를 수 있는 구름)에서 일어날 수 있다. 이 속도는 또한 항공기 구성과 아이싱 형태 또는 고도에 따라 다르게 나타날 수 있다.For example, higher rates of accumulation can occur in cloud ranges (clouds that can flow through) that are higher than severe percentage ranges. This speed may also vary depending on aircraft configuration and icing type or altitude.
한 실시예에서, 아래의 알고리즘은 아이싱 축적을 계산하는데 사용된다.In one embodiment, the algorithm below is used to calculate the icing accumulation.
((구름_범위>=.1)이고 (구름_범위<.7))이고, ((OAT>=10이고 (OAT=<30))이면.((Cloud_range> =. 1) and (cloud_range <.7)), and ((OAT> = 10 and (OAT = <30)).
·윈드시일드_아이싱 = 윈드시일드_아이싱 + .01Windshield icing = Windshield icing + .01
·측면_윈도우_아이싱 = 측면_윈도우_아이싱 +.005Side_Window_Icing = Side_Window_Icing +.005
·윙_아이싱 = 윙_아이싱 +.01Wing Icing = Wing Icing +.01
·동체_아이싱 =동체_아이싱 +.01Fuselage_Icing = Fuselage_Icing +.01
·엔진_흡입_아이싱 = 엔진_흡입_아이싱 +.01Engine Suction Icing = Engine Suction Icing +.01
(구름_범위<.7)이고, ((OAT>=10이고 (OAT=<30))이면.(Cloud_range <.7), ((OAT> = 10 and (OAT = <30)).
·윈드시일드_아이싱 = 윈드시일드_아이싱 + .02Windshield icing = Windshield icing + .02
·측면_윈도우_아이싱 = 측면_윈도우_아이싱 +.01Side_Window_Icing = Side_Window_Icing +.01
·윙_아이싱 = 윙_아이싱 +.02Wing Icing = Wing Icing +.02
·동체_아이싱 =동체_아이싱 +.02Fuselage_Icing = Fuselage_Icing +.02
·엔진_흡입_아이싱 = 엔진_흡입_아이싱 +.02Engine Suction Icing = Engine Suction Icing +.02
iii) 아이싱 분해 계산(대기 또는 디아이스 장비에 의해 용해iii) Icing decomposition calculation (melting by air or dice equipment
대기 효과에 의한 용해Dissolution by atmospheric effect
실세계내에서 아이싱을 제거하는데 두 개의 방법이 있다. 하나는 온도가 아이싱을 충분히 녹일 수 있기에 따뜻한 지역 또는 고도로 비행하는 것이다. 이것은 32℉보다 큰 OAT일 수 있다. 그러나, 파일롯은 아이싱을 더 이상 축적하지 않을 아이싱 조건으로부터 비행할 수 있어도, OAT가 아이스를 녹이기에 충분하게 따뜻하지 않을 수 있다.There are two ways to remove icing in the real world. One is to fly to warmer areas or altitudes because temperatures can melt the icing sufficiently. This may be an OAT greater than 32 ° F. However, even though the pilot may fly from an icing condition that will no longer accumulate icing, the OAT may not be warm enough to melt the ice.
보다 따뜻한 지역으로 비행하는 것을 근거해서 디아이싱을 계산하는 하나의 알고리즘은,One algorithm that calculates deicing based on flying to warmer areas is
(구름_범위<.1)이고, (OAT=<32)이면.(Cloud_range <.1), and (OAT = <32).
·윈드시일드_아이싱 = 윈드시일드_아이싱 - .01Windshield icing = Windshield icing-.01
·측면_윈도우_아이싱 = 측면_윈도우_아이싱 -.005Side_window_icing = side_window_icing -.005
·윙_아이싱 = 윙_아이싱 -.01Wing Icing = Wing Icing -.01
·동체_아이싱 =동체_아이싱 -.01Fuselage_Icing = Fuselage_Icing -.01
·엔진_흡입_아이싱 = 엔진_흡입_아이싱 = 엔진_흡입_아이싱 -.01Engine_Suction_Icing = Engine_Suction_Icing = Engine_Suction_Icing -.01
iv) 항공기 장비의 사용에 의한 디아이싱iv) deicing by use of aircraft equipment;
아이싱을 제거하는 다른 방법은 디아이싱 장비를 사용하는 것이다. 아이싱 장비는 종종 신뢰할 수 없으며 일정하게 효율적으로 적용하기 어렵다. 파일롯이 자주 주기적으로 이 장비를 적용하지 않으면, 아이스가 축적되어 아이싱 장비는 아이스를 용해할 수 없다. 예를 들어, 디아이싱 값은 장비가 충분한 아이싱 장비로 사용되지 않는다면 전체 량의 절반으로 설정될 수 있다.Another way to remove icing is to use deicing equipment. Icing equipment is often unreliable and difficult to apply consistently and efficiently. If the pilot does not apply this equipment frequently, ice builds up and the icing equipment cannot dissolve the ice. For example, the deicing value may be set to half of the total amount if the equipment is not used with enough icing equipment.
디아이싱 장비는 효과적으로 작동할 수 있어도, 디아이싱 장비는 모든 항공기를 커버하지 못한다. 디아이싱 장비는 최종적으로, 또한 아이싱 조건 동안 축적 주기의 보다 높은 레벨에서도 가능하며, 디아이싱된 상태로 유지될 수는 없다.Although the deicing equipment can work effectively, the deicing equipment does not cover all aircraft. The deicing equipment is finally also possible at a higher level of accumulation period during the icing condition and cannot be kept deiced.
디아이싱 장비를 사용해서 디아이싱을 계산하는 한 알고리즘은,One algorithm for calculating deicing using deicing equipment is
윈드시일드_아이스_온이면If windshield ice-on
윈드시일드_아이싱 =윈드시일드_아이싱 - .01Windshield icing = windshield icing-.01
윙_아이싱_온이면If wing_icing_on
윙_아이싱 = 윙_아이싱 -.01Wing Icing = Wing Icing -.01
제 1알고리즘은 온도가 충분히 따뜻하고 항공기가 구름내에 있지 않음으로써 아이싱 용해(디아이싱)를 에뮬레이트한다. 제 2알고리즘은 윈드시일드 디아이싱 온 또는 윙 디아이싱 온 중 어느 하나를 가짐으로써 아이스 제거를 에뮬레이트한다.The first algorithm emulates icing dissolution by warming the temperature sufficiently and not having the aircraft in the cloud. The second algorithm emulates ice removal by having either a windsea deicing on or a wing deicing on.
그러므로, 각 루프(게임내의 사이클)에 대해서, 디아이싱 장비는 윙 및 윈드시일드로부터 아이스를 제거하려고 할 것이다. 그러나, 상술한 바와 같이, 본 발명의 디아이싱 조건은 파일롯이 아이싱 상태로부터 멀리 비행하지 않는다면, 사실적으로 아이싱이 장비 및/또는 항공기를 압도할 가능성을 제공한다.Therefore, for each loop (cycle in the game), the deicing equipment will attempt to remove ice from the wings and windshields. However, as mentioned above, the deicing conditions of the present invention offer the possibility that in practice the icing will overwhelm the equipment and / or aircraft if the pilot does not fly away from the icing state.
v) 아이싱 변수의 출력 스테이트v) output state of the icing variable
아이싱 변수의 입력 스테이트는 축적과 분해 모델에 의해 개조된다. 결과값은 다른 모듈과 외부 모듈에 이용할 수 있다. 이들 변수들이 어떻게 이용되는 가의 약간의 예들은 아래에 설명되어 있다.The input state of the icing variable is modified by the accumulation and decomposition model. The result is available to other modules and external modules. Some examples of how these variables are used are described below.
a) 항공기 시스템 모델a) aircraft system model
항공기 시스템 모델은 항공기의 비행을 시뮬레이트하는 종래의 모델이다.The aircraft system model is a conventional model that simulates the flight of an aircraft.
1. 리프트(lift)의 계산1.Calculation of the lift
윙상의 아이스 축적은 윙에 의해 생성된 리프트를 절반까지 감소한다. 그러므로, 아이싱 모델은 다음과 같이 항공기 시스템 모델을 조절한다: 리프트 =리프트 * (윙_아이싱 * .5).Ice buildup on the wing reduces the lift produced by the wing by half. Therefore, the icing model adjusts the aircraft system model as follows: lift = lift * (wing_icing * .5).
2. 드래그(drag)의 계산2. Calculation of drag
윙 및 동체상의 아이스 축적은 항공기의 성능에서 25퍼센트 이상의 드래그를 추가한다. 그러므로, 이 예에서, 항공기 시스템 모델은 다음과 같이 조절된다: 드래그 = 드래그 *(1 +(.125*(윙_아이싱 + 동체_아이싱))).Ice buildup on the wings and fuselage adds more than 25 percent drag on aircraft performance. Therefore, in this example, the aircraft system model is adjusted as follows: drag = drag * (1 + (.125 * (wing_icing + fuselage_icing))).
3. 중량의 계산3. Calculation of weight
윙 및 동체상의 아이스 축적은 항공기의 중량을 크게 증가시킬 수 있다(이 도시예에서는, 25% 이상까지). 조절은,Ice buildup on the wings and fuselage can greatly increase the weight of the aircraft (up to 25% or more in this example). The adjustment is,
항공기_중량 = 항공기_중량 *(1 +(1 +(.125*(윙_아이싱 + 동체_아이싱)))일수 있다.Aircraft_weight = aircraft_weight * (1+ (1 + (. 125 * (wing_icing + fuselage_icing)))).
4. 엔진 성능의 계산4. Calculation of engine performance
엔진 흡입 아이싱은 이용가능한 공기의 량을 제한함으로써 엔진 성능에 영향을 줄 수 있다. 조절은,Engine intake icing can affect engine performance by limiting the amount of air available. The adjustment is,
드러스트(Thrust) = 드러스트 -(드러스트 * 엔진_흡입_아이싱)일 수 있다.Thrust = Thrust-(Drust * Engine_Suction_Icing).
5. 동체 아이싱에 의한 항공기 장비상의 효과의 계산5. Calculation of effects on aircraft equipment by fuselage icing
아이싱은 또한 항공기 기어, 플랩 및 기구(아이싱 커버)의 작동에 효과를 줄 수 있다:Icing may also have an effect on the operation of aircraft gears, flaps and mechanisms (icing covers):
(동체_아이싱 >.6)이면, 플랩-작동 = FALSE);(Body_icing> .6), flap-actuation = FALSE);
(동체_아이싱 >.7)이면, 기어-작동 = FALSE);(Body_icing> .7), gear-actuation = FALSE);
(동체_아이싱 >.8)이면, 스테이틱(static)_기구-작동 = FALSE);(Body_icing> .8), static_mechanical-actuation = FALSE);
b) 아이싱 렌더 모델b) Icing Render Model
이들은 아이싱 모델의 결과에 의해서 달성될 수 있는 렌더 결정(render decisions)의 예들이다. 랜더더(renderer)는 사용자에게 외부세계와 항공기의 조망(view)을 디스플레이한다. 이것은 윈드시일드, 측면 윈도우 및 일반적으로 항공기를 포함한다.These are examples of render decisions that can be achieved by the results of the icing model. The renderer displays to the user a view of the outside world and the aircraft. This includes windshields, side windows and generally aircraft.
1. 윈드시일드로부터의 조망1. View from Windshield
윈드시일드로부터의 조망은 일반적으로 선명하다. 아이싱 조건에서, 가시량은 윈드시일드_아이싱량만큼 줄어든다. 여기서, 줄늘어선 아이싱된 윈드시일드 디스플레이는 윈드시일드_아이싱 값을 근거해서 미리랜더링되어 디스플레이될 수 있다.The view from the windshield is generally clear. In the icing condition, the visible amount is reduced by the windshield icing amount. Here, the lined icing windshield display may be pre-rendered and displayed based on the windshield icing value.
윈드시일드_패널 = 윈드시일드_아이싱_패널[윈드시일드_아이싱]Windshield panel = windshield icing panel [windshield icing]
2. 측면 윈도우로부터의 조망2. View from the side window
측면 윈도우로부터의 조망은 그 변수에 의해서 지적된 윈도우_아이싱의 퍼센트에 의해 선명하지 못하다. 여기서, 줄늘어선 아이싱된 윈도우 디스플레이는 윈도우_아이싱 값을 근거해서 미리랜더링되어 디스플레이될 수 있다.The view from the side window is not clear by the percentage of window_icing indicated by that variable. Here, the lined icing window display may be pre-rendered and displayed based on the window_icing value.
윈도우_패널 = 윈도우_아이싱_패널[윈도우_아이싱]Window_panel = window_icing_panel [windows_icing]
c) 항공기 랜더링c) aircraft rendering
사용자에 의해 보여진 바와 같은 항공기 자체는 윈드시일드_아이싱, 윈도우_아이싱 및 동체_아이싱과 관련한 값에 따라서 변경되어진다. 다양한 시실적 축적 레벨에서 아이싱 효과를 나타내는 예비랜더링은 이들 변수들의 값에 따라서 항공기 모델에 추가되어진다. 사용자는 윈도우를 볼 때, 뿐만아니라 외부 조망이 선택될 때에 이런 축적을 본다. 이것은 위에서 도시한 바와 같이 다수의 어레이와 계산을 포함한다.The aircraft itself as seen by the user is changed in accordance with the values relating to windshield icing, window icing and fuselage icing. Preliminary rendering, which shows the effect of icing at various levels of substantial accumulation, is added to the aircraft model according to the values of these variables. The user sees this accumulation when viewing the window as well as when the external view is selected. This includes a number of arrays and calculations as shown above.
그러므로, 아이싱 모듈은 본 발명에 따라서 항공기의 랜더링과 플레이어의 항공기의 제어와 상호작용하는 아이싱 효과를 발생하기 위한 베이스로서 실세계 데이터를 사용하여 현재 및 실제 날씨 조건을 근거한 사실적이고 흥분적인 게밍 경험 제공한다.Therefore, the icing module provides a realistic and exciting gaming experience based on current and actual weather conditions using real world data as a base for generating icing effects that interact with the rendering of the aircraft and the control of the player's aircraft in accordance with the present invention. .
II. 교통 관리자II. Traffic manager
도 9를 참조하면, 교통 관리자(300)는 각각의 기능을 실행하는 몇몇 독립적인 프로세스로 구성되어 있다. 교통 엔진(900)은 플레이어의 게임(112)내의 모든 항공기를 생성하고, 관리하고 업데이트한다. 교통 엔진(900)은 먼저 플레이어 제어/게임 스테이트 엔진(328)으로부터 플레이어 항공기 데이터(위치, 고도, 헤딩, 속도 및 구성)를 요청한다. 이 데이터를 상술한 바와 같이 플레이어 항공기 둘레의 항공기 교통에 대한 게임 데이터 서버(108)에 대한 요청을 정식화하는데 사용한다. 교통 엔진(900)은 되돌아온 데이터를 사용해서 게임(112)내의 항공기를 생성한다. 교통 엔진(900)은 교통 데이터베이스(904)를 사용해서 이 데이터를 관리하며, 교통 데이터베이스는 플레이어 항공기를 포함하는 플레이어 항공기 가까이에 있는 모든 활동 항공기의 리스트를 포함한다. 각 데이터베이스 엔트리에 저장된 정보는 통상적으로 항공기 식별 번호(예, TWA714)와 나중에 프로세스내에 교통 엔진(900)에 의해 발생된 가상 및 플레이어 항공기 옵젝트에 대한 단일 포인터를 포함한다. 교통 데이터베이스(904)는 또한 게임(112)내의 다른 프로세스에 의해서 교통 옵젝트를 식별하고 접근하는데 사용된다.Referring to FIG. 9, the traffic manager 300 is composed of several independent processes that perform each function. The traffic engine 900 creates, manages, and updates all aircraft in the player's game 112. The traffic engine 900 first requests player aircraft data (position, altitude, heading, speed and configuration) from the player control / game state engine 328. This data is used to formulate a request to the game data server 108 for aircraft traffic around the player aircraft as described above. The traffic engine 900 uses the returned data to create an aircraft in the game 112. The traffic engine 900 uses the traffic database 904 to manage this data, which includes a list of all active aircraft near the player aircraft, including the player aircraft. The information stored in each database entry typically includes an aircraft identification number (eg, TWA714) and a single pointer to the virtual and player aircraft objects generated later by the traffic engine 900 in the process. The traffic database 904 is also used to identify and access traffic objects by other processes in the game 112.
항공기 엔트리에 교통 데이터베이스(904)를 추가하는 것 외에도, 교통 엔진(900)은 또한 플레이어의 지역을 지금 벗어나는 데이터베이스(904)로부터 엔트리를 제거함으로써 데이터베이스(904)를 관리한다. 한 실시예에서, 교통 엔진(900)은 3 업데이트 사이클에 대한 보고서를 받지 않은 어느 항공기에 대한 교통 데이터베이스(904)부터 엔트리를 제거한다. 상술한 바와 같이, 데이터베이스(904)에 대한 업데이트는 플레이어의 항공기의 어떤 지리적 지역내의 항공기에 대해서 받아들인다. 그러므로, 보고서가 없다면 착륙된 항공기 또는 그 위치가 플레이어의 항공기로부터 지금 충분히 멀리 있다는 것을 가리키므로, 그 항공기는 이미 플레이어의 게임(116)과는 아무런 관련이 없다.In addition to adding the traffic database 904 to the aircraft entry, the traffic engine 900 also manages the database 904 by removing entries from the database 904 that are now outside the player's region. In one embodiment, the traffic engine 900 removes entries from the traffic database 904 for any aircraft that has not received a report for three update cycles. As mentioned above, updates to the database 904 are accepted for aircraft within certain geographic area of the player's aircraft. Therefore, the absence of a report indicates that the landed aircraft or its location is now far enough away from the player's aircraft, so the aircraft is already having nothing to do with the player's game 116.
교통 엔진(900)은 먼저 싱글 ATC 프로세스(908)를 만든다. ATC 프로세스(908)가 가상 항공기 프로세스(916)와 플레이어 항공기 프로세스(932)를 제어하고 통신하므로 ATC 프로세스(908)는 실제 ATC 제어기로서 플레이어에 나타난다. ATC 프로세스(908)가 또한 교통 데이터베이스(904)와의 링크를 포함하므로 모든 관련 항공기의 데이터(예를 들어, 현재 속도, 헤딩, 고도)에 접근한다.The traffic engine 900 first creates a single ATC process 908. The ATC process 908 appears to the player as the actual ATC controller because the ATC process 908 controls and communicates with the virtual aircraft process 916 and the player aircraft process 932. The ATC process 908 also includes a link with the traffic database 904 to access data of all relevant aircraft (eg, current speed, heading, altitude).
그리고 나서, 교통 엔진(900)은 새로운 플레이어 없는 항공기에 대한 정보가 교통 데이터베이스(904)내에 입력되면 각 플레이어 없는 항공기에 대한 가상 항공기 프로세스(916)를 만든다. 교통 엔진(900)은 또한 연속적으로 실제 항공기상의 데이터 보고서 업데이트를 이용가능하게 가상 항공기 프로세스(916)에 보낸다. 이 데이터는 가상 항공기 프로세스(916)에 의해서 가상 항공기의 위치와 구성을 실제 항공기의 위치와 구성과 맞추는데 사용된다. 각 가상 항공기 프로세스(916)는 월드내에서 실제 항공기로서 플레이어(120)에 나타나고 행동한다. 가상 항공기 데이터는 월드내의 위치(x, y 위치, 헤딩, 속도 및 고도), 항공기 식별 및 스테이트(기어위치, 플랩 위치 등)를 포함한다. 이 데이터는 내적으로 유지되고 또한 ATC 프로세스(908)와 랜더링 엔진(316)과 같은 다른 게임 프로세스로부터 데이터 요청에 대응해서 이슈될 수 있다. ATC 프로세스(908)와의 통신/제어 링크는 또한 생성 동안에 설정된다. 이 링크는 가상 항공기 프로세스(916)가 ATC 프로세스(908)와 통신 컴맨드를 만들고 이에 따라서 대응할 수 있게 한다. 가상 항공기 프로세스(916)에의해 발생된 오디오 통신은 오디오 엔진(320)에 통신 컴맨드를 보냄으로서 달성된다.The traffic engine 900 then creates a virtual aircraft process 916 for each playerless aircraft once information about the new playerless aircraft is entered into the traffic database 904. The traffic engine 900 also continuously sends data report updates on the actual aircraft to the virtual aircraft process 916. This data is used by the virtual aircraft process 916 to match the location and configuration of the virtual aircraft with the location and configuration of the actual aircraft. Each virtual aircraft process 916 appears and acts on the player 120 as a real aircraft in the world. Virtual aircraft data includes position in the world (x, y position, heading, speed and altitude), aircraft identification and state (gear position, flap position, etc.). This data is maintained internally and can also be issued in response to data requests from other game processes such as ATC process 908 and rendering engine 316. The communication / control link with the ATC process 908 is also established during creation. This link allows the virtual aircraft process 916 to create a communication command and respond accordingly to the ATC process 908. Audio communication generated by the virtual aircraft process 916 is accomplished by sending a communication command to the audio engine 320.
교통 엔진(900)은 또한 외부적으로 플레이어 제어/게임 스테이트 엔진(328)과 내부적으로 ATC 프로세스(908)에 링크되어 있는 플레이어 항공기 프로세스(912)를 만든다. 이것으로, ATC 프로세스(908)가 모니터되어 플레이어와 대화하도록 한다. 플레이어 항공기에 관한 정보와 의도들은 플레이어 제어/게임 스테이트 엔진(328)으로부터 플레이어 항공기 프로세스(312)로 데이터를 반영하는 프로세스를 통해서 ATC 프로세스(908)에 접근할 수 있다. ATC 프로세스(908)는 또한 양호하게 오디오 엔진(320)(최종적으로 듣는)에 보내진 회화 통신 컴맨드를 통해서 플레이어와 대화한다. 플레이어는 플레이어 제어/게임 스테이트 엔진(328)에 의해 제공된 인터페이스(제어, 메뉴 및 키보드 컴맨드)를 통해서 제어기에 응답하고 대화한다.The traffic engine 900 also creates a player aircraft process 912 that is externally linked to the player control / game state engine 328 and internally to the ATC process 908. This allows the ATC process 908 to be monitored to talk to the player. Information and intentions about the player aircraft may access the ATC process 908 through a process that reflects data from the player control / game state engine 328 to the player aircraft process 312. The ATC process 908 also preferably communicates with the player through a conversational communication command sent to the audio engine 320 (finally listening). The player responds to and interacts with the controller through the interface provided by the player control / game state engine 328 (control, menu, and keyboard commands).
A. 가상 항공기 프로세스 알고리즘A. Virtual Aircraft Process Algorithm
각 가상 항공기 프로세스(916)는 양호하게 통신, 네비게이션 및 제어와, 룰-기반 결정을 처리하는 개별적인 모듈과 시뮬레이션 실행부와 공통 데이터베이스를 포함한다. 시뮬레이션 실행부는 개별 모듈의 실행 순서를 계획한다. 한 실시예에서, 시작 후에, 프로세스 실행 순서는,Each virtual aircraft process 916 preferably includes separate modules, simulation execution units and a common database that handle communication, navigation and control, and rule-based decisions. The simulation runner plans the execution order of the individual modules. In one embodiment, after startup, the process execution order is:
1. 통신 모듈(새로운 데이터 및 컴맨드 입력)1. Communication module (new data and command input)
2. 룰 기반 로직 모듈(업데이트 데이터에 반응)2. Rule-Based Logic Modules (Respond to Update Data)
3. 네비게이션 및 제어 모듈(항공기를 현재 항공기 목표를 따라 이동)3. Navigation and control module (moving aircraft according to current aircraft target)
4. 통신 모듈(데이터 및 컴맨드 출력)4. Communication module (data and command outputs)
5. 반복5. Repeat
1. 공통 데이터베이스Common database
공통 데이터베이스는 교통 엔진(900)으로부터 수신된 보고서를 저장하는데 사용된다.The common database is used to store reports received from the traffic engine 900.
2. 통신 모듈2. Communication module
통신 모듈은 가상 항공기 프로세스(916)와 다른 외부 프로세스들 사이의 모든 통신을 관리한다. 이것은 새로운 데이터와 메세지를 저장하거나, 데이터를 외부 프로세스로 보내는 지역으로서 공통 데이터베이스를 사용한다. 통신 모듈에 의한 데이터 입력은 교통 엔진(900)으로부터 업데이트 보고서, ATC 프로세스(908)로부터의 컴맨드와 다른 프로세스에 의한 데이터 요청을 포함한다. 통신 모듈은 다른 모듈에 의해 안내된 메시지를 근거해서 외부 프로세스로 데이터를 출력한다. 통신 모듈에 의한 데이터 출력은 ATC 프로세스(908)와 오디오 엔진(328)에 대한 메시지, 다른 모듈에 대한 데이터 요청 및 랜더링 엔진(316)과 다른 프로세스에 대한 위치 업데이트를 포함한다.The communication module manages all communication between the virtual aircraft process 916 and other external processes. It uses a common database as a locale to store new data and messages, or to send data to external processes. Data input by the communication module includes an update report from the traffic engine 900, a command from the ATC process 908, and a data request by another process. The communication module outputs data to an external process based on a message guided by another module. Data output by the communication module includes messages for the ATC process 908 and the audio engine 328, data requests for other modules, and location updates for the rendering engine 316 and other processes.
3. 룰 기반 로직 모듈3. Rule based logic module
룰 기반 로직 모듈은 가상 항공기의 변화 스테이트와 그것 둘레의 변화 세계에 반응하여 가상 항공기의 액션을 제어하는 것이다. 가상 항공기에 의해 수신된 실시간 데이터가 일자, 위치 및 날씨에 의해 변경되면, 이것은 게임내의 플레이어의 경험에 실시간 데이터의 영향을 제공하는 이들 룰과의 상호작용한다. 이들 미리프로그램되고 유동성인 액션 룰의 예들은 항공기의 변경 위치, ATC 통신과 제어, 플레이어 항공기의 위치(플레이어에 의해 제어한 바와 같이)에 반응하는 것들을 포함한다. 예를 들어, 항공기의 위치에 반응하는 하나의 룰은 가상 항공기가 공항의 50마일내에 있고 이미 착륙 준비에 있다고 항공 관제 프로세스(908)에 알리 필요성을 포함한다. 이것은 또한 플레이어가 들을 수 있을 오디오 메시지로 할 수 있다.The rule-based logic module controls the actions of the virtual aircraft in response to the change state of the virtual aircraft and the world of change around it. If real-time data received by the virtual aircraft is changed by date, location, and weather, it interacts with these rules to provide an impact of real-time data on the player's experience in the game. Examples of these preprogrammed and flexible action rules include those that react to the aircraft's change position, ATC communication and control, and the player aircraft's position (as controlled by the player). For example, one rule that responds to the location of the aircraft includes the need to inform the air control process 908 that the virtual aircraft is within 50 miles of the airport and is already ready for landing. This can also be an audio message that the player can hear.
룰의 한 예는:One example of a rule is:
(x,y) 위치가 목적지 공항으로부터 30마일 이내이면,If the (x, y) location is within 30 miles of the destination airport,
(공항에 인접함을 알림, 항공기_id, 위치, 고도)를 atc_제어기로 보내고(Notification of proximity to the airport, aircraft_id, location, altitude) to the atc_controller
(공항에 인접함을 알림, 항공기_id, 위치, 고도)오디오 엔진으로 보내는 것일 수 있다. (Notification of proximity to the airport, aircraft_id, location, altitude) may be sent to the audio engine .
가상 항공기는 또한 항공 관제 제어기에 의해 컴맨드에 반응한다. 항공기가 공항에 충분히 가까이에 있으면, ATC 제어기는 (가상) 항공기가 실제 항공기의 통로를 따라서 멈추도록 지시하고 그 다음에 착륙하라는 지시를 한다. 가상 항공기는 네비게이션 모듈을 변경함으로써 반응하여 ATC 컴맨드를 따르고, 그 컴맨드에 따라서, 컴맨드를 수신해서 동일한 컴맨드를 오디오를 통해서 알리는 ATC 프로세스(908)에 알린다.The virtual aircraft also responds to commands by the air traffic controller. If the aircraft is close enough to the airport, the ATC controller instructs the (virtual) aircraft to stop along the path of the actual aircraft and then to land. The virtual aircraft reacts by changing the navigation module to follow the ATC command and, according to the command, notifies the ATC process 908 of receiving the command and informing the same command via audio.
이런 작용을 달성하는 하나의 알고리즘은:One algorithm that achieves this behavior is:
atc_제어 = FALSE 하에 있고,atc_control = FALSE,
atc_제어기로부터 (턴-레프트-헤딩, 350)를 수신하면,When we receive (turn-left-heading, 350) from the atc_controller,
atc_제어를 TURE 상태로 설정,set atc_control to TURE state,
정상 네비게이션 멈춤,Normal navigation stops,
(턴_레프트_헤딩, 350)을 네비게이션 및 제어 프로세스로 보냄,(Turn_left_heading, 350) to the navigation and control process,
(턴, 레프트, 헤딩을 알림)을 atc_제어기로 보냄,(Notifies turn, left, heading) to atc_controller,
(턴, 레프트, 헤딩을 알림)을 오디오_제어기로 보내는 것이다.(Notifying turn, left, heading) to the audio_controller.
가상 항공기(916)는 또한 플레이어 항공기의 이동에 반응할 수 있다. 가상 항공기(916)는 (예를 들어, 플레이어 항공기가 충돌하려고 시도한다면) 가까이 다가오는 어떠한 항공기를 모니터하고 이로부터 멀리 이동하려고 시도하는 룰-기반 로직을 포함할 수 있다. 이것이 일어나면, 가상 항공기 룰-기반 로직은 항공기가 정상 네비게이션을 중지해서 플레이어 항공기의 위치로부터 멀어지게 비행하고, 불평 메시지를 ATC로 보내도록 명령할 수 있다. 이런 작동을 달성하는 알고리즘의 한 예는:The virtual aircraft 916 can also respond to the movement of the player aircraft. The virtual aircraft 916 may include rule-based logic that monitors for any upcoming aircraft and moves away from it (eg, if the player aircraft attempts to collide). If this happens, the virtual aircraft rule-based logic can instruct the aircraft to stop normal navigation, fly away from the position of the player aircraft, and send a complaint message to the ATC. An example of an algorithm that achieves this behavior is:
플레이어_항공기(위치) <1마일이면,If Player_Aircraft (Location) <1 mile,
정상 네비게이션 멈춤,Normal navigation stops,
(플레이어_항공기(위치))로부터 멀리 이동,Move away from (player_airplane (location)),
(가까이 있는 항공기 불평)을 atc_제어기로 보냄,(Closer aircraft complaint) to atc_controller,
(가까이 있는 항공기 불평)을 오디오_엔진에 보내는 것이다. Send (closest aircraft complaints) to the Audio_EngineWill.
플레이어 항공기가 가상 항공기로부터 멀리 이동되면, 다음의 룰은 가상 항공기가 정상적으로 작동하도록 뒤돌아간다:If the player aircraft moves away from the virtual aircraft, the following rules revert to normal operation of the virtual aircraft:
플레이어_항공기(위치) >=1마일이면Player_air (location)> = 1 mile
정상 네비게이션으로 가정Home with normal navigation
(항공기가 레프트함)을 atc_제어기로 보냄,(Aircraft left) to atc_controller,
(항공기가 레프트함)을 오디오_엔진에 보냄.Sends (left aircraft) to Audio_Engine.
B. 네비게이션 및 제어B. Navigation and Control
네비게이션 및 제어 모듈은 종래의 오토파일롯의 기능성을 포함한다. 종래 기술을 사용해서 공통 데이터베이스내에 저장된 다음의 보고서 업데이트에 의해 가상 항공기를 네비게이트하고 제어할 수 있다. 그러나, 본 발명에 따라서, 네비게이션 및 제어 모듈은 또한 내부 룰-기반 로직 모듈 또는 외부 ATC 프로세스(908)에 의해서 이슈된 네비게이션 컴맨드를 따를 수 있다.The navigation and control module includes the functionality of a conventional autopilot. Using the prior art, the virtual aircraft can be navigated and controlled by subsequent report updates stored in a common database. However, in accordance with the present invention, the navigation and control module may also follow the navigation commands issued by an internal rule-based logic module or an external ATC process 908.
네비게이션 및 제어 모듈은 보고서 업데이트를 사용해서 가상 항공기의 항공기 위치, 고도, 속도 및 헤딩을 실제 항공기의 것과 일치하도록 한다. 보고서 데이터(위치, 헤딩, 속도 및 고도)는 한 실시예에서 약 매 3분마다(상술한 바와 같이) 교통 엔진(900)에 의해서 업데이트되면, 네비게이션 및 제어 모듈은 이들 업데이트사이의 항공기의 이동을 개산하여 자신의 데이터를 발생하며, 이에 대해서는 아래에 보다 상세히 설명되어 있다. 가상 항공기의 현재 위치, 헤딩, 고도 및 속도의 보간은 랜더링 엔진으로 보내지고 게임내에 다른 프로세스에 이용할 수 있게 한다.The navigation and control module uses report updates to match the virtual aircraft's aircraft position, altitude, speed and heading to those of the actual aircraft. Once the report data (location, heading, speed and altitude) is updated by the traffic engine 900 about every three minutes (as described above) in one embodiment, the navigation and control module can track the movement of the aircraft between these updates. Estimate its own data, which is described in more detail below. Interpolation of the virtual aircraft's current position, heading, altitude, and speed is sent to the rendering engine and made available to other processes in the game.
실제 항공기의 이동과 일치시키는 것외에도, 네비게이션 및 제어 모듈은 또한 특정 네비게이션 컴맨드에 응답할 수 있다. 이들 컴맨드는 ATC 프로세스(908)에 의해 또는 룰 기반 로직 모듈에 의해 이슈될 수 있다. 이들 컴맨드의 예는 다음사항을 포함한다:In addition to matching the movement of the actual aircraft, the navigation and control module may also respond to certain navigation commands. These commands may be issued by the ATC process 908 or by a rule based logic module. Examples of these commands include the following:
·특정 헤딩까지 턴(좌 또는 우).Turn (left or right) to a specific heading.
·고도(하강, 상승 또는 유지)Altitude (falling, rising or holding)
·약간의 값으로 속도(증가, 감소)Speed (increase or decrease) with some value
·지점(x, y위치 및 고도)으로 직접 비행Fly directly to the point (x, y position and altitude)
·지점에서 유지(특정 x, y위치 및 고도위에서 순환)Hold at a point (circulate at a specific x, y position and altitude)
·공항에 접근 및 착륙 수행Approach and land at the airport
·(약간 x, y) 위치로부터 이동Move from position (slightly x, y)
·정상 네비게이션(중지, 재시작)(다음에 보고서 업데이트)Normal navigation (stop, restart) (update report next time)
·접근 인가(cleared for approach)Cleared for approach
·착륙 허가(cleared to land)Cleared to land
이들 컴맨드는 프로세스사이에서 쉽게 전달될 수 있는 간단한 포맷으로 되어 있다(예를 들어, "턴 레프트 투 헤딩 350"에 대한 컴맨드는 (턴_레프트_투_헤딩, 350)으로서 나타날 수 있다.These commands are in a simple format that can be easily passed between processes (eg, a command for "turn left to heading 350" may appear as (turn_left_to_heading, 350).
C. 항공기 관측사이의 네비게이팅 및 에버레징(averaging)C. Navigation and Everaging Between Aircraft Observations
가상 항공기가 신뢰성 있는 패션으로 작동하기 위해서, 위치 보고서 사이를 부드럽게 전이 해야 한다. 이들 보고서는 보고된 헤딩, 속도, 고도 및 X, Y(위도, 경도) 위치를 포함한다. 가상 항공기는 처음에 항공기를 나타나는 실제 항공기에대한 가장 최근 보고서의 위치(X, Y위도, 경도)에서 처음으로 생성된다. 또한 실제 항공기의 고도에서 항공기의 헤딩과 항공속도로 생성된다. 그리고 나서 가상 항공기는 상기 헤딩, 속도 및 고도를 사용해서 상기 위치로부터 전방으로 "드라이브"된다. 가상 항공기의 위치의 변화는 내부적으로 항공기 에이전트와 랜더링 엔진(328)으로의 출력에 의해서 계산된다. 이것은 실제 항공기로부터 다음의 보고서(위도, 경도, 고도, 헤딩 및 속도)가 수신될 때까지 계속한다. 그 다음에, 가상 항공기 프로세스(916)는 게임(116)내의 가상 항공기의 위치와 실제 항공기의 위치사이의 차이를 비교한다. 먼저 프로세스(916)는 그 위치를 향해서 바로 이동하는 헤딩, 속도 및 고도의 변화를 포함하는 벡터를 계산한다(그러므로 항공기는 항공기의 실제 위치까지 따라갈 수 있다(catch up)). 그리고 나서, 실제 항공기(실제 항공기의 벡터는 항공기가 가고자하는 곳을 반영한다)로부터 보고서의 헤딩, 고도 및 속도 벡터에 상기 벡터(벡터 추가를 사용해서)를 추가한다. 그 다음에, 가상 항공기 프로세스(916)는 가상 항공기가 코스, 헤딩 및 속도를 상기 벡터와 일치하도록 변경하는 명령을 한다. 그러므로 합성 벡터는 실제 항공기 위치 뿐만아니라 실제 코스를 따라서 이동하는 것을 보다 더 잘 반영하는데 필요한 변화들을 모두 반영한다.In order for a virtual aircraft to operate in a reliable fashion, it must transition smoothly between location reports. These reports include reported headings, speeds, altitudes, and X, Y (latitude, longitude) positions. A virtual aircraft is first created at the location (X, Y latitude, longitude) of the most recent report for the actual aircraft that initially represents the aircraft. It is also generated from the aircraft's heading and airspeed at the actual aircraft altitude. The virtual aircraft is then "driven" forward from the location using the heading, speed and altitude. The change in position of the virtual aircraft is calculated internally by the output to the aircraft agent and rendering engine 328. This continues until the next report (latitude, longitude, altitude, heading and speed) is received from the actual aircraft. The virtual aircraft process 916 then compares the difference between the position of the virtual aircraft and the position of the actual aircraft in the game 116. First, process 916 calculates a vector that includes headings, speeds, and elevation changes that move directly toward that location (the aircraft can thus catch up to the actual location of the aircraft). Then, add the vector (using vector addition) to the heading, altitude, and velocity vectors of the report from the actual aircraft (the vector of the actual aircraft reflects where the aircraft wants to go). The virtual aircraft process 916 then instructs the virtual aircraft to change the course, heading, and speed to match the vector. Therefore, the composite vector reflects not only the actual aircraft position, but also the changes necessary to better reflect the movement along the actual course.
최종적으로, 본 발명에 따라서, 오토파일롯은 헤딩과 고도의 부드러운 턴과 전이를 하도록 프로그램되어 있다. 벡터의 변화에 빠른 이동을 컴맨딩하기 보다는, 오토파일롯은 약 30초에서의 변화를 관리한다. 가상 항공기가 상기 벡터에서 안정한 후, 프로세스가 반복되어지는 다음 업데이트까지 상기 벡터를 따라서 계속해서 이동한다.Finally, in accordance with the present invention, the autopilot is programmed for heading and highly smooth turns and transitions. Rather than commanding a fast move to a change in the vector, the autopilot manages the change in about 30 seconds. After the virtual aircraft is stable in the vector, it continues to move along the vector until the next update where the process is repeated.
D. 플레이어 항공기를 피함D. Avoid player aircraft
게임에서 실시간 데이터를 통합함에 있어서의 다른 이슈는 플레이어 항공기와 가상 항공기사이의 상호작용을 제어하는 것이다. 한 실시예에서, 룰은 가상 항공기를 플레이어 제어된 회로에 착륙시키는데 사용된다. 첫째, 가상 항공기는 플레이어 항공기가 가상 항공기의 범위내에 있고 이것을 향해서 신속하게 이동하는 경우에 멀리 날아간다. 두 번째, 플레이어 항공기가 보다 늦은 속도로 접근하면 가상 항공기는 플레이어 항공기로부터 멀리 이동하지 않는다. 셋번째, 플레이어 항공기가 충분히 느린 속도로 접근하는 한, 가상 항공기는 플레이어 항공기가 가깝게 비행할 수 있게 허용한다(최대 범위내에). 네 번째, 플레이어 항공기가 최대 솔 영역(maximum sole range)으로 이동하면 가상 회로는 플레이어 항공기로부터 멀리 비행하는 것을 시도한다. 이들 룰은 플레이어 항공기가 충돌을 야기하지 않고 실시간 가상 교통과 상호작용하도록 허용한다. 그리고 나서는 플레이어는 가상 항공기에 느리게 접근하는 이동을 함으로써 비행 포메이션의 기술을 개발할 수 있다. 그리고 또한 플레이어는 의도적으로 가상 항공기로 비행을 시도하거나 가상 항공기를 강제로 코스를 이탈하게 하거나 지상 옵젝트나 산으로 비행할 수 있게 한다. 한 실시예에서, 가상 항공기와 플레이어 항공기가 다른 옵젝트와 충돌하면, 충돌하는 옵젝트는 폭발하고 게임 세션은 끝난다.Another issue in integrating real-time data in the game is controlling the interaction between the player aircraft and the virtual aircraft. In one embodiment, rules are used to land the virtual aircraft on the player controlled circuit. First, the virtual aircraft flies away if the player aircraft is in range of the virtual aircraft and moves quickly toward it. Second, if the player aircraft approaches at a slower speed, the virtual aircraft does not move away from the player aircraft. Third, as long as the player aircraft approaches at a sufficiently slow speed, the virtual aircraft allows the player aircraft to fly close (within maximum range). Fourth, as the player aircraft moves to the maximum sole range, the virtual circuit attempts to fly away from the player aircraft. These rules allow the player aircraft to interact with real-time virtual traffic without causing a collision. The player can then develop the skills of the flight formation by making slow movements to the virtual aircraft. The player also intentionally attempts to fly with a virtual aircraft, forcibly leaves the course, or flies to a ground object or mountain. In one embodiment, if the virtual aircraft and the player aircraft collide with other objects, the colliding objects explode and the game session ends.
다음은 상기 룰을 달성하는 알고리즘의 한 실시예이다:The following is an embodiment of an algorithm that achieves the above rules:
거리 PS to P,클로져의 율 PS to P및회피 벡터 PS to P를계산 Calculate distance PS to P , closure rate PS to P and avoidance vector PS to P
가상 항공기와 플레이어 항공기로부터 거리는 X, Y의 평방과 고도 차이 평방의 세제곱근으로서 계산된다. 각각에 대해서, X, Y는 0의 위도와 0의 경도점으로부터 피트로, 위도와 경도로부터 환산된다. 고도(A)는 피트로 나타낸다.The distance from the virtual and player aircraft is calculated as the cube root of the squares of X and Y and the square of the altitude difference. For each, X and Y are converted from latitude and longitude to pit from 0 latitude and 0 longitude point. Altitude A is expressed in feet.
거리PS to P=(XPS-XP)2+(YPS-YP)2+ (ZPS- ZP)2)1/3 Distance PS to P = (X PS -X P ) 2 + (Y PS -Y P ) 2 + (Z PS -Z P ) 2 ) 1/3
여기서, P는 플레이어 항공기로부터의 값을 그리고 PS는 가상 항공기로부터의 값을 나타낸다.Where P is the value from the player aircraft and PS is the value from the virtual aircraft.
클로져의 율PS to P는 한 계산 사이클로부터 다른 계산 사이클까지의 거리PS to P의 값을 비교함으로써 계산된다. 거리가 각 초당 계산되면, 주기 동안 초당 클로져의 율은 이전의 거리 값PS to P(t-1)- 현재의 거리 값PS to P(t)로 된다. 예를 들어, 이전 값이 1400피트이고 현재 값이 1200 피트이면, 클로져의 율은 200피트/초일 것이다.The ratio PS to P of the closure is calculated by comparing the value of the distance PS to P from one calculation cycle to another. Once the distance is calculated for each second, the rate of closure per second over the period becomes the previous distance value PS to P (t-1) minus the current distance value PS to P (t) . For example, if the previous value is 1400 feet and the current value is 1200 feet, the closure rate would be 200 feet / second.
회피 벡터Evasion vector
가상 항공기는 중심점 각 게임 사이클에 플레이어 항공기의 거리PS to P와 클로져의 율PS to P를 모니터한다(약 초당 한번).The virtual aircraft monitors the player PS 's distance PS to P and the closure's rate PS to P (about once per second) for each game cycle.
거리PS to P<1500피트, 그리고 클로져의 율PS to P>= 25피트/분이면, 가상 항공기는,If the distance PS to P <1500 feet, and the closure rate PS to P > = 25 feet / minute, the virtual aircraft
a. 오토파일롯 턴오프(예, 다음 위치 보고서 중단)a. Autopilot turn off (for example, stop next location report)
b. "나에게 너무 가까운 항공기가 있다"라는 효과로 각 분마다 랜덤화된 오디오 메시지를 보냄b. Sends a randomized audio message every minute with the effect that "the aircraft is too close to me"
c. 클로져의 율의 두배의 속도에서 회피 벡터c. Evasion vector at twice the rate of closure PS to PPS to P 의 방향으로, 항공기 성능이 허용하는 1500피트/분 또는 최대까지 플레이어 항공기로부터 멀리 이동한다.In the direction of, move away from the player aircraft to 1500 feet / minute or maximum allowed by aircraft performance.
이 알고리즘은 플레이어 항공기가 고속으로 가상 항공기를 향해서 이동하기 시작하는 상황을 언급한다. 클로져의 율PS to P가 25피트/분이고 거리PS to P>50피트이고, 가상 항공기 오토파일롯이 오프이면, 가상 항공기 프로세스(916)는,This algorithm refers to the situation where the player aircraft starts moving towards the virtual aircraft at high speed. If the closure rate PS to P is 25 feet / minute and the distance PS to P > 50 feet and the virtual aircraft autopilot is off, then the virtual aircraft process 916
a. 오토파일롯 턴온.a. Autopilot turn on.
b. 정상 네비게이션 재시작.b. Restart normal navigation.
c. 가상 항공기를 원래 코스로 다시 이동.c. Move the virtual aircraft back to its original course.
d. 한 실시예에서, "누가 우리와 정상 비행에 있다"가 효과로 오디오 메시지를 출력할 것이다.d. In one embodiment, "Who is in normal flight with us" will output the audio message as an effect.
이 알고리즘은 플레이어 항공기가 실제 항공기를 향해서 신속히 이동하지만, 합리적인 클로져의 율로 감속되어진 상황을 언급한다.This algorithm refers to a situation in which the player aircraft moves rapidly toward the actual aircraft, but has been slowed down at a reasonable closure rate.
거리PS to P<50피트이면, 가상 항공기 프로세스(916)는,If the distance PS to P <50 feet, the virtual aircraft process 916
a. 오토파일롯 턴오프(예, 다음 위치 보고서 중단)a. Autopilot turn off (for example, stop next location report)
b. "너는 너무 가까이 가고 있다"라는 효과로 각 15초마다 랜덤화된 오디오 메시지를 보냄b. Send a randomized audio message every 15 seconds with effect "You are getting too close"
c. 클로져의 율의 두배의 속도에서 회피 벡터c. Evasion vector at twice the rate of closure PS to PPS to P 의 방향으로, 항공기 성능이 허용하는 1500피트/분 또는 최대까지 플레이어 항공기로부터 멀리 이동한다.In the direction of, move away from the player aircraft to 1500 feet / minute or maximum allowed by aircraft performance.
이 알고리즘은 플레이어 항공기가 가상 항공기에 가깝게 비행하고(정상적으로) 그리고 나서 의도적으로 또는 잘못으로 가상 항공기를 향해서 이동하기 시작하는 상황을 언급한다.This algorithm refers to a situation in which a player aircraft flies close to the virtual aircraft (normally) and then begins to move towards the virtual aircraft intentionally or by mistake.
가상 항공기는 지상 또는 플레이어 항공기 위에 어느 다른 옵젝트와 충돌한다면,If a virtual aircraft collides with any other object on the ground or player aircraft,
a. 가상 항공기는 랜덤 오디오 메시지를 출력한다.a. The virtual aircraft outputs a random audio message.
b. 가상 항공기는 폭발한다.b. Virtual aircraft explodes.
c. 게임 세션은 끝난다.c. The game session ends.
거리PS to P< 10피트(항공기가 아마도 충돌되는 것을 나타냄)이면,If the distance PS to P <10 feet (indicating that the aircraft is probably crashing),
a. 가상 항공기는 "그것은 바보(dumb)이다"라는 효과로 랜덤 오디오 메시지를 출력한다.a. The virtual aircraft outputs a random audio message with the effect "it is a dumb".
b. 가상 항공기는 폭발한다.b. Virtual aircraft explodes.
c. 플레이어 항공기도 폭발한다.c. Player aircraft will also explode.
d. 게임 세션은 끝난다.d. The game session ends.
D. ATC 프로세스 알고리즘D. ATC Process Algorithm
ATC 프로세스는 가상 항공기 프로세스(916)와 유사한 구성을 가진다. ATC 프로세스는 시뮬레이션 실행부, 공통 데이터베이스, 통신을 처리하는 개별 모듈 및 룰 기반 결정부를 포함한다.The ATC process has a similar configuration as the virtual aircraft process 916. The ATC process includes a simulation execution unit, a common database, individual modules that handle communication, and rule-based decision units.
시뮬레이션 실행부는 개별 모듈의 실행 순서를 계획한다. 시작후, 프로세스 실행 순서는,The simulation runner plans the execution order of the individual modules. After startup, the process execution order is:
1. 통신 모듈(새로운 데이터 및 컴맨드 입력)1. Communication module (new data and command input)
2. 룰 기반 로직 모듈(업데이트된 내부 및 외부데이터에 반응)2. Rule-based logic module (responds to updated internal and external data)
3. 통신 모듈(데이터 및 컴맨드 출력)3. Communication module (data and command outputs)
4. 반복4. Repeat
1. ATC 공통 데이터베이스1. ATC Common Database
ATC 공통 데이터 베이스는 제어상태하의 항공기에 관한 데이터와 내부 목표에 관한 데이터와 ATC 프로세스(908) 자체의 스테이트(예, 항공기가 어떻게 제어될 것인가의 계획)를 저장하는데 사용된다. 공통 데이터베이스는 또한 다른 프로세스 모듈에 대한 공통 통신 구성을 제공하는데 사용된다. 데이터베이스의 변화는 모듈에 의해서 입력되고 활성된다.The ATC common database is used to store data about the aircraft under control and internal target data and the state of the ATC process 908 itself (eg, how the aircraft will be controlled). The common database is also used to provide a common communication configuration for other process modules. Changes to the database are entered and activated by the module.
2. ATC 통신 모듈2. ATC communication module
통신 모듈의 기본 작업은 가상 항공기 모듈내 사용된 것과 유사하다. ATC 통신 모듈은 ATC 프로세스(908)와 다른 외부 프로세스들 사이의 모든 통신을 관리한다. 새로운 데이터와 메시지를 저장하거나, 데이터를 외부 프로세스로 보내는 것은 지역으로서 공통 데이터베이스를 사용한다. ATC 통신 모듈에 의해 입력된 데이터는 가상 항공기와 플레이어 항공기 프로세스(912, 916)로부터의 위치 보고서, 가상 항공기와 플레이어 항공기 프로세스(912, 916)로부터의 요청과 응답을 포함한다. ATC 통신 모듈은 다른 모듈에 의해 안내된 메시지를 근거해서 데이터를 외부 프로세스로 출력한다. ATC 통신 모듈에 의해 출력된 데이터는 가상 항공기 프로세스 (916), 플레이어 항공기 프로세스(912)와 오디오 엔진(328)에 대한 메시지 및 가상 항공기와 플레이어 항공기 프로세스(912, 916)에 대한 데이터 요청을 포함한다.The basic operation of the communication module is similar to that used in the virtual aircraft module. The ATC communication module manages all communication between the ATC process 908 and other external processes. Storing new data and messages, or sending data to external processes, uses a common database as a local. Data input by the ATC communication module includes location reports from the virtual aircraft and player aircraft processes 912 and 916, requests and responses from the virtual aircraft and player aircraft processes 912 and 916. The ATC communication module outputs data to an external process based on a message guided by another module. The data output by the ATC communication module includes a message for the virtual aircraft process 916, a player aircraft process 912 and an audio engine 328, and a data request for the virtual aircraft and player aircraft processes 912, 916. .
3. ATC 룰 기반 로직 모듈3. ATC rule based logic module
ATC 룰 기반 로직 모듈은 세계의 항공기의 변화하는 스테이트에 반응하여 ATC 프로세스(908)의 액션을 제어한다. ATC 프로세스(908)는 게임이 플레이되는 날지, 위치 및 날씨에 의해 항고기의 플루우의 변화에 반응하고, 그러므로 실시간 교통과 날씨 조건에 대한 사실적 실시간 응답을 제공한다. 이 모듈내의 룰셋(rulesets)은 플레이어가 선택할 수 있는 영공 지역내에서 비행하는 주 공항의 액티브 제어를 시뮬레이트하도록 작동한다. ATC 프로세스(908)는 해당 공항으로부터 비행하든지 또는 이륙하고 있는 항공기와 상호작용한다.The ATC rule-based logic module controls the actions of the ATC process 908 in response to the changing state of the world's aircraft. The ATC process 908 responds to changes in the fish's flue by the date, location, and weather the game is played in, and therefore provides realistic real-time responses to real-time traffic and weather conditions. The rulesets in this module operate to simulate the active control of the main airport flying in the airspace that the player can select. The ATC process 908 interacts with the aircraft flying or taking off from the airport.
E. 인바운드 항공기 제어.(inbound aircraft control)E. inbound aircraft control
해당 공항(가상 및 플레이어)에 착륙할 예정인 항공기는 ATC 프로세스(908)와 교신해야하고 이러한 의도를 해당 공항의 50마일내에 말해야 한다. 가상 항공기는 이것을 자동적으로 하지만, 플레이어는 수동으로 이 통신을 해야 한다. 항공기가 이런 통신을 할 때, 이들은 착륙 큐(landing queue)로 추가된다. ATC 프로세스(908)는 이 큐를 사용해서 항공기와의 통신을 관리하고 또한 착륙하기 위한 플레이어 항공기를 시퀸스할 필요성에 따라서 실시간 교통을 조정한다. 착륙 큐는 착륙하기 위한 ATC 프로세스와 접촉하는 항공기의 FIFO(first in, first out)로 구성되어 있다. 각 항공기에 대한 이러한 큐내에 포함된 데이터는 시퀸스 오더, 해당 항공기용 식별 ID, 제어하에서 취해지고 초기 접근 점에 보내질 때에 초기에 할당되어진 고도를 포함하며, 상기 점은 현재 허가되어 있다.An aircraft that is scheduled to land at the airport (virtual and player) must communicate with the ATC process 908 and speak this intent within 50 miles of the airport. The virtual aircraft does this automatically, but the player must do this communication manually. When the aircraft makes this communication, they are added to a landing queue. The ATC process 908 uses this queue to manage real-time traffic as needed to manage communication with the aircraft and also sequence player aircraft for landing. The landing queue consists of the aircraft's first in, first out (FIFO) in contact with the ATC process for landing. The data contained in this queue for each aircraft includes the sequence order, the identification ID for that aircraft, and the altitude initially assigned when taken under control and sent to the initial access point, which point is currently authorized.
이 큐는 룰-기반 로직에 의해서 공항에서 항공기의 접근과 착륙의 제어를 시뮬레이트하는데 사용된다. 이것은 제어 및 컴맨드가 항공기에 이슈되는 접근구역내의 몇몇 포인트를 통과하는 것을 포함한다. 공항 활주로로부터의 포인트, 이들의 위치와 이슈된 컴맨드는 다음과 같다:This queue is used to simulate control of the aircraft's approach and landing at the airport by rule-based logic. This includes control and commands passing through several points in the access area that are issued to the aircraft. Points from the airport runway, their location and the issues in question are as follows:
포인트point 위치location 이슈된 컴맨드Issued Command
항공기 먼저 ATC에 접촉항공기로부터 >50마일IAP로 진행Aircraft first proceeds to> 50 miles IAP from aircraft in contact with ATC
항공기 IAP에 도착항공기로부터 20마일FAF 허가20 miles FAF clearance from the aircraft arriving at the aircraft IAP
항공기 FAF에 도착항공기로부터 10마일접근 인가Approve 10 miles from the aircraft to the FAF
항공기 접근점에 도착항공기로부터 2마일착륙 허가2 miles landing permit from the aircraft arriving at the aircraft access point
항공기가 제어하에 있으면, 항공기는 이들이 있는 곳을 감지하고 이들을 다음 포인트에 보내는 ATC 룰의 컴맨드를 따른다. 큐내의 데이터를 사용하는 룰의 한 예는 다음과 같다:If the aircraft is under control, the aircraft detects where they are and follows the commands of the ATC rules that send them to the next point. An example of a rule that uses data in a queue is:
(공항 AC1로부터의 위치) <= 위치(포인트로 허가)이면,(Position from airport AC1) <= position (permit in points),
메시지(FAF 허가)를 AC1로 보내고,Send a message (FAF grant) to AC1,
허가된 포인트을 FAF로 설정.Set Permitted Point to FAF.
항공기가 착륙할 때, 항공기는 인바운드 항공기 큐로부터 제거된다. 항공기는 이로부터 데이터가 사라지자마자 교통 엔진(900)에 의해 제거되어진다.When the aircraft lands, the aircraft is removed from the inbound aircraft queue. The aircraft is removed by traffic engine 900 as soon as data therefrom disappears.
1. 초기 접근포인트(Initial Approach Point)(IAP)에서 항공기 유지1. Maintain the aircraft at the Initial Approach Point (IAP).
교통이 공항에서 복잡할 때(busy bound), 수용할 수 있는 것보다 많은 항공기가 접근과 착륙을 기다리고 있을 때를 의미한다. (단지 하나의 항공기가 한번에 최종 접근 고정(Final Approach Fix)(FAF) 허가되고, 이것은 항공기를 부드럽게 정렬시킨다.) 이것은 또한 플레이어 항공기가 공항에 접근하고자 선택할 때 일어날 수 있다. ATC 프로세스(908)는 FAF 허가되기 전에 항공기를 IAP에 유지하도록 요청함으로써 이러한 일에 잘 적응한다.When traffic is busy bound at the airport, it means when more aircraft are waiting for access and landing than they can accommodate. (Only one aircraft is allowed a Final Approach Fix (FAF) at a time, which aligns the aircraft smoothly.) This can also happen when the player aircraft chooses to access the airport. The ATC process 908 adapts well to this by asking the aircraft to keep the IAP before it is granted a FAF.
항공기가 초기에 IAP 허가되면, 고도를 유지하라고 한다. 이 고도는 베이스 고도로부터 오프셋을 결정하는 큐내의 시퀸스 오더를 사용해서 만들어진다. 고도 분리는 항공기들의 충돌을 방지한다. 예를 들어, 항공기 접근이 큐내에서 4번째 항공기이고 IAP의 베이스 고도가 10,000피트이면, 해당 항공기는 IAP에 10000 +(4*1000) = 14,000 피트로 허가될 것이다. 시퀸스 수가 10을 초과하고, 큐내의 항공기의 전체수가 10(약간의 항공기가 허가 되었음을 가리킴)이하 이면, 항공기 시퀸스 수는 1로 재설정된다. 이것으로부터 다음 항공기에서는 11,000피트(10,000 +(1*1000피트)으로 인가되어질 것을 알 수 있다. FAF에서 유지하는 항공기 퇴진은 허용되고 IAP에서 유지하는 다음 항공기는 FAF로 허가된다.If the aircraft is initially IAP approved, it is said to maintain altitude. This altitude is created using a sequence order in the queue that determines the offset from the base altitude. Altitude separation prevents aircraft from colliding. For example, if the aircraft approach is the fourth aircraft in the queue and the base altitude of the IAP is 10,000 feet, then the aircraft will be granted 10000 + (4 * 1000) = 14,000 feet to the IAP. If the number of sequences exceeds 10 and the total number of aircraft in the queue is less than 10 (indicating that some aircraft is licensed), the number of aircraft sequences is reset to one. From this it can be seen that the next aircraft will be authorized at 11,000 feet (10,000 + (1 * 1000 feet). The retirement of aircraft maintained by the FAF is permitted and the next aircraft maintained by the IAP is granted FAF.
2. 아웃바운드 항공기2. Outbound Aircraft
공항을 출발(이륙)하는 항공기는 이륙준비를 알리는 ATC 프로세스(908)에 통신 메시지를 보낼 때 이륙 큐에 추가된다. 이 메시지는 가상 항공기가 교통 엔진(900)에 의해 생성되어 해당 공항에 있으며 이들의 비행 계획이 아직 이륙하지 않음을 알릴 때, 자동적으로 가상 항공기에 의해 이슈된다. 이 메시지는 또한 플레이어 항공기가 공항에 있고 이륙을 원하고 있을 때도 발생된다. 이륙 큐는 데이터로서 시퀸스 수, 항공기에 대한 ID수, 이륙을 허가 받은 포인트를 보관한다. 이륙 로직이 관련되어해서 3포인트가 있다.The aircraft leaving (taking off) the airport is added to the takeoff queue when it sends a communication message to the ATC process 908 informing the takeoff ready. This message is automatically issued by the virtual aircraft when the virtual aircraft has been generated by the traffic engine 900 and is at the airport and their flight plan has not yet taken off. This message also occurs when the player aircraft is at the airport and wants to take off. The takeoff queue stores the number of sequences, IDs for the aircraft, and points that are permitted to take off as data. There are three points involved in the takeoff logic.
포인트point 장소Place 이슈된 컴맨드Issued Command
먼저 항공기 ACT 접촉활주로상이륙 허가First, aircraft ACT contact runway
활주로 시퀸스 포인트공항으로부터 1마일네비게이션재시작One-mile navigation resumes from Runway Sequence Point Airport
이륙 인가 공항으로부터 50마일"안녕" 메시지 보냄50 miles "Goodbye" message sent from takeoff licensed airport
항공기가 이륙 요청을 할 때, 항공기는 이륙 큐에 추가된다. ATC 프로세스(908)가 안전하게 이륙을 허용한다면(어느 이전 항공기는 활주로 시퀸스 포인트를 지나서 도착하거나 이동됨), 항공기는 이륙 허가된다. 그렇지 않으면, 항공기는 유지하라는 요구를 받고, 해당 포인트가 허가될 때 이륙을 허용한다. 항공기가 시퀸스 포인트에 도달하면, ATC 프로세스(908)는 항공기에 컴맨드를 이슈하여 정상 네비게이션을 재시작하지만, 큐로부터 항공기가 이탈하지 않도록 한다. 그리고 나서 항공기는 보고서를 따라서 출발해서 실제 항공기 루트와 일치시킬 수 있다. 항공기가 50마일 포인트을 지나서 이동하면, 항공기는 큐로부터 제거되고 청각적 송별 메시지를 보낸다.When the aircraft makes a takeoff request, the aircraft is added to the takeoff queue. If the ATC process 908 allows for safe takeoff (any previous aircraft arrives or moves past the runway sequence point), the aircraft is allowed to take off. Otherwise, the aircraft is required to maintain and allow takeoff when the point is granted. When the aircraft reaches the sequence point, ATC process 908 issues a command to the aircraft to restart normal navigation, but does not allow the aircraft to leave the queue. The aircraft can then start following the report and match the actual aircraft route. As the aircraft travels past 50 mile points, the aircraft is removed from the queue and sends an acoustic farewell message.
3. 지상에 항공기 유지3. Keep aircraft on the ground
착륙 큐에서와 같이, 수용할 수 있는 것보다 많은 이륙을 원하는 항공기가 있는 상황이 있을 수 있다. 이것은 종종 플레이어 항공기가 이륙을 요청할 때 공항이 바쁠 때 일어날 수 있다. 이 경우에, 항공기가 이륙 준비 메시지를 보내면, 항공기는 유지하라는 안내를 받는다. 큐내의 앞쪽 항공기가 출발하면, 해당 항공기는 사실적으로 이륙을 허가 받게 된다. 불행하게도 실생활을 반영하는, 이륙 큐를 유지될 수 있는 항공기의 수로 제한하지 않고 있다.There may be situations where there are aircraft that want to take off more than they can accommodate, such as in a landing queue. This can often happen when the airport is busy when the player aircraft requests takeoff. In this case, when the aircraft sends a takeoff ready message, the aircraft is informed to keep. When the aircraft in front of the queue departs, the aircraft is actually allowed to take off. Unfortunately, it does not limit the take-off queue to the number of aircraft that can be maintained, reflecting real life.
4. 로오그 항공기(Rogue Aircraft)를 다룸4. Dealing with Rogue Aircraft
착륙 및 이륙 큐는 또한 제어상태하에 있지 않은 항공기(특히, 플레이어 항공기)에 대한 영공을 ATC 프로세스(908)가 모니터할 수 있게 하는 2차적인 목적을 하는 역할을 한다. 플레이어 항공기가 공항의 50마일 이내에 있으며 ATC 프로세스(908)와 접촉하지 않고 착륙 큐상태로 놓여 있다고 ATC 프로세스(908)가 결정하면, ATC 프로세스(908)는 항공기가 착륙할 때까지, 오디오 메시지를 보냄으로써 비확인 항공기에게 반응하여 항공기의 확인을 묻고 의도가 무엇인지 묻거나 유사한 메시지를 요구한다. 동일한 프로세스는 플레이어 항공기가 허가 요청없이 활주로상에 진행하고 이륙한다면 플레이어 항공기에 사용된다. ATC 프로세스(908)는 항공기가 이륙 허가 요청없이(이륙 큐에 있지 않음) 활주로상에 있는 것을 감지하고 항공기가 50마일을 지나갈 때까지 적절한 일련의 오디오 메시지를 보낼 것이다.The landing and takeoff queues also serve a secondary purpose of allowing the ATC process 908 to monitor the airspace for aircraft that are not under control (especially player aircraft). If the ATC process 908 determines that the player aircraft is within 50 miles of the airport and is not in contact with the ATC process 908, the ATC process 908 sends an audio message until the aircraft lands. Responding to the unconfirmed aircraft, asking for confirmation of the aircraft, asking what the intention is, or asking for a similar message. The same process is used for the player aircraft if the player aircraft proceeds and takes off on the runway without requesting permission. The ATC process 908 will detect that the aircraft is on the runway without requesting a takeoff permit (not in the takeoff queue) and will send the appropriate series of audio messages until the aircraft has passed 50 miles.
5. 실시간 날씨 데이터 사용5. Use real-time weather data
ATC 프로세스(908)는 또한 파일롯이 날씨 데이터(예를 들어, 바람 방향은 무엇인지)를 요청함에 따라서 제어중인 공항에 대한 상술한 바와 같은 실시간 날씨 데이터를 사용할 수 있다. 이 데이터는 또한 ATC 프로세스(908)가 항공기에 착륙 명령을 하고 가장 적절한 활주로를 선택하고, 실시간 조건을 근거해서 CN파트의 사실적인 랜더링을 발생하는데 사용된다.The ATC process 908 may also use real time weather data as described above for the airport under control as the pilot requests weather data (eg, what the wind direction is). This data is also used by the ATC process 908 to command the aircraft to select the most appropriate runway and to generate realistic rendering of the CN part based on real time conditions.
그러므로, 시스템, 방법 및 장치는 실시간 데이터의 사용으로 게밍 경험에 영향을 주고 운행하기 위해서 기술되어 있다. 양호한 실시예에서 비행 시뮬레이션 애플리케이션을 약간 상세하게 기술하고 있어도, 본 발명의 내용은 마찬가지로, 카 또는 선박 레이싱 게임 또는 다른 스포츠 이벤트와 같은 다른 게임으로 확장될 수 있다. 많은 추가의 개량예는 본 발명의 진정한 정신으로부터 벗어나지 않고 상술한 장치에서 만들 수 있다. 특히, 특정 기능이 상술한 방법의 서로 상이한 단계와 상술한 회로의 모듈에 속하게 되어도, 이들 기능들은 당업자에 알려진 바와 같은 상이한 순서와 상이한 모듈에 의해 수행될 수 있다.Therefore, systems, methods and apparatus have been described to influence and operate a gaming experience with the use of real-time data. Although the flight simulation application is described in some detail in the preferred embodiment, the content of the present invention may likewise be extended to other games such as car or ship racing games or other sporting events. Many further modifications can be made in the apparatus described above without departing from the true spirit of the invention. In particular, even if a particular function belongs to the different steps of the above-described method and the module of the above-described circuit, these functions may be performed by a different order and a different module as known to those skilled in the art.
Claims (33)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US77818501A | 2001-02-06 | 2001-02-06 | |
US09/778,185 | 2001-02-06 | ||
PCT/US2002/003881 WO2002062436A2 (en) | 2001-02-06 | 2002-02-06 | Integration of real-time data into a gaming application |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20030080218A true KR20030080218A (en) | 2003-10-11 |
Family
ID=28792514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2003-7010366A KR20030080218A (en) | 2001-02-06 | 2002-02-06 | Integration of real-time data into a gaming application |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP1438110A4 (en) |
JP (1) | JP2004520903A (en) |
KR (1) | KR20030080218A (en) |
CN (1) | CN1494452A (en) |
WO (1) | WO2002062436A2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100815626B1 (en) * | 2005-07-05 | 2008-03-21 | 인벤텍 코오포레이션 | Computer game development system |
KR101029120B1 (en) * | 2004-11-12 | 2011-04-13 | 한국항공우주산업 주식회사 | Input Data Creation System for No-fault Verification of Realtime Flight Simulator |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ES2385335T3 (en) | 2000-10-19 | 2012-07-23 | Target Discovery, Inc. | Mass defect labeling for the determination of oligomer sequences |
US8458028B2 (en) * | 2002-10-16 | 2013-06-04 | Barbaro Technologies | System and method for integrating business-related content into an electronic game |
US20050187741A1 (en) * | 2004-02-19 | 2005-08-25 | Microsoft Corporation | Development tool for defining attributes within a multi-dimensional space |
JP4033403B2 (en) * | 2004-04-27 | 2008-01-16 | 株式会社コナミデジタルエンタテインメント | GAME PROGRAM AND GAME DEVICE |
CN101484220B (en) * | 2006-06-19 | 2012-09-05 | 安布克斯英国有限公司 | Game enhancer |
JP4145945B2 (en) * | 2006-12-12 | 2008-09-03 | 株式会社コナミデジタルエンタテインメント | Game system |
AU2008282886B2 (en) | 2007-07-27 | 2012-11-29 | Pls Iv, Llc | Content publishing systems and methods |
GB0804274D0 (en) * | 2008-03-07 | 2008-04-16 | Virtually Live Ltd | A media sysyem and method |
US9539498B1 (en) | 2012-07-31 | 2017-01-10 | Niantic, Inc. | Mapping real world actions to a virtual world associated with a location-based game |
US9782668B1 (en) | 2012-07-31 | 2017-10-10 | Niantic, Inc. | Placement of virtual elements in a virtual world associated with a location-based parallel reality game |
US9128789B1 (en) | 2012-07-31 | 2015-09-08 | Google Inc. | Executing cross-cutting concerns for client-server remote procedure calls |
US9226106B1 (en) | 2012-07-31 | 2015-12-29 | Niantic, Inc. | Systems and methods for filtering communication within a location-based game |
US9669296B1 (en) | 2012-07-31 | 2017-06-06 | Niantic, Inc. | Linking real world activities with a parallel reality game |
US9621635B1 (en) | 2012-07-31 | 2017-04-11 | Niantic, Inc. | Using side channels in remote procedure calls to return information in an interactive environment |
US9669293B1 (en) | 2012-07-31 | 2017-06-06 | Niantic, Inc. | Game data validation |
US9604131B1 (en) | 2012-07-31 | 2017-03-28 | Niantic, Inc. | Systems and methods for verifying player proximity within a location-based game |
US8968099B1 (en) | 2012-11-01 | 2015-03-03 | Google Inc. | System and method for transporting virtual objects in a parallel reality game |
US10463953B1 (en) | 2013-07-22 | 2019-11-05 | Niantic, Inc. | Detecting and preventing cheating in a location-based game |
US9545565B1 (en) | 2013-10-31 | 2017-01-17 | Niantic, Inc. | Regulating and scoring player interactions within a virtual world associated with a location-based parallel reality game |
US10115240B2 (en) | 2015-08-11 | 2018-10-30 | Amazon Technologies, Inc. | Virtual area generation and manipulation |
US10717005B2 (en) | 2017-07-22 | 2020-07-21 | Niantic, Inc. | Validating a player's real-world location using activity within a parallel reality game |
CN108492351B (en) * | 2018-03-22 | 2019-06-18 | 腾讯科技(深圳)有限公司 | Picture display process, device and readable medium based on three-dimensional virtual environment |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4599070A (en) * | 1981-07-29 | 1986-07-08 | Control Interface Company Limited | Aircraft simulator and simulated control system therefor |
US5366376A (en) * | 1992-05-22 | 1994-11-22 | Atari Games Corporation | Driver training system and method with performance data feedback |
US5598359A (en) * | 1993-10-29 | 1997-01-28 | Southwest Research Institute | Weather effects generator for simulation systems |
US5480305A (en) * | 1993-10-29 | 1996-01-02 | Southwest Research Institute | Weather simulation system |
US6080063A (en) * | 1997-01-06 | 2000-06-27 | Khosla; Vinod | Simulated real time game play with live event |
DE60112016T2 (en) * | 2000-03-21 | 2006-04-20 | Sony Computer Entertainment Inc. | ENTERTAINMENT DEVICE, STORAGE MEDIUM AND WEATHER PROCEDURE |
-
2002
- 2002-02-06 WO PCT/US2002/003881 patent/WO2002062436A2/en not_active Application Discontinuation
- 2002-02-06 CN CNA028059484A patent/CN1494452A/en active Pending
- 2002-02-06 JP JP2002562441A patent/JP2004520903A/en active Pending
- 2002-02-06 EP EP02713558A patent/EP1438110A4/en not_active Withdrawn
- 2002-02-06 KR KR10-2003-7010366A patent/KR20030080218A/en not_active Application Discontinuation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101029120B1 (en) * | 2004-11-12 | 2011-04-13 | 한국항공우주산업 주식회사 | Input Data Creation System for No-fault Verification of Realtime Flight Simulator |
KR100815626B1 (en) * | 2005-07-05 | 2008-03-21 | 인벤텍 코오포레이션 | Computer game development system |
Also Published As
Publication number | Publication date |
---|---|
CN1494452A (en) | 2004-05-05 |
JP2004520903A (en) | 2004-07-15 |
WO2002062436A3 (en) | 2003-10-16 |
EP1438110A4 (en) | 2005-01-26 |
WO2002062436A2 (en) | 2002-08-15 |
EP1438110A2 (en) | 2004-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20030080218A (en) | Integration of real-time data into a gaming application | |
CN110209195B (en) | Remote control system and control method for offshore unmanned aerial vehicle | |
US9567099B2 (en) | Aircraft flight management devices, systems, computer readable media and related methods | |
Perry Hobson et al. | Virtual reality: A new horizon for the tourism industry | |
CN100535684C (en) | Method and system for preventing aircraft from penetrating into dangerous trailing vortex area of vortex generator | |
US6282466B1 (en) | Method of automated thrust-based roll guidance limiting | |
CN109364475A (en) | Virtual role control method, device, terminal, system and medium | |
US6199030B1 (en) | Heightened realism for computer-controlled units in real-time activity simulation | |
JP2013173522A (en) | Method for flying aircraft along flight path | |
KR20110069824A (en) | System and method for simulating events in a real environment | |
US6195626B1 (en) | Heightened realism for computer-controlled units in real-time simulation | |
GB2598539A (en) | Airspace simulator | |
CN103578299B (en) | A kind of method simulating aircraft process | |
Palmer | Understanding Air France 447 | |
CN106445655A (en) | Method for integrating a constrained route(s) optimization application into an avionics onboard system | |
Barin et al. | Understanding dangerous play: A grounded theory analysis of high-performance drone racing crashes | |
CN113409648A (en) | Flight pitching illusion simulation method and device and flight illusion simulator | |
US6179618B1 (en) | Heightened realism for computer-controlled units in real-time activity simulation | |
US6110215A (en) | Heightened realism for computer-controlled units in real-time activity simulation | |
AU2002245403A1 (en) | Integration of real-time data into a gaming application | |
Ta et al. | Mitigating operational aircraft noise impact by leveraging on automation capability | |
McGeer | Laima: the first atlantic crossing by unmanned aircraft | |
CN115064030A (en) | Portable unmanned aerial vehicle simulation training system | |
Sibilski et al. | Aircraft climbing flight dynamics with simulated ice accretion | |
WO2021144540A1 (en) | Method for monitoring operator training in a simulator |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |