KR100876739B1 - Multiplayer Video Game System and Method - Google Patents
Multiplayer Video Game System and Method Download PDFInfo
- Publication number
- KR100876739B1 KR100876739B1 KR1020070015049A KR20070015049A KR100876739B1 KR 100876739 B1 KR100876739 B1 KR 100876739B1 KR 1020070015049 A KR1020070015049 A KR 1020070015049A KR 20070015049 A KR20070015049 A KR 20070015049A KR 100876739 B1 KR100876739 B1 KR 100876739B1
- Authority
- KR
- South Korea
- Prior art keywords
- game
- file
- act
- player
- user
- Prior art date
Links
Images
Classifications
-
- 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/50—Controlling the output signals based on the game progress
- A63F13/53—Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
- A63F13/537—Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game using indicators, e.g. showing the condition of a game character on screen
- A63F13/5375—Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game using indicators, e.g. showing the condition of a game character on screen for graphically or textually suggesting an action, e.g. by displaying an arrow indicating a turn in a driving game
-
- 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/33—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections
- A63F13/332—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections using wireless networks, e.g. cellular phone networks
-
- 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/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- 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/837—Shooting of targets
-
- 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/20—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 characterised by details of the game platform
- A63F2300/203—Image generating hardware
-
- 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/20—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 characterised by details of the game platform
- A63F2300/206—Game information storage, e.g. cartridges, CD ROM's, DVD's, smart cards
-
- 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/30—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 output arrangements for receiving control signals generated by the game device
- A63F2300/303—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 output arrangements for receiving control signals generated by the game device for displaying additional data, e.g. simulating a Head Up Display
- A63F2300/307—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 output arrangements for receiving control signals generated by the game device for displaying additional data, e.g. simulating a Head Up Display for displaying an additional window with a view from the top of the game field, e.g. radar screen
-
- 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/40—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 characterised by details of platform network
- A63F2300/406—Transmission via wireless network, e.g. pager or GSM
-
- 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
- A63F2300/55—Details of game data or player data management
- A63F2300/552—Details of game data or player data management for downloading to client devices, e.g. using OS version, hardware or software profile of the client device
-
- 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/66—Methods for processing data by generating or executing the game program for rendering three dimensional images
-
- 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/8076—Shooting
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- Optics & Photonics (AREA)
- Processing Or Creating Images (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephonic Communication Services (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
Description
도 1은 본 발명의 일 실시예에 따른 게임 개발 및 실행을 위한 시스템의 블록도. 1 is a block diagram of a system for game development and execution in accordance with one embodiment of the present invention.
도 2는 본 발명의 일 실시예에 따른 게임 장면에 디스플레이되는 일 전경(panorama)의 사시도. 2 is a perspective view of one panorama displayed in a game scene according to one embodiment of the invention.
도 3은 본 발명의 일 실시예에 따른 게임에서 장면들을 디스플레이하는 비디오 화면을 나타낸 도면. 3 illustrates a video screen displaying scenes in a game in accordance with one embodiment of the present invention.
도 4는 본 발명의 일 실시예에 따른 게임의 장면에 나타나는 층(layering)을 나타낸 도면. 4 illustrates layering that appears in a scene of a game in accordance with one embodiment of the present invention.
도 5는 본 발명의 일 실시예에 따른 게임에 사용되는 런타임 엔진처리 파일들(runtime engine processing files)을 나타낸 도면. FIG. 5 illustrates runtime engine processing files used for a game in accordance with one embodiment of the present invention. FIG.
도 6a 내지 6e는 본 발명의 일 실시예에 따른 게임을 생성하는데 사용되는 제작 툴(authoring tool)을 나타낸 도면. 6A-6E illustrate an authoring tool used to create a game in accordance with one embodiment of the present invention.
도 7은 성공적인 발사(shots)를 등록하기 위한 종래 기술을 나타낸 도면. 7 shows a prior art for registering successful shots.
도 8은 본 발명의 일 실시예에 따른 성공적인 발사(shots)를 등록하기 위한 기술을 나타낸 도면. 8 illustrates a technique for registering successful shots in accordance with an embodiment of the present invention.
도 9는 본 발명의 일 실시예에 따른 서로 다른 크기의 화면상의 이미지 디스플레이를 나타낸 도면. 9 illustrates an image display on a screen of different sizes according to an embodiment of the present invention.
도 10은 본 발명의 일 실시예에 따른 게임에 사용되는 레이더(radar)를 나타낸 도면. 10 illustrates a radar used in a game according to an embodiment of the present invention.
도 11은 본 발명의 일 실시예에 따른 게임에 사용되는 파일들의 컨테이너(container)를 나타낸 도면. 11 illustrates a container of files used for a game according to an embodiment of the present invention.
도 12는 본 발명의 일부 다양한 실시예들에서 실시 가능한 이동 장치의 블록도. 12 is a block diagram of a mobile device that may be implemented in some various embodiments of the present invention.
도 13은 본 발명의 일부 다양한 실시예들에서 실시 가능한 컴퓨터 시스템의 블록도. 13 is a block diagram of a computer system that may be implemented in some various embodiments of the invention.
본 출원은, 적어도 미합중국 특허법 119조 (e)항의 규정에 따라, 발명자 데이비드 씨. 에드워즈(David C. Edwards)가, "이동 단말기에서 3D 게임을 실행하기 위한 피유쥐에스 게임 엔지(PUGS Game Engine for 3-D Gaming on Handsets)"이라는 명칭으로 2005년 6월 28일자로 출원한 미합중국 가출원 제 60/694,785호, "3D 게임을 실행하기 위한 피아이씨 포맷(PIC Format for 3-D Gaming)"이라는 명칭으로 2005년 6월 28일자로 출원한 미합중국 가출원 제 60/694,496호, 및 "3D 게임을 실행하기 위한 티쥐에이 포맷(TGA Format for 3-D Gaming)"이라는 명칭으로 2005년 6월 28일자로 출원한 미합중국 가출원 제 50/694,569호의 우선권에 대한 이익을 주장하며, 상기 출원들의 모든 내용은, 여러 목적과 관련하여 본 명세서에 포함한다. 본 출원은, 상기 발명자(데이비드 씨. 에드워즈)가 본 출원과 동일 날짜로 출원하여, 계류중인 미합중국 특허 "비디오 게임 시스템 및 방법(Video Gaming System and Method)" (변리사 Docket No. 2005.06.011.WTO, 4133-00600), 미합중국 특허 "비디오 게임 시스템 및 방법을 위한 툴(Tool for Video Gaming System and Method)" (변리사 Docket No. 2005.06.012.WTO, 4133-00700), 미합중국 특허 "그래픽 영상 시스템 및 방법(Graphics Images System and Method)" (변리사 Docket No. 2005.06.013.WTO, 4133-00800), 및 미합중국 특허 "이동 단말기 비디오 게임 시스템 및 방법(Mobile Handset Video Game System and Method)" (변리사 Docket No. 2005.09.001.WTO, 4133-01100)와 관련 있으며, 상기 출원들의 모든 내용은 여러 목적과 관련하여 본 명세서에 포함한다. The present application, at least in accordance with the provisions of section 119 (e) of the United States Patent Act, provides the inventors with Mr. David. United States of America, filed June 28, 2005, by David C. Edwards, "PUGS Game Engine for 3-D Gaming on Handsets," for playing 3D games on mobile devices. Provisional Application No. 60 / 694,785, US Provisional Application No. 60 / 694,496, filed June 28, 2005, entitled "PIC Format for 3-D Gaming," and "3D." Claims interest in the priority of U.S. Provisional Application No. 50 / 694,569, filed June 28, 2005, entitled "TGA Format for 3-D Gaming," all contents of the above applications Is included in this specification in connection with various purposes. The present application is filed by the inventor (David C. Edwards) on the same date as the present application, and pending US patent "Video Gaming System and Method" (patent attorney Docket No. 2005.06.011.WTO , 4133-00600), US Patent "Tool for Video Gaming System and Method" (Attorney Docket No. 2005.06.012.WTO, 4133-00700), US Patent "Graphic Imaging System and Method (Graphics Images System and Method) (patent attorney Docket No. 2005.06.013.WTO, 4133-00800), and US patent "Mobile Handset Video Game System and Method" (attorney Docket No.) 2005.09.001.WTO, 4133-01100, the entire contents of which are hereby incorporated by reference for various purposes.
본 발명은 이동 장치 및 컴퓨터용 비디오 게임 시스템 및 방법에 관한 것이다. 보다 상세하게는, 복수의 사용자가 복수의 이동 장치를 통해 게임을 실행할 수 있는 다인용 비디오 게임 방법 및 시스템에 관한 것이다.The present invention relates to video game systems and methods for mobile devices and computers. More particularly, the present invention relates to a multiplayer video game method and system that enables a plurality of users to play a game through a plurality of mobile devices.
이동 전화, 개인 휴대 정보 단말기(PDA: Personal Digital Assistants) 및 유사한 휴대용 이동 전자 장치들은 때때로 비디오 게임 실행 능력과 같은 부가적인 기능을 제공한다. 이러한 이동 장치용 게임은 사실적인 그래픽과 복잡한 게임 실행 및 그 밖의 개선점들을 가지고 더욱 복잡해지고 있다. 현재, 상기 장치들 자체도 더 큰 메모리 용량, 빠른 프로세서, 그래픽 가속기 및 그 밖의 업그레이드들로 더욱 정교해지고 있다. 그 결과, 일부 게임들은 고가의 매우 정교한 장치에서만 실행될 수 있다. 이러한 게임의 개발은 복잡해지고 그래픽 아티스트 및 고도로 숙련된 프로그래머를 요구하고 있다. 비디오 게임의 개발에 게임당 백만달러 이상이 드는 것도 무리가 아니다. Mobile phones, personal digital assistants (PDAs) and similar portable mobile electronic devices sometimes provide additional functionality, such as the ability to play video games. Such games for mobile devices are becoming more complex with realistic graphics, complex game execution and other improvements. Currently, the devices themselves are also becoming more sophisticated with larger memory capacities, faster processors, graphics accelerators and other upgrades. As a result, some games can only run on expensive, very sophisticated devices. The development of such games is complicated and requires graphic artists and highly skilled programmers. It's not unreasonable to spend more than $ 1 million per game on video games.
본 발명의 목적은 서로 다른 크기의 디스플레이를 구비한 이동 단말기들 상에서 게임을 실행함에 있어, 상기 이동 단말기들 간에 동일한 게임을 동시에 디스플레이하여 진행할 수 있도록 하는 하기 위한 다인용 비디오 게임 시스템 및 방법을 제공함에 있다.SUMMARY OF THE INVENTION An object of the present invention is to provide a multi-player video game system and method for executing a game on mobile terminals having displays of different sizes, so that the same game can be simultaneously displayed between the mobile terminals. have.
상기한 목적을 달성하기 위한 본 발명에 따른 다인용 게임 방법은, 제1 사용자에 의해 제1 게임을 실행하기 위한 입력 신호들이 제1 이동 장치의 키패드를 통해 입력되는 단계; 상기 제1 이동 장치상의 제1 사용자의 키패드 입력 신호들을 제2 이동 장치로 통신하는 단계; 제2 사용자에 의해 각 이동 장치상에 제공되는 상기 제1 게임과 실제로 동일한 제2 게임을 실행하기 위한 입력 신호들이 상기 제2 이동장치의 키패드를 통해 입력되는 단계; 및 상기 제2 이동 장치상의 제2 사용자 키패드 입력 신호들을 상기 제1 이동 장치로 통신하는 단계를 포함하되, 상기 제1 및 제2 게임들 사이에서 다인용 게임이 가능하도록 상기 제1 게임은 상기 제2 이동 장치로부터 키패드 입력을 사용하고 상기 제2 게임은 상기 제1 이동 장치로부터 키패 드 입력을 사용하는 것을 특징으로 한다.According to an aspect of the present invention, there is provided a multiplayer game method, comprising: input signals for executing a first game by a first user through a keypad of a first mobile device; Communicating keypad input signals of a first user on the first mobile device to a second mobile device; Inputting, via a keypad of the second mobile device, input signals for executing a second game that is substantially identical to the first game provided on each mobile device by a second user; And communicating second user keypad input signals on the second mobile device to the first mobile device, wherein the first game is enabled to enable a multiplayer game between the first and second games. 2 uses keypad input from the mobile device and the second game uses keypad input from the first mobile device.
상기한 목적을 달성하기 위한 본 발명에 따른 다인용 게임 시스템은, 제1 사용자가 제1 이동 단말기 상의 게임을 실행하기 위해 상기 제1 이동 단말기 상에서 작동가능하고, 상기 제1 이동 단말기를 사용하는 상기 제1 사용자에 의한 액션과 관련된 제1 플레이어 표시기(indicator)를 제공하며, 제2 이동 단말기를 사용하는 제2 사용자에 의한 액션과 관련된 제2 플레이어 표시기를 제공하는 게임 구성요소와, 상기 제2 이동 단말기상의 상기 게임을 실행하는 상기 제2 사용자에 의한 게임 실행으로부터의 키패드 입력들과 관련된 데이터를 수신하도록 작동할 수 있고, 상기 제2 이동 장치로부터 수신되는 상기 키패드 입력들을 근거로 상기 제1 이동 장치상의 상기 제2 플레이어 표시기를 업데이트하기 위해 작동할 수 있는 통신 구성요소를 포함하는 것을 특징으로 한다.The multiplayer game system according to the present invention for achieving the above object is characterized in that the first user is operable on the first mobile terminal to play a game on the first mobile terminal, and uses the first mobile terminal. A game component that provides a first player indicator associated with an action by a first user and provides a second player indicator associated with an action by a second user using a second mobile terminal; The first mobile device operable to receive data related to keypad inputs from game play by the second user executing the game on a terminal, the first mobile device based on the keypad inputs received from the second mobile device; And a communication component operable to update the second player indicator on the tablet. The.
상기한 목적을 달성하기 위한 본 발명에 따른 다인용 게임 시스템은, 제1 컴퓨팅 플랫폼상의 제1 게임, 제2 컴퓨팅 플랫폼상의 제2 게임을 포함하되, 상기 제1 및 제2 게임들은 실제로 동일한 게임이며, 상기 제2 컴퓨팅 플랫폼상의 상기 제2 게임을 실행하는 것과 관련된 제2 사용자 게임 입력들을 수신하기 위해 작동할 수 있는 제1 통신 구성요소, 및 상기 제1 컴퓨팅 플랫폼상의 상기 제1 게임을 실행하는 것과 관련된 제1 사용자 게임 입력들을 수신하기 위해 작동할 수 있는 제2 통신 구성요소를 포함하되, 상기 제1 게임은 상기 제2 컴퓨팅 플랫폼으로부터 상기 제2 사용자 게임 입력들을 사용하여 작동할 수 있고, 상기 제1 및 제2 게임들 사이에서 다인용 게임이 가능하도록 상기 제1 컴퓨팅 플랫폼으로부터 상기 제1 사용자 게임 입력들을 사용하여 작동할 수 있는 것을 특징으로 한다. The multiplayer game system according to the present invention for achieving the above object includes a first game on a first computing platform and a second game on a second computing platform, wherein the first and second games are actually the same game. A first communication component operable to receive second user game inputs associated with executing the second game on the second computing platform, and executing the first game on the first computing platform; A second communication component operable to receive associated first user game inputs, wherein the first game can operate using the second user game inputs from the second computing platform, Operate using the first user game inputs from the first computing platform to enable a multiplayer game between first and second games. Characterized in that it can.
본 발명의 일 실시예의 실행예를 아래에서 일예로서 예시하고 있지만, 현재 알려져 있거나 존재하는 특정 수의 기술을 이용하여 본 시스템을 실시할 수 있다는 것을 처음부터 이해해야 한다. 본 실시예는, 결코, 본 명세서에서 예시하고 설명한 구성예 및 실행예를 포함하여 아래에서 예시하고 있는 실행예, 도면, 및 기술들로 한정하지 않으나, 첨부한 청구범위 및 그에 균등한 것의 범위 내에서 개량할 수 있다. Although an implementation of one embodiment of the present invention is illustrated below as an example, it should be understood from the beginning that the present system may be implemented using any number of techniques known or present. This embodiment is in no way limited to the embodiments, drawings, and techniques illustrated below, including the configuration and implementation examples illustrated and described herein, but are within the scope of the appended claims and their equivalents. You can improve in.
본 발명은 이동 단말기들 상의 다인용 게임 방법을 제안한다.The present invention proposes a multiplayer game method on mobile terminals.
본 발명의 실시 예에 따라 상기 방법은 제 1 게임을 실행하기 위해 제 1 이동장치의 키패드를 통해 입력하는 제1 사용자를 포함한다. 또한, 상기 방법은 상기 제 1 이동 장치상의 제 1 사용자의 키패드 입력을 제 2 이동 장치로 통신하는 것을 포함한다. 또한, 상기 방법은 각 이동 장치상에 제공되는 상기 제1 게임과 실제로 동일한 제2 게임을 실행하기 위해 상기 제 2 이동장치의 키패드를 통해 입력하는 제2 사용자를 포함한다.According to an embodiment of the present invention, the method includes a first user who inputs through a keypad of a first mobile device to execute a first game. The method also includes communicating a keypad input of a first user on the first mobile device to a second mobile device. The method also includes a second user entering through a keypad of the second mobile device to execute a second game that is substantially identical to the first game provided on each mobile device.
한편, 상기 제 1 및 제 2 게임들 사이에서 다인용 게임이 가능하도록 상기 제 1 게임은 상기 제 2 이동 장치로부터 키패드 입력을 사용하고 상기 제 2 게임은 상기 제 1 이동 장치로부터 키패드 입력을 사용하는 것을 특징으로 한다.On the other hand, the first game uses keypad input from the second mobile device and the second game uses keypad input from the first mobile device to enable a multiplayer game between the first and second games. It is characterized by.
본 발명의 다른 실시예에 따르면, 이동 단말기용 다인용 게임에 있어서, 제 1 사용자가 제 1 이동 단말기 상의 게임을 실행하기 위해 상기 제 1 이동 단말기 상에서 작동가능하고, 상기 제 1 이동 단말기를 사용하는 상기 제 1 사용자에 의한 액션과 관련된 제 1 플레이어 표시기(indicator)를 제공하며, 제 2 이동 단말기를 사용하는 제 2 사용자에 의한 액션과 관련된 제 2 플레이어 표시기를 제공하는 게임 구성요소와, 상기 제 2 이동 단말기상의 상기 게임을 실행하는 상기 제 2 사용자에 의한 게임 실행으로부터의 키패드 입력들과 관련된 데이터를 수신하도록 작동할 수 있고, 상기 제 2 이동 장치로부터 수신되는 상기 키패드 입력들을 근거로 상기 제 1 이동 장치상의 상기 제 2 플레이어 표시기를 업데이트하기 위해 작동할 수 있는 통신 구성요소를 포함하는 것을 특징으로 하는 다인용 게임이 제공된다. According to another embodiment of the present invention, in a multiplayer game for a mobile terminal, a first user is operable on the first mobile terminal to execute a game on the first mobile terminal, and uses the first mobile terminal. A game component that provides a first player indicator associated with an action by the first user and provides a second player indicator associated with an action by a second user using a second mobile terminal; Operable to receive data related to keypad inputs from game play by the second user executing the game on a mobile terminal, the first movement based on the keypad inputs received from the second mobile device; A communication component operable to update the second player indicator on the device. This multi-player game that features that are provided.
본 발명의 또 다른 실시예에 따르면, 다인용 게임 시스템에 있어서, 제 1 컴퓨팅 플랫폼상의 제 1 게임, 제 2 컴퓨팅 플랫폼상의 제 2 게임이되, 상기 제 1 및 제 2 게임들은 실제로 동일한 게임이며, 상기 제 2 컴퓨팅 플랫폼상의 상기 제 2 게임을 실행하는 것과 관련된 제 2 사용자 게임 입력들을 수신하기 위해 작동할 수 있는 제 1 통신 구성요소, 및 상기 제 1 컴퓨팅 플랫폼상의 상기 제 1 게임을 실행하는 것과 관련된 제 1 사용자 게임 입력들을 수신하기 위해 작동할 수 있는 제 2 통신 구성요소를 포함하되, 상기 제 1 게임은 상기 제 2 컴퓨팅 플랫폼으로부터 상기 제 2 사용자 게임 입력들을 사용하여 작동할 수 있고, 상기 제 1 및 제 2 게임들 사이에서 다인용 게임이 가능하도록 상기 제 1 컴퓨팅 플랫폼으로부터 상기 제 1 사용자 게임 입력들을 사용하여 작동할 수 있는 것을 특징으로 하는 다인용 게임 시스템이 제공된다. According to another embodiment of the invention, in a multiplayer game system, the first game on a first computing platform, the second game on a second computing platform, the first and second games are actually the same game, A first communication component operable to receive second user game inputs associated with executing the second game on the second computing platform, and associated with executing the first game on the first computing platform A second communication component operable to receive first user game inputs, wherein the first game can operate using the second user game inputs from the second computing platform, and And using the first user game inputs from the first computing platform to enable a multiplayer game between second games. This multi-player game system wherein you can move is provided.
이러한 특징 및 장점들은 첨부된 도면과 청구범위를 참조하여 후술되는 상세한 설명에서 명백히 이해할 수 있을 것이다.These features and advantages will be apparent from the following detailed description with reference to the accompanying drawings and claims.
360-3D라 불리는 게임 포맷이 개시된다. 상기 360-3D 포맷은 고품질의 3차원 그래픽과 복잡한 스토리 라인을 가진 게임이 한정된 메모리 및 처리 능력을 지닌 이동 장치상에 실행되도록 한다. 예를 들어, 일 실시예에서 상기 이동 장치는 약 120MHz로 실행되는 프로세서를 구비할 수 있고, 상기 이동 장치에서 360-3D 게임 데이터를 로딩하기 위한 메모리 용량은 약 3 내지 28 Mbytes 정도이다. 일반적으로 고품질 비디오 그래픽을 얻기 위해서는 그래픽 가속기를 구비한 이동 단말기가 요구될 수 있다. 일부 실시예에서는 그래픽 가속기 없이 이동 단말기에서 본 시스템이 동작할 수 있다. 또한 360-3D 게임을 개발하기 위한 시스템 및 방법이 개시된다. 상기 시스템 및 방법은, 이동 장치상에 디스플레이 시 일련의 사전 렌더링(pre-rendered)된 이미지들을 다루는 방법을 지정함으로써, 개발자들이 쉽게 360-3D 게임을 제작할 수 있도록 한다. 프로그래밍 코드를 사용하지 않고 게임을 제작할 수 있어, 프로그래밍 지식 또는 경험의 필요성을 제거하고 게임 게발 비용을 상당히 줄일 수 있다. A game format called 360-3D is disclosed. The 360-3D format allows games with high quality three-dimensional graphics and complex story lines to run on mobile devices with limited memory and processing power. For example, in one embodiment the mobile device may include a processor running at about 120 MHz, and the memory capacity for loading 360-3D game data in the mobile device is about 3 to 28 Mbytes. In general, a mobile terminal having a graphics accelerator may be required to obtain high quality video graphics. In some embodiments, the system may operate in a mobile terminal without a graphics accelerator. Also disclosed are systems and methods for developing 360-3D games. The system and method allows developers to easily create 360-3D games by specifying how to handle a series of pre-rendered images upon display on a mobile device. The game can be made without the use of programming code, eliminating the need for programming knowledge or experience and significantly reducing game development costs.
도 1은 360-3D 게임 개발 및 게임 실행 시스템의 일 실시예에서 주요 구성요소들의 블록도이다. 360-3D 게임을 제작하는 개발자는 일반적으로 게임에서 다루게 될 일련의 3차원 이미지들을 제작하기 위한 표준 규격의 상업적으로 이용 가능한 그래픽 프로그램(110)을 이용하여 게임 개발 과정을 시작하게 된다. 이하에서 상세히 후술되는 바와 같이, 상기 이미지들은 'taga' 또는 '.tga' 포맷인 일련의 그래 픽 파일(120)들로 사전 렌더링(pre-rendered)되고 저장된다. 1 is a block diagram of the major components in one embodiment of a 360-3D game development and game execution system. Developers producing 360-3D games generally begin the game development process using a commercially
그러면 제작 툴(130, authoring tool)은 상기 그래픽 파일(120)들을 불러들여 상기 '.tga' 포맷을 '.pic' 파일(140)들로 불리는 포맷으로 변환하는데 사용된다. 이하에서 상세히 후술되는 바와 같이, '.tga' 파일들의 '.pic' 파일(140)들로의 변환은 실행 길이 부호화(run length encoding) 과정을 통해 압축을 수반하게 된다. 그런 다음 상기 제작 툴(130)은 '.act' 또는 액션 파일(150)들로 불리는 일련의 파일들을 생성하는데 사용된다. 이하 후술되는 각각의 '.act' 파일(150)은 상기 '.pic' 파일(140)들의 이미지가 360-3D 게임을 제작하기 위해 다루어지는 방법을 설명하는 일련의 명령들을 포함하고 있다. 상기 '.pic' 파일(140) 및 '.act' 파일(150)들이 생성된 후, 상기 파일들은 컨테이너(160, container)라 불리는 데이터 파일의 단일 세트에 함께 저장될 수 있다. An
상기 제작 툴(130), '.pic' 파일(140), '.act' 파일(150) 및 컨테이너(160)는 일반적으로 단일 컴퓨터(170)상에 나타낸다. 상기 그래픽 프로그램(110) 및 그래픽 파일(120)들이 도 1의 상기 컴퓨터(170) 외부에 도시되는 반면, 다른 실시예들에서는, 상기 그래픽 프로그램(110) 및 그래픽 파일(120)들은 상기 제작 툴(130), '.pic' 파일(140), '.act' 파일(150) 및 컨테이너(160)와 같은 컴퓨터(170) 상에 나타낼 수 있다. The
360-3D 게임이 이동 전화, PDA 또는 유사한 장치에 설치되면, 상기 컨테이너(160)는 상기 컴퓨터(170)에서 이동장치(180)로 복사된다. 대신에, 상기 컨테이너는 상기 이동 장치(180)로 전송되기 전에 중간 위치(intermediate location)에 저장될 수도 있다. 예를 들어 상기 컨테이너(160)는 웹사이트 상에서 상기 이동 장치(180)로 다운로드하기 위해 사용되거나, 이동 장치(180)로 복사하기 위한 CD 및 다른 저장 매체에 저장될 수 있다. 당업계의 또 다른 기술은 상기 컨테이너(160)를 컴퓨터(170)에서 이동 장치(180)로 전송하는 것이다. When a 360-3D game is installed on a mobile phone, PDA or similar device, the
상기 컨테이너(160)의 파일들은 컴퓨터(170) 및 이동 장치(180) 양쪽과 호환되는 포맷일 수 있고, 상기 전송 과정의 일부로 어떠한 파일의 변경도 필요하지 않을 수 있다. 그러나 호환을 위해 약간의 변경이 필요할지라도 상기 파일들은 실제로 동일한 것으로 간주되며, 상기 컨테이너(160)가 컴퓨터(170) 또는 이동 장치(180) 내의 존재 여부에 상관없이 여기서 상기 파일들은 컨테이너(160) 내에 존재한다고 언급될 것이다. The files in the
또한 상기 컨테이너(160)에서 파일을 읽어들일 수 있는 런타임 엔진(190, runtime engine)이 상기 이동 장치(180) 내에 존재한다. 이하에서 상세히 후술되는 바와 같이, 상기 엔진(190)은 상기 '.pic' 파일(140)내 이미지들이 다루어지는 방법에 관한 '.act' 파일(160)내 명령들을 읽어들인다. 이후 상기 엔진(190)은 적절한 '.pic' 파일(140)들을 검색하고, 이들을 명령대로 처리하여, 상기 이동 장치(180)의 디스플레이 화면(200)상에 디스플레이한다. In addition, a
일반적으로 상기 컨테이너(160)는 플래쉬 메모리와 같은 이동 장치(180)의 비휘발성 메모리(non-volatile memory) 위치로 로딩된다. 상기 컨테이너(160)내 파일들은 실행 파일보다는 단순한 데이터 파일들이므로 상기 컨테이너(160)가 상기 이동장치(180)로 로딩될 때 바이러스나 코딩 오류(coding bugs)가 발생할 수 없다. In general, the
바람직한 실시예에서 상기 엔진(190)은 이동 장치(180)의 운영 시스템에 내장된다. 상기 엔진(190)은 다른 장치 및 운영 시스템과 호환되도록 약간 변경될 수 있지만 실질적으로 동일한 엔진(190)이 어떠한 이동 장치(180)상에 내장될 수 있으며 어느 컨테이너(160)도 읽어들일 수 있다. 일반적으로 동일한 운영 시스템 호출(calls)을 사용하여 초당 약 15회 정도의 엔진(19)을 호출하는 타이머 기능을 초기화하고, 메모리 위치에 쓰며, 디스플레이 업데이트를 트리거하고, 상기 엔진(190)을 휴지상태(dormant)로 만들기 위해서만 상기 엔진(19)이 변경된다. 상기 엔진(190)은 오직 360-3D 게임의 실행 가능한 부분이다. 일단 상기 엔진(190)이 특정 이동 장치(180) 및 운영 시스템에 대해 테스트되고 디버깅(debugged)되면, 이런 형태의 장치(180)에 인스톨하기 위해 더 이상의 테스트나 디버깅이 필요 없다. 새로운 360-3D 게임이 이동 장치(180)에 인스톨되면, 상기 게임용 컨테이너(160)는 기존의 다른 게임용 컨테이너(160) 대신 또는 더해져 장치의 메모리내에 단순히 로딩된다. 그러면, 상기 엔진(190)은 새로운 게임을 실행할 새로운 컨테이너(160)를 읽어들인다. In a preferred embodiment the
상기 제작 툴(130)이 360-3D 게임을 생성하고 상기 런타임 엔진(190)이 게임을 실행하는 방법에 대해 자세히 살펴보기에 앞서, 360-3D 게임의 포맷과 보통 360-3D 게임에서 발생하는 게임 액션(gaming action)의 유형을 살펴보는 것이 유익할 수 있다. Before the
360-3D 게임은 1인용 슈팅 게임(first-person shooter games)으로 알려진 장르에 속한다. 즉, 360-3D 게임의 플레이어가 이동 장치(180)의 비디오 스크린(200) 에 디스플레이되는 장면 안에 존재하는 가상 플레이어(virtual player)의 시각과 대결하게 된다. 상기 가상 플레이어는 일반적으로 장면 내에서 움직일 수 있고, 인물(characters)이나 물체를 향해 슈팅하는 것과 같은 액션을 취할 수 있다. 상기 액션은 슈팅에만 한정되는 것이 아니라, 당업계에서 공지의 기술인 게임장면에서 가상 플레이어와 인물 사이의 상호 작용의 형태도 가능하다. 예를 들어 상기 액션은 몇몇 형태의 액션을 수행하기 위해 인물을 선택하는 것이 될 수도 있다. 그러나 참조의 편의상, 가상 플레이어와 인물 사이의 상호작용은 이하에서 슈팅(shooting) 및/또는 발사(firing a shot)라 하기로 한다. 또한 상기 슈팅은 수많은 서로 다른 형태의 타깃에 각종 발사체를 쏘는 것이 포함될 수 있다. 일 예로 군인, 탱크, 헬리콥터 등과 같은 서로 다른 군대의 움직이는 형상들(action figures)에 플레이어가 발사하는 군대 액션 게임이 될 수 있다. 다른 예로서 공룡들 또는 수중의 상어들을 쏘는 게임 또는 사격 연습장(shooting gallery) 형태의 게임이 될 수도 있다. 상기 게임은 또한 플레이어가 불의 화염을 진화하기 위해 불길에 물을 발사하는 소방수 게임이 될 수 있다. 슈팅 및/또는 발사는 스프레이(spraying), 포인팅(pointing), 지시(designating) 및/또는 선택(selecting)이 될 수 있다. 본 시스템으로 제작될 수 있는 다른 형태의 게임의 예들은 당업계의 공지 기술에 이미 제시되어 있다. 360-3D games belong to a genre known as first-person shooter games. That is, the player of the 360-3D game confronts the view of the virtual player existing in the scene displayed on the
360-3D 게임의 일 실시예에서 상기 가상 플레이어는 한 장면의 단일 점(point)에서 정지된 상태를 유지하거나 상기 점을 중심으로 자유롭게 회전할 수 있다. 한 장소에서 시계 또는 반시계 방향으로 돌거나 회전함으로써 가상 플레이어 는 자기가 위치하고자 하는 중심에서 가상 세계를 360도 볼 수 있다. 상기 가상 플레이어가 회전하는 장면의 배경은 한결같이 감싸고 있는 전경(panorama)이므로 실제 세계의 장면에서 가상 플레이어가 끊임없이 회전할 수 있는 상황이 만들어진다. 그러므로 상기 플레이어는 시계 또는 반시계 방향으로 360, 720, 1080도 등으로 회전할 수 있다. In one embodiment of a 360-3D game, the virtual player can remain stationary at a single point in a scene or freely rotate about the point. By rotating or rotating clockwise or counterclockwise from one location, the virtual player can see the virtual world 360 degrees from the center he or she is in. Since the background of the scene in which the virtual player is rotated is a panorama which constantly wraps, a situation in which the virtual player can be constantly rotated in the scene of the real world is created. Therefore, the player can rotate 360, 720, 1080 degrees or the like clockwise or counterclockwise.
실제 플레이어는 일반적으로 이동 장치(180)의 키패드 상의 키들을 누름으로써 가상 플레이어의 액션을 제어한다. 예를 들어, 좌측 또는 우측 커서 키는 상기 가상 플레이어가 왼쪽 또는 오른쪽으로 회전하도록 하는데 사용된다. '엔터(Enter)'키 또는 다른 키는 발사하는데 사용될 수 있다. 다른 실시예들에서 다른 키 또는 사용자 입력을 제공하는 다른 수단들은 이러한 액션들을 수행하는데 사용될 수 있다. The real player generally controls the action of the virtual player by pressing keys on the keypad of the
도 2는 가상 플레이어(210)와 그가 중심에 위치하는 원형의 전경(220)을 내려다보는 부감(俯瞰: overhead) 사시도이다. 산(230)들이나 다른 풍경들 같은 대상들은 배경에 나타나는 반면에 건물(buildings)들 및 다른 대상들, 나무(250)들 및 다른 자연 대상들, 인간, 동물 또는 생명이 없는 인물(260)들은 전경에 나타낸다. 배경 및 전경의 대상들은 적절히 비율을 이룸으로써 3차원 모습이 만들어진다. 상기 가상 플레이어(210)가 회전함에 따라 원형의 전경(220)의 서로 다른 부분이 시야에 나타나게 된다. 2 is an overhead perspective view overlooking the
도 3은 360-3D 게임 실행 시 실제 플레이어가 비디오 디스플레이(200)에서 볼 수 있는 하나의 장면을 도시한 것이다. 도시된 바와 같이, 상기 원형의 전 경(220) 일부는 상기 디스플레이(200) 상에서 평면으로 나타낸다. 상기 전경(220)에 배열된 산(230)들, 건물(240)들, 나무(250)들 및 인물(260)들이 디스플레이(200) 상에 나타난다. 인물(260)들, 차량들 및 다른 움직이는 대상들은 상기 가상 플레이어(210)의 관점으로부터 배경에 대해 좌우로 움직일 수 있다. (이하, 대상이 인간, 동물, 차량 또는 다른 형태의 움직이는 물체인지에 관계없이 장면 내에서 움직일 수 있는 어떤 물체라도 인물(260, character)이라 한다.) 인물(260)들은 또한 상기 가상 플레이어(210)로부터 다가가거나 물러나는 모습을 보여주기 위해 크기를 비례 축소(scale up and down)할 수 있다. 또한 비례 축소(scaling)는 정지된 대상이 상기 가상 플레이어(210)로부터 가까워지거나 멀어지는 장면을 나타내는데 사용될 수 있다. 3 illustrates one scene that a real player can see on the
상기 장면은 배경 및 전경에 대해 인물(260)의 깊이를 표시하는 보이지 않는 층들(layers)을 포함한다. 좌측 또는 우측으로 이동 시 인물(260)들은 상기 층들 중 한 층에서만 움직인다. 즉, 인물(260)은 전경 또는 배경에 가능한 한 가까이 있거나 전경에서 가장 가까운 층으로부터 배경에 가장 가까운 층들 사이에 어느 한 층에 있을 수 있다. 이는 상층(upper layer)의 인물(260)이 하층(lower layer)의 인물(260) 앞을 지날 때 이를 엄폐하면서 서로 다른 층들에 존재하는 인물(260)들이 서로의 앞이나 뒤로 움직이도록 한다. 앞이나 뒤로 움직이는 모습을 생성하기 위해 크기를 비례 축소할 때, 인물(260)은 또한 층을 달리할 수 있다. The scene includes invisible layers indicating the depth of
도 4는 이러한 층(layering)의 개념을 설명하고 있다. 산(230)들은 층 0이라 불리는 가장 먼 층 또는 배경에 나타날 수 있다. 나무(250)는 상기 층 0의 앞에 위 치한 층 10에 나타날 수 있고, 다른 나무(250)는 상기 층 10의 앞에 위치한 층 20에 나타날 수 있다. 두 건물(240)들은 상기 층 20의 앞에 위치한 층 30에 나타날 수 있다. 인물(260)은 상기 층 30의 앞에 위치한 층 40에 나타날 수 있다. 도 4에서 다섯 층이 나타난 반면, 다른 실시예들에서는 다른 개수의 층이 나타날 수 있다. 상기 모든 층들이 동시에 디스플레이되고 적절한 크기의 대상들이 상기 층들에 선택되면, 대상들이 다른 대상들의 앞뒤에 나타나고 이와 관련한 엄폐(occulting)가 일어나면서 3차원 모습이 화면(200)에 생성된다. 4 illustrates this concept of layering. The
다시 도 3을 참조하여, 십자형 커서(270, crosshair)는 상기 가상 플레이어(270)가 목표로 하는 곳을 보여주기 위해 나타난다. 다른 실시예들에서는 상기 십자형 커서(270) 대신에 포인터(pointer), 조준 포인터(aiming pointer) 또는 표적 십자선(targeting reticle)과 같은 타깃 표시(targeting indicator)가 사용될 수 있다. 이하에서 어떠한 타깃 표시도 십자형 커서(270)라고 한다. 상기 십자형 커서(270)는 화면(200)상의 좌측에서 우측으로 중앙에 위치한다. 실제 플레이어가 상기 가상 플레이어(210)를 좌측 또는 우측으로 회전시키는 효과는 장면에서 이미지들이 회전하지만 십자형 커서(270)는 좌측에서 우측으로 중앙을 유지한다. 또한 상기 실제 플레이어는 이동 장치(180)의 키패드 상에 상하 커서 키를 이용하거나 이와 유사한 입력 메커니즘을 통해 십자형 커서(270)를 상하로 이동시킬 수 있다. 이와 같이, 상기 실제 플레이어는 십자형 커서(270)가 상기 장면에서 인물(260) 또는 다른 대상을 조준하도록 시도할 수 있다. 상기 이동 장치(180)의 키패드 상의 적당한 키를 치거나 다른 적절한 입력을 제공하여 실제 플레이어가 상기 십자형 커서(270)의 중앙에서 액션(예를 들어, 발사)이 이루어지도록 한다. 만일 상기 십자형 커서(270)가 인물(260)상에 적절히 위치하면, 상기 액션은 인물(260)의 반응(예를 들어, 상기 인물(260)에 부상을 입힘)을 일으킨다. Referring again to FIG. 3, a crosshair 270 (crosshair) appears to show where the
상기 인물(260)은 가상 플레이어(210)를 향해 슈팅과 같은 액션을 취할 수 있는 능력을 지닌다. 또한 상기 인물(260)은 구조물 또는 풍경 안이나 뒤로 이동할 수 있는데, 예를 들어 가상 플레이어(210)가 슈팅하지 못하도록 주요 인물(260) 보다 높은 층의 구조물 뒤로 이동한다. The
'레이더(280, radar)'라 불리는 그래픽 디스플레이가 상기 화면(200)에 나타나며, 현재 보이는 장면 외부에 위치한 어떠한 인물(260)들을 포함하여 상기 가상 플레이어(210)에 위협을 가하는 인물(260)들이 어디에 위치하는지를 가리킨다. 상기 레이더(280)는 또한 위협 표시기(threat indicator)라고 한다. 상기 레이더(280)는 하기에서 상세하게 설명한다. A graphic display called 'radar 280' appears on the
또한 상기 화면(200)은 가상 플레이어(270)가 얼마나 많은 인물(260)들을 죽였는지 및/또는 가상 플레이어의 파트너 또는 경쟁자가 다인용 게임에서 얼마나 많은 인물(260)들을 죽였는가를 표시하는 점수(290, scores)를 포함한다. 다인용 게임(multi-player games)은 하기에서 상세히 설명한다. 예를 들어 남아있는 저장분, 탄약 및 게임 시간과 같은 다른 상태 정보를 화면(200)에 디스플레이할 수도 있다. The
360-3D 게임에 대한 게임 실행의 일반적인 개념은, 일인용 슈팅 게임에서, 인물(260)들이 가상 플레이어(210)를 죽이기 전에 상기 모든 인물(260)들을 죽이는 것이다. 다시 슈팅 게임에 초점을 맞추면, 유사한 개념들을 다른 유형의 게임에 적 용할 수 있다. 360-3D 게임이 인스톨된 장치(180)의 소유자는 첫째로 통신(telephony) 또는 가입자(organizer) 기능을 위해 상기 장치(180)를 사용하고, 가끔 일시적인 기분 전환을 위해 게임 실행을 두 번째 특징으로 사용할 것이다. 그러므로, 상기 360-3D 게임은 사용자로 하여금 많은 교습이나 연습이 필요없이 빠르고 직관적으로 게임의 규칙 및 다른 특징들을 배울 수 있도록 이루어진다. 레이더(280), 수직 위치가 특정 입력 키에 의해 제어되는 수평적으로 중앙에 위치한 십자형 커서(270), 특정 입력 키를 이용한 발사, 및 특정 입력 키들에 의해 제어되는 가상 플레이어(210)의 회전과 같은 특징들은 사용자가 빠르게 새로운 360-3D 게임 사용법을 배울 수 있도록 하는 규정이다. 또한 상기 게임은 최소한의 셋업(set-up) 및 스타트업(start-up) 시간을 갖도록 설계되어 있다. The general concept of game execution for a 360-3D game is to kill all of the figures 260 before the figures 260 kill the
상기 가상 플레이어(210)는 인물(260)을 지정된 레벨의 손상(harm)을 입힐 수 있는 무기를 가진다. 무기로 가할 수 있는 손상의 레벨은 상기 무기의 파워라 한다. 인물(260)에 의해 유지되는 손상의 양은 데미지(damage)라 한다. 예를 들어, 5의 파워를 지닌 무기는 상기 가상 플레이어(210)가 무기를 통해 인물(260)에게 발사하면 5 포인트의 데미지를 상기 인물(260)에게 가할 수 있다. 상기 인물(260)들은 죽거나 다른 액션이 상기 인물(260)에 발생하기 전까지 견딜 수 있는 지정된 레벨의 데미지를 가질 수 있다. 예를 들어, 인물(260)은 20 포인트의 데미지를 입은 후에 죽을 수 있다. 이러한 인물(260)은 5의 파워를 지닌 무기에 의해 4번 맞은 후에 죽게된다. The
이와 비슷하게 상기 인물(260)들은 가상 플레이어(210)에 지정된 레벨의 데 미지를 가할 수 있는 무기를 가질 수 있고, 상기 가상 플레이어(210)는 죽기 전에 견딜 수 있는 특정 레벨의 데미지를 가질 수 있다. 상기 가상 플레이어(210)가 인물(260)들이 자신을 죽이기 전에 모든 인물(260)들을 죽인다면, 보통 게임에서 승리하거나 새로운 레벨의 게임에 도달할 수 있다. 이러한 일반적 게임 개념에 수많은 변화가 가능하며, 당업계의 기술에서 분명히 알 수 있다. 예를 들어, 파워 및 데미지의 개념은 소방수 게임과 같이 전투가 일어나지 않는 게임에서도 이미 확장되어 있다. Similarly, the figures 260 may have weapons capable of inflicting a specified level of damage to the
360-3D 게임이 시작되면, 다양한 액션을 수행하는 각종 인물(260)들이 장면의 여러 위치에서 등장할 수 있다. 게임 개발자가 상기 개발 툴(130)을 이용하여 어떤 인물(260)들이 등장하고 이들의 특징은 무엇이며, 어디에 등장하는지 어떤 행동을 할 것인지에 대한 방식은 하기에서 자세하게 설명한다. When the 360-3D game starts, various figures 260 performing various actions may appear at various positions in the scene. The manner in which a game developer uses the
게임이 시작되면, 상기 가상 플레이어(210)는 돌아서서 십자형 커서(270)의 위치를 설정하고 상기한 방법으로 슈팅을 시작할 수 있다. 또한 상기 인물(260)들도 가상 플레이어(210)를 향해 슈팅을 시작할 수 있다. 일 실시예에서, 상기 가상 플레이어(210)가 게임 초기에 언제 슈팅을 시작하는지를 결정하기 위해 감시 루틴(monitoring routine)이 사용될 수 있고, 상기 인물(260)들도 가상 플레이어(210)가 슈팅을 시작하기 전까지 슈팅이 허용되지 않을 수 있다. 이러한 방식으로 상기 가상 플레이어 (210)는 게임 초기의 장면에서 안전하게 살아남을 수 있는 기회를 얻을 수 있다. 이는 또한 새로운 플레이어로 하여금 게임을 습득할 수 있는 기회를 줄 수도 있다. When the game starts, the
인물(260)의 행동은 상세히 후술될 하나 이상의 '.act' 파일(150)에서 게임 개발자에 의해 지정되거나 기술된다. 일례로서 하나의 인물(260)이 지정된 시간 동안 물체 뒤에 숨어 있다 물체 뒤에서 일어나고 가상 플레이어(210)를 향해 슈팅한 다음 다시 숨을 수도 있다. 상기 인물(260)은 가상 플레이어(210)에 의해 죽임을 당할 때까지 이러한 동작을 반복할 수 있다. The behavior of
이러한 동작은 단일 '.act' 파일(150)로 저장될 수 있다. 전술한 바와 같이 '.act' 파일(150)들은 데이터만을 포함하며 실행 코드는 포함하지 않는다. 상기 '.act' 파일(150)의 제 1 부분은 인물(260)이 죽기 전까지 버틸 수 있는 데미지량 및 상기 인물(260)이 죽는 경우 취할 수 있는 액션과 같은 인물(260)의 특징에 대한 설정과 관련된 데이터를 포함할 수 있다. 상기 '.act' 파일(150)의 제 2 부분은 상기 인물(260)이 등장을 묘사하는 명령을 포함할 수 있다. 상기 '.act' 파일(150)의 제 3 부분은 상기 인물(260)이 가상 플레이어(210)를 향한 슈팅을 묘사하는 명령을 포함할 수 있다. 또한 상기 '.act' 파일(150)의 제 4 부분은 상기 인물(260)이 숨어 있어야 하는 시간의 길이에 대한 명령을 포함할 수 있다. 상기 '.act' 파일(150)의 제 5 부분은 상기 제 2 부분으로 돌아가 일련의 사건을 되풀이하는 명령을 포함할 수 있다. 일부 실시예들에서는, 이러한 행위들에 대한 모든 정보는 분리된 부분들의 지닌 단일 '.act' 파일(150)에 저장되거나, 별도의 '.act' 파일(150)들에 저장될 수 있다. This action may be stored as a single '.act'
상기 가상 플레이어(210)가 인물을 죽이면, 상기 '.act' 파일(150)의 제 1 부분의 설정들이 탐색된다. 이러한 설정들은 인물(260)의 죽음을 요청하기 위한 하 나 이상의 다른 '.act' 파일(150)들을 확인하며, 이러한 다른 '.act' 파일(150)들은 하나 이상의 다른 인물(260)들이 등장하거나 일련의 다른 액션을 수행하도록 할 수 있다. 게임 개발자는 인물(260)의 복잡한 행동을 묘사하기 위해 상기 '.act' 파일(150)을 원하는 만큼 복잡하도록 만들 수 있다. 또한 게임 개발자는 원하는 만큼 복잡한 초기 시나리오를 생성하기 위해 게임 시작 시 초기화를 위한 다수의 '.act' 파일(150)들을 정의할 수 있다. When the
또한 '.act' 파일(150)은 상기 엔진(190)이 언제든지 원하는 만큼의 다른 '.act' 파일(150)들을 생성(launch)하거나 호출(call)하도록 할 수 있다. 지정된 액션이 인물(260)에 일어날 때, 하나의 '.act' 파일(150)은 상기 엔진(190)이 다른 '.act' 파일(150)들을 생성하도록 할 수 있다. 예를 들어, 제 1 인물(260)이 죽으면, 제 2 인물(260)이 장면의 한 위치에서 등장할 수 있고, 또 다른 위치에서 제 3의 인물(260)이 등장할 수 있다. 제 2 및 제 3 인물(260)들의 행동은 다른 '.act' 파일(150)들에 의해 묘사될 것이다. 이러한 '.act' 파일(150)들은 상기 제 2 및 제 3 인물(260)들에 대한 일련의 복잡한 액션을 기술하며, 지정된 액션이 상기 제 2 및 제 3 인물(260)들에서 발생할 때 상기 엔진(190)이 생성하는 다른 '.act' 파일(150)들을 확인할 수 있다. In addition, the '.act' file 150 may cause the
인물에 대한 '.act' 파일(150)은 상기 엔진(190)이 서로 다른 상황에서 다른 '.act' 파일(150)을 호출하도록 할 수 있다. 예를 들어, 인물(260)이 부상을 당하면, 상기 엔진(190)은 상기 인물(260)이 부상당하기 전에 인물(260)의 행동을 묘사하는 '.act' 파일(150)에 의해 상기 인물(260)의 절름거리는 행동을 묘사하는 다른 '.act' 파일(150)을 호출하도록 한다. 만일 인물(260)이 죽으면, 상기 엔진(190)은 상기 인물(260)의 죽는 행동을 묘사하는 또 다른 '.act' 파일을 호출하도록 한다. 상기 인물(260)이 지정된 장소로 이동하면, '.act' 파일(150)은 상기 엔진(190)이 인물(260)의 무기 파워 또는 버틸 수 있는 데미지량을 변경할 수 있다. 인물(260)의 행동이 게임 환경에 근거하여 변하는 다른 방법들은 당업계의 기술에서 분명히 알 수 있을 것이다. The '.act' file 150 for the person may cause the
이와 같이, '.act' 파일(150)들은 게임의 진행을 통해 상기 엔진(190)이 다른 '.act' 파일(150)들을 생성하거나 호출하도록 할 수 있다. 가상 플레이어(210)가 인물(260)들과 상호 작용하고, 상기 인물(260)의 액션이 자신의 '.act' 파일(150)에 의해 제어되며, 이전 인물(260)과 연관된 '.act' 파일(150)의 데이터를 근거로 새로운 인물(260)을 등장시키는 방법들을 통해 복잡한 게임 줄거리가 생성되어 진행될 수 있다. 일반적으로 일정 액션이 일정 인물(260)에 일어나거나 일정 점수(290)에 도달했을 때, 상기 게임을 종료하거나 새로운 게임 레벨로 진입하도록 하는 '.act' 파일(150)들이 존재하게 된다. As such, the '.act'
전술한 바와 같이, 상기 엔진(190)이 '.act' 파일(150)에 포함된 데이터를 읽어들일 때, '.pic' 파일(140)의 이미지들이 화면(200)에 디스플레이되거나 다른 유형의 액션이 일어나도록 하는 일련의 명령을 발생시킨다. 일련의 명령은 액션 정의(action definition)라고 할 수 있다. 상기 '.act' 파일(150)들은 오직 명령이 아닌 데이터만을 포함하거나 처리할 수 있는 코드를 포함한다. 보다 상세하게, 상기 '.act' 파일(150)들은 예를 들어 중앙 처리 장치(CPU: Central Processor Unit) 또는 신호처리 장치(DSP: Digital Signal Processor)와 같은 처리 장치에 의해 실행용 명령어 레지스터(instruction register)로 로딩하기에 적합한 기계 명령(machine instructions)을 포함하지 않는다. 여기서, 상기 '.act' 파일(150)이 처리 기능(processing functionality)을 명령, 지시 또는 착수하는 것은 상기 '.act' 파일(150)을 읽어들이고 게임 실행을 위한 명령을 처리하는 엔진(190)에 의해 처리가 이루어지는 것을 의미한다. '.act' 파일(150)은 일련의 프레임들로 간주할 수 있는데, 각 프레임은 상기 런타임 엔진(190)에 의해 읽힐 때 수행될 수 있는 하나의 명령(command)을 갖는다. 또한 하나의 프레임은 다른 유형의 명령어(instruction)를 가질 수 있다. As described above, when the
일 실시예에서, 각 '.act' 파일(150)은 32 바이트의 데이터로 구성된다. 다른 실시예들에서, 프레임들은 다른 크기를 가질 수 있다. 1 바이트는 상기 엔진(190)에 의해 수행될 수 있는 명령을 기술하거나 지정하는 지표(indicator)를 포함할 수 있다. 다른 바이트들은 예를 들어, 장면의 이미지로 디스플레이되는 특정 '.pic' 파일에 상기 명령을 적용하는 파일의 이름이나 위치를 포함할 수 있다. 일 실시예에서, 상기 파일은 컨테이너(160)로의 어드레스 오프셋(address offset)에 의해 확인될 수 있다. 상기 명령에 더하여, 다른 유형의 명령어들도 그 밖의 바이트를 차지할 수 있다. 후술될 제작 툴(130)을 사용하는 게임 개발자는 명령 지표(command indicators), 파일명 및 각 프레임이 갖는 다른 명령어를 지정하여, 각 프레임이 상기 런타임 엔진(190)에 의해 읽혀질 때 발생하게 될 액션을 지정할 수 있다. In one embodiment, each '.act'
상기 런타임 엔진(190)이 '.act' 파일(150)을 실행하면, 활동(activity)을 시작했다고 말할 수 있다. 활동은 액션이라고 할 수도 있다. 액션 또는 활동은 '.act' 파일(150)의 일례로 간주될 수 있다. 예를 들어, 달리는 병사의 움직임을 정의하는 단일 '.act' 파일(150)을 3회에 걸쳐 생성함으로써 세 명의 달리는 병사들이 장면에서 만들어질 수 있다. 각각의 달리는 병사는 독특하고 고유한 활동을 갖는다. 하나의 활동은 상기 활동의 행동, 현재 프레임, 상기 활동으로 유지되는 축적된 데미지, 장면에서의 현재 위치 및 그 밖의 상태 정보를 설명하는 '.act' 파일(150)을 확인할 수 있는 정보를 포함한다. 예를 들어, 공통의 '.act' 파일(150)로부터 생성된 달리는 병사의 상태를 정의하는 3가지 활동은 얼마나 많은 데미지가 개별 활동에 남아있는지, 각 활동이 언제 생성되었으며 그로 인해 상기 활동과 관련된 인물이 초기 생성 위치로부터 얼마나 멀리 이동하였는지 등에 기초하여 구별될 수 있다. 일 실시예에서, 상기 런타임 엔진(190)은 각 활동에 실행 트랙(execution track)을 할당하며, 타임 틱(time tick) 또는 클록 틱(clock tick) 동안 다수의 실행 트랙을 처리할 수 있다. When the
상기 런타임 엔진(190) 타임 슬라이스(time slice), 클록 틱 또는 틱이라 불리는 시간의 작은 부분 동안 다수의 '.act' 파일(150)들에서 명령어를 실행한다. 도 5는 네 개의 '.act' 파일(150)들의 집합에서 프레임(300)들을 읽어 들이는 런타임 엔진(190)을 도시한 것이다. 다른 실시예들에서는 다른 개수의 '.act' 파일(150)들이 나타날 수도 있다. 상기 '.act' 파일(150)들은 동일한 크기로 나타냈지만 이에 한정되지 않는다. 화살표(310)는 상기 엔진(190)이 현재 읽어들이는 프 레임(300)을 가리킨다. 이 경우, 상기 엔진(190)이 각 '.act' 파일(150)별로 다른 프레임을 읽어들이고 있다는 것을 알 수 있다. 상기 엔진(190)인 동일한 틱 동안 다수의 '.act' 파일(150)들을 읽어들이면, 상기 디스플레이(200) 상에 다수의 이미지가 동시에 나타나도록 할 수 있다. The
프레임에 나타날 수 있는 명령들 중 하나는 '.pic' 명령이다. 프레임이 하나의 '.pic' 명령을 포함하면, 상기 엔진(190)은 적절한 '.pic' 파일(140)을 검색하고, 디스플레이(200) 상에 상기 '.pic' 파일(140)에 포함된 이미지를 디스플레이한다. '.pic' 파일(140) 내의 이미지들은 하기에서 상세히 설명한다. One of the commands that can appear in a frame is the '.pic' command. If the frame contains one '.pic' command, the
상기 '.pic' 명령을 이용하는 예로서, '.act' 파일(150)은 인물(260)이 달리는 모습을 갖도록 만들어질 수 있다. 예를 들어, 서로 약간 다른 신체 자세를 묘사하는 14개 정도의 다른 포즈들은 실제 달리는 동작을 생성하기 위해 순차적으로 디스플레이될 필요가 있음을 알 수 있다. 각 포즈는 별도의 '.pic' 파일(140)에 저장된다. 상기 '.act' 파일(150)에서 하나의 프레임은 첫 번째 달리는 포즈의 검색 및 디스플레이를 요청하는 '.pic' 명령을 포함할 수 있고, 다음 프레임은 두 번째 달리는 포즈의 검색 및 디스플레이를 요청하는 '.pic' 명령을 포함할 수 있다. 또 다른 프레임은 이전 14개의 프레임이 반복되도록 지정할 수도 있다. 상기 14개의 이미지들이 비디오 화면상에 순차적으로 반복하여 디스플레이될 때 상기 다리는 동작이 만들어진다. As an example of using the '.pic' command, the '.act'
비디오 화면상의 부드럽고 현실적인 동작의 묘사는 화면의 동영상이 초당 15회 또는 그 이상의 횟수로 업데이트할 것을 요구한다. 영화 필름은 보통 초당 24회 의 화면 이미지를 업데이트하고, 텔레비전은 보통 초당 30회의 화면 이미지를 업데이트한다. 그러므로, 상기 런타임 엔진(19)은 초당 15개 이상의 명령(commands) 또는 명령어들(instructions)의 세트, 또는 약 67 밀리초마다 적어도 하나의 명령 속도로 '.act' 파일(150) 내 명령을 실행한다. 이 67 밀리초 시간 주기는 하나의 타임 슬라이스, 클록 틱 또는 틱이라 불릴 수 있다. 대부분 틱과 프레임 사이에는 일대일 관계가 존재한다. 즉, 매 tick 마다 각 능동적 '.act' 파일(150)들로부터 하나의 프레임을 읽어들인다. 그러나 '멀티(multi)'로 알려진 명령어 옵션이 프레임에 존재하는 것과 같이 일부 경우에는, 하나 이상의 프레임을 단일 틱에서 읽어들일 수 있다. 상기 'multi' 명령어 옵션은 이하에서 상세히 설명하기로 한다. 상술한 프레임 디스플레이 속도, 틱 처리 속도 및 '.act' 파일(150)의 프레임 읽기 속도는 본 실시예에서 제공되지만, 그 밖의 속도가 다른 실시예들에서 사용될 수 있다. The depiction of smooth, realistic motion on the video screen requires that the video on the screen be updated 15 or more times per second. Movie film typically updates 24 screen images per second, and television typically updates 30 screen images per second. Thus, the runtime engine 19 executes instructions in the '.act' file 150 at a rate of at least 15 commands or sets of instructions per second, or at least one instruction rate about every 67 milliseconds. do. This 67 millisecond time period may be called one time slice, clock tick or tick. In most cases, there is a one-to-one relationship between ticks and frames. That is, one frame is read from each active '.act' file 150 every tick. However, in some cases, more than one frame can be read in a single tick, such as when a command option known as 'multi' exists in a frame. The 'multi' command option will be described in detail later. The above-mentioned frame display rate, tick processing rate and frame read rate of the '.act' file 150 are provided in this embodiment, but other speeds may be used in other embodiments.
여기에서 사용되는 '프레임'이란 용어가 사용되는 두 가지 경우를 구별할 필요가 있다. 공통적인 용어로 영화에서 초당 일정 수의 프레임의 속도로 디스플레이된다고 하는데, 이는 초당 디스플레이되는 이미지의 수를 의미한다. 본 발명에서는 360-3D 게임이 초당 15개의 프레임 속도로 디스플레이된다고 말할 수 있다. 상기 '프레임'이란 용어는 데이터 패킷 또는 '.act' 파일(150)의 일부로 불릴 수 있는데, 여기에서는 '.act' 파일의 프레임이라고 한다. It is necessary to distinguish two cases where the term 'frame' is used here. In common terms, a movie is displayed at a certain number of frames per second, which means the number of images displayed per second. In the present invention, it can be said that a 360-3D game is displayed at 15 frames per second. The term 'frame' may be referred to as a data packet or part of an '.act'
일 실시예에서, '.pic' 명령뿐만 아니라 다음의 명령들도 '.act' 파일(150)의 프레임에서 발생할 수 있다. - 'launch', 'go to', 'if .act go to self', 'damage'. 'delete', 'delete self', 'reload', 'bonus', 'sound stop', 'shoot', 'say', 및 'hear'. 상기 'launch' 명령은 현재 '.act' 파일(150a) 계속 실행되면서 '.act' 파일(150b)의 경우가 실행되도록 한다. 예를 들어, 달리는 모습의 움직임을 묘사하는데 필요한 일련의 '.pic' 명령들을 설명하는 단일 '.act' 파일에 기초하여 달리는 병사의 다수의 경우들이 생성될 수 있다. 실행되는 '.act' 파일(150)의 각 경우는 하나의 활동(activity)이라 불릴 수 있다. 상기 '활동'이란 용어는 상기 엔진(190)에 의해 '.act' 파일(150)의 프레임을 읽어들이는 것을 말할 수도 있다. In one embodiment, the following commands as well as the '.pic' command may occur in a frame of the '.act'
상기 'launch' 명령은 상기 명령과 일치하는 '.act' 파일(150)에 의해 정의된 활동을 생성한다. 상기 'launch' 명령은 하나의 인물(260)이 또 다른 인물(260)을 생성하도록 하는데 사용될 수 있다. 예를 들어, 제 1 인물(260)이 죽으면, 사상자를 대신하기 위해 보내는 지원병력의 예로서 제 2 인물(260)이 생성될 수 있다. 이는 제 2 인물(260)에 관련된 '.act' 파일(150b)을 생성하는 제 1 인물(260)에 관련된 '.act' 파일(150a)의 프레임에서 'launch' 명령을 배치함으로써 이루어질 수 있다. 상기 제 2 인물(260)이 활동하는 동안 상기 제 1 인물(260)의 시체가 보일 수 있도록 하는 것이 바람직하다. 상기 'launch' 명령은 제 1 인물(260)과 관련된 '.act' 파일(150a)이 활동하도록 하고, 제 2 인물(260)에 관련된 '.act' 파일(150b)이 실행을 시작하도록 하는 동안 시체가 디스플레이되도록 한다. 상기 'launch' 명령이 360-3D 게임에서 액션을 제어하는데 사용될 수 있는 다른 방법들이 당업계에 알려져 있다. The 'launch' command creates an activity defined by the '.act' file 150 that matches the command. The 'launch' command may be used to cause one
상기 'go to' 명령은 제 1 '.act' 파일(150a)에 의해 정의된 제 1 활동에서 'go to' 명령이 제 2 '.act' 파일(150b)에 의해 정의된 제 2 활동의 실행을 시작하도록 한다는 점에서 상기 'launch' 명령과 유사하다. 그러나 상기 'launch' 명령과는 다르게 상기 제 1 활동에서 'go to' 명령은 제 1 활동을 중지하고 삭제되도록 한다. 상기 예에서 'go to' 명령은 제 1 인물(260)이 죽은 후 시체가 보이는 것을 원하지 않을 경우에 사용될 수 있다. 상기 'go to' 명령이 제 1 인물(260)이 죽은 후 제 2 인물(260)일 등장하도록 사용된다면, '.act' 파일(150a)에 의해 정의되고 제 1 인물(260)과 관련된 활동의 동작이 중지되고, 다음 틱에서 디스플레이되지 않도록 사라지게 된다. The 'go to' command executes the second activity defined by the second '.act' file 150b in the 'go to' command in the first activity defined by the first '.act'
또한 상기 'go to' 명령은 인물이 달리는 예에서 상술한 바와 같이 반복(looping) 능력을 제공할 수 있다. 이 경우, 상기 'go to' 명령은 '.act' 파일(150)이 그 자체로 돌아가도록 하는데 사용된다. 상기 'go to' 명령이 사용되면, 상기 '.act' 파일(150)의 어느 프레임이 'go to' 명령의 타깃이 되는지를 지정하는 것이 가능해진다. 후술되는 이유 때문에, '.act' 파일(150)의 제 1 프레임이 상기 'go to' 명령의 타깃이 되는 것은 바람직하지 않다. 따라서 'go to' 명령이 '.act' 파일(150) 내에서 루프를 생성하는데 사용되면, 상기 'go to' 명령은 일반적으로 '.act' 파일(150)의 실행을 '.act' 파일(150)의 제 2 프레임으로 리셋시킨다. 이러한 명령은 상기 'go to' 명령이 위치하는 지점에서 상기 '.act' 파일(150)의 실행을 중지시키고 '.act' 파일(150)의 제 2 프레임으로 되돌아간다. 따라서 상기 '.act' 파일(150)의 마지막 프레임을 통해 제 2 프레임은 반복적으로 실행된다. 360-3D 게임 개발자들이 상기 'go to' 명령을 사용하여 인물(260)들의 다른 행동을 묘사하는 다른 방법들이 당업계에 분명히 알려져 있다. In addition, the 'go to' command may provide a looping capability as described above in the example of running a person. In this case, the 'go to' command is used to cause the '.act' file 150 to return to itself. When the 'go to' command is used, it becomes possible to specify which frame of the '.act'
상기 'if .act go to self' 명령은 360-3D 게임 개발자들에게 인물(260)의 행동을 묘사하는데 상당한 능력을 제공하는 막강한 명령이다. 이 명령으로 제 1 '.act' 파일(150a)은 제 2 '.act' 파일(150b)이 현재 활성화되어 있는지를 판단한다. 상기 제 2 '.act' 파일(150b)이 활성화되면, 제 1 '.act' 파일(150a)의 실행이 상기 제 1 '.act' 파일(150a) 내에 다른 프레임으로 이동하거나 다른 액션을 취하게 된다. 이는 상기 제 1 '.act' 파일(150a)에 의해 제어되는 인물(260)이 상기 제 2 '.act' 파일(150b)이 실행되는지의 여부에 따라 다른 액션을 취하거나 부가적인 게임 기능을 제공하도록 할 수 있다. The 'if.act go to self' command is a powerful command that gives 360-3D game developers considerable power to describe the behavior of the
예를 들어, 만일 제 1 층에 특정 대상이 존재하지 않으면 상기 제 1 '.act' 파일(150a)에 의해 제어되는 인물(260)이 화면(200)의 좌측에서 우측으로 이동하도록 할 수 있다. 만일 상기 제 1층에 대상이 존재한다면, 제 2 층에서 상기 인물(260)이 이동하도록 하는 것이 바람직하다. 이를 구현하기 위해서, 상기 인물(260)을 제어하는 '.act' 파일(150a)이 제 1 층에서 인물(260)이 이동하며 등장하도록 하는 명령어들의 제 1 세트와 제 2 층에서 인물(260)이 이동하며 등장하도록 하는 명령어들의 제 2 세트를 포함할 수 있다. 또한 상기 'act' 파일(150a)는 대상이 존재하는지의 여부를 체크하는 'if .act go to self' 명령을 포함할 수도 있다. For example, if a specific object does not exist on the first floor, the
상기 인물(260)이 제 1 층에서 이동을 시작하고, 상기 인물(260)을 제어하는 '.act' 파일(150a)은 'if .act go to self' 명령이 대상의 존재 여부를 판단하도록 주기적으로 실행시킬 수 있다. 만약 대상이 존재하지 않으면 (즉, 대상을 제어하는 '.act' 파일(150b)이 현재 활성화되어 있지 않으면), 상기 인물(260)을 제어하는 '.act' 파일(150a)이 제 1 명령어 세트를 실행하고 제 1 층에 남아있도록 한다. 만약 대상이 존재하면 (즉, 대상을 제어하는 '.act' 파일(150b)이 현재 활성화되어 있으면), 상기 인물(260)을 제어하는 '.act' 파일(150a)이 제 2 명령어 세트로 건너 뛰어 상기 인물(260)이 제 2 층으로 이동하여 등장하도록 한다. 이는 상기 인물(260)이 대상 뒤에서 나오며 등장하도록 할 수도 있다. 상기 'if .act go to self' 명령이 360-3D 게임의 프로그래밍 로직을 구성하는데 사용될 수 있는 수많은 다른 방법들이 당업계의 기술로 알려져 있을 수도 있다. The
상기 'damage' 명령은 인물(260)이 죽거나 다른 액션이 일어나기 전에 유지할 수 있는 데미지량을 지정하는 데 사용된다. 또한 상기 'damage' 명령은 인물(260)의 임계(threshold) 데미지에 도달 시 일어나는 액션을 지정한다. 예를 들어, 제 1 '.act' 파일(150a)의 'damage' 명령에 20 레벨의 데미지가 주어지고 상기 제 1 '.act' 파일(150a)에 의해 제어되는 인물(260)이 20의 데미지를 유지할 때 'die1'으로 불리는 제 2 '.act' 파일(150b)과 관련되어 있다면, 상기 'die1' '.act' 파일(150b)은 실행을 시작할 것이다. 상기 'die1' '.act' 파일(150b)은 인물(260)이 바닥에 넘어지도록 묘사할 수도 있다. The 'damage' command is used to specify the amount of damage that can be maintained before the
일반적으로 상기 'damage' 명령은 '.act' 파일(150a)의 제 1 프레임 내에 위치한다. 이 프레임 내에서 지정된 데미지 및 임계치에 도달 시 생성되는 '.act' 파일(150b)의 이름은 후속 'damage' 명령에 의해 변경되지 않는다면 상기 '.act' 파 일(150a)이 실행되는 동안 유효하게 된다. 임계 데미지에 도달 시 실행되는 '.act' 파일(150)을 변경하면, 인물(260)이 다른 환경하에서 다른 방식으로 죽도록 할 수 있다. 예를 들어, 인물(260)이 죽을 때 바닥에 넘어지게 하는 'die1' '.act' 파일(150b)을 갖도록 할 수 있다. 상기 인물(260)이 이어서 높은 위치로 이동하면, 상기 'damage' 명령이 인물(260)이 죽는 방식을 달리하도록 할 수 있다. 'die2' '.act' 파일(150c)은 상기 인물(260)이 죽을 때 다른 방식으로 바닥에 넘어지도록 상기 'damage' 명령에 의해 지정될 수 있다. In general, the 'damage' command is located in the first frame of the '.act'
상기 'delete' 명령은 지정된 이름을 지닌 '.act' 파일(150)에 의해 제어되는 모든 행동들이 실행을 중지하고 종속 '.act' 파일(150)에 의해 제어되는 인물(260)일 화면(200)에서 사라지도록 한다. 예를 들어, 상기 화면(200)을 가로질러 좌측에서 우측으로 달리는 인물(260)이 'run3'라 불리는 '.act' 파일(150)에 의해 제어될 수 있다. 이러한 달리는 인물(260)들 또는 달리는 행동들의 여러 경우가 상기 'run3' '.act' 파일(150)로부터 발생할 수 있다. 'run3' 파일명에 적용되는 'delete' 명령은 'run3' '.act' 파일(150)로부터 발생한 모든 달리는 인물(260)들 또는 달리는 행동들이 동시에 실행을 중지하고, 달리는 인물(260)들 또는 달리는 행동들의 모든 경우가 동시에 사라지도록 할 수 있다. The 'delete' command stops execution of all actions controlled by the '.act' file 150 having the specified name, and displays the
이와 대조적으로, 상기 'delete self' 명령은 'delete self' 명령이 실행되는 활동만이 실행을 중지하도록 한다. 예를 들어, 제 1 활동은 반복(looping)되고 있으므로 'run2' '.act' 파일(150)에 의해 발생되는 제 2 활동의 처리 시 'run2' '.act' 파일(150) 내의 'delete self' 명령이 상기 엔진(190)에 의해 충돌하지 않 도록 한다. 그러나 상기 엔진(190)은 'run2' '.act' 파일(150)에 의해 발생되는 제 2 활동의 처리 시 상기 'delete self' 명령과 충돌할 수 있다. 그 이유는 다른 이벤트가, 예를 들어 가상 플레이어(210)에 의해 이루어지는 발사와 같이 제 2 행동의 처리가 루프로부터 벗어나 'delete self' 명령을 처리하도록 하는 제 2 행동에 적용될 수 있기 때문이다. 이 경우, 'run2' '.act' 파일(150)에 의해 발생되는 제 2 활동과 연관된 인물(260)은 사라지지만, 'run2' '.act' 파일(150)에 의해 발생되는 제 1 활동과 연관된 인물(260)은 계속 보이게 된다. In contrast, the 'delete self' command causes only the activity on which the 'delete self' command is executed to stop execution. For example, since the first activity is looping, 'delete self' in the 'run2' '.act' file 150 when processing the second activity generated by the 'run2' '.act'
상기 'reload' 명령은 가상 플레이어(210)가 사용 가능한 탄약의 양을 변화시킨다. 상기 가상 플레이어(210)는 보통 정해진 탄약의 양을 가지고 게임을 시작한다. 상기 가상 플레이어(210)에 의해 이루어지는 각 발사는 가상 플레이어(210)가 사용하는 무기의 파워에 의해 이 탄약의 양을 감소시킨다. 예를 들어, 상기 가상 플레이어(210)가 5의 파워를 가진 무기와 100 레벨의 탄약을 가지고 게임을 시작하면, 탄약이 바닥날 때까지 20발을 발사할 수 있다. 상기 'reload' 명령은 가상 플레이어의 탄약 레벨을 증가시키거나 감소시킬 수 있다. 예를 들어, 상기 가상 플레이어(210)가 하나의 레벨에서 승리하고 다른 레벨로 이동할 때, 상기 'reload' 명령은 가상 플레이어의 탄약 레벨을 최고치로 리셋한다. 선택적으로, 상기 가상 플레이어(210)가 적이 아닌 죄 없는 사람에게 발사할 경우, 'reload' 명령은 가상 플레이어(210)로부터 탄약을 공제할 수 있다. 상기 'reload' 명령은 하나의 레벨을 실행하는데 알맞은 탄약의 비축을 증가시키거나 감소시키는데 사용될 수 있다. The 'reload' command changes the amount of ammo available to the
상기 'bonus' 명령은 가상 플레이어(210)가 일부 환경에서 추가 포인트를 얻 도록 할 수 있다. 보통 상기 가상 플레이어(210)가 받게 되는 포인트 수는 하나의 인물(260)을 죽이는데 필요한 데미지와 동일하다. 즉, 20 포인트의 데미지가 인물(260)을 죽이는데 필요하다면, 상기 가상 플레이어(210)는 한 인물(260)을 죽일 때마다 20 포인트를 얻게 된다. 'act' 파일(150)의 프레임에 'bonus' 명령을 삽입함으로써, 게임 개발자는 가상 플레이어(210)가 인물(260)을 죽이면 얻게 되는 보통 점수보다 더 많은 점수를 얻도록 할 수 있다. 또한 보너스 포인트는 다른 이벤트가 발생할 때 주어질 수도 있다. The 'bonus' command may cause the
상기 'sound' 명령은 임의의 프레임에서 소리가 발생하도록 할 수 있다. 소리를 포함하는 파일의 위치 및 이름은 상기 'sound' 명령을 포함하는 프레임에서 지정될 수 있다. 소리가 일정 횟수로 반복되도록 상기 'sound' 명령에 루프 값이 결합될 수 있다. 'sound stop' 명령은 보통 소리가 멈출 때보다 일찍 멈추도록 하는데 사용될 수 있다. The 'sound' command may cause a sound to be generated in an arbitrary frame. The location and name of the file containing the sound may be specified in the frame including the 'sound' command. The loop value may be combined with the 'sound' command so that the sound is repeated a predetermined number of times. The 'sound stop' command can be used to stop the sound earlier than it normally does.
상기 'shoot' 명령은 현재 실행되는 하나의 '.act' 파일(150)에 데미지를 가할 수 있는 능력을 다른 '.act' 파일(150)에 부여하기 위해 사용된다. 일례로서, 상기 'shoot' 명령은 대상물의 폭발로 인해 인물(260)이 죽도록 할 수 있다. The 'shoot' command is used to give the other '.act' file 150 the ability to inflict damage on one '.act'
상기 'say' 명령은 하나의 '.act' 파일(150)이 또 다른 '.act' 파일(150)에 메시지를 전송하도록 한다. 'hear' 명령은 하나의 '.act' 파일(150)이 또 다른 '.act' 파일(150)로부터 메시지를 들을 수 있는 능력을 부여한다. The 'say' command causes one '.act' file 150 to send a message to another '.act'
상술한 명령들과 이의 변형들은 360-3D 게임 개발자에게 복잡한 게임 시나리오를 기술하는 능력을 제공할 수 있다는 것은 당업계에 분명히 알려져 있다. 또한 이러한 명령들에 다른 이름이 사용될 수 있고, 별도의 명령들이 추가로 사용될 수 있으며, 이러한 명령들과 유사한 명령들의 세트가 사용될 수 있고, 다양하게 기술된 기능들의 조합이 사용될 수도 있으며, 그 밖의 기능들이 본 발명의 범위에 벗어나지 않고 사용될 수 있음은 당업계에 잘 알려져 있다. It is clearly known in the art that the above-described instructions and variations thereof can provide a 360-3D game developer the ability to describe complex game scenarios. Also, other names may be used for these commands, additional commands may be used additionally, sets of commands similar to these commands may be used, combinations of various described functions may be used, and other functions. It is well known in the art that they can be used without departing from the scope of the present invention.
각 프레임(300)의 크기와 그 결과로 만들어지는 '.act' 파일(150)의 크기를 줄이기 위해서, '.act' 파일(150)의 각 프레임은 어느 명령이 해당 프레임에서 실행되는가를 지정하는, 1 바이트 길이의 지표(indicator)를 포함한다. 예를 들어, 지표 1은 '.pic' 명령을 지정할 수 있고, 지표 2 및 지표 3은 각각 'launch' 명령과 'go to' 명령을 지정한다. 다른 실시예에서는 다른 지표가 사용될 수 있다. 또한 상기 지표는 상기 명령과 연결되는 파일의 유형을 표시한다. 즉, '.pic' 명령이 하나의 프레임에 표시되면, 상기 프레임의 파일 포인터 또는 파일명은 디스플레이되는 '.pic' 파일(140)을 말한다. 만약 'launch' 명령이 프레임에 표시되면, 해당 프레임의 파일 포인터 또는 파일명은 생성되는 '.act' 파일(150)을 말한다. 이와 같은 여러 가지 면모들은 저장 및 메모리 사양의 측면에서 360-3D 게임의 크기를 줄이고 표준 하드웨어 능력을 지닌 이동 장치(180)에서 게임이 실행되도록 채택되고 있다. 각 프레임은 '.act' 데이터 파일에서 하나의 기록(record)으로 간주되는데, 상기 기록의 각 필드는 대표 데이터를 포함하는 것을 알 수 있다. 예를 들어, 제 1 필드는 표시된 명령과 관련된 필드에서 데이터를 지닌 상술한 명령에 관한 것이다. In order to reduce the size of each frame 300 and the resulting '.act'
상기 명령들에 더하여, 그 밖의 명령어(instruction)들이 하나의 프레임에 나타날 수 있다. 일 실시예에서, 상기 부가적인 명령어들은 'absolute x', 'absolute y', 'delta x', 'delta y', 'scale', 'layer', 'power' 및 'multi'를 포함한다. 'absolute x' 및 'absolute y'는 각각, 예를 들어 프레임에 의해 지정되거나 참조되는 '.pic' 파일에 의해 정의되는 이미지와 같은, 대상이 등장하는 수평 및 수직 위치의 픽셀 수를 지정한다. 상기 'absolute x' 및 'absolute y' 명령어들은 대상의 초기 위치를 지정하는 '.act' 파일(150)의 제 1 프레임에서만 나타난다. 상기 'absolute x' 및 'absolute y' 명령어들이 나타나는 프레임은 보통 상기 '.act' 파일(150)에 의해 정의되는 활동이 실행되는 동안 복귀하지 않는다. 왜냐하면 해당 프레임으로의 복귀는 인물(260)이 현재 위치에서 초기 위치로 이동하도록 하는 것이기 때문이다. 이는 바람직하지 못하게 크고 갑작스런 건너뛰기(jump)를 일으킬 수 있다. In addition to the above instructions, other instructions may appear in one frame. In one embodiment, the additional instructions include 'absolute x', 'absolute y', 'delta x', 'delta y', 'scale', 'layer', 'power' and 'multi'. 'absolute x' and 'absolute y' respectively specify the number of pixels in the horizontal and vertical position at which the object appears, such as an image defined by a '.pic' file specified or referenced by a frame, respectively. The 'absolute x' and 'absolute y' commands appear only in the first frame of the '.act' file 150 that specifies the initial position of the object. The frame in which the 'absolute x' and 'absolute y' commands appear does not normally return while the activity defined by the '.act'
상기 'delta x' 및 'delta y' 명령어들은 각각 이전 프레임에서 인물(260)의 위치에 대하여 수평 및 수직으로 이동하는 픽셀의 수를 지정한다. 10 프레임의 달리는 동작이 인물(260)의 달리는 모습을 만들어 낸 상기 예에서, 장면을 통한 이동이 지정되어 있지 않으면 상기 인물(260)은 제자리에서 달리게 될 것이다. 움직임의 모습을 만들어내기 위해서, 각 프레임의 'delta x' 명령어는 상기 인물(260)이 배경에 대하여 수평으로 이동하는 거리를 지정해 줄 수 있다. The 'delta x' and 'delta y' commands designate the number of pixels moving horizontally and vertically with respect to the position of the
상기 'scale' 명령어는 인물과 관련된 크기를 지정하며 보통 표준 크기의 백분률로 지정된다. 프레임간 인물(260)의 비례(scale)를 증가시키면 가상 플레이어(210)를 향해 다가가는 모습을 만들어낼 수 있고, 프레임간 인물(260)의 비 례(scale)를 감소시키면, 가상 플레이어(210)로부터 멀어지는 모습을 만들어낼 수 있다. The 'scale' command specifies the size associated with the person and is usually specified as a percentage of the standard size. Increasing the scale of the
상기 'layer' 명령어는, 도 4에 도시된 바와 같이, 하나의 대상이 나타나는 층을 지정한다. 일반적으로 게임 개발자는 상기 인물(260)이 비례의 변화를 통해 앞뒤로 움직일 때 인물 나타나는 층의 변화를 지정해 준다. The 'layer' command designates a layer in which one object appears, as shown in FIG. 4. In general, a game developer designates a change in a floor of a character when the
상기 'power' 명령은 인물(260)의 무기가 갖는 파워의 양을 지정하여 상기 인물(260)이 가상 플레이어(210)에게 발사할 때 가해지는 데미지의 양을 지정해 준다. 게임 개발자는 상기 인물(260)이 발사하지 않을 때 무기의 파워를 0으로 설정하지만 발사 시 상기 파워를 다른 값으로 설정할 수 있다. 이는 상기 인물(260)을 묘사하는 두 개의 서로 다른 '.act' 파일(150)들을 사용하여 발사하거나 발사하지 않도록 나타냄으로써 이루어질 수 있다. 상기 두 '.act' 파일(150)들 사이에서 인물(260)의 묘사에 대한 제어가 변화함에 따라 상기 'power' 명령어는 0에서 양의 일정 값 사이의 파워를 변화시킬 수 있다. 상기 'power' 명령은 슈팅 지향 게임을 참조하여 위에서 설명하는 반면에, 'power' 구성(construct)은 다른 게임 시나리오에서 일반화될 수 있다. The 'power' command designates the amount of power possessed by the weapon of the
각 프레임에서 선택 또는 비 선택될 수 있는 상기 'multi' 명령어 옵션은 2개 이상의 프레임들이 동시에 읽히거나 실행되도록 한다. 전술한 바와 같이, 보통 1 틱 또는 매 67 밀리초마다 각 '.act' 파일(150)로부터 하나의 프레임을 읽어들인다. 상기 'multi' 옵션이 프레임에서 선택되면, 동일한 '.act' 파일(150) 내 해당 프레임 및 다음 프레임은 단일 틱 동안 읽어들여 처리된다. 이는 상당한 묘사적 파 워(descriptive power)를 제공하며, 예를 들어 'go to' 명령의 실행 시 하나의 프레임 동안 플리커 없이 움직임이 디스플레이되는 것과 같이, 원하는 대로 동영상이 움직이도록 사용될 수 있다. The 'multi' command option, which can be selected or deselected in each frame, allows two or more frames to be read or executed simultaneously. As mentioned above, one frame is typically read from each '.act' file 150 every one tick or every 67 milliseconds. When the 'multi' option is selected in a frame, the corresponding frame and the next frame in the same '.act' file 150 are read and processed for a single tick. This provides significant descriptive power and can be used to move the video as desired, for example when motion is displayed without flicker during one frame upon execution of the 'go to' command.
예를 들어, 상술한 달리는 동작의 예에서 '.act' 파일(150)의 14개 프레임들이 서로 다른 포즈를 디스플레이하는 '.pic' 명령을 포함할 수 있고, 제 15 프레임이 상기 제 1 프레임으로 되돌아가는 'go to' 명령을 포함할 수 있다. 상기 'multi' 옵션이 상기 프레임들 중 어느 프레임에서도 선택되지 않는다면, 각 프레임은 서로 다른 틱에서 읽혀진다. 제 15 프레임에서 'go to' 명령이 실행되는 동안, 어떠한 이미지도 디스플레이되지 않고, 제 1 프레임을 다시 읽어들여 디스플레이를 위한 상기 엔진(190)에 의해 처리되는 동안 67 밀리초 플리커(flicker)가 화면(200) 상에 나타난다. For example, in the example of the above-described running operation, 14 frames of the '.act' file 150 may include a '.pic' command for displaying different poses, and the fifteenth frame is referred to as the first frame. It can include a 'go to' command to go back. If the 'multi' option is not selected in any of the frames, each frame is read at a different tick. While the 'go to' command is executed at the fifteenth frame, no image is displayed, and 67 millisecond flicker is displayed while the first frame is read back and processed by the
상기 제 14 프레임에서 'multi' 명령어 옵션을 선택함으로써 이 플리커가 방지될 수 있다. 상기 'multi' 명령어는 동일 틱 동안 상기 제 14 및 제 15 프레임을 읽어들여 처리되는 것을 나타낸다. 즉, 14번째 달리는 포즈가 디스플레이되도록 하는 '.pic' 명령과 상기 '.act' 파일(150)이 제 1 프레임으로 되돌아가도록 하는 'go to' 명령은 동일 틱에서 처리된다. 그러면, 상기 제 1 프레임은 다음 틱 또는 67 밀리초 시간 동안 실행될 수 있다. This flicker can be prevented by selecting the 'multi' command option in the 14th frame. The 'multi' command indicates that the 14th and 15th frames are read and processed during the same tick. That is, the '.pic' command for displaying the 14th running pose and the 'go to' command for returning the '.act'
단일 'multi' 명령어는 현재 프레임과 바로 후속 프레임만이 동일 틱 동안 실행되도록 한다. 그러나 동일 틱에서 원하는 만큼 많은 프레임을 갖도록 원하는 만큼 많은 수의 연속적 프레임에서 'multi' 명령어 옵션이 선택될 수 있다. 예를 들어, 상기 인물(260)의 이미지가 디스플레이되는 동안 동시에 현재 '.act' 파일(150a)에서 루프 초기도 돌아가고, 또 다른 '.act' 파일(150b)을 생성하며 인물(260)을 죽이는데 필요한 데미지를 변경하는 것이 바람직하다면, 'multi' 명령어를 지닌 다수의 연속적 프레임이 사용될 수 있다. 제 1 프레임은 '.pic' 명령 및 'multi' 명령어를, 제 2 프레임은 'go to' 명령 및 'multi' 명령어를, 제 3 프레임은 'launch' 명령 및 'multi' 명령어를, 그리고 제 4 프레임은 'damag' 명령을 가질 수 있다. 상기 제 1 프레임에서 'multi' 명령어는 동일 틱에서 상기 제 2 프레임이 실행되도록 한다. 상기 제 1 프레임과 마찬가지로, 제 2 프레임에서 'multi' 명령어는 동일 틱에서 제 3 프레임이 실행되도록 하며, 상기 제 2 프레임과 마찬가지로, 제 3 프레임에서 'multi' 명령어는 동일 틱에서 제 4 프레임이 실행되도록 한다. 따라서, 모든 프레임들이 동일 틱에서 실행된다. 상기 'multi' 옵션이 360-3D 게임의 흐름을 제어하기 위해 사용될 수 있는 다른 방법들이 당업계에 알려져 있다. A single 'multi' instruction ensures that only the current frame and the immediately following frame are executed during the same tick. However, the 'multi' command option can be selected in as many consecutive frames as desired to have as many frames as desired in the same tick. For example, while the image of the
프레임 0으로 불리는 '.act' 파일(150)의 제 1 프레임은 상기 '.act' 파일(150)의 다음 프레임에서 설정들이 변경될 때까지 활성화되는 상기 설정들을 지정하는데 사용되는 것이 바람직하다. 예를 들어, 인물(260)을 죽이는데 필요한 데미지량을 설정하기 위해 프레임 0에 상기 'damage' 명령을 위치시킬 수 있다. 또한 프레임 0은 'absolute x', 'absolute y', 'layer', 및 인물(260)의 초기 위치와 크기를 설정하는 'scale' 명령어들을 포함할 수 있다. 상술한 바와 같이, absolute x 및/또는 absolute y 위치가 프레임 0으로 정의되어 있는 경우에 상기 프레임 0으로 가는 것은 인물(260)이 갑자기 한 위치에서 다른 위치로 뛰어넘도록 하는 것이기 때문에, 프레임 0은 'go to' 명령의 타깃으로 열거되지 않을 수 있다. The first frame of the '.act'
'.act' 파일(150)의 프레임에서 32 바이트를 구성하는 데이터는 제작 툴(130)에 의해 쉽게 지정될 수 있다. 은 컴퓨터로 구현되는 제작 툴(13)의 일 실시예를 도시한 것이다. 일반적으로 상기 제작 툴(130)은 360-3D 게임을 효과적으로 제작할 수 있다. 상기 제작 툴(130)의 특정 실시예를 하기에서 설명하지만, 본 발명은 다른 선택적인 GUI 구성들과 상기 엔진(190) 상에서 실행되는 360-3D 게임을 구성하기 위한 제어들에 적용될 수도 있다. Data constituting 32 bytes in the frame of the '.act' file 150 can be easily specified by the
상기 제작 툴(130)은 상술한 명령들과 프레임에 삽입되는 다른 명령어들을 지정하기 위한 그래픽 유저 인터페이스(500, GUI), 프레임에 의해 검색되는 파일을 확인하기 위한 파일 선택 박스(900), 및 상기 GUI(500) 및 파일 선택 박스(900)에서 이루어진 선택의 효과를 보여주기 위한 에뮬레이터(920)를 포함한다. 상기 에뮬레이터(920)는 360-3D 게임의 실행 시 이동 장치(180)에 나타나는 디스플레이(200)를 활성화시킨다. The
상기 GUI(500)는 360-3D 게임 개발자가 프레임에 포함되는 명령 및 다른 명령어들을 지정하도록 하는 버튼, 텍스트 박스 체크 박스 및 그 밖의 데이터 입력 도구들을 포함한다. 상기 GUI(500)의 일례로 입력되는 데이터는 '.act' 파일(150)의 하나의 프레임 역할을 한다. 게임 개발자는 프레임별로 GUI(500)의 서로 다른 예로서 데이터를 입력함으로써 프레임별 '.act' 파일(150)을 구성한다. The
새로운 '.act' 파일(150)을 생성하기 위해서, 상기 게임 개발자는 보통 'New'라고 적힌 버튼을 클릭한다. 그런 다음, 상기 게임 개발자는 보통 프레임 0인 '.act' 파일(150)의 제 1 프레임을 위한 데이터를 입력한다. 상기 GUI(500)에 입력되는 정보에 적용되는 프레임은 'Frame'이라고 적힌 입력 박스(610)에서 지정될 수 있다. 프레임을 위한 데이터를 입력한 후, 게임 개발자는 프레임 텍스트 박스(610)에서 프레임 번호를 변경하고 다음 프레임을 위한 데이터를 입력한다. 이러한 과정은 현재 '.act' 파일(150)의 모든 프레임들이 생성될 때까지 계속된다. 이후, 게임 개발자는 상기 '.act' 파일(150)을 저장하기 위해 'Save' 버튼(890)을 클릭한다. To create a new '.act'
'Type'이라고 적힌 드롭다운(drop down) 박스(620)는 프레임에서 실행되는 명령을 지정하는데 사용된다. 일 실시예에서, 상술한 바와 같이, 상기 명령들은 'pic', 'launch', 'go to', 'if .act go to self', 'damage', 'delete', 'delete self', 'reload' 및 'bonus' 명령들이다. 그러나 다른 실시예들에서 다른 명령들이 사용될 수 있다. 상기 드롭다운 박스(620)는 프레임에 적용할 수 있는 모든 명령들을 열거하며, 게임 개발자는 목록에서 한 항목을 마우스로 클릭하여 원하는 명령을 선택할 수 있다. Drop down
상기 GUI(500)에서 나타나는 데이터 입력 도구들은 GUI(500)를 상황에 민감한(context sensitive) GUI로 만드는 명령 드롭다운 박스(620)에서 선택되는 명령에 따라 변경될 수 있다. 본 발명의 실시예에서 'damage' 명령이 선택되었고, 이를 'Damage'라고 적힌 텍스트 박스(630)로 나타낸다. 상기 damage 텍스트 박스(630)는 게임 개발자로 하여금 현재 프레임에 적용될 데미지를 지정하도록 한다. 상기 명령 드롭다운 박스(620)에서 또 다른 명령이 선택되면, 다른 텍스트 박스를 상기 damage 텍스트 박스(630) 대신에 나타낼 수 있다. 예를 들어, '.pic' 명령이 선택되면, 게임 개발자가 지정된 '.pic' 파일(140)에 의해 묘사되는 인물(260)에 적용될 파워를 지정하도록 텍스트 박스를 나타낼 수 있다. 만일 상기 'go to' 명령이 선택되면, 게임 개발자가 읽어들여 다음번에 실행해야 하는 프레임 번호를 지정하는 텍스트 박스를 나타낼 수 있다. The data entry tools appearing in the
'Action'이라고 적힌 텍스트 박스(640)들은 게임 개발자로 하여금 현재 프레임이 실행시킬 '.act' 파일(150)들을 지정하도록 할 수 있다. 상기 의 실시예에서, 'damage' 명령이 상기 명령 드롭다운 박스(620)에서 선택되면, action 텍스트 박스(640)에 열거된 '.act' 파일(150)이 현재 인물(260)이 지정된 데미지 임계치에 도달할 때 실행되는 '.act' 파일(150)을 지정하게 된다. 예를 들어, action 텍스트 박스(640) 인물(260)이 죽는 것을 묘사하는 '.act' 파일(150)을 열거할 수 있다. 상기 명령 드롭다운 박스(620)에서 'launch' 또는 'go to' 명령이 선택되면, action 텍스트 박스(640)에 열거된 '.act' 파일(150)이 현재 프레임에 도달할 때 실행되는 '.act' 파일(150b)을 지정한다.
데이터는 상기 action 텍스트 박스(640)에 수동으로 입력될 수 있다. 대신에 상기 파일 선택 박스(900)가 action 텍스트 박스(640)에 입력되는 '.act' 파일(150)을 선택하는데 사용될 수 있다. 즉, 게임 개발자는 원하는 '.act' 파일(150)이 발견될 때까지 파일 선택 박스(900)를 통해 브라우징할 수 있다. 상기 파일 선택 박스(900)에서 선택 버튼(910)은 상기 선택된 '.act' 파일(150)이 액션 텍스트 박스(640)에 자동으로 삽입되도록 클릭된다. Data may be manually entered into the
'Path'라고 적힌 텍스트 박스(650)들은 상기 action 텍스트 박스(640)에서 열거된 '.act' 파일(150)들이 발견될 수 있는 디렉터리 경로를 지정한다. 데이터는 상기 path 텍스트 박스(650)들에 수동으로 입력되거나, 상기 파일 선택 박스(900)에서 게임 개발자에 의해 선택되는 '.act' 파일(150)의 위치에 근거하여 path 데이터가 자동으로 입력되도록 한다. The
상기 action 텍스트 박스(640)들 및 path 텍스트 박스(650)들은 명령 드롭다운 박스(620)에서 'damage'명령과 같은 임의의 명령들이 선택될 때만 나타낼 수 있다. 상황에 민감한 GUI로서 상기 GUI(500)을 기술함으로써 이러한 작용을 나타낼 수 있다. 다른 명령들이 선택되면, 상기 action 텍스트 박스(640)들 및 path 텍스트 박스(650)들이 에서 배치된 위치에 나타낼 수 있다. 예를 들어, '.pic' 명령이 상기 명령 드롭다운 박스(620)에서 선택되면, 텍스트 박스들은 현재 프레임에서 검색되는 '.pic' 파일(140)이 속하는 action 텍스트 박스(640)들 및 path 텍스트 박스(650)들의 위치에 나타낼 수 있다. The
'Abs x' 및 'Abs y'라고 각각 적힌 텍스트 박스들(660, 670)은 게임 개발자로 하여금 인물이 상기 디스플레이(200) 상에 나타나는 절대적(absolute) 수평 및 수직 위치를 지정하는데, 360도 배경 이미지의 좌표를 검색할 수 있다. 상기 절대적 x 및 y 위치는 수동으로 입력되거나, 상기 파일 선택 박스(900) 및 에뮬레이터(920)가 절대적 x 및 y 위치를 설정하는데 사용될 수 있다. 예를 들어, 게임 개발자는 원하는 '.pic' 파일(140)을 찾을 때까지 파일 선택 박스(900)를 통해 브라우징할 수 있다. 상기 게임 개발자가 '.pic' 파일(140)을 선택하면, 상기 '.pic' 파일(140) 내 인물의 이미지가 에뮬레이터(920)에 나타난다. 상기 이미지의 절대적 x 및 y 좌표는 Abs x 및 Abs y 텍스트 박스들(660, 670)에 나타난다. 게임 개발자는 상기 이미지가 원하는 위치에 배치될 때까지 에뮬레이터(920) 내의 이미지를 이동시킬 수 있다. 그러면, 이 위치는 인물(260)이 제일 처음 등장하는 위치로서 설정될 수 있다.
또한 상기 Abs x 및 Abs y 텍스트 박스들(660, 670)들은 에뮬레이터(920)에 도시된 위성 접시(925)와 같이 이동하지 않는 대상들의 위치를 설정하는데 사용될 수 있다. 이와 같이 움직이지 않는 대상들은 상기 가상 플레이어(210)로부터 발사에 의해 파괴될 수 있다. The Abs x and Abs
상술한 바와 같이, 이미지의 절대적 x 및 y의 위치는 보통 '.act' 파일(150)의 프레임 0에서만 지정된다. 이후, delta x 및 delta y 명령어들은 이전 프레임에 대하여 현재 프레임이 이동해야 하는 픽셀의 수를 지정한다. delta x 및 delta y 값들은 텍스트 박스들(680, 690)에서 각각 지정될 수 있다. 상기 delta x 및 delta y 값들은 '.act' 파일(150)의 각 프레임별로 수동으로 입력될 수 있다. 대신에, 상기 delta x 및 delta y 값들이 쉽게 입력되도록 GUI(500)에 단축키(shortcut)를 사용할 수도 있다. 복제(duplicator) 버튼(700)은 상기 delta x 및 delta y 텍스트 박스들(680, 690) 가까이 위치한다. 복제 버튼(700)이 선택되면, 상기 복제 버튼(700)과 관련된 delta x 또는 delta y 텍스트 박스(680, 690)의 값이 '.act' 파일(150) 내 프레임별로 자동 반복된다. 이와 같은 방식으로 인물(260) 모든 'act' 파일(150)의 프레임에서 동일한 거리를 이동하도록 만들어질 수 있다. As mentioned above, the absolute x and y position of the image is usually specified only at
'Layer'라고 적힌 텍스트 박스(710)는 게임 개발자로 하여금 현재 프레임에 인물이 등장하는 층을 지정하도록 한다. 상기 게임 개발자가 '.act' 파일(150)의 모든 프레임에 동일한 층이 적용되도록 지정하기 위해 복제 버튼(700)은 layer 텍스트 박스(710)와 연결된다. The
상기 게임 개발자는 'Scale'이라고 적힌 텍스트 박스(720)를 사용하여 현재 프레임에서 인물(260)의 관련 크기를 지정할 수 있다. scale은 보통 디폴트(default) 값인 백분율로 주어진다. 게임 개발자가 '.act' 파일(150)의 모든 프레임에서 상기 인물(260)이 동일한 크기를 가질 수 있도록 지정하기 위해 또 다른 복제 버튼(700)이 상기 scale 텍스트 박스(720)와 연결될 수 있다. The game developer may designate the size of the
일 실시예에서, scale이 조절될 때 적절한 확대 및 축소가 상기 층에 자동으로 이루어지도록 layer 텍스트 박스(710) 및 scale 텍스트 박스(720) 내의 데이터들은 서로 연관된다. 예를 들어, 게임 개발자가 배경을 향해 이동하는 모습을 생성하기 위해 프레임마다 인물(260)의 scale을 일정한 양만큼 줄이면, 상기 인물(260)이 속한 층은 프레임마다 비례 양만큼 자동으로 변경됨으로써 상기 인물(260)이 층들을 이동하여 연속적으로 배경에 가까이 접근하게 된다. In one embodiment, the data in
'Repeat'라고 적힌 텍스트 박스(730)는 reapeat 텍스트 박스(730)에 지정된 만큼의 틱동안 현재 프레임을 읽어들여 반복적으로 실행되도록 하는 단축키를 제공한다. 이는 움직이지 않는 이미지가 디스플레이(200)에서 일시적으로 나타나는 간단한 방법을 제공한다. 예를 들어, 게임 개발자가 대략 10초(약 150 틱)동안 대상을 나타내길 원하면, '.pic' 명령은 명령 드롭다운 박스(620)에 배치될 수 있고, 원하는 대상의 이미지를 포함하는 '.pic' 명령은 action 텍스트 박스(640)에 배치될 수 있으며, '.act' 파일(150)의 값은 repeat 텍스트 박스(730)에 배치될 수 있다. The
'Multi'라고 적힌 체크 박스(740)는 상기 'multi' 명령어가 현재 프레임에 적용되는지의 여부를 지정하는데 사용될 수 있다. 상기 multi 박스(740)가 체크되면, 상술한 바와 같이, 현재 및 다음 프레임을 동일한 틱에서 읽어들여 실행한다. A
'Locate View'라고 적힌 버튼(750)은 상기 에뮬레이터(920)에서 디스플레이되는 시각을 현재 '.act' 파일(150)이 시작되는 장면으로 돌아오도록 한다. 게임 개발자가 '.act' 파일(150)의 다수의 프레임 상에서 상기 제작 툴(130)이 동작하도록 사용할 때, 상기 에뮬레이터(920)에 나타난 시각은 현재 프레임에 대한 GUI(500)의 데이터와 매치되도록 변경된다. 상기 게임 개발자가 locate view 버튼(750)을 누르면, 상기 에뮬레이터(920)는 '.act' 파일(150)에 의해 지정된 초기 장면으로 되돌아온다. The
'Insert' 버튼(760)은 새로운 프레임이 GUI(500)에서 현재 동작하는 프레임 이전(또는, 다른 실시예에서는 이후)에 삽입되도록 한다. 'Delete' 버튼(770)은 현재 프레임이 삭제되도록 한다. 'Chop' 버튼(780)은 현재 프레임 이후의 '.act' 파일(150)의 모든 프레임이 제거되도록 한다. An 'Insert'
'Append'라고 적힌 버튼(790)은 여러 개의 연속적이고 관련된 프레임에 대한 유사한 데이터를 상기 GUI(500)에 입력하는 단축키를 제공한다. 상세하게 append 버튼(790)은 frame 텍스트 박스(610)에서 프레임 번호가 하나씩 증가되도록 하고, '.pic' 파일(140)들의 폴더에서 다음 '.pic' 파일명이 action 텍스트 박스(640)에 삽입되도록 한다. 상기 GUI(500)에서 다른 모든 정보는 하나의 프레임에 다음 프레임에서 증가되는 것과 같게 된다. 예를 들어 서로 다른 동작 움직임 단계를 포함하는 각 'pic' 파일(140)에 사용되는 움직이는 동작을 생성할 때 이 특징이 유용하다. A
일례로, 상기 append 버튼(790)은 상기한 바와 같이 달리는 인물(260)을 묘사하는 '.act' 파일(150)을 쉽게 생성하는데 사용될 수 있다. 각각의 달리는 포즈를 묘사하는 '.pic' 파일(140)들은 첫 번째 달리는 포즈를 포함하는 제 1 '.pic' 파일(140), 두 번째 달리는 포즈를 포함하는 제 2 '.pic' 파일(140) 등을 가진 폴더에 배열될 수 있다. 게임 개발자는 상기 명령 드롭다운 박스(620)를 '.pic' 명령으로 설정하고, frame 텍스트 박스(610)의 프레임 번호를 1로 설정하며, action 텍스트 박스(640)에서 제 1 '.pic' 파일(140)의 이름을 배치할 수 있다. 이는 현재 '.act' 파일(150)의 프레임 1이 제 1 '.pic' 파일(140)의 이미지를 디스플레이하도록 할 수 있다. In one example, the
게임 개발자가 상기 append 버튼(790)을 누르면, frame 텍스트 박스(610)의 프레임 번호가 2로 변경되며, 제 2 '.pic' 파일(140)의 이름이 action 텍스트 박스(640)에 배치된다. 상기 append 버튼을 누르기 이전의 GUI(500)에 있는 다른 정보들은 동일한 상태에 있게 된다. 이는 현재 '.act' 파일(150)의 프레임 2가 제 2 '.pic' 파일(140)의 이미지를 디스플레이하도록 한다. 상기 게임 개발자는 달리는 포즈들을 포함하는 모든 '.pic' 파일(140)들이 기술될 때까지 상기 append 버 튼(790)을 계속 누를 수가 있다. 상기 append 버튼(790)을 사용하면 수동으로 프레임 번호를 변경하고 '.pic' 파일(140)의 이름을 변경하는 것보다 효과적임을 알 수 있다. 이는 프로그램에 경험이 없는 사람도 게임에 동작을 추가하기 위한 쉽고 빠른 방법을 제공할 수 있다. When the game developer presses the
한 세트의 버튼들(800, 810, 820, 830)은 현재 '.act' 파일(150)의 프레임들을 진행시키기 위해 사용될 수 있다. 제 1 버튼(800)은 현재 '.act' 파일(150)의 제 1 프레임에 GUI(500)를 적용한다. 이전 프레임 버튼(810)은 현재 '.act' 파일(150)의 이전 프레임에 GUI(500)를 적용한다. 다음 프레임 버튼(820)은 현재 '.act' 파일(150)의 다음 프레임에 GUI(500)를 적용한다. 마지막 프레임 버튼(830)은 현재 '.act' 파일(150)의 마지막 프레임에 GUI(500)를 적용한다. A set of
'Stop'이라 적힌 버튼(840)은 상기 에뮬레이터(920)로부터 배경 이미지를 제외한 모든 이미지를 제거(clear)한다. 각각 'Commmand1', 'Command2' 및 'Command3'라고 적힌 버튼들(850, 860, 870)은 새로운 게임을 시작하거나 게임의 새로운 레벨에 도달했을 때 유효한 파라미터들을 설정하는데 사용된다. 상기 바람직한 실시예에서, 360-3D 게임은 3가지 실행 레벨을 가지는데, 플레이어가 제 1 및 제 2 레벨을 성공적으로 완료했을 때에만 각각 제 2 및 제 3 레벨로 이동할 수 있다. 다른 실시예들에서는 서로 다른 레벨의 수를 가질 수 있다. 일 실시예에서, 제1, 제 2 및 제 3 레벨을 시작하는 '.act' 파일(150)들은 각각 command1.act, command2.act 및 command3.act로 불릴 수 있다. 일 실시예에서, command.act 파일들은 게임의 레벨이 시작될 때 발생하는 액션의 '.act' 파일(150) 세트를 시작하는 명령들만을 포함한다. 상기 command1 버튼(850)을 선택하면, 게임 개발자는 command1.act 파일과 연관된 데이터의 입력을 위한 GUI(500)을 적용하게 된다. 또한 상기 command2 및 command3 버튼들(860, 870)을 선택하면, 게임 개발자는 command2.act 및 command3.act 파일들과 연관된 데이터의 입력을 위한 GUI(500)를 각각 적용하게 된다. A
일련의 버튼들(880)은 상기 에뮬레이터에서 인물(260)의 위치 및 크기를 지정하는데 사용될 수 있다. 좌우 버튼들(881, 882)은 상기 에뮬레이터(920)를 통해 인물(260)을 수평으로 이동시키고, 상하 버튼들(883, 884)은 인물(260)을 수직으로 이동시킨다. 확대 및 축소 버튼들(885, 886)은 인물(260)의 크기를 증가시키거나 감소시킨다. 이러한 버튼들(880)은 Abs x 텍스트 박스(660), Abs y 텍스트 박스(670) 및 scale 텍스트 박스(720) 대신에 인물의 초기 크기 및 위치를 빠르게 설정하는데 사용될 수 있다. A series of
상기 제작 툴(130)은 '.pic' 파일(140) 포맷, '.act' 파일(50)의 생성 및 다른 게임 기술 동작들에 배경 파라미터 및 character.tga 파일들을 포함하는 background.bmp 파일을 제공한다. 상기 제작 툴(130)은 보통 표준 데스크탑 컴퓨터(17) 상에 인스톨되며, 데이터는 표준 키보드 및 마우스를 통해 상기 GUI(500)로 입력될 수 있다. 상기 표준 키보드는 GUI(500)에서 상기 버튼들과 데이터 입력 도구들과 동일하거나 관련된 키들을 가진다. 상기 표준 키보드 상의 키들은 게임 개발자를 위한 기억을 돕기 위해 여러 색으로 코드화되어 있다. append 기능은 '.pic' 및 프레임 데이터와 관련이 있으므로 'append' 키는 두 가지 색을 가질 수 있다. 상기 개발 툴(130)에 익숙한 게임 개발자는 이러한 표준 키보드가 상기 GUI(500)의 제어를 가리키거나 클릭하기 위한 마우스를 사용하는 것보다 빠르다는 것을 알 수 있다. The
상기 제작 툴(130)은 보통 컴퓨터(170) 상에 인스톨되므로 상기 에뮬레이터(920)는 일반적으로 컴퓨터(170)의 비디오 모니터에 나타나게 된다. 컴퓨터에 사용되는 비디오 포맷은 일반적으로 이동 전화와 같은 이동 전화에 의해 사용되는 포맷과는 다르다. 하기에서 매우 상세히 설명하게 될 변환 과정은 '.pic' 파일(140)의 이미지를 컴퓨터(170)의 비디오 디스플레이 시스템에서 읽어들일 수 있는 포맷으로 변환한다. 상기 변환은 데이터가 에뮬레이터(920)에 디스플레이되기 전에 일어나는 마지막 단계이며, 컬러가 이종(異種) 비디오 디스플레이 모드에서 부호화되는 방법의 변형에 관여한다. 이는 상기 제작 툴(130)을 통해 개발되는 360-3D 게임이 에뮬레이터(920)에 나타나는 것과 실질적으로 동일한 이동 장치(180) 상에 나타내도록 한다. The
상기 제작 툴(130)은 코딩 기술의 거의 없거나 아예 없는 게임 개발자가 360-3D 게임을 제작하도록 한다. 게임 개발자들은 게임에 나타나는 이미지를 단순히 선택한 다음 상기 제작 툴(130)을 사용하여 상기 엔진(190)을 통해 원하는 이미지를 다루는데 사용되는 '.act' 파일(150)들을 생성할 수 있다. 복잡한 게임 줄거리는 상기 '.act' 파일(150)들의 각 프레임에 위치한 명령들(commands)이나 명령어(instructions)들을 사용하여 생성될 수 있다. 프로그래밍 지식을 지닌 그래픽 아티스트 혼자서 비교적 짧은 시간 안에 하나의 360-3D 게임을 제작할 수 있다. 이 는 프로그래밍 작업을 위해 코딩하는 스태프들을 고용하고 아트 작업을 위해 그래픽 아티스트 스태프들을 고용하는 종래의 비디오 게임 개발 방법과는 대조적일 수 있다. 종래의 방법으로 비디오 게임을 제작하면 상당히 긴 시간과 많은 비용이 들어가게 된다. The
상기 제작 툴(130)은 360-3D 게임의 쉽고 빠른 테스트 및 수정(refinement)을 지원한다. 프로그래밍 언어 명령어 형태의 컴퓨터 소프트웨어 개발에 관여하는 일반적인 게임 개발 환경에서, 새로운 버전의 게임은 컴파일 및 링크가 필요하며, 게임 변경을 테스트하기 전에 실행 플랫폼으로 전달되는 실행가능한 이미지도 필요하다. 대조적으로, 360-3D 게임 변경은 상기 제작 툴(130)의 에뮬레이션 능력을 이용하여 바로 테스트할 수 있다. 게다가, 360-3D 게임은 상기 제작 툴(130)을 사용하여 완벽히 테스트할 수 있으며, 이동 플랫폼 또는 이동 장치상에서 테스트할 필요가 없다. The
360-3D 게임에 필요한 모든 '.act' 파일(150)들이 생성되면, 상기 게임을 위한 '.pic' 파일(140) 및 '.act' 파일(150)들은 컨테이너(160) 내에 위치할 수 있으며, 상기 컨테이너(160)는 이동 장치(180)로 로딩될 수 있다. 상기 이동 장치(180) 상에 인스톨된 런타임 엔진(190)은 상기 컨테이너(160)에서 파일들을 읽어들이며, '.act' 파일(150)들에서 명령들 및 명령어들을 실행할 수 있다. 좀 더 빠르고 효율적인 실행을 위해, 상기 런타임 엔진(19)은 이동 장치(180)의 운영 시스템에 내장(embedded)될 수 있다. 즉, 상기 바람직한 실시예에서 런타임 엔진(190)은 운영 시스템에 비 의존적인 외부 응용 프로그램이기보다는 상기 운영 시스템의 확장된 형태이다. 다른 실시예들에서, 상기 엔진(190)은 다른 방법으로 위치하게 된다. When all the '.act'
상기 런타임 엔진(190)의 동작은 운영 시스템의 타이밍 메커니즘에 의해 어느 정도 제어되거나 조정된다. 도 5에 도시된 바와 같이, 상기 런타임 엔진(190)은 동일한 틱 동안 다수의 '.act' 파일(150)의 프레임들을 읽어들여 실행할 수 있는데, 이는 다수의 프레임을 '동시에' 실행한다고 말할 수 있다. 약간 다른 버전의 엔진(190)은 내장되는 각 운영 시스템별로 제작될 수 있으나 실제로는 동일한 것으로 간주될 수 있다. The operation of the
일부 실시예들에서 엔진(190)이 다수의 파일 또는 구성요소들을 포함할 수 있지만, 상기 엔진(190)은 360-3D 게임을 실행하는데 필요한 실행가능 파일이다. 일단 상기 엔진(190)이 이동 장치(180)의 운영 시스템에 내장되면, 실행 파일 및 코드가 아닌 데이터 파일들만 포함하는 다른 컨테이너(160)를 단순히 로딩함으로써 이동 장치에 서로 다른 게임을 인스톨할 수 있다. 단일 실행가능 파일을 사용하여 다수의 다른 게임들을 실행하면, 이동 장치(180)용 응용 프로그램 개발 시 보통 수반되는 보장(certification) 과정을 단순화시킬 수 있다. 이동 장치(180) 개발업체들은 응용 프로그램에 바이러스가 잠복거나 충돌 또는 그 밖의 문제가 생기지 않도록 이 이동 장치(180)에 인스톨되는 게임 및 그 밖의 응용 프로그램이 테스트 및/또는 보장되도록 요구하고 있다. 각 게임이 실행가능 코드를 포함하는 이전의 기존 게임에서 이러한 테스트는 게임이 인스톨되는 모든 게임 및 플랫폼에서 이루어질 필요가 있었다. 일단 상기 엔진(190)이 특정 플랫폼에 대해 보장되면, 컨테이너(160)는 상기한 바와 같이 데이터만을 포함하므로 상기 컨테이너(160)는 바이러 스의 위협, 충돌 또는 다른 문제없이 플랫폼에 로딩될 수 있다. In some embodiments the
모든 게임, 이동 장치(180) 및 각각 고유한 게임으로 만드는 데이터 파일들을 갖는 다수의 컨테이너(160)들을 위해 360-3D 게임을 단일 실행가능 엔진으로 분리하면, 게임 개발자를 위한 게임 표준 과정을 단순화시킬 수 있다. 게임 개발자들은 서로 다른 플랫폼을 위한 다른 버전의 동일한 게임을 기록할 필요는 없다. 상기 제작 툴(130)을 통해 제작되는 어떤 컨테이너(160)도 런타임 엔진(190)이 인스톨된 어느 이동 장치(180)에 의해 읽어들일 수 있다. Separating 360-3D games into a single executable engine for all games,
상기 런타임 엔진(190)은 운영 시스템에 2가지 그래픽 기능만을 요구하는 비교적 작은 파일(보통 약 100 kbytes 이하)이다. 먼저, 상기 엔진(190)은 운영 시스템이 이동 장치(180)의 디스플레이 화면(200) 상의 각 픽셀을 위한 데이터를 포함하는 메모리 블록의 위치를 요구한다. 보통 화면(200)들은 각 픽셀별로 2 바이트의 데이터를 포함하는 메모리 버퍼를 사용한다. 상기 엔진(190)이 이 버퍼의 위치를 습득하면, 소정의 바이트를 가진 픽셀을 배치시킨 다음 운영 시스템으로 하여금 이 데이터를 상기 화면(200)에 전송하도록 명령한다. The
또한 '.act' 파일(150)들을 읽어들여 실행하고 그래픽 기능을 수행하기 위해서, 상기 런타임 엔진(190)은 여러 가지 다른 기능들을 수행한다. 상기 엔진(190)은 이동 장치(180)상의 키패드 또는 다른 입력 소스로부터 입력을 받아들여 처리하며, 층 단위로 분류하고 적당한 전후 순서로 디스플레이한다. 상기 엔진(190)은 현재 활성화된 서로 다른 버전의 인물(260)들의 트랙을 명명하고 유지하며, 가상 플레이어(210)에서 인물(260)들 및 이와 반대로의 성공적인 발사의 트랙을 등록하고 유지한다. 상기 엔진(190)은 화면(200)을 디스플레이하고, 레이더(280)를 작동시키며, 다인용 게임에서 파트너의 입력을 처리한다. (다인용 게임은 하기에서 상세히 설명한다. In addition, in order to read and execute the '.act'
상기 엔진(190)은 이전의 발사 등록 방법보다 더 큰 정확성을 제공하는 방법을 통해 상기 가상 플레이어(210)에서 인물(260)로의 성공적인 발사를 등록한다. 도 7에 도시된 바와 같이, 이동 장치(180)의 화면(200) 상의 하나의 대상(410)은 보통 사각 형태의 박스(410)일 일부로서 렌더링된다. 상기 대상(410)이 차지하는 박스의 일부가 보이게 되며, 배경이 보이도록 한다. 상기 박스(420)의 어느 부분이라도 발사에 의해 맞게 되면, 상기 박스(420)의 일부가 차지하는 대상(410)이 맞았는지의 여부에 관계없이 상기 대상(410)에 타격이 등록된다. 예를 들어, 인물(260)과 같은 대상(410) 내에 발사가 이루어지지 않더라도 상기 박스(420) 내에 떨어지게 되므로 위치 X(430)을 맞힌 발사는 상기 대상(410) 상의 타격으로 등록된다. 또한 다수의 대상(410)들이 화면(200)상에 나타나게 되면, 게임을 제어하는 코드는 모든 대상(410)들에게 어느 것이 타격된 박스(420)인지를 결정하도록 문의(query)할 필요가 있는데, 이는 비효율적이고 시간 소모적이다. The
도 8은 360-3D 게임에 타격이 등록되는 방법의 일례를 도시하고 있다. 도 8의 (a)에서 3개의 대상이 8X8 픽셀(445)을 갖는 이동 장치(180)의 비디오 화면(440)을 차지하고 있다. 정사각형 모양의 대상은 (1,1), (1,2), (2,1) 및 (2,2) 픽셀들을 차지한다. 삼각형 모양의 대상은 (4,3), (4,4), (4,5) 및 (5,4) 픽셀들을 차지한다. X자 모양의 대상은 (6,6), (6, 8), (7,7), (8,6) 및 (8,8) 픽셀들을 차 지한다. 상기 화면(440)상의 다른 픽셀(445)들은 배경 이미지의 일부로 간주된다. 8 shows an example of how a strike is registered in a 360-3D game. In FIG. 8A, three objects occupy the
일 실시예에서, 메모리 버퍼는 실제 화면(440)에서 각 픽셀(445)에 관련된 데이터를 포함한다. 도 8의 (b)에 도시된 바와 같이, 상기 메모리 버퍼는 실루엣 화면(450)으로 보일 수 있는데, 실루엣 화면(450)에서 각 데이터 위치(455)는 실제 화면(440)에서 하나의 픽셀(445)에 대응된다. 즉, 실제 화면(440)은 8열 및 8행의 픽셀(445)을 가지게 되므로, 상기 실루엣 화면(450)은 8ㅧ8의 데이터 위치(455)를 가진 것으로 간주할 수 있다. In one embodiment, the memory buffer includes data associated with each
하나의 대상이 실제 화면(440)에서 픽셀(445)들의 집합을 차지할 때마다, 상기 대상의 확인 정보는 실루엣 화면(450)의 해당 데이터 위치(455)에 저장된다. 일 실시예에서, 상기 대상은 공통의 '.act' 파일(150)로부터 생성되는 달리는 병사의 다수의 예들 중에서 하나의 활동일 수 있다. 예를 들어, 상기 정사각형 모양의 대상이 대상 번호 1로 확인되면, '1'은 상기 실루엣 화면(450)의 (1,1), (1,2), (2,1) 및 (2,2) 데이터 위치에 저장된다. 상기 삼각형 모양의 대상이 대상 번호 2로 확인되면, '2'는 상기 실루엣 화면(450)의 (4,3), (4,4), (4,5) 및 (5,4) 데이터 위치에 저장된다. 또한 상기 X자 모양의 대상이 대상번호 3으로 확인되면, '3'은 상기 실루엣 화면(450)의 (6,6), (6,8), (7,7), (8,6) 및 (8,8) 데이터 위치에 저장된다. '0'은 실제 화면(440)에서 배경 이미지의 존재를 표시하기 위해 실루엣 화면(450)의 나머지 모든 데이터 위치에 배치될 수 있다. 대상들이 실제 화면(440)으로 이동하면, 상기 실루엣 화면(450)도 이에 대응하는 방법으로 변경된다. 실제 화면(440)에 존재하는 대상들만이 상기 실루엣 화면(450)의 일부가 될 수 있다. Each time one object occupies a set of
실제 화면(440)에 발사가 이루어지면, 상기 런타임 엔진(190)은 발사가 이루어지는 순간에 십자형 커서(270)가 가리키는 실제 화면(440)의 픽셀(445)을 기록한다. 그런 다음, 상기 엔진(190)은 어떤 대상이 상기 픽셀(445)을 차지하는지를 판단하기 위해 타격된 픽셀(445)에 대응하는 데이터 위치(455)의 데이터를 검사한다. 타격된 실제 화면(440)의 픽셀(445)에 대응하는 실루엣 화면(450)의 데이터 위치(455)에 배경인 '0'이 존재하면, 상기 발사는 잘못된 발사로 기록되거나 비축분의 감소 이외에 다른 변화가 나타나지 않는다. 상기 데이터 위치(455)에 0이 아닌 수가 존재하면, 상기 엔진(190)은 상기 발사를 데이터 위치(455)에서 데이터에 의해 확인되는 대상에 타격으로 기록한다. When the launch is made on the
상술한 예에서, 십자형 커서(270)가 가상 플레이어(210)가 발사한 순간에 실제 화면(440)의 (4,4) 픽셀을 가리켰다면, (4,4) 픽셀에 발사가 기록된다. 상기 엔진(190)은 실루엣 화면(450)의 (4,4) 데이터 위치에서 데이터를 읽어들여 '2'를 발견하고 삼각형 모양의 대상인 대상 번호 '2'의 타격으로 발사를 등록한다. 예를 들어, 상기 실제 화면(440)의 (5,5) 픽셀이 맞았다면, 0이 아닌 수가 상기 (5,5) 픽셀에 대응하는 (5,5) 데이터 위치를 차지하지 않았기 때문에 상기 발사는 잘못된 것으로 등록될 것이다. In the above example, if the
상기 대상이 차지하는 박스의 크기와 모양보다 대상의 실제 크기와 모양에 의해 타격이 결정되므로, 타격을 등록하는 이러한 방법은 기존의 방법들보다 더 큰 정확도를 제공한다. 예를 들어, 도 8의 (a)의 X자 모양의 대상은 (6,6), (6,7), (6,8), (7,6), (7,7), (7,8), (8,6), (8,7) 및 (8,8) 픽셀들에 의해 경계가 이루어 지는 박스를 차지할 수 있다. 이전 방법들에서, 이들 픽셀들은 배경 이미지의 일부이므로 이러한 발사는 타격으로 기록되지 않는다. 또한 상기 엔진(19)은 실루엣 화면(450)을 참조하여 타격된 대상을 즉시 판단할 수 있으므로 타격을 등록하는 현재의 방법은 이전 방법들보다 훨씬 빠를 수 있다. 따라서 타격이 이루어진 픽셀인지의 여부를 판단하기 위해 활성화된 모든 대상들을 문의(query)할 필요가 없다. 또한 관련된 액션을 갖는 픽셀에서 1, 2, 3과 같은 수를 연결함으로써 상기 엔진(190)은 타격을 적절한 액션으로 재빨리 등록할 수 있다. 하나의 액션은 상기 엔진(190)이 현재 실행되고 여러 별개의 액션들이 공통된 '.act' 파일(150)로부터 생성되는 '.act' 파일(150)의 일례임을 상기한다. Since the blow is determined by the actual size and shape of the object rather than the size and shape of the box occupied by the object, this method of registering the hit provides greater accuracy than existing methods. For example, the X-shaped object in FIG. 8 (a) is (6,6), (6,7), (6,8), (7,6), (7,7), (7, It can occupy a box bounded by 8), (8,6), (8,7) and (8,8) pixels. In previous methods, these pixels are part of the background image so this shot is not recorded as a strike. In addition, since the engine 19 may immediately determine the hit target with reference to the
일반적으로 상기 런타임 엔진(190)은 이동 장치(180)가 제조업체로부터 출시되기 전에 상기 이동 장치(180)의 운영 시스템에 미리 컴파일된다. 이동 장치(180)의 제조업체들은 보통 경쟁 업체가 상기 장치(180)들의 운영 시스템에 접속하도록 허락하지 않는다. 이런 이유로 런타임 엔진(190)을 제작하는 기업은 경쟁 업체의 운영 시스템이 아닌 자신의 장치(180)의 운영 시스템에만 상기 엔진(190)을 내장하게 된다. 따라서 360-3D 게임은 보통 상기 엔진을 제조하는 업체에 의해 제조되는 장치(180)들 상에서만 상술한 방법으로 실행된다. 그러나 경쟁 업체의 장치(180) 상에서 360-3D 게임이 실행될 수 있는 다른 방법들이 존재한다. In general, the
일 실시예에서, 상기 런타임 엔진(190)의 버전은 자바(Java) 런타임 환경에서 내장될 수 있으며, 변형된 자바 버전은 경쟁 업체의 장치(180)에 인스톨될 수 있다. 360-3D 게임용 'pic' 파일(140) 및 '.act' 파일(150)들을 포함하는 컨테이 너(160)들은 상술한 방법으로 장치(180) 상에 로딩되며, 상기 컨테이너(160)들은 자바 기반의 엔진(190)에 의해 읽어들일 수 있다. 상기 엔진(190)은 운영 시스템과 통신하기 전에 소프트웨어의 여러 층을 통해 통신해야 하므로, 상기 360-3D 게임의 실행은 이러한 배치하에서 느려질 수 있다. 그러나 360-3D 게임 개발 시스템 및 방법의 다른 장점들이 이용될 것이다. 즉, 일단 다양한 운영 시스템 및/또는 장치(180)들 각각에 대해 내장된 런타임 엔진(190)을 지닌 변형된 자바 버전이 보장되면, 이후 컨테이너(160)들은 테스트할 필요없이 장치(180)에 로딩된다. 또한 게임 개발자는 게임을 실행하는 엔진(190)의 유형을 고려하지 않고 상술한 방법으로 360-3D 게임을 제작할 수 있다. In one embodiment, the version of the
또 다른 실시예에서, 퀄컴(Qualcomm)사에 의해 제작된 Brew(Binary Runtime Environment for Wireless)은 유사한 방법으로 사용될 수 있다. 즉, Brew가 인스톨되는 장치(180)의 운영 시스템을 가지고 Brew와 통신할 수 있는 상기 런타임 엔진(190)의 버전을 제작할 수 있다. 이러한 방법으로 실행하는 360-3D 게임은 운영 시스템에 직접 내장되는 엔진(190)에 의해 실행되는 게임보다 더 느리게 동작할 수도 있지만, 상기 360-3D 게임 개발 방법 및 시스템의 장점들은 남아있게 된다. 360-3D 게임들이 이러한 운영 시스템들에 내장된 런타임 엔진(190)을 구비하지 않는 이동 장치(180)에서 실행될 수 있는 방법들이 당업계에 알려져 있다. In another embodiment, Binary Runtime Environment for Wireless (Brew), manufactured by Qualcomm, may be used in a similar manner. That is, a version of the
또한 자바, Brew 및 유사한 제품들은 360-3D 게임을 배포하기 위한 수단으로서 사용될 수 있다. 예를 들어, 컨테이너 파일(160)은 자바 래퍼(Java wrapper)에 제공되어 상기 컨테이너(160)가 자바와 호환되는 인터페이스를 구비할 수 있다. 자 바 래퍼(Java-wrapped) 컨테이너(160)는 자바 내장(Java-embedded) 엔진(190)을 구비한 장치상에 인스톨될 수 있고, 상기한 바와 같이 본래의 컨테이너(160) 및 엔진(190)을 위해 읽어들여 실행될 수 있다. 자바에서 상기 엔진(190)을 래핑(wrapping)하는 것은 게임이 다운로드될 수 있는 웹 사이트와 같이 360-3D 게임이 다른 자바 기반의 게임이 배포되는 기존의 분배 채널(distribution channel)을 통해 배포되도록 한다. 웹 사이트를 브라우징하는 사용자에게 상기 360-3D 게임은 기존 시스템에 다운로드할 수 있는 표준 자바 기반의 게임으로 나타날 것이다. Java, Brew and similar products can also be used as a means to distribute 360-3D games. For example, the
상술한 바와 같이, 상기 화면(200)상에 디스플레이되는 이미지들은 '.pic' 파일(140)로 불리는 파일들에 저장된다. 상기 '.pic' 파일(140)들의 이미지들은 360-3D 게임에서 인물(260) 및 다른 대상들을 위해 디스플레이될 필요가 있는 모든 포즈의 사전 랜더링된 이미지들이다. 당업계에 공지된 바와 같이, 비디오 게임에서 고품질의 그래픽을 제작하기 위해 두 가지 일반적인 방법이 사용될 수 있는데, 이들은 사전 렌더링(pre-rendering) 방법과 다각형(polygon) 및 텍스처(texture) 방법이다. 상기 다각형 및 텍스처 방법에서, 대상은 텍스처화(textured) 및 착색된(colored) 표면으로 덮여진 다각형의 골격구조(framework) 또는 그물망(mesh)로 묘사된다. 게임이 진행되는 동안 비디오 화면상에 이동하는 대상이 생성되면, 알고리즘이 다각형의 그물망이 모양을 변화하는 방법을 계산한 다음, 텍스처화된 표면이 원하는 동작의 모습을 생성하기 위해 다각형의 그물망 위에 펼쳐진다. 이러한 과정은 대상 이미지 렌더링이라고 불리며, 알고리즘에 의해 빠르게 이루어진다. As described above, the images displayed on the
사전 렌더링을 통해 게임 중 대상이 선택하는 모든 가능한 포즈의 이미지는 게임을 위한 개발 과정 동안 생성되어 저장된다. 게임이 실행되고 생성된 이미지가 이동함에 따라, 적절한 이미지들이 메모리에서 검색되고, 원하는 동작의 모습을 생성하기 위해 적절한 시간 및 위치에 디스플레이된다. With pre-rendering, images of all possible poses that the subject selects during the game are generated and stored during development for the game. As the game runs and the generated images move, the appropriate images are retrieved from memory and displayed at the appropriate time and location to create the look of the desired action.
각각의 방법은 장점과 단점을 가지고 있음을 알 수 있다. 상기 다각형 및 텍스처 방법에서는, 이미지들이 메모리에 저장되는 것보다 빠르게 생성되므로 큰 용량의 메모리가 필요하지 않다. 그러나 이 방법에 사용되는 알고리즘은 컴퓨터의 사용에 민감하고, 상당한 처리 능력이 제 모습의 동작을 생성하도록 충분히 빠르게 알고리즘을 실행하는데 필요하다. 또한 상기 다각형 및 텍스처 방법에는 그래픽 가속기들이 필요하다. 이미지들이 빠르게 생성되는 것보다 메모리로부터 재호출되므로 사전 렌더링을 통한 상기 처리 능력은 그다지 클 필요는 없다. 그러나 모든 가능한 포즈를 나타내는데 사용되는 수많은 사전 렌더링된 이미지들을 저장하기 위해 대상을 선택할 때보다 더 큰 메모리가 필요하게 된다. It can be seen that each method has advantages and disadvantages. In the polygon and texture method, images are generated faster than they are stored in memory, so a large amount of memory is not needed. However, the algorithms used in this method are sensitive to the use of a computer, and a great deal of processing power is needed to run the algorithm fast enough to produce the behavior in place. The polygon and texture methods also require graphics accelerators. Since the images are recalled from memory rather than being generated quickly, the processing power through pre-rendering need not be very large. However, more memory is required than when selecting a target to store the numerous pre-rendered images used to represent all possible poses.
이동 장치상에 실행되는 고품질의 그래픽을 지닌 기존 게임에 대해서 양쪽의 경우에서, 상기 이동 장치들은 보통 고속의 프로세서, 그래픽 가속기 및/또는 큰 메모리 용량을 가진 게임 장치를 특별히 설계할 필요가 있었다. 이러한 장치들은 게임 특징보다 통신(telephony) 또는 가입자(organizer) 특징에 주로 관심이 있는 소비자에게는 엄청나게 비쌀 것이다. In both cases, for existing games with high quality graphics running on a mobile device, the mobile devices usually needed to specifically design game devices with high speed processors, graphics accelerators and / or large memory capacities. Such devices would be incredibly expensive for consumers who are primarily interested in telephony or subscriber features rather than gaming features.
본 시스템 및 방법의 일 실시예에서, 제한된 세트의 원하는 동작을 묘사하는데 필요한 이미지들만이 사전 렌더링되는 사전 렌더링 방법의 변경된 버전이 사용된다. 게임 개발자는 게임 중에 인물이 취하는 적은 수의 동작을 선택한 다음, 이 러한 동작을 현실적으로 묘사하는데 필요한 이미지만을 사전 렌더링할 수 있다.상기 선택된 이미지들은 이들의 크기를 줄이기 위한 표준 데이터 압축 루틴에 의해 압축된다. 이러한 사전 렌더링 및 제한된 수의 이미지 압축은 대부분의 이동 장치(180)들에 적합하고 고품질의 그래픽을 제공할 수 있을 만큼의 작은 그래픽 파일을 생성한다. 보통 상기 다각형 및 텍스처 방법에 필요한 처리 능력 및 그래픽 가속기와 수많은 이미지를 서전 렌더링하기 위한 큰 메모리 용량이 제거된다. In one embodiment of the present systems and methods, a modified version of the pre-rendering method is used in which only the images necessary to depict a limited set of desired behaviors are pre-rendered. The game developer can select a small number of actions taken by the person during the game, and then pre-render only the images needed to realistically depict these actions. The selected images are compressed by standard data compression routines to reduce their size. . This pre-rendering and limited number of image compression produce small graphics files that are suitable for most
이동 장치(180)상의 작은 크기의 디스플레이(200)는 이러한 사전 렌더링 기술을 실제 응용가능하도록 만들어 준다. 상기 이동 장치(180)의 디스플레이(200) 상에 나타나는 이미지들은 사용되는 픽셀의 수의 측면에서 작기 때문에, 고품질의 압축 이미지들을 갖는데 비교적 작은 용량의 메모리가 필요하게 된다. 이와 같이 작고 고품질의 이미지 수는 대부분의 표준 이동 장치(180)들의 메모리 용량에 적합하다. 일반적인 컴퓨터 모니터와 같이 더 큰 화면상에 더 큰 크기로 디스플레이되는 더 작은 용량의 이미지들은 상당한 저장 용량을 소비하게 된다. 수많은 이러한 고품질의 이미지들을 저장하려면 더 큰 메모리 용량이 필요하지만, 최신 데스크톱 컴퓨터는 충분한 저장 능력을 지니는 경향이 있다. 후술되는 바와 같이, 360-3D 게임들은 이동 장치(180)의 디스플레이(200)와 같은 크기로 컴퓨터 화면상에 나타나는 에뮬레이터를 사용하여 컴퓨터에 디스플레이될 수 있다. The
보통 게임 개발자가 True Space, Maya, LightWave 또는 3DS Studio와 같은 표준 그래픽 처리 프로그램(110)을 사용하여 적절한 이미지 세트를 생성하고 들여와서 편집함으로써 '.pic' 파일(140)들을 생성하는 과정이 시작된다. 상기 게임 개 발자는, 예를 들어 '.tga' 파일당 하나의 이미지를 갖는 '.tga' 포맷의 일련의 그래픽 파일(120)들로서 이미지들을 저장한다. '.tga' 파일들은 배경 이미지가 전경 이미지의 투명한 부분을 통해 디스플레이되도록 하는 투명성을 지원하므로 상기 '.tga' 포맷의 사용은 고품질의 그래픽을 제공한다. 또한 '.tga' 파일들은 대상의 가장자리가 매끄럽게 렌더링되도록 하는 특성인 앤티 알리아싱(anti-aliasing)을 지원한다. 이러한 특성들은 현실적인 모습의 이미지를 제공하는 반면에, '.tga' 포맷의 단점은 '.tga' 파일이 상당히 크다는데 있다. 예를 들어, 단일 화면은 7 Mbytes의 메모리를 소비한다. The process of creating '.pic' files 140 begins by a game developer usually creating, importing and editing an appropriate set of images using a standard
일 실시예에서, 배경 전경(background panorama)은 '.bmp' 파일로 정의한다. 배경의 정의가 불투명하기 때문에, 즉 배경 뒤에서 볼 수 없으므로 상기 배경 '.bmp' 파일은 불투명한 정보를 포함하지 않는다. 상기 배경 전경은 360도 시야를 제공하기 위해 말단에서 만나는 계속적인 시야를 포함한다. 일 실시예에서, 상기 배경 전경은 12개의 수평 범위를 갖는 디스플레이 화면을 포함할 수 있다. 또한 배경의 한 점을 더욱 쉽게 주사하도록 상기 배경 전경의 제 1 말단에서 디스플레이되는 제 1 화면은 상기 배경 전경의 제 2 말단에서 디스플레이되는 제 2 화면으로 복제된다. 예를 들어, 임의의 배경 화면의 위치는 가장 좌측과 우측의 x 및 y 좌표로 확인할 수 있다. 이미지 돌림 분할 포인트(image wrap-around dividing point)로 인해 상기 '.bmp' 파일의 접촉 부분으로부터 전제적으로 읽어들임으로써 상기 전경의 시작 부분과 겹치는 화면의 위치에서 시작하는 화면을 디스플레이하는 것이 '.bmp' 파일의 말단으로부터 제 1 부분을 읽어들이고 '.bmp' 파일의 시작 부분으로 부터 읽어들인 제 2 부분과 겹쳐 잇는 것보다 더 쉽다. 이러한 문제점과 상기 문제점을 해결하기 위해 이러한 방법을 사용하는 것이 당업계에 알려져 있다. In one embodiment, the background panorama is defined as a '.bmp' file. The background '.bmp' file does not contain opaque information because the definition of the background is opaque, ie it cannot be seen behind the background. The background foreground includes a continuous field of view that meets at the distal end to provide a 360 degree field of view. In one embodiment, the background foreground may include a display screen having 12 horizontal ranges. Also, the first screen displayed at the first end of the background foreground is duplicated to the second screen displayed at the second end of the background foreground to more easily scan a point of the background. For example, the position of an arbitrary background screen may be identified by x and y coordinates of the left and right sides. Because of the image wrap-around dividing point, it is prerequisite to read from the contact portion of the '.bmp' file to display a screen starting at the position of the screen overlapping the beginning of the foreground. It is easier than reading the first part from the end of the file and overwriting the second part from the beginning of the '.bmp' file. It is known in the art to use this method and to solve this problem.
360-3D 게임에 사용되는 그래픽 파일의 크기는 여러 가지 방법으로 줄일 수 있다. 예를 들어, 실행 길이 부호화(run length encoding)로 알려진 압축 알고리즘은 '.tga' 파일을 '.pic' 파일(140)로 변환하는데 사용된다. 각각의 투명한 픽셀이 아닌 투명한 이미지의 연속적인 픽셀의 수를 지정함으로써 상기 실행 길이 부호화 과정은 파일 크기를 줄인다. '.tga' 파일에서 일반적인 이미지의 대부분이 투명하므로, 이미지에서 개별적인 픽셀의 투명 또는 불투명을 지정하는 것보다 이 방법을 이용함으로써 파일 크기를 상당히 줄일 수 있다. 사전 렌더링된 이미지의 실행 길이 부호화를 통해 10:1의 압축비로 '.tga' 파일을 '.pic' 파일(140)로 변환할 수 있다. 실행 길이 부호화를 통한 '.tga' 파일을 '.pic' 파일(140)로 변환하는 것은 '.tga' 그래픽 파일(120)을 상기 제작 툴(130)로 들여오는 과정 중에 발생하게 된다. 그래픽 프로그램(110)을 사용하여 원하는 '.tga' 파일(120)들을 생성한 후, 게임 개발자는 제작 툴(130)에서 버튼, 메뉴 항목 또는 유사한 도구를 선택하여 들여오기(importing) 및 변환(conversion)을 초기화할 수 있다. The size of graphics files used in 360-3D games can be reduced in several ways. For example, a compression algorithm known as run length encoding is used to convert a '.tga' file into a '.pic'
또한 '.tga' 파일(120)에서 각 픽셀의 색은 보통 총 32 비트에 대해 8비트의 투명도를 가지고 24 비트의 색으로 부호화된다. 이 중, 8 비트씩 적색 명암, 녹색 명암, 청색 명암 및 투명도 레벨을 표시하기 위해 사용된다. 상기 '.tga' 파일(120)은 사전 렌더링되고 16 비트 컬러 포맷인 사유(proprietary) '.pic' 파일(140)로 변환되는데, 대부분의 이동 장치들은 오직 16 비트 컬러 디스플레이를 구비하고 있으므로 반드시 필요하다. 16 비트 '.pic' 파일(140) 데이터 포맷에서, 5 비트는 적색 명암을, 6 비트는 녹색 명암을, 5 비트는 청색 명암을 위해 사용됨으로써 픽셀 당 8 비트씩 색 정보를 인코딩하는데 사용되는 비트의 수를 줄일 수 있다. In addition, the color of each pixel in the '.tga'
각 8 비트의 적색, 녹색 및 청색 포맷(8R-8G-8B)을 5 비트의 적색, 6 비트의 녹색 및 5 비트의 청색 포맷(5R-6G-5B)으로 변환함으로써 상기 8R-8G-8B 데이터에서 중요하지 않은 비트를 잘라버릴 수 있게 된다. 즉, 가장 덜 중요한 3 비트의 적색, 2 비트의 녹색 및 3비트의 청색 데이터들이 픽셀별로 삭제된다. '.tga' 이미지의 완전히 투명한 부분들은 상기 실행 길이 부호화 과정을 통해 '.pic' 이미지로 부호화된다. 번지는(feathered) 가장자리 또는 그 밖의 투명도 정보는 8비트 투명도 정보를 이용하여 유지된다. The 8R-8G-8B data by converting each 8-bit red, green, and blue format (8R-8G-8B) to 5-bit red, 6-bit green, and 5-bit blue format (5R-6G-5B). You can truncate unimportant bits in. That is, the least significant three bits of red, two bits of green and three bits of blue data are erased pixel by pixel. The completely transparent portions of the '.tga' image are encoded into the '.pic' image through the run length encoding process. Feathered edges or other transparency information is maintained using 8-bit transparency information.
상기 '.pic' 파일(140)은 3개의 분리된 형태의 데이터 패킷을 포함한다. 이들 3개의 분리된 형태 중 하나의 이미지 데이터를 갖게 되면 패킷 식별자(identifier)가 각 패킷을 확인한다. 이미지의 투명한 부분을 완전히 포함하는 제 1 형태는 부호화되어 0비트를 갖는다. 이미지의 불투명한 색 부분을 포함하는 제 2 형태는 상술한 바와 같이 변환되고 16비트를 사용하여 부호화된다. 주 이미지 주변의 번지는 가장자리 및/또는 상기 이미지의 부분적으로 투명한 부분들을 포함하는 제 3 형태는 상술한 바와 같이 변화되고 16비트를 사용하여 부호화된다. 게다가 투명도를 위한 별도의 8 비트를 합해서 투명도 정보를 포함하는 이미지에 대한 총 24비트가 이루어진다. The '.pic' file 140 includes three separate data packets. Having image data in one of these three separate forms, a packet identifier identifies each packet. The first form, which completely includes the transparent portion of the image, is encoded to have zero bits. The second form comprising the opaque color portion of the image is converted as described above and encoded using 16 bits. The third form, which includes the edges around the main image and / or partially transparent portions of the image, is changed as described above and encoded using 16 bits. In addition, a total of 24 bits for the image containing transparency information are added up by adding 8 separate bits for transparency.
실행 길이 부호화를 통해 '.tga' 파일(120)을 '.pic' 파일(140)로 압축하면, 디스플레이 화면(200)상에 상기 '.pic' 파일(140)이 렌더링될 때 고속의 압축해제(uncompression)이 가능해진다. 투명한 다수의 연속적 픽셀에 대해 상기 렌더링 과정을 뛰어넘을 수 있으므로, 실행 길이 부호화된 파일의 렌더링은 압축해제된 파일의 렌더링보다 실제로 빠르게 이루어질 수 있다. 상기 '.pic' 파일(140)들은 360-3D 게임이 시작되면 바로 압축해제되지 않는다. 게임 동안 디스플레이를 위한 '.pic' 파일(140)들을 런타임 엔진(190)이 검색함에 따라, 이미지들을 압축해제하고 거의 동시에 이들을 디스플레이한다. '.tga' (.jpg 또는 .gif) 이외의 파일 포맷이 원래 그래픽 파일(120)에 사용되었다면, 이와 같이 빠른 압축해제는 불가능하다. When the '.tga'
또 다른 변환 과정은 상기 제작 툴(130)의 에뮬레이터(920)의 일부에서 컴퓨터 화면상에 '.pic' 파일(140)들이 디스플레이될 때 발생한다. '.pic' 파일(140)의 이미지들은 상술한 바와 같이 16비트 포맷이나, 윈도우 기반이 컴퓨터와 같은 일반적인 데스크탑 컴퓨터는 8비트가 각 색에 사용되는 24비트 포맷의 이미지를 디스플레이한다. 그러므로, 윈도우 기반 컴퓨터는 '.pic' 파일(140)들을 바로 읽어들일 수 없다. 컴퓨터(170) 상에 상기 '.pic' 파일(140)들을 디스플레이하기 위해서, '.pic' 의 각 픽셀에서 각 색에 대해 가장 덜 중요한 비트들이 0으로 메워져 각각의 색에 대해 8 비트가 사용된다. 즉, 하나의 픽셀에 대해 데이터의 적색 부분에서 5비트는 왼쪽으로 3비트가 쉬프트되고, 녹색 부분의 6 비트는 왼쪽으로 2비트가 쉬프트되며, 청색 부분의 5비트는 왼쪽으로 3비트가 쉬프트된다. 그러면, 3개의 0이 5 적색 비트의 오른편에 더해지고, 2개의 0이 6 녹색 비트의 오른편에 더해지며, 3개의 0이 5 청색 비트의 오른편에 더해진다. '.pic' 파일(140)의 이미지들이 24 비트 포맷의 컴퓨터(170)상에 디스플레이된다 할지라도, 상기 이미지들은 16비트의 품질만 갖게 되어 게임 개발자는 이동 장치(180)상에 디스플레이될 때 갖는 동일한 모습을 상기 에뮬레이터(920)의 이미지에서 볼 수 있다. Another conversion process occurs when the '.pic' files 140 are displayed on the computer screen in part of the
윈도우 기반의 컴퓨터(170)는 이러한 방법으로 변환된 비디오 데이터를 읽어들여 상기 에뮬레이터(920)에 데이터를 적절히 디스플레이한다. 16비트의 사용할 수 없는 데이터가 각 경우에 디스플레이되므로, 상기 에뮬레이터에서 이미지의 품질은 이동 장치(180)의 화면(180)에 나타나는 품질과 실제로 동일하게 된다. The window-based
컴퓨터(170)의 비디오 모니터상에 이미지를 디스플레이하기 위해 공통적으로 사용되는 이중 버퍼링 과정 동안에 이러한 변환이 일어나게 된다. 당업계에 잘 알려져 있듯이, 이중 버퍼링에서, 이미지가 제 1 메모리 버퍼에 구성되는 반면 제 2 메모리 버퍼에 저장된 이미지는 모니터 또는 그 밖의 디스플레이 장치에 디스플레이된다. 상기 모니터 또는 디스플레이 장치가 다음으로 업데이트될 때, 상기 제 1 메모리 버퍼에 저장된 이미지는 상기 모니터 또는 디스플레이 장치상에 디스플레이되는 반면, 다음 이미지는 상기 제 2 메모리 버퍼에 구성된다. 이와 같은 방법으로 이미지를 버퍼링하는 것은 이미지가 모니터상에 직접 구성될 때 발생할 수 있는 점멸현상(flickering effect)을 방지한다. This conversion occurs during the double buffering process commonly used to display an image on the video monitor of the
일 실시예에서, 16비트 컬러 '.pic' 포맷에서 24비트 컬러 '.pic' 포맷으로의 변환이 구성된 이미지를 제 1 버퍼에서 제 2 버퍼로 전송하는 동안 일어나게 된 다. 즉, 오프 스크린(off-screen) 16비트 컬러 이미지는 상기 제 1 버퍼에 구성되고, 상기 이미지는 24비트 컬러 포맷으로 변화되며, 24비트 컬러 이미지는 상기 제 2 버퍼로 전송된다. 이는 이동 장치 기반의 포맷에서 컴퓨터 기반의 포맷으로의 변환이 상기 이미지가 디스플레이되기 전 마지막 순간에 일어나도록 한다. 상기 변환은 이미지를 포함하는 '.pic' 파일(140)이 아닌 '.pic' 기반의 이미지상에서만 이루어진다. 실제 '.pic' 파일(140)들이 컴퓨터(170)에 의해 읽힐 수 있는 포맷으로 변환될 필요가 없으므로, 상기 제작 툴(130)을 이용하는 게임 개발자는 360-3D 게임이 실행되는 동안 이동 장치(180)에 사용되는 동일한 '.pic' 파일(140)들을 가지고 작업할 수 있다. 이는 상기 제작 툴(130)에 생성된 게임이 에뮬레이터(920) 상에 나타나는 것과 거의 정확하게 이동 장치(180)의 화면(200)상에 나타나도록 한다. In one embodiment, the conversion from the 16-bit color '.pic' format to the 24-bit color '.pic' format occurs while transferring the configured image from the first buffer to the second buffer. That is, an off-screen 16-bit color image is configured in the first buffer, the image is converted into a 24-bit color format, and a 24-bit color image is transferred to the second buffer. This allows the conversion from mobile device based format to computer based format happening at the last moment before the image is displayed. The conversion is done only on the '.pic' based image, not the '.pic'
전술한 바와 같이, 이미 설명한 게임 액션의 유형에 더하여, 360-3D 게임이 다인용 모드에서 실행될 수 있다. 2명 이상의 플레이어는 서로 다른 이동 장치(180)상에서 동시에 같은 편이나 상대편으로서 플레이할 수 있다. 상기 이동 장치(180)들은 보통 WiFi, Bluetooth 또는 다른 무선 통신 기술을 경유하여 서로 통신할 수 있다. 실제로 같은 전경(220)이 모든 플레이어들에게 보일 수 있지만, 각 플레이어는 상기 전경(220)의 다른 부분을 보거나 상호작용할 수 있다. 제 1 플레이어의 관점에서, 제 2 플레이어는 상기 제 1 플레이어와 같은 위치에 놓이지만 상기 제 2 플레이어는 독립적으로 회전, 조준 및 슈팅을 하고 있는 것이 나타날 수 있다. As mentioned above, in addition to the types of game actions already described, 360-3D games may be executed in a multiplayer mode. Two or more players can play on the same
모든 유형의 장치(180) 상에 모든 런타임 엔진(190)들은 실제로 동일하며, 특정 게임용 모든 컨테이너(160)들도 실제로 동일하다. 그러므로 서로 다른 이동 장치(180) 상에서 같은 게임을 하는 두 명의 실제 플레이어들은 각 장치(180)의 엔진(190)이 초기 명령 '.act' 파일을 실행할 때 동일한 초기 화면(200)을 보게 된다. 일 실시예에서, 각 플레이어의 키입력(keystroke)들은 프레임이 읽히고 다른 플레이어의 장치(180)상에 엔진(190)에 의해 키입력이 처리될 때마다 무선으로 다른 플레이어의 장치(180)에 전송된다. 양쪽 엔진(190)들은 동일한 순간에 동일한 command.act 파일을 읽어들여 실행하고, 이후 키패드로부터 같은 입력을 수신하게 된다. 그러므로 동일한 '.act' 파일(150)은 양쪽 엔진(190)들에 의해 읽히고 실행된다. 이후에 'act' 파일(150)들이 생성되면, 같은 '.act' 파일(150)들이 양쪽 엔진(190)에 의해 동시에 생성된다. 이와 같이, 하나의 엔진(190)에 의해 읽히고 실행되는 모든 '.act' 파일(150)들은 상대 엔진(190)에 의해 같은 프레임으로 읽히고 실행된다. 따라서 상기 두 장치(180)상의 두 게임들은 프레임별로 동기화된다. All
상기 두 게임들의 동기화는 각 엔진(190)에 의해 생성되는 전경(220)에서 나타나는 전체 360도 장면은 실제로 양쪽 플레이어에게 동일하다는 것을 의미한다. 그러나 각 가상 플레이어(210)는 상기 전경(220) 내에서 상대 가상 플레이어와 독립적으로 회전하므로, 각 가상 플레이어(210)는 전경(220)의 다른 부분을 볼 수 있으며, 각 실제 플레이어가 각 장치(180)의 화면(200)상에서 보게 되는 디스플레이는 달라질 수 있다. Synchronization of the two games means that the entire 360 degree scene shown in the
또한 각 실제 플레이어는 독립적으로 자신의 십자형 커서(270)를 움직일 수 있다. 상기 십자형 커서(270)는 가상 플레이어(210)가 회전하는 동안 좌우를 중심으로 중앙에 위치하고, 각 가상 플레이어(210)는 독립적으로 회전할 수 있으므로, 가상 플레이어의 십자형 커서(270)의 상하 및 좌우 위치들은 상대 가상 플레이어의 십자형 커서(270)와는 독립적으로 설정될 수 있다. 따라서 각 가상 플레이어(210)는 상대방 가상 플레이어(210)와는 다른 인물(260)을 향해 발사할 수 있다. 각 가상 플레이어의 십자형 커서(270)는 양쪽 모두 360도 전경 상에 같은 위치를 바라볼 때 상대방의 화면(200)상에 나타나게 된다. 각 가상 플레이어의 십자형 커서(270)는 예를 들어 다른 색에 의해 서로 구별될 수 있다. Each real player can also independently move his or her
제 1 실제 플레이어가 발사하기 위해 자신의 장치(180)상의 키를 누르면, 상기 키입력(keystroke)이 제 2 실제 플레이어의 장치(180)로 전송된다. 상기 제 2 장치(180)의 엔진(190)은 제 1 장치(180)의 엔진(190)과 동일한 방법으로 키입력을 처리하게 된다. 따라서 상기 제 1 플레이어의 발사의 결과로 생성되는 별도의 '.act' 파일(150)들은 양쪽 장치(180)의 엔진(190)들에 동시에 생성된다. 그러면 각 엔진(190)은 상대방 엔진(190)과 동기화되어 상기 '.act' 파일(150)들을 처리하게 된다. 동일한 프레임에서 동시에 '.act' 파일(150)들을 시작하고, 동일한 속도로 상기 '.act' 파일(150)들을 읽어들이며, 양쪽 엔진(190)으로의 입력으로서 양쪽 장치(180)들의 키입력을 사용하면, 충분히 상기 엔진(190)들의 동기화를 이룰 수 있다. 상기 바람직한 실시예에서, 다인용 게임을 위한 두 엔진(190)들 사이에 동기화를 유지하기 위해 각 플레이어가 누르는 키 이외에 어떤 데이터도 상기 두 장치(180)들에 의해 교환될 필요는 없다. 또한 오직 4 바이트의 데이터만이 다인용 게임을 위한 장치(180)들과 키입력 정보를 통신할 필요가 있다. When the first real player presses a key on his
다인용 게임에 사용되는 모든 장치(180)상의 런타임 엔진(190)들이 동기화되어 동일한 '.act' 파일(150)들을 읽어들여 실행하는 동안 상기 각 엔진(190)에 의해 저장되는 데이터에서 일부 변화가 존재하게 된다. 각 장치(180)상의 엔진(190)은 '버디 모듈(buddy module)'이라 불리는 모듈을 사용하여 각 플레이어별로 플레이어 특정(player-specific) 데이터의 트랙을 유지할 수 있다. 예를 들어, 플레이어가 한 인물(260)을 죽이면, 상기 버디 모듈은 어느 플레이어가 점수를 기록하고 적절한 플레이어의 총 점수에 상기 점수를 더할지를 등록한다. 또한 상기 버디 모듈은 디스플레이 화면(200)에서 적절한 위치에 각 플레이어별로 상기 적절한 점수가 나타나도록 한다. 게다가, 상기 버디 모듈은 서로 다른 플레이어의 디스플레이(200)에 나타나는 다른 레이더(280)들의 트랙을 유지하고 적당히 디스플레이한다. The
서로 다른 두 장치(180)상의 엔진(190)들이 동일한 다인용 게임을 실행하는 일례로서, 제 1 플레이어는 게임의 다인용 모드를 선택할 수 있다. 상기 제 1 플레이어의 장치(180)와 통신하는 제 2 플레이어가 같은 게임의 다인용 모드를 선택하면, 양쪽 플레이어의 장치(180)들 중 하나의 동기화 구성요소는 상기 게임의 초기 commmand.act 파일의 제 1 프레임이 각 장치(180)상의 엔진(190)에 의해 동시에 읽히게 된다. 이후, 각 엔진(190)은 동일한 속도록 각 command.act 파일의 후속 프레임들을 읽어들이므로, 상기 command.act 파일의 같은 프레임들은 각 엔진(190)에 의해 동시에 읽히게 된다. As an example where the
제 1 실제 플레이어가 발사를 위해 자신의 장치(180)상의 키를 누르면, 키입력은 제 2 실제 플레이어의 장치(180)로 전송된다. 제 2 장치(180)상의 엔진(190)은 상기 제 1 장치(180)상의 엔진(190)과 같은 방법으로 상기 키입력을 처리한다. 예를 들어, 상기 제 1 플레이어의 발사가 제 1 인물(260)을 죽이면, 이를 제어하는 제 1 '.act' 파일(150a)은 제 2 인물(260)을 등장시키는 제 2 '.act' 파일(150b)을 생성할 수 있다. 상기 제 1 '.act' 파일(150a)이 양쪽 플레이어의 장치(180)상의 동일한 프레임에서 실행되고, 양쪽 장치(180)들은 그들의 키패드들로부터 거의 동시에 동일한 입력을 수신하게 되므로, 제 1 플레이어의 발사는 제 2 '.act' 파일(150b)이 양쪽 장치(180)상에서 동시에 실행되도록 한다. 그러면 양쪽 장치(180)상의 엔진(190)들은 프레임별로 동시에 상기 제 2 '.act' 파일(150b)을 읽어들여 실행한다. 어느 하나의 실제 플레이어에 의한 추가적인 키입력은 추가적인 '.act' 파일(150)이 실제로 양쪽 장치(180)상에 동시에 실행되도록 한다. 이러한 추가적인 '.act' 파일(150)들 및 이들이 생성하는 이후의 '.act' 파일(150)들은 양쪽 장치(180)상에 생성되며, 상기 게임을 통해서 동기화되어 양쪽 엔진(190)에 의해 읽어들여 실행하게 된다. When the first real player presses a key on his
상기 버디 모듈은 제 1 플레이어가 상기 제 1 인물(260)을 죽인 것에 대한 점수를 얻도록 한다. 각 플레이어가 점수를 얻음에 따라, 상기 버디 모듈은 적절한 플레이어의 총 점수에 상기 점수를 더한다. The buddy module allows a first player to score points for killing the
상기한 바와 같이, 런타임 엔진(190)은 보통 이동 장치(180)의 운영 시스템에 내장된다. 대신에, 상기 엔진(190)은 Java 또는 Brew와 같은 여러 층들을 통해 장치의 운영 시스템과 통신할 수도 있다. 서로 다른 플랫폼 하에서 동작하는 장치(180) 상에 인스톨된 엔진(190)들은 실제로 동일하기 때문에, 각각의 이동 장치(180)를 가진 플레이어들은 다인용 게임에 참가할 수 있다. As noted above, the
또한 이동 장치(180)를 가지 플레이어는 컴퓨터를 사용하는 플레이어와 다인용 게임이 참가할 수 있다. 상기 제작 툴(130)의 일부로서 상술한 에뮬레이터(920)는 보통 360-3D 게임의 제작에 사용된다. 그러나 상기 에뮬레이터(920)는 컴퓨터상의 360-3D 게임을 실행하는 독립형(stand-alone)의 구성요소가 되도록 변경될 수도 있다. 이러한 변경된 에뮬레이터(920)가 WiFi 인터페이스와 같은 이동 장치(180)와 통신하기 위해 필수적인 하드웨어를 구비한 컴퓨터상에 인스톨되면, 컴퓨터를 사용하는 플레이어와 이동 장치(180)를 지닌 플레이어는 다인용 게임에 참가할 수 있다. In addition, a player having the
이동 장치 기반의 16비트 컬러 포맷의 이미지가 윈도우 기반의 24비트 컬러 포맷의 이미지로 변환되도록 하는 상기 변환 과정은 실제로 동일한 '.pic' 파일(140) 및 '.act' 파일(150)들이 컴퓨터와 이동 장치(180) 모두에 의해 사용되고, 윈도의 기반의 컴퓨터가 이동 장치(180)에 구비된 다인용 게임에 참가하도록 한다. The conversion process for converting a mobile device-based 16-bit color format image to a Windows-based 24-bit color format actually involves the same '.pic' file 140 and '.act'
서로 다른 유형의 장치(180)상의 디스플레이 화면(200)들은 다른 크기를 가질 수 있다. 예를 들어, PDA 상의 디스플레이는 일반적으로 이동 전화상의 디스플레이보다 크다. 일 실시예에서, 360-3D 게임에 나타나는 이미지들은 그들이 나타나는 디스플레이(200)의 크기에 비례하여 확대 축소되지 않는다. 즉, 작은 디스플레이에 알맞은 장면이 큰 디스플레이에 맞도록 확대되지 않으며, 큰 디스플레이에 알 맞은 장면이 작은 디스플레이에 맞도록 축소되지 않는다. 특정 이미지는 PDA 또는 이동 전화상에 디스플레이되는지의 여부에 관계없이 픽셀의 측면에서 동일한 크기로 디스플레이된다. 서로 다른 디스플레이의 다른 크기를 보상하기 위해서, 작은 디스플레이에서는 보이지 않는 큰 디스플레이 상에 별도의 장면 부분이 보이게 된다. Display screens 200 on different types of
이를 도 9에서 도시하였는데, 작고 이동 전화 크기의 디스플레이(460)가 크고 PDA 크기의 디스플레이(470)에 겹쳐져 있다. 이동 전화상에서 게임을 하는 플레이어는 상기 박스(460) 내에서 보이는 장면의 부분만을 보게 될 것이다. PDA 상에서 동일 게임을 하고 동일 방향을 바라보는 플레이어는 상기 박스(460) 내에서 보이는 장면의 부분을 보는 동시에 별도의 장면 부분을 보게 될 것이다. 즉, PDA를 구비한 플레이어는 또한 화면의 상부에 있는 상측 수평 부분(480), 화면 하부에 있는 하측 수평 부분(485), 화면 왼쪽의 수직 부분(490) 및 화면 오른쪽의 수직 부분(495)도 보게 된다. 이러한 별도의 부분들은 상기 화면의 더 큰 시야를 만들어 내기 위해서 작은 디스플레이(460)의 장면과 한결같도록 맞춰진다. 다시 말하면, 상기 작은 디스플레이(460)는 큰 화면(470)의 중앙 부분을 도려낸 것과 같이 보일 수 있다. This is illustrated in FIG. 9, where a small, mobile phone
만일 PDA 및 이동 전화를 각각 구비한 플레이어들이 다인용 게임을 하고 있고 같은 방향을 향하고 있는 가상 플레이어(210)들을 가지고 있다면, 양쪽 플레이어들은 작은 영역(460)에서 동일한 장면을 보게 될 것이다. 예를 들어, 양쪽 플레이어들이 빌딩(240) 및 인물(260)을 보고 있고 이들 이미지는 양쪽 디스플레이 상 에서 같은 크기로 보일 것이다. 그러나, PDA를 구비한 플레이어는 상측 수평 부분(480)의 산(230) 및 하측 수평 부분(485)의 나무(250)도 보게 될 것이다. 상기 상측 및 하측 수평 부분들(480, 485)은 이동 전화를 구비한 플레이어의 디스플레이(460)에 나타나지 않으므로, 이러한 이미지들은 이동 전화를 구비한 플레이어에게는 보이지 않는다. If players with PDAs and mobile phones, respectively, are playing multiplayer games and have
일부 실시예들에서, 상기 상측 및 하측 수평 부분들(480, 485)은 단순히 배경 이미지의 확장 부분들이며, 어떠한 액션이나 활동도 이러한 부분들에서는 발생하지 않는다. 다른 실시예들에서, 상기 상측 및 하측 수평 부분들(480, 485)은 인물들이 진출입하고 액션이 일어날 수 있는 활성화된 영역이 될 수 있다. 또 다른 일부 실시예들에서, 상기 상측 수평 부분(480)은 하늘과 같은 동종의 범위의 연장 부분이 될 수 있고, 하측 수평 부분(485)은 사막과 같은 동종의 범위의 연장 부분이 될 수도 있다. In some embodiments, the upper and lower
일부 실시예에서, 상기 레이더(280) 및 점수(290)는 작은 디스플레이(460)를 구비한 장치(180) 또는 큰 디스플레이(470)를 구비한 장치(180)상에서 게임이 실행되는지의 여부에 관계없이 작은 디스플레이 영역(460)에 나타나게 된다. 다른 실시예들에서, 상기 레이더(280) 및 점수(290)는 작은 디스플레이(460)를 구비한 장치(180)상의 작은 디스플레이 영역(460)에 나타날 수 있고, 큰 디스플레이(470)를 구비한 장치(180)상의 상측 및 하측 수평 부분들(480, 485)에 나타날 수도 있다. In some embodiments, the
각각의 이동 장치(180)를 지닌 플레이어들이 다인용 게임에 참가하면, 제 1 플레이어는 제 2 플레이어가 사용하는 제 2 이동 장치(180)상의 디스플레이 화 면(460)보다 큰 디스플레이 화면(470)을 구비하는 제 1 장치(180)를 가질 수 있다. 만일 상기 제 1 장치(180)의 전체 디스플레이 영역(470)이 활성화되어 있으면, 상기 제 1 플레이어는 장점을 가질 수 있다, 즉, 상기 제 1 플레이어가 제 2 플레이어가 볼 수 있는 상측 및 하측 수평 부분들(480, 485)에서 인물(260)들을 향해 슈팅할 수 있으므로, 제 2 플레이어에게는 불가능한 포인트를 얻을 수 있다. When players with each
이러한 불균형을 제거하기 위해서, 상기 제 1 장치(180)의 화면(470)상의 십자형 커서(270)는 제 1 장치(180)의 화면(470)상의 상측 및 하측 수평 부분들(480, 485)로 진입하지 못하게 할 수 있다. 이러한 부분들은 계속 제 1 플레이어에게는 보이게 되며, 상기 제 1 플레이어는 상기 부분들로 진출입하는 인물(260)을 관찰할 수 있으나, 이러한 부분들에서 상기 인물(260)을 향해 슈팅을 할 수는 없다. 이와 같이, 두 플레이어가 얻을 수 있는 포인트는 같아질 수 있다. 좌측 및 우측 수직 부분들(490, 495)로 십자형 커서(270)가 이동하는 것을 막을 필요는 없다 왜냐하면 이러한 영역들은 좌측 또는 우측으로 회전함으로써 제 2 플레이어에게 보이기 때문이다. To remove this imbalance, the
이동 장치(180)의 화면에 보이는 레이더(280)는 일인용 또는 다인용 게임에서 실제 플레이어가 가상 플레이어(210)에 데미지를 가하는 인물(260)들의 위치를 판단하는데 도움을 준다. 도 10은 하나의 레이더(280)를 도시하고 있다. 상기 레이더(280)는 엔진(190) 내에 구성될 수 있고, 서로 다른 각 360-3D 게임에 대해서 동일하게 동작한다. 상기 레이더(280)는 동일한 크기의 일련의 섹터(940)들을 포함하는 수평의 막대(930) 형태를 가질 수 있다. 상기 막대(930)의 길이는 전경(220)의 환경에 대응되며, 상기 막대(930)의 각 섹터(940)는 전경(220)에서 비례적으로 크기가 나누어진 섹터와 대응된다. 상기 막대(930)의 최좌측 섹터(940a) 및 최우측 섹터(940x)는 서로 겹쳐 보일 수 있으며, 양쪽 모두 가상 플레이어(210) 뒤로 180도의 전경(220) 부분을 나타낼 수 있다. 따라서 상기 2차원의 막대(930)는 상기 전경(220) 내에 3차원 시각을 나타낸다. The
상기 레이더(280) 내의 섹터(940)들은 색을 변화시키거나 가상 플레이어(210)를 향해 슈팅하는 인물(260)의 위치를 가리키도록 밝게 보일 수 있다. (한 인물(260)을 현재 가상 플레이어(210)에게 데미지를 가할 수 없는 다른 인물(260)과 구별하기 위해서, 이하 활발하게 슈팅을 하는 인물(260)을 적(enemy)이라고 한다.) 예를 들어, 상기 막대(930) 중심 부근의 밝게 보이는 섹터(950a)는 가상 플레이어(210) 앞에 있는 적을 가리킬 수 있다. 상기 막대(930)의 우측 가장자리의 밝게 보이는 섹터(950b)는 가상 플레이어(210)의 오른쪽에 있지만 현재 볼 수 있는 화면(200) 영역에서 벗어난 적을 가리킬 수 있다. 상기 가상 플레이어(210)가 전경(220) 내에서 회전함에 따라, 상기 밝게 보이는 섹터(950)들은 적들의 위치와 관련된 가상 플레이어의 위치에서 일어나는 변화를 알려주기 위해 이동하게 된다. Sectors 940 in the
상기 막대(930)의 밝게 보이는 섹터(950)들은 적들이 가상 플레이어(210)에 가하는 데미지의 양을 알려주기 위해 색 또는 명암이 변화할 수 있다. 일 실시예에서, 적이 취하는 모든 발사는 가상 플레이어(210)를 맞춘다고 가정한다. 적이 가상 플레이어(210)를 향해 발사함에 따라, 가상 플레이어(210)의 데미지는 축적되고, 상기 데미지가 임계치에 다다르면 상기 가상 플레이어(210)는 죽으며 게임은 끝나 게 된다. 적이 쏘는 각각의 발사는 상기 적의 위치에 대응하는 밝게 보이는 섹터(950)가 어두워지거나 더욱 빨갛게 보이도록 한다. 실제 플레이어는 상기 레이더(280)의 밝게 보이는 섹터(950)들의 색 또는 명암을 관찰하여 가장 위협적인 적들의 위치를 알아낼 수 있다. The brightly visible sectors 950 of the
예를 들어, 밝게 보이는 섹터(950)가 어두워지면, 밝아지는 섹터(950)에 의해 표시되는 적보다 가상 플레이어(210)에 더 많은 데미지를 가했다는 것을 나타낸다. 더 큰 데미지를 가한 적이 상기 가상 플레이어(210)를 죽이기 쉽기 때문에, 다른 적들을 죽이기 전에 더 큰 데미지를 가한 적을 먼저 죽이는 것이 바람직하다. 일 실시예에서, 가상 플레이어(210)가 적을 죽이면, 상기 죽은 적은 더 이상 위협을 가할 수 없고 적으로부터 가상 플레이어(210)에 가해진 데미지 레벨이 0으로 리셋되었음을 알려주기 위해 적의 위치를 나타내는 상기 밝게 보이는 섹터(950)는 그 밝음을 잃게 된다. 따라서 상기 데미지는 오직 섹터별로 축적된다. For example, if a brightly visible sector 950 becomes dark, it indicates that more damage is done to the
일 실시예에서, 화살표(960) 또는 포인터들은 가장 위협적 적을 다루기 위해 가상 플레이어가 전환하는 방향을 실제 플레이어에게 알려주기 위해 막대(930)의 끝에 위치할 수 있다. 예를 들어, 가상 플레이어의 왼편에서 적들이 가한 데미지의 총량이 오른편에서 적들이 가한 데미지의 총량보다 크다면, 상기 막대(930)의 왼쪽 화살표(960)가 번쩍이면서 밝아지거나 상기 가상 플레이어(210)가 왼쪽에 초점을 맞추어함을 알리는 다른 표시를 부여할 수 있다. In one embodiment,
상기 레이더(280)의 기능은 런타임 엔진(190)에 의해 제어된다. 적이 상기 가상 플레이어(210)를 향해 발사하면, 각 발사의 파워 레벨은 상기 엔진(190)에 보 고되고, 상기 엔진(190)은 적이 가상 플레이어(210)에 가한 새로운 총 데미지 레벨을 레이더(280)에 업데이트한다. 이러한 데미지 레벨은 레이더(280)에서 밝아짐으로써 반영된다. 상기 가상 플레이어(210)가 적을 죽이면, 상기 엔진(190)은 사상된 적의 위치를 나타내는 막대(930)의 섹터(940)로부터 밝아짐을 제거한다. 다인용 게임에서, 각 플레이어의 엔진 내의 상기 버디 모듈은 각 플레이어의 레이더(280)의 양상을 제어한다. The function of the
상술한 바와 같이 본 실시예에서, 컨테이너(160)로 불리는 하나의 파일은 게임 중에 사용되는 모든 '.pic' 파일(140) 및 '.act' 파일(150)들을 포함한다. 또한 상기 컨테이너(160)는 새로운 게임이 시작되거나 새로운 게임 레벨이 도달할 때 실행되는 '.act' 파일(150)들을 지정하는 명령 파일들을 포함한다. 도 11은 일반적인 컨테이너(160)를 도시하고 있다. '.act' 파일(150)들은 '.pic' 파일(140) 및 메모리의 수 바이트만을 소비하는 다른 데이터 요소들의 포인터만을 포함하므로, 상기 '.act' 파일(150)들은 비교적 작은 파일들이다. '.act' 파일(150)의 각 프레임은 메모리의 32 바이트를 사용하므로, '.act' 파일(150)의 실제 크기는 '.act' 파일(150)의 프레임 수에 따라 달라질 수 있다. 일반적인 '.act' 파일(150)은 대략 1 kbytes 미만의 크기를 가질 수도 있다. 360-3D 게임에 사용되는 '.act' 파일(150)들의 수는 게임의 복잡도에 따라 달라진다. As described above, in this embodiment, one file called the
'.pic' 파일(140)은 보통 포함되는 이미지의 복잡도에 따른 '.pic' 파일(140)의 크기를 가지고 '.act' 파일(150)보다 더 큰 메모리를 요구한다. 실행 길이 부호화는 일반적인 '.pic' 파일(140)에 약 10 kbytes의 크기를 제공한다. 360- 3D 게임에 사용되는 '.pic' 파일(140)들의 수는 게임에서 사용되는 인물(260)들의 수와 인물(260)들이 채택한 다른 포즈들의 수에 따라 달라질 수 있다. The '.pic' file 140 usually requires a larger memory than the '.act'
필요한 '.pic' 파일(140)들의 수는 동일한 '.act' 파일(150)을 근거로 생성되는 서로 다른 활동들의 수에 따라 달라지지는 않는 점을 유의해야 한다. 예를 들어, 동일한 '.act' 파일(150)로부터 생성된 달리는 병사의 5가지 활동들의 각각은 공통적인 '.act' 파일(150)에 의해 참조되는 동일한 일련의 '.pic' 파일(140)들로부터 발생한다. 단일 '.act' 파일(150)에 근거하여 얼마나 많은 활동이 생성되고, 얼마나 많은 인물(260)의 다른 버전들이 보일지라도, 오직 한 세트의 '.pic' 파일(140)들이 상기 인물(260)의 특정 움직임을 묘사하기 위해 필요하다. 이와 대조적으로, 상술한 다각형 및 텍스처 방법을 사용하면, 각 별도의 인물(260)의 그물망(meshes) 및 텍스처들에 할당되는 추가적인 메모리가 필요할 수도 있다. 각 '.act' 파일(150) 파일은 인물(260)을 묘사하는 '.pic' 파일(140)의 포인터를 사용하고, 원하는 만큼의 포인터들이 동시에 동일한 '.pic' 파일(140)의 포인터를 사용할 수 있다. 따라서 별도의 메모리를 사용하거나 별도의 저장 용량이 필요없이 달리거나 슈팅하는 것과 같은 유사한 액션을 실행하는 게임에서 여러 위치에서 다수의 동일한 인물(260)들이 제공될 수 있다. 또한 각 활동은 독립적으로 이루어지고, 예를 들어 주된 활동이 총을 맞는 것과 같은 다른 이벤트를 체험하므로 동일한 '.act' 파일(150)에 근거하여 생성된 다른 활동들의 서로 다른 행동을 보여줄 수 있다. Note that the number of '.pic' files 140 required does not depend on the number of different activities generated based on the same '.act'
또한 상기 명령 파일(980)들은 각 게임 레벨의 초기에 생성되는 한 세트의 '.act' 파일(150)들만을 포함하므로, 메모리의 최소량만을 소비한다. 이를 고려해 보면, 컨테이너(160)는 이동 장치(180)상의 많은 메모리 공간을 소비하지 않는다는 것을 알 수 있다. 상기 컨테이너(160)는 360-3D 게임의 완전한 지정 및 설명을 포함한다는 것을 알고 있어야 한다. 일반적인 컨테이너(160)는 약 2 내지 3 Mbytes 범위의 메모리를 가진다. 이러한 장치(180)들은 보통 5 Mbytes 이하의 메모리 용량을 가지므로 이는 360-3D 게임이 특별히 향상되지 않은 표준 이동 장치(180)상에서 실행되도록 한다. In addition, the command files 980 include only a set of '.act'
일 실시예에서, 상기 컨테이너(160) 내의 '.pic' 파일(140)들은 360-3D 게임의 개발이 쉬워지도록 순차적으로 배열될 수 있다. 상기한 바와 같이, 게임 개발자는 상기 제작 툴(130)의 append 버튼(790)을 사용하여 프레임 번호를 증가시킬 수 있고, 동시에 현재 디렉토리의 다음 '.pic' 파일(140)이 다음 프레임에 의해 호출되도록 지정할 수 있다. 상기 append 버튼(790)을 적절히 동작시키기 위해서, 상기 '.pic' 파일(140)들은 컨테이너(160)에서 적절한 순서로 배열되어야만 한다. 예를 들어, 달리는 동작이 묘사되면, 제 1 달리는 포즈를 포함하는 '.pic' 파일(140)은 컨테이너(160)의 '.pic' 파일(140)들의 디렉토리에서 먼저 열거되어야 하고, 제 2달리는 포즈를 포함하는 '.pic' 파일(140)은 두 번째로 열거되어야 한다. In one embodiment, the '.pic' files 140 in the
상기 에뮬레이터(920)를 통해 컴퓨터상에 360-3D 게임을 실행하는 능력은 360-3D 게임에 대해 다양한 마케팅 전략을 제공한다. 예를 들어, 360-3D 게임의 데모 버전이 컴퓨터상에 무료로 사용될 수 있도록 할 수 있다. 이동 전화의 디스플레이 상에 게임이 실행되는 이동전화와 같이 이는 컴퓨터 모니터상에 디스플레이될 수 있다. 이러한 데모 게임은 예를 들어 저가나 무료로 다운로드될 수 있다. 컴퓨터상에 제한된 버전의 게임을 실행하게 되면, 게임 플레이어로 하여금 이동 장치(180)에서 사용되는 풀 버전(full version)을 구입하거나 360-3D 게임을 실행할 수 있는 엔진(190)을 구비한 이동 장치를 구입하도록 촉진할 수 있다. The ability to run 360-3D games on a computer through the
상술한 시스템은 당업계에서 잘 알려진 어떠한 휴대용 이동 전자 장치(180)상에서도 구현될 수 있다. 본 발명에 개시된 하나 이상의 실시예들을 구현하기 위한 이동 단말 시스템(180)의 일례가 도 12에 도시되어 있다. 상기 이동 단말기(180)는 제 1 저장 영역(1220)에 연결된 프로세서(1210, 중앙 처리 장치 또는 CPU로 불릴 수도 있다.), 키패드와 같은 입력 장치(1240) 및 디스플레이 화면(200)과 같은 출력 장치를 포함한다. The system described above may be implemented on any portable mobile
상기 프로세서(1210)는 하나 이상의 CPU 칩들로 구현될 수 있고, 제 1 저장 영역(1220) 또는 제 2 저장 영역(1230)으로부터 엑세스하는 명령어, 코드, 컴퓨터 프로그램 또는 스크립트들을 실행시킬 수 있다. 상기 제 1 저장 영역(1220)은 플래시 메모리와 같은 비 휘발성(non-volatile) 메모리일 수 있다. 컨테이너(160) 및 그 밖의 이동 단말기(180) 데이터는 보통 제 1 저장 영역(1220)에 인스톨된다. 상기 제 2 저장 영역(1230)은 펌웨어 또는 유사한 형태의 메모리일 수 있다. 상기 런타임 엔진(190) 및 장치용 운영 시스템은 보통 제 2 저장 영역(1230)에 인스톨된다. The
상술한 제작 툴(130)은 충분한 처리 파워, 메모리 리소스 및 필요한 작업부하(workload)가 위치하도록 하는 네트워크 처리량(throughput) 능력을 가진 어떠한 일반 목적의 컴퓨터에서 구현될 수 있다. 도 13은 본 발명에 개시된 하나 이상의 실시예들에서 구현하기 위한 보통의 일반 목적의 컴퓨터 시스템을 도시하고 있다. 상기 컴퓨터 시스템(1300)은 제 2 저장부(1338)을 포함하는 메모리 장치들과 통신하는 프로세서(1332, 중앙 처리 장치 또는 CPU로 불릴 수도 있다.), 읽기용 기억 장치(1336, ROM: Read Only Memory), 랜덤 엑세스 메모리(1334, RAM: Random Access Memory), 입출력(I/O: Input/Output) 장치(1340) 및 네트워크 연결 장치(1312)를 포함한다. 상기 프로세서(1332)는 하나 이상의 CPU 칩들에서 구현될 수 있다. The
상기 제 2 저장부(1338)는 보통 하나 이상의 디스크 드라이브 또는 테이프 드라이브를 포함하고, 데이터의 비 휘발성 저장을 위해 사용되며, RAM(1334)이 모든 작업 데이터를 수용할 정도로 크지 않은 경우에 오버 플로우 데이터 저장 장치로 사용된다. 상기 제 2 저장부(1338)는 프로그램들이 실행을 위해 선택될 때 RAM(1334)으로 로딩되는 이러한 프로그램을 저장하는데 사용될 수 있다. 상기 ROM(1336)은 명령어 및 프로그램이 실행되는 동안 읽혀지는 추측(perhaps) 데이터 를 저장하는데 사용된다. 상기 ROM(1336)은 제 2 저장부의 더 큰 메모리 용량에 대하여 작은 메모리 용량을 가진 비 휘발성 메모리이다. 상기 RAM(1334)은 휘발성 데이터 및 추측 데이터를 사용하여 명령어들을 저장한다. 상기 ROM(1336) 및 RAM(1334)로의 접근(access)은 보통 제 2 저장부(1338)보다 빠르다. The
상기 I/O 장치(1340)는 프린터, 비디오 모니터, 액정 디스플레이(LCD: Liquid Crystal Display), 터치 스크린 디스플레이, 키보드, 키패드, 스위치 다이 얼, 마우스, 트랙볼, 음성 인식기, 카드 리더, 종이 테이프 리더, 또는 그 밖의 잘 알려진 입력 장치들을 포함할 수 있다. The I /
상기 네트워크 연결 장치(1312)는 모뎀, 모뎀 뱅크, 이더넷 카드, USB(Universal Serial Bus) 인터페이스 카드, 시리얼 인터페이스, 토큰 링 카드, FDDI(Fiber Distributed Data Interface) 카드, WLAN(Wireless Local Area Network) 카드, CDMA(Code Division Multiple Access) 및/또는 GSM(Globlal System for Mobile communications) 무선 송수신 카드와 같은 무선 송수신 카드, 및 그 밖의 잘 알려진 네트워크 장치들의 형태를 가질 수 있다. 이러한 네트워크 연결 장치(1312)들은 상기 프로세서(1332)가 인터넷 또는 하나 이상의 인트라넷과 통신할 수 있도록 한다. 상기 프로세서(1332)는 네트워크로부터 정보를 수신하거나 상술한 방법의 단계를 수행 중에 네트워크에 정보를 출력할 수 있다. The
예를 들어, 프로세서(1332)를 사용하여 실행되는 데이터 또는 명령어를 포함할 수 있는 이러한 정보는 컴퓨터 데이터 베이스밴드 신호 및 반송파에 실린 신호의 형태로 네트워크로 송수신할 수 있다. 상기 베이스밴드 신호 및 네트워크 연결 장치(1312)에 의해 생성된 반송파에 실린 신호는 전도체의 표면, 동축 케이블, 도파관(waveguide), 광섬유와 같은 광매체, 공기 또는 자유 공간으로 전달될 수 있다. 상기 베이스밴드 신호 및 반송파에 실린 신호에 포함된 정보는 정보를 처리 또는 생성하거나 정보를 송수신할 때 다른 순서에 따라 순서가 정해질 수 있다. 상기 베이스밴드 신호, 반송파에 실린 신호 또는 현재 사용되거나 이후에 개발되며 전송 매체로 불리는 다른 유형의 신호들은 당업계에 공지된 여러 방법에 따라 생성될 수 도 있다. For example, such information, which may include data or instructions executed using
상기 프로세서(1332)는 하드 디스크, 플로피 디스크, 광디스크(이러한 각종 디스크 기반의 시스템들은 모두 제 2 저장부(1338)로 인식될 수 있다), ROM(1336), RAM(1334) 또는 네트워크 연결 장치(1312)들로부터 접근하는 명령어, 코드, 컴퓨터 프로그램 또는 스크립트를 실행시킨다. The
본 출원에 몇몇 실시예가 제공되었지만, 본 발명의 사상 및 범위를 벗어나지 않는 한 개시된 시스템과 방법을 여러 가지 특정 형태로 실시할 수 있다는 것을 이해할 것이다. 본 실시예들은 예시하기 위한 것으로 그에 국한하지 않는다. 본 발명의 취지는 본 명세서의 상세한 설명으로 국한하지 않으며, 첨부한 특허청구의 범위 및 그와 균등한 것들의 범위 내에서 수정될 수 있다. 예컨대, 다수의 요소 또는 구성 요소들은, 다른 시스템에 결합되거나 일체로 형성될 수도 있다. 또한, 특정한 요소들은 생략하거나, 실시하지 않을 수도 있다. While some embodiments have been provided in the present application, it will be understood that the disclosed systems and methods may be embodied in various specific forms without departing from the spirit and scope of the invention. The embodiments are intended to illustrate but are not limited to such. The spirit of the present invention is not limited to the detailed description herein, but may be modified within the scope of the appended claims and their equivalents. For example, multiple elements or components may be coupled to or integrally formed with another system. In addition, certain elements may be omitted or may not be implemented.
또한, 상기 실시예들에서 언급된 기술, 시스템, 서브시스템 및 방법들은 본 발명의 범위에서 벗어나지 않고 다른 시스템, 모듈 또는 방법들과 결합될 수 있다. '직접 결합된' 또는 '서로 통신하는'과 같은 용어들은 일부 인터페이스 또는 장치를 통해 결합 되어, 상기 용어들은 '직접 결합된'으로 간주하지 않고 '간접적으로 결합된' 및 '전기적, 기계적으로 서로 통신하는' 등으로 간주한다. 본 발명이 속하는 분야의 기술자는 본원의 특허청구범위에 기재된 원리 및 범위 내에서 여러 가지 형태로 변형 또는 변경할 수 있다. In addition, the techniques, systems, subsystems, and methods mentioned in the above embodiments may be combined with other systems, modules, or methods without departing from the scope of the present invention. Terms such as 'directly coupled' or 'communicating with each other' are combined through some interface or device so that the terms are not considered 'directly coupled' but are 'indirectly coupled' and 'electrically and mechanically communicating with each other'. It's like that. Those skilled in the art to which the present invention pertains may modify or change in various forms within the principles and scope described in the claims herein.
상술한 바와 같이 본 발명은 서로 다른 크기의 디스플레이를 구비한 이동 단말기들 상에서 게임을 실행함에 있어, 상기 이동 단말기들 간에 동일한 게임을 동시에 디스플레이하여 진행할 수 있도록 하는 하기 위한 다인용 비디오 게임 시스템 및 방법을 제공할 수 있다.As described above, the present invention provides a multi-player video game system and method for executing a game on mobile terminals having displays of different sizes so as to simultaneously display and play the same game between the mobile terminals. Can provide.
Claims (27)
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP07105209A EP1839715B1 (en) | 2006-03-30 | 2007-03-29 | Multiplayer video gaming system and method |
AT07105209T ATE485085T1 (en) | 2006-03-30 | 2007-03-29 | MULTIPLE PLAYER VIDEO GAME SYSTEM AND METHOD |
DE602007009887T DE602007009887D1 (en) | 2006-03-30 | 2007-03-29 | Multi-player video game system and method |
CN2007100915000A CN101049539B (en) | 2006-03-30 | 2007-03-30 | Multiplayer video gaming system and method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/393,240 US20070037625A1 (en) | 2005-06-28 | 2006-03-30 | Multiplayer video gaming system and method |
US11/393,240 | 2006-03-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070098483A KR20070098483A (en) | 2007-10-05 |
KR100876739B1 true KR100876739B1 (en) | 2008-12-31 |
Family
ID=38781266
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070015049A KR100876739B1 (en) | 2006-03-30 | 2007-02-13 | Multiplayer Video Game System and Method |
Country Status (4)
Country | Link |
---|---|
KR (1) | KR100876739B1 (en) |
CN (1) | CN101049539B (en) |
AT (1) | ATE485085T1 (en) |
DE (1) | DE602007009887D1 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8562401B2 (en) | 2010-06-10 | 2013-10-22 | Cfph, Llc | Amusement devices and games involving head to head play |
JP7124624B2 (en) * | 2018-10-12 | 2022-08-24 | トヨタ自動車株式会社 | entertainment systems and programs |
TWI697848B (en) * | 2018-11-15 | 2020-07-01 | 智崴資訊科技股份有限公司 | Somatosensory game system for multiplayer connection games and its method |
CN112700519A (en) * | 2020-12-30 | 2021-04-23 | 广州方硅信息技术有限公司 | Animation display method and device, electronic equipment and computer readable storage medium |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001104651A (en) * | 1999-08-05 | 2001-04-17 | Samsung Electronics Co Ltd | Network game function materializing method using cellular phone |
JP2001129260A (en) | 1999-11-08 | 2001-05-15 | Konami Co Ltd | Game system |
JP2005100115A (en) | 2003-09-25 | 2005-04-14 | Konami Co Ltd | Game program and game device |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5618045A (en) * | 1995-02-08 | 1997-04-08 | Kagan; Michael | Interactive multiple player game system and method of playing a game between at least two players |
US6416410B1 (en) * | 1999-12-03 | 2002-07-09 | Nintendo Co., Ltd. | Data compression/decompression based on pattern and symbol run length encoding for use in a portable handheld video game system |
KR20100018100A (en) * | 2001-05-09 | 2010-02-16 | 가부시키가이샤 세가 | Game server apparatus |
JP3496150B1 (en) * | 2002-09-30 | 2004-02-09 | コナミ株式会社 | GAME SYSTEM, GAME SYSTEM CONTROL METHOD AND PROGRAM |
CN1698920A (en) * | 2004-05-20 | 2005-11-23 | 泰伟电子股份有限公司 | Regional multi-person line-connecting game method and apparatus therefor |
-
2007
- 2007-02-13 KR KR1020070015049A patent/KR100876739B1/en active IP Right Grant
- 2007-03-29 DE DE602007009887T patent/DE602007009887D1/en active Active
- 2007-03-29 AT AT07105209T patent/ATE485085T1/en not_active IP Right Cessation
- 2007-03-30 CN CN2007100915000A patent/CN101049539B/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001104651A (en) * | 1999-08-05 | 2001-04-17 | Samsung Electronics Co Ltd | Network game function materializing method using cellular phone |
JP2001129260A (en) | 1999-11-08 | 2001-05-15 | Konami Co Ltd | Game system |
JP2005100115A (en) | 2003-09-25 | 2005-04-14 | Konami Co Ltd | Game program and game device |
Also Published As
Publication number | Publication date |
---|---|
ATE485085T1 (en) | 2010-11-15 |
CN101049539B (en) | 2011-01-12 |
KR20070098483A (en) | 2007-10-05 |
DE602007009887D1 (en) | 2010-12-02 |
CN101049539A (en) | 2007-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20070060346A1 (en) | Tool for video gaming system and method | |
US20070021203A1 (en) | Mobile handset video game system and method | |
US20070060345A1 (en) | Video gaming system and method | |
US7400329B2 (en) | Graphics images system and method | |
CN113398601B (en) | Information transmission method, information transmission device, computer-readable medium, and apparatus | |
JP2024519019A (en) | Interface display method, device, equipment, and computer program | |
US20230072503A1 (en) | Display method and apparatus for virtual vehicle, device, and storage medium | |
CN112973117B (en) | Interaction method of virtual objects, reward issuing method, device, equipment and medium | |
JP2022540277A (en) | VIRTUAL OBJECT CONTROL METHOD, APPARATUS, TERMINAL AND COMPUTER PROGRAM | |
WO2022095672A1 (en) | Screen display method and apparatus, device and storage medium | |
US20230033530A1 (en) | Method and apparatus for acquiring position in virtual scene, device, medium and program product | |
WO2022237420A1 (en) | Control method and apparatus for virtual object, device, storage medium, and program product | |
CN111905363A (en) | Virtual object control method, device, terminal and storage medium | |
KR100876739B1 (en) | Multiplayer Video Game System and Method | |
CN113559510A (en) | Virtual skill control method, device, equipment and computer readable storage medium | |
CN113680060A (en) | Virtual picture display method, device, equipment, medium and computer program product | |
KR100895170B1 (en) | Method and mobile terminal for playing video game thereof system | |
CN112121432B (en) | Control method, device and equipment of virtual prop and computer readable storage medium | |
CN115645923A (en) | Game interaction method and device, terminal equipment and computer-readable storage medium | |
WO2022237446A1 (en) | Method and apparatus for controlling virtual object, and device, storage medium and program product | |
CN115634449A (en) | Method, device, equipment and product for controlling virtual object in virtual scene | |
CN112057859B (en) | Virtual object control method, device, terminal and storage medium | |
EP1839715B1 (en) | Multiplayer video gaming system and method | |
EP1839716A1 (en) | Mobile handset video game system and method | |
CN113769392A (en) | State processing method and device for virtual scene, electronic equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
J201 | Request for trial against refusal decision | ||
B701 | Decision to grant | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20121129 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20131128 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20141127 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20151127 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20161129 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20171129 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20181129 Year of fee payment: 11 |
|
FPAY | Annual fee payment |
Payment date: 20191128 Year of fee payment: 12 |