FI115675B - Real-time interactive three-dimensional computer game providing method involves sending compressed data entities describing player-specific views of game world, by server to computer terminal via network - Google Patents

Real-time interactive three-dimensional computer game providing method involves sending compressed data entities describing player-specific views of game world, by server to computer terminal via network Download PDF

Info

Publication number
FI115675B
FI115675B FI20010877A FI20010877A FI115675B FI 115675 B FI115675 B FI 115675B FI 20010877 A FI20010877 A FI 20010877A FI 20010877 A FI20010877 A FI 20010877A FI 115675 B FI115675 B FI 115675B
Authority
FI
Finland
Prior art keywords
server
game
player
computer
client
Prior art date
Application number
FI20010877A
Other languages
Finnish (fi)
Swedish (sv)
Other versions
FI20010877A0 (en
FI20010877A (en
Inventor
Erik Piehl
Sami Sallinen
Original Assignee
Gamecluster Ltd Oy
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gamecluster Ltd Oy filed Critical Gamecluster Ltd Oy
Priority to FI20010877A priority Critical patent/FI115675B/en
Publication of FI20010877A0 publication Critical patent/FI20010877A0/en
Priority to AU2002251112A priority patent/AU2002251112A1/en
Priority to PCT/FI2002/000362 priority patent/WO2002092177A2/en
Publication of FI20010877A publication Critical patent/FI20010877A/en
Application granted granted Critical
Publication of FI115675B publication Critical patent/FI115675B/en

Links

Landscapes

  • Processing Or Creating Images (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

A server system (410) determines the number of player-specific views corresponding to the following game situation in a of a game world, based on the input data from a computer terminal (420). The server system forms and compresses the player-specific data entities describing the player-specific views. The compressed data entities are sent to the computer terminal via a communication network (430). The method involves decompressing the received compressed player-specific data entities of each computer terminal from the server system. The decompressed data are presented to a player via the user interface of the computer terminal. An independent claim is also included for a server system.

Description

115675115675

Menetelmä grafiikkasovelluksien suorittamiseen Tämä keksintö koskee menetelmää, jonka avulla on mahdollista nopeuttaa ja järkiperäistää erilaisten grafiikkasovellusten samanaikaista suorittamista useilla 5 tietokoneilla.This invention relates to a method for accelerating and rationalizing the simultaneous execution of various graphics applications on a plurality of computers.

Tietojenkäsittelyssä on tunnettua keskitettyjen ns. palvelintietokoneiden käyttö sovellusten suorittamiseen. Yleinen periaate näiden sovellusten suorittamisessa on, että sovellusten käyttäjät kommunikoivat palvelimen suorittaman sovelluksen 10 kanssa asiakastietokoneiden välityksellä. Tunnettuja palvelimilla suoritettavia ohjelmistoja ovat esimerkiksi tietokantasovellukset.There is a well-known system of centralized data processing in data processing. use of server computers to run applications. The general principle behind executing these applications is that application users communicate with the application 10 executed by the server via client computers. Known server-based software include database applications.

Toiminnan taloudellisuus riippuu sovellusten määrästä suhteutettuna tietokonelaitteiston hintasuhteeseen. Edullisen lopputuloksen saavuttamiseksi yhdellä palveli-15 mella pyritään luonnollisesti kattamaan mahdollisimman monen asiakkaan tarpeet.The cost-effectiveness of the operation depends on the number of applications in relation to the price ratio of the computer hardware. Of course, to achieve an affordable end result, a single server is designed to meet the needs of as many customers as possible.

Toisaalta on tunnettua, että tietokoneilla voidaan erillistä grafiikkakiihdytinkorttia käyttäen tehdä realistiselta näyttäviä simulaatioita kolmiulotteisesta maailmasta. Erityisen tärkeää ja paljon käytettyä tämä on esimerkiksi silloin, kun pelataan 20 pelejä, joissa liikutaan edellä mainitun kaltaisissa maailmoissa.On the other hand, it is known that computers can make realistic-looking simulations of a three-dimensional world using a separate graphics accelerator card. Particularly important and much used is this, for example, when playing 20 games that navigate worlds like the above.

I I * » .* ·. Edellä mainitun kaltaisten grafiikkasovellusten ajoa palvelimilla vaikeuttaa tietoko- . * *. neen grafiikkakiihdytinkortin tehtävänvaihdon hitaus ja grafiikka(tekstuuri)muistin -j rajallisuus. Tietokoneiden perinteinen rakenne estää useimmiten korttien lisäämi- :' 25 sen, mutta grafiikkamuistin lisääminen on tietysti mahdollista. Tällöin kuitenkin siirrytään tavallisesti myös epätaloudelliselle toiminta-alueelle.I I * ». * ·. Running graphics applications such as the above on servers is hampered by computing. * *. the slowness of switching between the graphics accelerator board and the memory (j) of the graphics (texture). The traditional design of computers usually prevents insertion of cards, but of course it is possible to add graphics memory. However, in such cases, they usually also move to an uneconomical operating area.

• > · > « · » : ‘ : Tietokoneiden grafiikkakiihdyttimet on yleensä suunniteltu vain yhden grafiikkain- tensiivisen sovelluksen suorittamiseen kerralla. Perinteisesti asiat on ratkaistu * · ;·*. 30 siten, että kunkin palveltavan asiakkaan työ tehdään omassa prosessissaan, joita . . prosesseja palvelimen käyttöjärjestelmä suorittaa vuorotellen pienen aikajakson kerrallaan.•> ·> «·»: ': Computer graphics accelerators are generally designed to run only one graphics-intensive application at a time. Traditionally, things have been solved * ·; · *. 30 so that the work of each customer being served is done in their own process by. . processes are performed alternately by the server operating system for a short period of time.

Tyypillisen palvelimella suoritettavan pelisovelluksen suoritus etenee esimerkiksiExecution of a typical server-based game application proceeds, for example

• I• I

115675 2 seuraavalla tavalla:115675 2 as follows:

Syötteen käsittely o Simulaatio o Uuden kuvan piirto >=> Kuvan pakkaus ja lähetys o Odotus, kunnes aika piirtää seuraava kuva. Tästä palataan toisin sanoen 5 syklin alkuun.Input processing o Simulation o Drawing a new image> => Compressing and sending an image o Waiting for the next image to be drawn. In other words, this returns to the beginning of 5 cycles.

Jos samassa palvelimessa suoritetaan useita tällaisia prosesseja yhtä aikaa, käy niin, että välillä kahden tai useamman eri prosessin ’’uuden kuvan piirto’-vaiheet osuvat samaan aikaan. Koska tietokoneiden käyttöjärjestelmät vuorottelevat kul-10 loinkin suoritettavaa prosessia kaikkien tietokoneella ajossa olevien prosessien väliltä, joutuu tietokoneen grafiikkakortti tällöin vaihtamaan tehtäviään tiuhaan, mikä aiheuttaa ei-toivotun hidastumisen sen toiminnassa.If several such processes are executed on the same server at the same time, it is sometimes the case that two or more different process '' new image drawing '' steps occur at the same time. As the computer operating systems alternate between the processes that are currently running between all the processes running on the computer, the graphics card in the computer will then have to change its tasks frequently, causing an unwanted slowdown in its operation.

Useita palvelimia käytettäessä synkronoimattomien pelien kuvan lähetys saattaa 15 osua ja tavanomaisesti osuukin myös samaan aikaan aiheuttaen kapasiteettiongelmia tiedonsiirrossa, jos palvelimet kommunikoivat asiakastietokoneiden kanssa käyttäen ethernetin kaltaista tietoverkkoa, jossa kapasiteettia jaetaan kilpavarausmenetelmään perustuen.When using multiple servers, the transmission of non-synchronized games may and may not occur at the same time, causing capacity problems in data transfer if the servers are communicating with client computers using an Ethernet-like data network where capacity is allocated on a competitive booking basis.

20 Tämän keksinnön tarkoituksena on aikaansaada uusi ratkaisu edellä kuvattuihin : ongelmiin. Tarkoitus on sujuvoittaa toimintoja niin, että yhtäaikaiset ja kilpailevat : ” prosessit pyritään estämään, jolloin grafiikkapiirien kuormitus pienenee ja tehtävi- * * · ' en suoritus nopeutuu. Tämä on aikaansaatu siten kuin esitetään tunnusomaiseksi • · • · ’ oheisissa patenttivaatimuksissa.It is an object of the present invention to provide a novel solution to the problems described above. The aim is to streamline operations so that they are both concurrent and competing: “processes are avoided, reducing graphics workloads and speeding up * * · tasks. This is accomplished as set forth in the appended claims.

2525

Lyhyesti sanottuna palvelimella suoritettava sovellus muokataan sellaiseksi, että . yhdessä käyttöjärjestelmän prosessissa voidaan palvella useampaa asiakasta .... vuorotellen. Tällöin a) näiden asiakkaiden palvelu ei kilpaile grafiikkakortin resurs seista keskenään, koska niitä ei suoriteta yhtä aikaa ja b) näiden asiakkaiden pelit » ♦» ' ; 30 voivat käyttää samaa 3D-maailman mallia ja näin säästää grafiikkakortin muistia.In short, the server-side application is modified to:. a single operating system process can serve multiple clients .... alternately. In this case, (a) the service of these customers does not compete with the resources of the graphics card because they are not executed simultaneously and (b) the games of these customers »♦» '; 30 can use the same 3D world model to save graphics card memory.

Tämä parantaa palvelimen suorituskykyä merkittävästi tilanteessa, jossa monta asiakasta käyttää samaa sovellusta.This significantly improves server performance in a situation where many clients are using the same application.

Lisäksi pelien ollessa kyseessä eri asiakkaiden palvelujärjestys valitaan siten, että I , 3 115675 pelimaailmassa lähekkäin olevien pelaajien pelit suoritetaan peräkkäin. Tällöin pystytään hyödyntämään grafiikkakiihdyttimen muistin ns. välimuistiominaisuutta, jossa vasta käytetyt 3-ulotteisen mallin osat ovat nopeammin käytössä kuin aiemmin käyttämättömät.In addition, in the case of games, the order of service of the various customers is selected so that the games of the players closest to the I, 3 115675 are played in succession. This makes it possible to utilize the so-called memory accelerator memory. caching feature, where newly used 3-D model parts are faster in use than previously unused parts.

55

Lisäksi, jos peliä suorittavassa palvelintietokoneessa on useampi kuin yksi prosessori, kannattaa kuvan pakkaus ja lähetys aikaa vievänä erottaa omaan suoritus-säikeeseensä, jota voidaan ajaa millä tahansa koneen prosessoreista. Eri pelien kuvan piirtävät säikeet kannattaa taas lukita toimimaan kaikki samalla prosessorilla 10 synkronointisyistä.In addition, if the game server computer is running more than one processor, it is advisable to separate the image compression and transmission into its own execution thread, which can be run on any of the machine's processors. Again, it is advisable to lock the strands that draw the image of the various games to operate on the same processor 10 for synchronization purposes.

Kun samalla palvelintietokoneella suoritetaan useampaa kuin yhtä eri peliä, tai samaa peliä suoritetaan useammalla kuin yhdellä palvelimella, ei näitä voi suorittaa samassa käyttöjärjestelmän prosessissa ja siten estää niitä käyttämästä gra-15 fiikkakorttia yhtä aikaa. Tämän takia on edullista käyttää ulkoista tahdistusmenet-telyä, jossa yksi tietokone jakaa aikavälejä muiden tietokoneiden kullekin prosessille.When more than one game is played on the same server computer, or when the same game is played on more than one server, these cannot be run in the same operating system process and thus prevent them from using the gra-15 smart card at the same time. Therefore, it is preferable to use an external synchronization procedure in which one computer distributes time slots for each process of the other computers.

Tähän tarkoitukseen soveltuu esimerkiksi kaapeli, joka kytkee aikavälejä jakavan 20 tietokoneen rinnakkaisportin kaikkien muiden saman ryppään tietokoneiden rinnak- : . kaisportteihin. Aikavälejä jakava tietokone antaa rinnakkaisporttia käyttäen vuorol- » > * . v. laan merkin kunkin palvelimen kullekin pelille jolloin pelit piirtävät ruutunsa. Samal- .· la tahdistuu myös pakatun kuvan lähetys verkon kautta asiakaslaitteille, jolloin j myös verkon kapasiteetti saadaan maksimaalisesti hyödynnettyä.For example, a cable that connects the parallel port of a slot 20 computer to all other computers in the same cluster is suitable for this purpose. kaisportteihin. The slot splitting computer provides a parallel port »» *. v. Draw a character for each game on each server so the games draw their screens. At the same time, it also synchronizes the transmission of the compressed image over the network to the client devices, thus maximizing the capacity of the network.

·. 25 •·. 25 •

Palvelinten ja asiakkaiden välisen verkon toimintaa voidaan vielä tehostaa käyttä- ; mällä erillistä välittäjätietokonetta, jonka kautta kaikki liikenne palvelimilta verkkoon ’ ]: ja asiakaslaitteilta palvelimille tapahtuu. Välittäjätietokoneessa käytetään ohjel- , ·. maa, joka vastaanottaa palvelinten lähettämät kuvat ja lähettää ne edelleen verk- · ·. 30 koon mahdollisimman tasaisin aikavälein. Lisäksi ohjelma osaa olla käyttämättä Λ verkkoa silloin, kun se odottaa asiakaslaitteelta kuittausviestiä jo lähetettyyn ku- '. ‘ vaan. Näin varmistetaan etteivät eri palvelinten lähettämät kuvat ja päätelaitteiden » · kuittausviestit kilpaile keskenään verkon kapasiteetista.The operation of the server-to-client network can be further enhanced; by providing a separate proxy computer through which all traffic from servers to the network '] and from client devices to servers takes place. The proxy computer uses software, ·. the country that receives the images sent by the servers and forwards them to the network. 30 sizes at as even intervals as possible. In addition, the program can refrain from using the Λ network when it waits for an acknowledgment message from a client device to an already sent image. 'But. This ensures that images sent by different servers and acknowledgments of terminals »· do not compete with each other on network capacity.

5 4 1156755 4 115675

Jotta kuvat joutuisivat odottamaan välittäjätietokoneella mahdollisimman vähän aikaa, on edellä kuvatun kaltaisen ulkoisen tahdistuksen samanaikainen käyttö myös tarpeen.The simultaneous use of external synchronization such as the one described above is also necessary to minimize waiting time on the proxy computer for images.

Claims (10)

115675115675 1. Menetelmä yhden tai useamman usean käyttäjän grafiikkasovelluksen, kuten pelin suorittamiseksi yhdellä tai useammalla palvelintietokoneella tai vastaavalla 5 tarkoituksena nopeuttaa prosessien suorittamista ja estää törmäystilanteista johtuvat ongelmat, tunnettu siitä, että jaksotetaan kullekin asiakkaista oma eriaikainen palveluaika kussakin käyttöjärjestelmän prosessissa.A method for executing one or more multi-user graphics applications, such as a game, on one or more server computers or the like 5, to speed up process execution and prevent crash situations, characterized by sequencing each client's own idle service time in each operating system process. 2. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että silloin kun 10 yhdellä palvelimella suoritetaan useampaa kuin yhtä prosessia tai kun useampaa kuin yhtä prosessia suoritetaan useammalla palvelimella, palveluajan antaminen prosessien suorittamiseen tehdään tahdistetulla tavalla.Method according to Claim 1, characterized in that when more than one process is performed on one server or when more than one process is performed on more than one server, the provision of service time for performing the processes is done in a synchronized manner. 3. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että palveluajan 15 antaminen eri käyttäjille suoritetaan erillisen tahdistuslaitteen avulla.Method according to claim 1, characterized in that the provision of service time 15 to different users is performed by means of a separate synchronization device. 4. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että asiakkaiden palvelujärjestys kussakin prosessissa valitaan niin, että suoritetaan grafiikkakortin muistissa olevan, esimerkiksi kolmeulotteisen, maailman lähinnä toisiaan olevien ; 20 asiakkaiden palvelu ennen kauempana olevien asiakkaiden palvelua välimuis- j· tiominaisuuden hyödyntämiseksi. • I « • · .* ·.A method according to claim 1, characterized in that the order of customer service in each process is selected by executing the closest, e.g., three-dimensional, world of the memory in the graphics card; 20 client service before remote client service to take advantage of the caching feature. • I «• ·. * ·. 5. Patenttivaatimuksen 3 mukainen menetelmä, tunnettu siitä, että tahdistuslaite on erillinen tietokone, joka sopivan liitännän avulla jakaa muille palvelimille/eri 25 prosesseille aikaa tahdistetulla tavalla.Method according to Claim 3, characterized in that the synchronization device is a separate computer which, by means of a suitable interface, allocates time to other servers / different processes in a synchronized manner. 6. Patenttivaatimuksen 3 tai 5 mukainen menetelmä, tunnettu siitä, että tahdistus- laitteella huolehditaan myös pakatun kuvan asiakkaalle lähettäminen tahdistetulla :·!·. tavalla. 306. A method according to claim 3 or 5, characterized in that the pacing device also takes care of sending the compressed image to the client in a synchronized manner: ·! ·. way. 30 7. Jonkin edellisen patenttivaatimuksen mukainen menetelmä, tunnettu siitä, että t » · ’..! kuvan pakkaus ja lähetys suoritetaan omassa suoritussäikeessään, jolloin kuvan * · piirtävät suoritussäikeet lukitaan toimimaan samalla prosessorilla myös siinä tapauksessa, että suoritetaan useampia kuin yhtä prosessia, kuten peliä. 115675Method according to one of the preceding claims, characterized in that t »· '..! the image is compressed and transmitted in its own execution thread, whereby the execution threads drawing the image · · are locked to operate on the same processor even if more than one process, such as a game, is executed. 115675 8. Jonkin edellisen patenttivaatimuksen mukainen menetelmä, tunnettu siitä, että suoritetaan kaikki palvelimen tai palvelimien ja asiakkaiden välinen liikenne erillisen välittäjätietokoneen avulla.Method according to one of the preceding claims, characterized in that all communication between the server or servers and the clients is carried out by means of a separate proxy computer. 9. Patenttivaatimuksen 8 mukainen menetelmä, tunnettu siitä, että välittäjätietoko- neella vastaanotetaan palvelinten lähettämät kuvat, ne lähetetään verkkoon välit-täjätietokonetta käyttäen jotakuinkin tasaisin aikavälein ja verkon käyttämisestä pidättäydytään ennen asiakkaalta tulevaa vastaanottokuittausta.A method according to claim 8, characterized in that the proxy computer receives the images transmitted by the servers, transmits it to the network using the proxy computer at approximately equal intervals, and uses the network prior to receiving a receipt from the client. 10 • 1 · • « ♦ 1 » « I » I · » 1 » 11567510 • 1 · • «♦ 1« «I» I · »1» 115675
FI20010877A 2001-04-26 2001-04-26 Real-time interactive three-dimensional computer game providing method involves sending compressed data entities describing player-specific views of game world, by server to computer terminal via network FI115675B (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
FI20010877A FI115675B (en) 2001-04-26 2001-04-26 Real-time interactive three-dimensional computer game providing method involves sending compressed data entities describing player-specific views of game world, by server to computer terminal via network
AU2002251112A AU2002251112A1 (en) 2001-04-26 2002-04-26 Method and arrangement for providing an interactive game including three-dimensional graphics
PCT/FI2002/000362 WO2002092177A2 (en) 2001-04-26 2002-04-26 Method and arrangement for providing an interactive game including three-dimensional graphics

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FI20010877 2001-04-26
FI20010877A FI115675B (en) 2001-04-26 2001-04-26 Real-time interactive three-dimensional computer game providing method involves sending compressed data entities describing player-specific views of game world, by server to computer terminal via network

Publications (3)

Publication Number Publication Date
FI20010877A0 FI20010877A0 (en) 2001-04-26
FI20010877A FI20010877A (en) 2002-10-27
FI115675B true FI115675B (en) 2005-06-15

Family

ID=8561071

Family Applications (1)

Application Number Title Priority Date Filing Date
FI20010877A FI115675B (en) 2001-04-26 2001-04-26 Real-time interactive three-dimensional computer game providing method involves sending compressed data entities describing player-specific views of game world, by server to computer terminal via network

Country Status (1)

Country Link
FI (1) FI115675B (en)

Also Published As

Publication number Publication date
FI20010877A0 (en) 2001-04-26
FI20010877A (en) 2002-10-27

Similar Documents

Publication Publication Date Title
US6973475B2 (en) Dynamic scalable multi-media content streaming
KR101851096B1 (en) Crowd-sourced video rendering system
CN103309748B (en) Adaptive scheduling host system and scheduling method of GPU virtual resources in cloud game
CN106796530B (en) A kind of virtual method, device and electronic equipment, computer program product
CN102254292A (en) Remote 3D instruction rendering system and method
EP2654911A2 (en) Load balancing between general purpose processors and graphics processors
CN102323917B (en) Shared memory based method for realizing multiprocess GPU (Graphics Processing Unit) sharing
US11645117B2 (en) System and method for multi-tenant implementation of graphics processing unit
JP5453825B2 (en) Program parallel execution system and program parallel execution method on multi-core processor
CN105573850B (en) Multi-process exchange method, system and server
CN112473130A (en) Scene rendering method and device, cluster, storage medium and electronic equipment
CN115955590A (en) Video processing method, video processing device, computer equipment and medium
FI115675B (en) Real-time interactive three-dimensional computer game providing method involves sending compressed data entities describing player-specific views of game world, by server to computer terminal via network
CN113018845A (en) Operation instruction execution method, client, server and storage medium
Shi et al. Scalable support for 3D graphics applications in cloud
CN115391053B (en) Online service method and device based on CPU and GPU hybrid calculation
US11847720B2 (en) System and method for performing a Z pre-pass phase on geometry at a GPU for use by the GPU when rendering the geometry
CA2833346C (en) Reducing latency for served applications by anticipatory preprocessing
EP2861313B1 (en) Processing system, information processing apparatus, control method, program and storage medium
CN111212403B (en) Intelligent chess table triggering pairing method and system based on 5G network
CN113975816B (en) Hook-based graphics card distribution method using graphics card through DirectX interface
CN113946373B (en) Virtual reality multiple video stream rendering method based on load balancing
CN116637358B (en) Data transmission method, related device, equipment and storage medium
US11961159B2 (en) Region testing of geometry while rendering for efficient multi-GPU rendering
Ishioka et al. Traffic reduction for speculative video transmission in cloud gaming systems

Legal Events

Date Code Title Description
FG Patent granted

Ref document number: 115675

Country of ref document: FI

MA Patent expired