NO20101412A1 - A system for graphics and computer gaming experiences on the Internet - Google Patents
A system for graphics and computer gaming experiences on the Internet Download PDFInfo
- Publication number
- NO20101412A1 NO20101412A1 NO20101412A NO20101412A NO20101412A1 NO 20101412 A1 NO20101412 A1 NO 20101412A1 NO 20101412 A NO20101412 A NO 20101412A NO 20101412 A NO20101412 A NO 20101412A NO 20101412 A1 NO20101412 A1 NO 20101412A1
- Authority
- NO
- Norway
- Prior art keywords
- game
- computer
- remote
- web browser
- user
- Prior art date
Links
- 238000000034 method Methods 0.000 claims description 36
- 238000009877 rendering Methods 0.000 claims description 9
- 238000012546 transfer Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 claims description 2
- 238000004590 computer program Methods 0.000 claims description 2
- 238000012800 visualization Methods 0.000 claims 3
- 238000013461 design Methods 0.000 claims 2
- 230000004931 aggregating effect Effects 0.000 claims 1
- 238000012545 processing Methods 0.000 claims 1
- 230000006870 function Effects 0.000 description 32
- 230000000694 effects Effects 0.000 description 12
- 230000008859 change Effects 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000013515 script Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000001568 sexual effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 101100533306 Mus musculus Setx gene Proteins 0.000 description 1
- 241001310178 Watermelon mosaic virus Species 0.000 description 1
- 101000857680 Xenopus laevis Runt-related transcription factor 1 Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 244000062645 predators Species 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
Oppfinnelsen omhandler et system for fjernspilling og lokal spilling av dataspill via Internett. Oppfinnelsen inkluderer et presentasjonssystem (vist i FIG 1) som bukers i en Web browser plug-in, et fjernspillingsvindu, og eller i dataspillene. Dataspill kan eksekveres på servere og kan lastes ned til brukerens datamaskin. Web browser plug-in'en kan brukes til fjernspille lokalt spille dataspill. En desktop applikasjon kan brukes til å laste ned, synkronisere, og administrere spillressurser lokat, (f.eks 3D modeller med videre). Et fjernspillingsvindu kan også brukes til å fjernspille og lokalt spille dataspill.The invention relates to a system for remote play and local play of computer games via the Internet. The invention includes a presentation system (shown in FIG. 1) that buckles in a Web browser plug-in, a remote playback window, and or in the computer games. Computer games can be executed on servers and downloaded to the user's computer. The Web browser plug-in can be used to remotely play local video games. A desktop application can be used to download, synchronize, and manage game resources locally (eg 3D models, etc.). A remote play window can also be used to remotely play and locally play computer games.
Description
INTRODUKSJON INTRODUCTION
Oppfinnelsen er generelt sett relatert til informasjonsteknologisystemer, og mer spesifikt til et system for å tilby høykvalitets interaktive brukergrensesnitt, dataspill- og fjernspillings-opplevelser på Internett. The invention generally relates to information technology systems, and more specifically to a system for providing high quality interactive user interface, computer game and remote gaming experiences on the Internet.
BAKGRUNN BACKGROUND
Det eksisterer en god del kjent teknikk innen det tekniske området til oppfinnelsen. Noen eksempler på dette er: There is a good deal of prior art within the technical area of the invention. Some examples of this are:
o Systemer for høykvalitets interaktive brukergrensesnitt på Internett: o Systems for high-quality interactive user interfaces on the Internet:
o Microsoft Silverlight og Adobe Flash o Microsoft Silverlight and Adobe Flash
o HTML 4.01 standarden og HTML 5.0 forslaget o The HTML 4.01 standard and the HTML 5.0 proposal
o MPEG-4 standarden o the MPEG-4 standard
o System for providing distraction-free content in a Flash-based gaming environment (US patent application number 2010/0175058 Al) o System for providing distraction-free content in a Flash-based gaming environment (US patent application number 2010/0175058 Al)
o Systemer for fjemspillingopplevelser på Internett: o Systems for remote gaming experiences on the Internet:
o OnLive o OnLive
Eksisterende teknikk er hovedsaklig fokusert på å presentere grafikk og multimedia for Web browsere (f.eks. Silverlight, Flash, HTML og MPEG4), og tilby ren fjernspilling over Internett (f.eks. OnLive). Et problem med eksisterende teknikk, i forhold til å publisere dataspillaktige nettsider (dvs. nettsider som ser ut som og fungerer som "main title" dataspill gjør idag), er at dataspillressurser (dvs. 3D modeller, teksturer, filmer, script, kode, med videre) har stor filstørrelse (ofte flere gigabyte). Det medfører videre slike problemstillinger som at det vil ta lang tid å laste ned filene (f.eks. 10 GB tar circa en time å laste ned på et 3 Mbps nettverk), filene vil ta opp mye pass på brukerens datamaskin (f.eks. 100 nettsteder med 10 GB hver, vil ta opp 1 TB diskplass), synkronisering av innholdet vil også bli et problem etterhvert som det oppdateres av innholdsleverandøren, og trygging av innholdet for barn og ungdom er et videre, og vedvarende, problem for Internett innhold (dvs. sikre at barn og ungdom ikke blir eksponert for skadelig innhold, som f.eks. pornografi, vold, "sexual predators," med videre). Fjernspillingsløsninger (som f.eks. OnLive) omgår mange av disse problemstillingene ved at dataspillene eksekverer på servere, slik at en tynnklient programvare applikasjon brukes for å spille dataspillene over Internett (dvs. en audiovisuell strøm sendes fra dataspillene, og en "user input" strøm sendes fra tynnklienten). Fjernspillingsløsninger er dog helt avhengige av Internettforbindelsen i mellom serveren og sluttbruker. Overføringshastigheten vil begrense kvaliteten på den audiovisuelle strømmen. Forsinkelsesraten ("latency") vil medføre treghet i spillopplevelsen (f.eks. at spillkarakteren hopper ett sekund etter at tastatur "h" ble trykt). Hver for seg er de eksisterende teknikkene for svake i forhold til å virkeliggjøre høykvalitets dataspillopplevelser på Internett. Vi kjenner ikke til eksisterende teknikker for kombinering av de nevnte teknikkene for å virkeliggjøre høykvalitets dataspillopplevelser på Internett. Existing technology is mainly focused on presenting graphics and multimedia for Web browsers (e.g. Silverlight, Flash, HTML and MPEG4), and offering pure remote playback over the Internet (e.g. OnLive). A problem with existing techniques, in relation to publishing computer game-like websites (i.e. websites that look like and function like "main title" computer games do today), is that computer game resources (i.e. 3D models, textures, movies, scripts, code, etc.) have a large file size (often several gigabytes). It also causes problems such as that it will take a long time to download the files (e.g. 10 GB takes approximately an hour to download on a 3 Mbps network), the files will take up a lot of time on the user's computer (e.g. .100 websites with 10 GB each, will take up 1 TB of disk space), synchronization of the content will also become a problem as it is updated by the content provider, and securing the content for children and young people is a further, and persistent, problem for Internet content (i.e. ensure that children and young people are not exposed to harmful content, such as pornography, violence, "sexual predators," etc.). Remote gaming solutions (such as OnLive) circumvent many of these issues by having the computer games execute on servers, so that a thin client software application is used to play the computer games over the Internet (i.e. an audiovisual stream is sent from the computer games, and a "user input" power is sent from the thin client). However, remote gaming solutions are completely dependent on the Internet connection between the server and the end user. The transfer rate will limit the quality of the audiovisual stream. The delay rate ("latency") will cause slowness in the gaming experience (eg the game character jumps one second after keyboard "h" was pressed). Individually, the existing techniques are too weak to realize high-quality computer gaming experiences on the Internet. We are not aware of existing techniques for combining the aforementioned techniques to realize high-quality computer gaming experiences on the Internet.
OPPSUMMERING AV OPPFINNELSEN SUMMARY OF THE INVENTION
Det er en hensikt med den foreliggende oppfinnelsen å tilveiebringe et system for å løse de ovenfor nevnte problemene i tidligere kjent teknikk. It is an aim of the present invention to provide a system for solving the above-mentioned problems in prior art.
Trekkene definert i de selvstendige kravene vedlagt karakteriserer dette systemet. The features defined in the independent requirements attached characterize this system.
Den foreliggende oppfinnelsen tilveiebringer et system som består av en Web browser plug-in (eller Web browser, media player, eller lignende) som inneholder et presentasjonssystem for multimedia, 2D/3D grafikk, dataspill, og fjernspilling; en desktop applikasjon; og/eller et eget klient program/vindu for fjernspilling, som også kan inneholde presentasjonssystemet. The present invention provides a system that consists of a Web browser plug-in (or Web browser, media player, or the like) that contains a presentation system for multimedia, 2D/3D graphics, computer games, and remote gaming; a desktop application; and/or a separate client program/window for remote playback, which can also contain the presentation system.
KORT BESKRIVELSE AV FIGURENE BRIEF DESCRIPTION OF THE FIGURES
Oppfinnelsen vil i det videre bli beskrevet i detalj med henvisninger til figurene, hvor: The invention will further be described in detail with reference to the figures, where:
FIG. 1 viser systemarkitekturen til multimedia presentasjonssystemet som brukes i vår Web browser plug-in. FIG. 1 shows the system architecture of the multimedia presentation system used in our Web browser plug-in.
FIG. 2 viser API'en ("application programming interface") til vår Web browser plug-in. FIG. 2 shows the API ("application programming interface") of our Web browser plug-in.
FIG. 3 viser elementene i filformatet til vår Web browser plug-in. FIG. 3 shows the elements of the file format of our Web browser plug-in.
FIG. 4 viser et brukergrensesnitt for "tryggere innhold." FIG. 4 shows a user interface for "safer content."
FIG. 5 viser et brukergrensesnitt for en fjernspillingsklient programvare applikasjon. FIG. 5 shows a user interface for a remote play client software application.
FIG. 6 viser et brukergrensesnitt for interaktiv fjernspilling av dataspill over Internett. FIG. 6 shows a user interface for interactive remote playing of computer games over the Internet.
FIG. 7 viser et brukergrensesnitt for en "desktop" programvare applikasjon. FIG. 7 shows a user interface for a "desktop" software application.
FIG. 8 viser innholdet i en eksempel GXML fil ("MyScene.gxml"). FIG. 8 shows the contents of an example GXML file ("MyScene.gxml").
FIG. 9 viser innholdet i en eksempel Java fil for GXML filen ovenfor ("MyScene.java"). FIG. 9 shows the contents of an example Java file for the GXML file above ("MyScene.java").
FIG. 10 viser innholdet i en eksempel GXML 3D grafikk stage. FIG. 10 shows the contents of an example GXML 3D graphics stage.
FIG. 11 viser innholdet i en eksempel Java fil for en GXML dataspillside ("MyGame.java"). FIG. 11 shows the contents of an example Java file for a GXML computer game page ("MyGame.java").
DETALJERT BESKRIVELSE DETAILED DESCRIPTION
Idéen med oppfinnelsen går hovedsaklig ut på å studere om det er mulig å lage nettsider på samme måte som dataspill lages idag. Dagens "main title" dataspill representerer det beste innen grafikk og multimedia opplevelser på dagens datamaskiner. Nettsider på Internett har tradisjonelt sett benyttet Web browser plug-in'er for presentasjon av grafikk og multimedia. Adobe Flash har hatt den sterkeste markedsposisjonen siden slutten av 90-tallet. Microsoft Silverlight er en utfordrer som har kommet til de senere årene. Det eksisterer mange andre Web browser plug-in'er for ulike formål (f.eks. QuickTime, WildTangent, Viewpoint, Cult 3D, PDF Viewers, med flere). Eksisterende Web browser plug-in'er er meget begrenset i forhold til å tilby brukeropplevelser av samme kvalitet som "main title" dataspill. Teknisk sett er det ingen grunn til at et dataspill ikke skal kunne eksekvere like bra i en Web browser plug-in The idea behind the invention is mainly to study whether it is possible to create websites in the same way as computer games are created today. Today's "main title" computer games represent the best in graphics and multimedia experiences on today's computers. Websites on the Internet have traditionally used Web browser plug-ins for the presentation of graphics and multimedia. Adobe Flash has had the strongest market position since the late 90s. Microsoft Silverlight is a contender that has arrived in recent years. Many other Web browser plug-ins exist for various purposes (eg QuickTime, WildTangent, Viewpoint, Cult 3D, PDF Viewers, and more). Existing Web browser plug-ins are very limited in terms of offering user experiences of the same quality as "main title" computer games. Technically speaking, there is no reason why a computer game should not be able to execute just as well in a Web browser plug-in
som i et vindu (f.eks. i Windows). Dataspill eksekverer typisk som en egen prosess med et eget vindu i Windows. Dataspillet kan starte tråder, allokere minne, bruke DirectX, med as in a window (eg in Windows). Computer games typically execute as a separate process with a separate window in Windows. The computer game can start threads, allocate memory, use DirectX, etc
videre. En Web browser plug-in eksekverer som regel i samme prosess som Web browseren og kan starte tråder, allokere minne, og bruke DirectX på samme måte som en applikasjon. Overføring av ressursfiler (3D modeller, teksturer, med videre) er et åpenbart problem. Det er også klart at synkronisering er et problem. En av hovedidéene med oppfinnelsen er dertil å løse problemene med overføring og synkronsiering av ressursfiler med å tilby brukerne en "desktop applikasjon" som eksekverer på brukerens maskin som en tjeneste (dvs. i "system tray" eller service). Når brukeren er på en (ordinær HTML) nettside som tilbyr Web browser-baserte dataspill opplevelser, kan brukeren f.eks. velge å prøve dataspillet med fjernspilling, eller velge å laste ned dataspillet til egen datamaskin. Dersom brukeren velger nedlasting til egen datamaskin, vil Web browser plug-in'en kommunisere dette til desktop applikasjonen, som starter nedlastingsprosessen (forutsatt at brukeren har installert Web browser plug-in further. A Web browser plug-in usually executes in the same process as the Web browser and can start threads, allocate memory, and use DirectX in the same way as an application. Transferring resource files (3D models, textures, etc.) is an obvious problem. It is also clear that synchronization is a problem. One of the main ideas of the invention is to solve the problems of transferring and synchronizing resource files by offering users a "desktop application" that executes on the user's machine as a service (ie in the "system tray" or service). When the user is on a (ordinary HTML) website that offers Web browser-based computer game experiences, the user can e.g. choose to try the computer game with remote play, or choose to download the computer game to your own computer. If the user chooses to download to their own computer, the Web browser plug-in will communicate this to the desktop application, which starts the download process (provided the user has installed the Web browser plug-in
komponenten og desktop applikasjonen). Desktop applikasjonen vil først hente en XML liste over alle filene som skal lastes ned og/eller synkroniseres, hvorpå filene blir lastet ned. Det kan konfigureres hvor mye båndbredde som skal brukes og lignende. Filene kan naturligvis komprimeres (f.eks. zip/rar og lignende) og krypteres (f.eks. RSA og lignende). Med denne løsningen, kan brukeren lukke Web browseren eller navigere til andre sider mens dataspill innholdet lastes ned. Når desktop applikasjonen er ferdig med å laste ned filene, vil det gis beskjed til brukeren (f.eks. med et popup vindu nær system tray). Brukeren kan da starte dataspillet ved å gå tilbake til nettsiden til dataspillet, eller åpne desktop applikasjonen ifra system tray (eller startmenyen e.l.) og starte dataspillet derfra. Desktop applikasjonen vil inneholde en liste over alle brukerregistrerte dataspill nettsteder, hvor brukeren kan starte lokale dataspill i Web browser (eller i lokal klient), starte fjernspilling av dataspillene, samt administrere dataspillene (slette, allokere, synkronisere, komprimere, backup, med videre). Desktop applikasjonen kan også inkludere en rekke ytterligere funksjonaliteter, som f.eks.' the component and the desktop application). The desktop application will first retrieve an XML list of all the files to be downloaded and/or synchronized, after which the files will be downloaded. The amount of bandwidth to be used and similar can be configured. The files can of course be compressed (e.g. zip/rar and the like) and encrypted (e.g. RSA and the like). With this solution, the user can close the Web browser or navigate to other pages while the computer game content is being downloaded. When the desktop application has finished downloading the files, the user will be notified (e.g. with a pop-up window near the system tray). The user can then start the computer game by returning to the website of the computer game, or open the desktop application from the system tray (or the start menu etc.) and start the computer game from there. The desktop application will contain a list of all user-registered computer game websites, where the user can start local computer games in the Web browser (or in a local client), start remote playing of the computer games, as well as manage the computer games (delete, allocate, synchronize, compress, backup, etc.) . The desktop application can also include a number of additional functionalities, such as
"instant messaging, remote desktops, FTP verktøy, cache, licenses, heads-up display tools," med videre. Fjernspilling vil typisk foregå i Web browser plug-in'en, i et eget vindu i desktop applikasjonen, eller i en egen fjernspillingsapplikasjon. Et alvorlig problem på Internett idag er at barn og ungdom er utsatt for skadelige opplevelser. Ifølge Medietilsynets rapport om "instant messaging, remote desktops, FTP tools, cache, licenses, heads-up display tools," and so on. Remote play will typically take place in the Web browser plug-in, in a separate window in the desktop application, or in a separate remote play application. A serious problem on the Internet today is that children and young people are exposed to harmful experiences. According to the Norwegian Media Authority's report on
barn og digitale medier 2010, har 14% av barn og ungdom (9 til 16 år) mottatt seksuelle henvendelser på Internett det siste året i Norge. 22% av barna og ungdommene har vært på pornografiske nettsteder. 7% har blitt tilsendt pornografiske bilder og video'er av noen på Internett. 8% har blitt spurt om de kunne sende nakenbilder av seg selv via Internett det siste året. 23% har blitt spurt om de kunne sende personlig informasjon om seg selv på Internett, og 5% sendte denne informasjonen. Flere enn 60% av barna og ungdommene har fått opplæring innen sikker bruk av Internett. Det eksisterer alvorlige problemer relatert til barn og ungdoms bruk av dataspill. 30% av barn (9 til 12 år) og 57% av ungdom (13 til 16 år) har spilt dataspill som har en aldersgrense på 18 år og eldre i Norge. Det er mange fremgangsmåter for å få tilgang til slike spill, som f.eks. piratkopiering, nedlastning, med videre. Det er underlig at eksisterende Internett produkter ikke inkluderer teknikker for å children and digital media 2010, 14% of children and young people (9 to 16 years) have received sexual requests on the Internet in the last year in Norway. 22% of children and young people have been to pornographic websites. 7% have been sent pornographic images and videos by someone on the Internet. 8% have been asked if they could send nude pictures of themselves via the Internet in the past year. 23% have been asked if they could send personal information about themselves on the Internet, and 5% sent this information. More than 60% of children and young people have received training in safe use of the Internet. There are serious problems related to children's and young people's use of computer games. 30% of children (9 to 12 years) and 57% of young people (13 to 16 years) have played computer games that have an age limit of 18 years and older in Norway. There are many ways to access such games, such as piracy, downloading, etc. It is strange that existing Internet products do not include techniques to
beskytte barn og ungdom mot slikt. En av hovedidéene med våre teknikker er at vi vil kreve at alt innhold blir gitt en minimums aldersgrense ("age rating"). Innholdsleverandører som ikke "rater" innholdet eller som "rater" galt, vil bli nektet å bruke våre teknikker. Vår Web browser plug-in vil ("default") blokkere alt innhold som er ratet 12 år og eldre. Aldersbevis må fremlegges for å få tilgang til ratet innhold (f.eks. førerkort og/eller tester). Aldersbevis og identifikasjon må videre også fremlegges for å få tilgang til "instant messaging" og slike kommunikasjonsfunksjonaliteter. Denne fremgangsmåten vil sikre at alt innhold distribuert via våre teknikker er trygt for barn og ungdom. Det eksisterer en lang rekke ulike Web filter for å blokkere skadelig innhold på Internett. Problemet med disse er at de må installeres på brukerens maskin. Mange foreldre kjenner ikke til problemet eller at Web filtere finnes, vår teknikk har den fordelen at den fungerer uavhengig av foreldrenes kunnskaper og vilje til å beskytte barn og ungdom imot skadelige opplevelser på Internett. Et annet problem med de eksisterende teknikkene er at Web filter ikke fungerer med alle Web browsere. Ungdommer kan installere disse (f.eks. Google Chrome) for å omgå Web filterene. vår teknikk har ikke denne begrensningen (ettersom Web browser plug-in'en fungerer likt i alle Web browsere). Et problem med eksisterende fjernspillingsteknikker (f.eks. OnLive) er at de er begrenset av Internettforbindelsen (dvs. overføringshastighet, "latency," quality of service, etc). Mange brukere av dataspill bruker ofte høy skjermoppløsning (ofte high definition), flere skjermer, og i senere tid også stereoskopisk visning (f.eks. med 3D briller med "active shutters" eller "polarized" teknikker). Sanntids overføring av slike audiovisuelle strømmer over Internett protect children and young people from such. One of the main ideas with our techniques is that we will require all content to be given a minimum age rating ("age rating"). Content providers who do not "rate" their content or who "rate" incorrectly will be denied access to our techniques. Our Web browser plug-in will ("default") block all content rated 12 years and older. Proof of age must be provided to access rated content (e.g. driving license and/or tests). Proof of age and identification must also be presented to gain access to "instant messaging" and such communication functionalities. This procedure will ensure that all content distributed via our techniques is safe for children and young people. There exists a wide range of different Web filters to block harmful content on the Internet. The problem with these is that they have to be installed on the user's machine. Many parents do not know about the problem or that Web filters exist, our technique has the advantage that it works independently of the parents' knowledge and willingness to protect children and young people against harmful experiences on the Internet. Another problem with the existing techniques is that Web filters do not work with all Web browsers. Young people can install these (eg Google Chrome) to bypass the Web filters. our technique does not have this limitation (as the Web browser plug-in works the same in all Web browsers). A problem with existing remote playback techniques (eg OnLive) is that they are limited by the Internet connection (ie transfer speed, "latency," quality of service, etc). Many users of computer games often use high screen resolution (often high definition), multiple screens, and more recently also stereoscopic viewing (eg with 3D glasses with "active shutters" or "polarized" techniques). Real-time transmission of such audiovisual streams over the Internet
krever svært høy båndbredde. Dataspill har også ofte en handling som krever rask reaksjon fra brukeren. Treghet i nettverksforbindelsen ("latency") vil forsinke denne opplevelsen, slik at mange dataspill (f.eks. Trackmania) ikke blir brukbare med fjernspilling. I tillegg kommer andre problemer, som f.eks. pakketap og lignende. Våre teknikker legger opp til å dra nytte av en kombinasjon (eller en "hybrid-løsning") av det å tilby dataspill nettsted opplevelser i requires very high bandwidth. Computer games also often have an action that requires a quick reaction from the user. Latency in the network connection will delay this experience, so that many computer games (e.g. Trackmania) will not be usable with remote play. In addition, there are other problems, such as packet loss and the like. Our techniques aim to take advantage of a combination (or a "hybrid solution") of providing video game website experiences in
Web browseren med en egenutviklet Web browser plug-in, og det å tilby dataspill nettsted opplevelser i (og utenfor) Web browseren med fjernspilling i (og utenfor) Web browser plug-in'en. Vår løsning legger opp til å bruke vår Web browser plug-in, desktop applikasjon, og fjernspillingsklient på sluttbrukerens datamaskin, samt at dataspill lagres og eksekverer på servere. Hovedidéen med vår løsning er at brukere med ordinær Internett forbindelse (etter dagens standard) kan prøve dataspillet med fjernspilling (for å se om det er noe som de er interesserte i å bruke mer tid på). Dersom de er interesserte kan de også velge å laste ned dataspillet til egen datamaskin for bedre kvalitet. Løsningen kan også lett brukes for å lage "hybrid-spill" hvor deler av dataspillet er laget med fjernspilling (f.eks. "game environment, windows, portals, displays," med videre) og andre deler er laget med lokalt lagret innhold.- The Web browser with an in-house developed Web browser plug-in, and offering computer game website experiences in (and outside) the Web browser with remote gaming in (and outside) the Web browser plug-in. Our solution involves using our Web browser plug-in, desktop application, and remote gaming client on the end user's computer, as well as having computer games stored and executed on servers. The main idea of our solution is that users with an ordinary Internet connection (by today's standards) can try the computer game with remote play (to see if it is something they are interested in spending more time on). If they are interested, they can also choose to download the computer game to their own computer for better quality. The solution can also easily be used to create "hybrid games" where parts of the computer game are made with remote play (e.g. "game environment, windows, portals, displays," etc.) and other parts are made with locally stored content. -
Hovedidéen i forhold til industriell utnyttelse i Norge er hovedsaklig i forhold til å utvikle og tilby "dataspill nettsteder," som benytter vår Web browser plug-in, desktop applikasjon, og fjernspillingsteknikker for å produsere og tilby nettsteder (på Internett), som ser ut som og fungerer på samme måte som (sett i forhold til brukeropplevelsen) "main title" dataspill gjør idag. Per idag benyttes hovedsaklig tekst, video, og enkle multimedieinnhold for utvikling av nettsteder. Vi tror at dataspill-baserte opplevelser er et naturlig neste steg, i fremtiden, for innhold på Internett/Web. Våre teknikker representerer spesifikke fremgangsmåter for å tilby dataspill nettsteder. Vi planlegger å tilby produkter, tjenester, med videre, for å skape slike dataspill nettsteder for bedrifter, organisasjoner, privatpersoner, med videre, i Norge. Web browser plug-in programvaren er illustrert i FIG. 1, som viser systemarkitekturen til multimedia presentasjonssystemet som brukes i vår Web browser plug-in. Selve plug-in'en er implementert som en ActiveX kontroll (ref. Microsoft) for Microsoft Internet Explorer 3.0 og senere versjoner, samt Netscape NSAPI (eller Gecko) for alle andre Web browsere (f.eks. Firefox, Opera, Google Chrome, Safari, med flere). Andre API'er kan også enkelt benyttes, våre teknikker er ikke begrenset til et spesifikt operativsystem eller maskinvareenhet, men er tilgjengelig for alle typer operativsystemer, maskinvareenheter, nettverk, med videre. Vi beskriver detaljene i figurene senere i de etterfølgende avsnittene. FIG. 2 illustrerer API'en som benyttes for å lage (eller programmere) innholdet som vises i vår Web browser plug-in. På samme måte som at Microsoft Silverlight benytter Microsoft .NET API for programmering av innholdet som vises i Silverlight, har også vår Web browser plug-in en tilsvarende API. I Adobe Flash benyttes "scriptspråket" Actionscript og en Flash script API. vår plug-in bruker programmeringsspråket Java 2.0 for programmering av innholdet (merk at selve plug-in'en ikke er laget i Java). Andre programmeringsspråk og script kan bli benyttet i fremtiden. FIG. The main idea in relation to industrial exploitation in Norway is mainly in relation to developing and offering "computer game websites," which use our Web browser plug-in, desktop application, and remote gaming techniques to produce and offer websites (on the Internet), which look which and works in the same way as (in relation to the user experience) "main title" computer games do today. As of today, text, video and simple multimedia content are mainly used for the development of websites. We believe that computer game-based experiences are a natural next step, in the future, for content on the Internet/Web. Our techniques represent specific practices for providing computer game websites. We plan to offer products, services, etc., to create such computer game websites for companies, organizations, individuals, etc., in Norway. The web browser plug-in software is illustrated in FIG. 1, which shows the system architecture of the multimedia presentation system used in our Web browser plug-in. The plug-in itself is implemented as an ActiveX control (ref. Microsoft) for Microsoft Internet Explorer 3.0 and later versions, as well as Netscape NSAPI (or Gecko) for all other Web browsers (e.g. Firefox, Opera, Google Chrome, Safari, with more). Other APIs can also be easily used, our techniques are not limited to a specific operating system or hardware device, but are available for all types of operating systems, hardware devices, networks, etc. We describe the details of the figures later in the following paragraphs. FIG. 2 illustrates the API used to create (or program) the content displayed in our Web browser plug-in. In the same way that Microsoft Silverlight uses the Microsoft .NET API for programming the content displayed in Silverlight, our Web browser plug-in also has a corresponding API. In Adobe Flash, the "scripting language" Actionscript and a Flash script API are used. our plug-in uses the Java 2.0 programming language for programming its content (note that the plug-in itself is not made in Java). Other programming languages and scripts may be used in the future. FIG.
3 illustrerer elementene (eller bestanddelene) i filformatet til innholdet som vises i vår Web browser plug-in. Microsoft Silverlight benytter filformatet XAML, som faktisk er definert helt ut ifra API'en (deklarativt). Adobe Flash benytter filformatene SWF og MXML Vår format er et eget format i XML- og binaerform (f.eks. vårt norske patent nr. 318686). FIG. 3 illustrerer navnet på XML-elementene. Attributter og funksjoner beskrives senere i de etterfølgende 3 illustrates the elements (or components) in the file format of the content displayed in our Web browser plug-in. Microsoft Silverlight uses the XAML file format, which is actually defined entirely based on the API (declaratively). Adobe Flash uses the file formats SWF and MXML Our format is a separate format in XML and binary form (eg our Norwegian patent no. 318686). FIG. 3 illustrates the naming of the XML elements. Attributes and functions are described later in the following
avsnittene. FIG. 4 illustrerer en "dialogboks" (eller vindu) som vises når brukeren navigerer til en nettside som inneholder "ratet" innhold som har en høyere aldersgrense enn det plug-in'en er konfigurert for (f.eks. innhold er ratet til 18 års aldersgrense). Brukeren kan velge å vise siden uten det ratede innholdet, logge inn for å se ratet innhold (ved aldersbevis), eller å avbryte lastingen. FIG. 5 illustrerer brukergrensesnittet til fjernspillingsklienten. Brukeren velger et dataspill (eller server med dataspill), konfigureringer (f.eks. brukernavn, passord, bitrater for audiovisuell komprimering, skalering av bildestørrelse, rate, port, pakkestørrelse og lignende) og klikker "Koble til" for å koble til serveren ("Oppdater" oppdaterer listen over servere/dataspill). FIG. 6 illustrerer brukergrensesnittet (eller vinduet) som vises etter at the paragraphs. FIG. 4 illustrates a "dialog box" (or window) that appears when the user navigates to a web page that contains "rated" content that has a higher age limit than the plug-in is configured for (e.g. content is rated at 18 years age limit). The user can choose to display the page without the rated content, log in to view rated content (with proof of age), or to cancel the loading. FIG. 5 illustrates the user interface of the remote play client. The user selects a computer game (or server with computer games), configurations (e.g. username, password, audio-visual compression bitrates, image size scaling, rate, port, packet size, etc.) and clicks "Connect" to connect to the server ( "Refresh" updates the list of servers/computer games). FIG. 6 illustrates the user interface (or window) that appears after that
fjernspillingsklienten har koblet til serveren. Dette vinduet viser videobildene fra dataspillet i klientområdet ("Spillvisning") til vinduet. Brukerinputt (tastatur, mus, "game pad, joystick," med videre) fanges opp og sendes til serveren (i sanntid). Brukergrensesnittet i FIG. 6 kan være et eget vindu, en endring av det forrige grensesnittet, fullskjerm, eget program, eller lignende. FIG. 7 illustrerer "desktop applikasjonen," som typisk er tilgjengelig i system tray. the remote play client has connected to the server. This window displays the video images from the computer game in the client area ("Game View") of the window. User input (keyboard, mouse, "game pad, joystick," etc.) is captured and sent to the server (in real time). The user interface in FIG. 6 can be a separate window, a change to the previous interface, full screen, separate program, or the like. FIG. 7 illustrates the "desktop application," which is typically available in the system tray.
Denne applikasjonen kan også være som en tjeneste i operativsystemet (f.eks. NT service) med tilhørende grensesnitt i startmenyen, i kontrollpanelet, eller lignende. FIG. 7 inneholder menyer, verktøylinje, og "tabs," men dette kan variere mellom implementasjoner. "Game sites" (navnet kan naturligvis endres) viser en liste over dataspill som er registrert. Denne listen brukes (av brukeren) til å administrere lokalt nedlastede spil I ressurser, starte disse spillene i Web browser, starte fjernspilling i Web browser eller fjernspillingsklient (FIG. 5), og lignende. Brukergrensesnittene kan også inneholde annet eller benytte annen "layout." vår industrielle utnyttelse har naturligvis en utførelsesform som består av en Web browser plug-in (eller Web browser, media player, eller lignende) som inneholder systemet i FIG. 1 til 3, for avspilling av lokale dataspill og fjernspilling, desktop applikasjon, og et eget klient program/vindu for fjernspilling (som også eventuelt kan inneholde systemet i FIG. 1 til 3). Det er mange fordeler med våre teknikker (og utførelsesformer): Nettverksproblemene med fjernspilling overkommes (på en brukervennlig måte) ved at brukerne kan "prøve" ut spillet med fjernspilling (eller bare bruke fjernspilling dersom brukeren er fornøyd med det), og så laste ned dataspillet lokalt dersom det er interessant og ønskelig. Hybrid-løsninger blir også mulige med vår løsning, hvor fjernspilling og lokale dataspillressurser kan kombineres for å lage og tilby en best mulig brukeropplevelse som er tilpasset datamaskinen til brukeren og nettverkskapasiteten (samt kostnadseffektive betraktninger ovenfor innholdsleverandører), vår løsning gjør det også lett å kombinere dette med andre multimedia, grafikk, med videre for å lage "in-game heads-up displays," tekstlig innhold, og lignende i dataspillopplevelsene. This application can also be a service in the operating system (e.g. NT service) with an associated interface in the start menu, in the control panel, or similar. FIG. 7 contains menus, toolbars, and "tabs," but this may vary between implementations. "Game sites" (the name can of course be changed) shows a list of computer games that have been registered. This list is used (by the user) to manage locally downloaded games in resources, start these games in the Web browser, start remote play in the Web browser or remote play client (FIG. 5), and the like. The user interfaces may also contain other or use a different "layout." our industrial exploitation naturally has an embodiment consisting of a Web browser plug-in (or Web browser, media player, or the like) that contains the system in FIG. 1 to 3, for playback of local computer games and remote gaming, desktop application, and a separate client program/window for remote gaming (which may also possibly contain the system in FIG. 1 to 3). There are many advantages to our techniques (and embodiments): The network issues of remote play are overcome (in a user-friendly way) by allowing users to "try out" the game with remote play (or just use remote play if the user is happy with it), and then download the computer game locally if it is interesting and desirable. Hybrid solutions are also possible with our solution, where remote gaming and local computer game resources can be combined to create and offer the best possible user experience that is adapted to the user's computer and network capacity (as well as cost-effective considerations for content providers), our solution also makes it easy to combine this with other multimedia, graphics, etc. to create "in-game heads-up displays," textual content, and the like in computer game experiences.
FIG. 1 illustrerer arkitekturen til presentasjonssystemet som benyttes av Web browser plug-in'en og eventuelt av fjernspillingsklienten. Web browser plug-in'en kan i tillegg til systemet inneholde egne funksjonaliteter som også vil variere mellom plattformer, operativsystemer, og Web browsere (f.eks. programmatisk grensesnitt til JavaScript i HTML, HTML OBJECT og EMBED tagger, oppdatering- og installeringsfunksjonalitet, med videre). Web browser plug-in, presentasjonssystemet, fjernspillingsklienten og desktop applikasjonen er implementert hovedsaklig i C++, og C hvor det er nødvendig. Presentasjonssystemet er konseptuelt laget av en programmerer som benytter et integrert utviklingsverktøy ("integrated development environment (IDE)") (1000) for å utvikle en multimedia applikasjon (Web browser plug-ins, heads-up displays, og/eller dataspill) (1001). Multimedia applikasjonen inkluderer typisk en Java 2.0 virtuell maskin (som f.eks. Sun Java 2.0 Micro Edition virtuell maskin) (1002). Det er også mulig å benytte andre virtuelle maskiner eller "script engines" (f.eks. Lua). GxmlSG FIG. 1 illustrates the architecture of the presentation system used by the Web browser plug-in and possibly by the remote play client. In addition to the system, the Web browser plug-in can contain its own functionalities that will also vary between platforms, operating systems and Web browsers (e.g. programmatic interface to JavaScript in HTML, HTML OBJECT and EMBED tags, update and installation functionality, etc.). The web browser plug-in, the presentation system, the remote play client and the desktop application are mainly implemented in C++, and C where necessary. The presentation system is conceptually created by a programmer who uses an integrated development tool ("integrated development environment (IDE)") (1000) to develop a multimedia application (Web browser plug-ins, heads-up displays, and/or computer games) (1001 ). The multimedia application typically includes a Java 2.0 virtual machine (such as the Sun Java 2.0 Micro Edition virtual machine) (1002). It is also possible to use other virtual machines or "script engines" (eg Lua). GxmlSG
(1003) inneholder C++ klassene til "scene grafen." GxmlShow (1004) inneholder klassene (1003) contains the C++ classes for the "scene graph." GxmlShow (1004) contains the classes
til hovedmotoren, spillmotoren, renderingkoden, audiovisuell funksjonalitet, og systemkode. GxmllO (1006) inneholder klassene for lesing og skriving av GXML filer (dvs. filformatet) og tilhørende verktøykode. GxmlJNI (1005) inneholder Java og C/C++ kode for broen imellom Java og C++ koden (dvs. "Java native interface (JNI)," ref. Java 2.0). GxmlSystem (1007) inneholder systemspesifikk funksjonalitet. Presentasjonssystemet består av delene (1003) to the main engine, game engine, rendering code, audiovisual functionality, and system code. GxmllO (1006) contains the classes for reading and writing GXML files (ie the file format) and associated utility code. GxmlJNI (1005) contains Java and C/C++ code for the bridge between the Java and C++ code (ie "Java native interface (JNI)," ref. Java 2.0). GxmlSystem (1007) contains system-specific functionality. The presentation system consists of the parts (1003)
til (1007). Delene (1000) til (1002) er tatt med for å lette forståelsen, og er ikke ment for å avgrense oppfinnelsen til bare utviklingsprosessen for å lage en slik multimedia applikasjon. Ulike GxmlJNI (1005) kodebiblioteker må utvikles spesielt for hver enkelt virtuelle maskin. to (1007). Parts (1000) to (1002) are included to facilitate understanding, and are not intended to limit the invention to just the development process for creating such a multimedia application. Different GxmlJNI (1005) code libraries must be developed specifically for each virtual machine.
FIG. 2 illustrerer APFen ("application programming interface") til presentasjonssystemet (dvs. API'en som innholdsutviklere benytter for å programmere innholdet som skal vises). Vi har brukt Java 2.0 pakke- og klassekonvensjoner i FIG. 2, men andre programmerings-og scriptspråk kan også benyttes med tilsvarende pakker og klasser. GxmlJNI (1005) kan typisk genereres automatisk ifra denne API'en (dvs. GxmlJNI er en wrapper i mellom C++ FIG. 2 illustrates the APF ("application programming interface") of the presentation system (ie the API that content developers use to program the content to be displayed). We have used Java 2.0 package and class conventions in FIG. 2, but other programming and scripting languages can also be used with corresponding packages and classes. GxmlJNI (1005) can typically be automatically generated from this API (ie GxmlJNI is a wrapper between C++
og Java). Vi vil heretter kalle APFen for "GXML API" for å lette diskusjonen, men navnet kan endres i fremtiden. GXML API består (på toppnivå) av tradisjonell multimedia funksjonalitet i pakkene (2000) til (2004). Tilsvarende funksjonalitet finnes i Microsoft Silverlight og Adobe Flash. Pakkene (2005) til (2008) inneholder klasser for å lage dataspillopplevelser. Microsoft XNA har tilsvarende funksjonaliteter (men ikke Silverlight og Flash). Pakken gxml.sg (2000) inneholder klasser som inneholder og administrerer GXML scene grafen, samt Web browser (Browser). Pakken gxml.show (2001) inneholder klasser som administrerer hovedmotoren (Engine), og renderingen (de øvrige klassene). Pakken gxml.av (2002) inneholder audiovisuell funksjonalitet. Pakken gxml.sys (2003) inneholder system funksjonaliteter. Pakken gxml.graphics2d (2004) inneholder 2D grafiske funksjonaliteter. Pakken gxml.game (2005) inneholder dataspillmotoren og relaterte funksjonaliteter. Pakken gxml.graphics3d (2006) inneholder 3D grafiske funksjonaliteter. Pakken gxml.game.input (2007) inneholder bruker input klasser (tastatur, mus, game pad, direct input, med videre). Pakken gxml.game.math and Java). We will hereafter call the APF the "GXML API" for ease of discussion, but the name may change in the future. The GXML API consists (at the top level) of traditional multimedia functionality in the packages (2000) to (2004). Corresponding functionality is found in Microsoft Silverlight and Adobe Flash. The (2005) to (2008) packages contain classes for creating video game experiences. Microsoft XNA has similar functionalities (but not Silverlight and Flash). The package gxml.sg (2000) contains classes that contain and manage the GXML scene graph, as well as the Web browser (Browser). The package gxml.show (2001) contains classes that manage the main engine (Engine) and the rendering (the other classes). The package gxml.av (2002) contains audiovisual functionality. The package gxml.sys (2003) contains system functionalities. The package gxml.graphics2d (2004) contains 2D graphics functionalities. The gxml.game (2005) package contains the computer game engine and related functionalities. The package gxml.graphics3d (2006) contains 3D graphics functionalities. The package gxml.game.input (2007) contains user input classes (keyboard, mouse, game pad, direct input, etc.). The package gxml.game.math
(2008) inneholder matematikk funksjonaliteter. Ordinære multimediapresentasjoner arver gxml.sg.Scene klassen. Dataspill-baserte presentasjoner arver gxml.game.Game klassen. FIG. 8 illustrerer en eksempel GXML fil for ordinært (dvs. 2D og 3D Internett multimedia innhold). Filen inneholder en "movie" med en "scene" som inneholder et bilde, en knapp, og en frihåndstegning ("path"). FIG. 9 illustrerer en eksempel Java fil for interaksjonskode for GXML-filen i FIG. 8. Koden peker Web browser'en til "http://ntnu.no" når brukeren klikker på knappen. FIG. 10 illustrerer en eksempel "stage" (i en scene) for 3D grafikk. Stagen er lagret i filen "can.x" som en DirectX X-fil (andre 3D filformater kan også benyttes). FIG. 11 illustrerer en eksempel Java file for en dataspill nettside. Eksemplet inneholder koden for å vise en blå bakgrunn. Koden peker Web browser'en til "http://ntnu.no" når brukeren klikker "Back-knappen" på game pad'en. Både "raster" og "ray-tracing" teknikker kan benyttes. FIG. 3 illustrerer XML-elementene i vårt XML-baserte GXML-format. Formatet kan lagres i binær form også (se f.eks. norsk patent nr. 318686). GXML-formatet (XML-basert) starter (2008) contains mathematics functionalities. Ordinary multimedia presentations inherit the gxml.sg.Scene class. Video game-based presentations inherit the gxml.game.Game class. FIG. 8 illustrates an example GXML file for ordinary (ie 2D and 3D Internet multimedia content). The file contains a "movie" with a "scene" containing an image, a button, and a freehand drawing ("path"). FIG. 9 illustrates an example Java file for interaction code for the GXML file in FIG. 8. The code points the Web browser to "http://ntnu.no" when the user clicks on the button. FIG. 10 illustrates an example "stage" (in a scene) for 3D graphics. The stage is saved in the file "can.x" as a DirectX X file (other 3D file formats can also be used). FIG. 11 illustrates an example Java file for a computer game website. The example contains the code to display a blue background. The code points the Web browser to "http://ntnu.no" when the user clicks the "Back button" on the game pad. Both "raster" and "ray-tracing" techniques can be used. FIG. 3 illustrates the XML elements of our XML-based GXML format. The format can also be stored in binary form (see e.g. Norwegian patent no. 318686). The GXML format (XML-based) starts
med ett gxml element (3000), som inneholder ett head element (3100), ett movie element with one gxml element (3000), which contains one head element (3100), one movie element
(3200), og muligens andre elementer (3600). Gxml elementet har attributten version, som angir versjonen til GXML-formatet. Head elementet (3100) har p.t. ingen andre attributter, og inneholder header elementer (3101) til (3112). Title elementet inneholder tittelen til (3200), and possibly other elements (3600). The gxml element has the version attribute, which indicates the version of the GXML format. The Head element (3100) currently has no other attributes, and contains header elements (3101) to (3112). The Title element contains the title of
GXML innholdet. En eksempel GXML fil er illustrert i FIG. 8. Base, meta, og link elementene GXML content. An example GXML file is illustrated in FIG. 8. Base, meta, and link elements
(3102) til (3104) er de samme som i HTML versjon 4.01. SaferContent (3105) kan beskrive innholdet med hensyn på tryggere innhold for barn og ungdom. Attributten ageRating angir minimum aldersgrense. Attributten href angir en URL til tilleggsinformasjon (f.eks. nøkler for dekryptering av kryptert innhold). SceneHeader (3106) beskriver en scene som er lagret i filen, eller en ekstern fil. Attributten name angir navnet til scenen. Attributten src angir en URL til den eksterne filen. Attributten ageRating angir minimum aldersgrense. Attributten bitratelDs angir et passende bitrate interval for innholdet. Attributten languagelDs angir et sett med passende naturlige språk for innholdet (f.eks. norsk). Attributten screenlDs angir et sett med passende skjermer (f.eks. 1024 x 768) for innholdet. Attributten machinelDs angir et sett med passende maskinvare konfigurasjoner (f.eks. Quad Core) for innholdet. Elementene ResourceHeader (3107) til ProgramResourceHeader (3111) er henholdsvis for generelle ressurser, bilder, XML-data, tekst, og programkode som er lagret i filen, eller en ekstern fil. Disse elementene har alle attributtene name, src, og ageRating (SceneHeader). ImageResourceHeader (3109) kan i tillegg ha attributtene width, height, og bitCount, som angir bredden, høyden, og bit-dybden til bildet. Header seksjonen kan også inneholde andre elementer (3112). Ingen av header elementene eller attributtene er påkrevd ("mandatory"), de benyttes fritt. Elementer og attributter kan også endres og slettes i forhold til nye behov. Movie elementet (3200) har p.t. ingen attributter, og inneholder scener (3300) og ressurser (3102) to (3104) are the same as in HTML version 4.01. SaferContent (3105) can describe the content with regard to safer content for children and young people. The attribute ageRating specifies the minimum age limit. The href attribute specifies a URL to additional information (eg, keys for decrypting encrypted content). SceneHeader (3106) describes a scene stored in the file, or an external file. The name attribute specifies the name of the scene. The src attribute specifies a URL to the external file. The attribute ageRating specifies the minimum age limit. The bitratelDs attribute specifies an appropriate bitrate interval for the content. The attribute languagelDs specifies a set of suitable natural languages for the content (e.g. Norwegian). The screenlDs attribute specifies a set of appropriate screens (eg 1024 x 768) for the content. The machinelDs attribute specifies a set of appropriate hardware configurations (eg Quad Core) for the content. The ResourceHeader (3107) to ProgramResourceHeader (3111) elements are respectively for general resources, images, XML data, text, and program code stored in the file, or an external file. These elements all have the name, src, and ageRating (SceneHeader) attributes. ImageResourceHeader (3109) can additionally have attributes width, height, and bitCount, which indicate the width, height, and bit-depth of the image. The Header section can also contain other elements (3112). None of the header elements or attributes are required ("mandatory"), they are used freely. Elements and attributes can also be changed and deleted in relation to new needs. The Movie element (3200) currently has no attributes, and contains scenes (3300) and resources
(3400) til (3405). Det er også mulig å lage GXML-formatet uten movie elementet, på en slik måte at scener og ressurser legges inn under gxml elementet (3000). Movie elementet er-i hovedsak et grupperingselement (for lettere oversikt). Scene elementet (3300) inneholder en scene som kan presenteres til brukeren. Scene elementet (3300) inneholder attributtene name som angir et navn, autoSize som angir automatisk justering av størrelsen til scenen til kontaineren (0 er ingen, 1 er horisontal, 2 er vertikal, og 3 er begge), width er bredden til scenen, height er høyden, mousePointer angir musepeker, backColor er bakgrunnsfargen, antialias angir om "antialiasing" skal brukes, quality angir kvalitetsnivået, framesPerKSec er antall frames per 1000 sekunder, tag er ekstra data, ageRating er minimum aldersgrense, og dataSource er datakilde for elementer. Attributtene bitratelDs, languagelDS, screenlDs, og machinelDs er de samme som iSceneHeader. Program elementet (3301) inneholder programkode for scenen. Attributten src angir en URL til binærkoden, og srcCode angir en URL til kildekoden. Aktive og plasserbare elementer (3302, 3304, 3305, 3306, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3320, 3321, 3327, og 3328) har attributtene name som angir et navn, x (eller left) som er x-posisjon, y (eller top) som er y-posisjon, width er bredden, height er høyden, enabled angir om elementet er aktivt, visible angir om elementet er synlig, anchorEdge angir hvilke kanter i kontaineren elementet er forankret til (dvs. hver kant av elementet kan automatisk følge "resizing" av kantene til kontaineren), rotation angir rotasjon (i grader "clockwise"), transparency (eller opacity, motsatt) angir gjennomsiktelighet, mousePointer angir musepeker, backColor angir bakgrunnsfarge, tag angir ekstra data, og style angir stil. De aktive og plasserbare elementene har typiske også andre attributter i tillegg. Group elementet (3302) har surface som angir om elementet har en egen rendering surface, dataSource angir en datakilde for elementene, og ageRating er minimum aldersgrense for innholdet. Layer elementet (3303) har name, enabled, visible, tag, bitratelDs, languagelDs, screenlDs, machinelDs, style, dataSource, og ageRating (som er beskrevet tidligere). Image elementet (3304) har src som angir en URL til innholdet og ageRating. Text (3305) har src, autoSize, og dataSource. Video (3306) har src, srclmage som er en URL til et bilde som vises når videodata ikke foreligger, ageRating, og autoStart som angir om video'en skal begynne å spille automatisk. Audio (3307) er et ikke-visuelt lyd element som har name, src, ageRating, x (eller left), y (eller top), enabled, autoStart, tag, og style. Button (3308) er en interaktiv knapp. RadioButton (3309) inneholder grupperte "radio" knapper, og har dataSource. CheckBox (3310) inneholder en avkrysningsboks, og har value som angir tilstanden, samt dataSource. VSIider (3311) inneholder en vertikal glidekontroll, og har rangeMin som angir minimumsverdi, rangeMax som angir maksimums-verdi, og value som angir verdien. HSIider (3312) inneholder en horisontal glidekontroll, og har rangeMin, rangeMax, og value. VScrollBar (3313) inneholder en vertikal skrollekontroll, og har rangeMin, rangeMax, og value. HScrollBar (3314) inneholder en horisontal skrollekontroll, og har rangeMin, rangeMax, og value. Path (3315) inneholder en frihåndstegning, og har d som inneholder datapath (ref. SVG standarden), pathLength som angir lengden på path'en, fill som angir fyllet (dvs. brush), og stroke som er omrissed (dvs. pen). ComboBox (3400) to (3405). It is also possible to create the GXML format without the movie element, in such a way that scenes and resources are entered under the gxml element (3000). The Movie element is essentially a grouping element (for easier overview). The scene element (3300) contains a scene that can be presented to the user. The scene element (3300) contains the attributes name which specifies a name, autoSize which specifies automatic adjustment of the size of the scene to the container (0 is none, 1 is horizontal, 2 is vertical, and 3 is both), width is the width of the scene, height is the height, mousePointer specifies the mouse pointer, backColor is the background color, antialias specifies whether "antialiasing" should be used, quality specifies the quality level, framesPerKSec is the number of frames per 1000 seconds, tag is additional data, ageRating is the minimum age limit, and dataSource is the data source for elements. The bitrealDs, languagelDS, screenlDs, and machinelDs attributes are the same as iSceneHeader. The program element (3301) contains program code for the scene. The src attribute specifies a URL to the binary code, and srcCode specifies a URL to the source code. Active and placeable elements (3302, 3304, 3305, 3306, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3320, 3321, 3327, and 3328) have name attributes that specify a name, x ( or left) which is the x-position, y (or top) which is the y-position, width is the width, height is the height, enabled indicates whether the element is active, visible indicates whether the element is visible, anchorEdge indicates which edges in the container the element is anchored to (i.e. each edge of the element can automatically follow the "resizing" of the edges of the container), rotation specifies rotation (in degrees "clockwise"), transparency (or opacity, opposite) specifies transparency, mousePointer specifies mouse pointer, backColor specifies background color, tag specifies additional data, and style specifies style. The active and placeable elements typically have other attributes as well. The Group element (3302) has surface which indicates whether the element has its own rendering surface, dataSource indicates a data source for the elements, and ageRating is the minimum age limit for the content. The layer element (3303) has name, enabled, visible, tag, bitrelDs, languagelDs, screenlDs, machinelDs, style, dataSource, and ageRating (which is described earlier). The Image element (3304) has src indicating a URL to the content and ageRating. Text (3305) has src, autoSize, and dataSource. Video (3306) has src, srclmage which is a URL to an image that is displayed when video data is not available, ageRating, and autoStart which specifies whether the video should start playing automatically. Audio (3307) is a non-visual audio element that has name, src, ageRating, x (or left), y (or top), enabled, autoStart, tag, and style. Button (3308) is an interactive button. RadioButton (3309) contains grouped "radio" buttons, and has dataSource. CheckBox (3310) contains a checkbox, and has value indicating the state, as well as dataSource. VSIider (3311) contains a vertical slider, and has rangeMin which specifies the minimum value, rangeMax which specifies the maximum value, and value which specifies the value. HSIider (3312) contains a horizontal slider, and has rangeMin, rangeMax, and value. VScrollBar (3313) contains a vertical scroll control, and has rangeMin, rangeMax, and value. HScrollBar (3314) contains a horizontal scroll control, and has rangeMin, rangeMax, and value. Path (3315) contains a freehand drawing, and has d which contains datapath (ref. the SVG standard), pathLength which specifies the length of the path, fill which specifies the fill (i.e. brush), and stroke which is outlined (i.e. pen) . ComboBox
(3316) er en "combo box," og har text som er teksten, appearance som angir hvordan den ser ut (0 er "dropdown combo," 1 er "dropdown list," og 2 er "listbox"), value er valget, og dataSource er datakilden. Rect (3317) er et rektangel, og har name, x (eller left), y (eller top), width, height, rx som angir x-radius for avrundet hjørne, ry som angir y-radius for avrundet hjørne, rotation, enabled, visible, transparency, mousePointer, anchorEdge, tag, style, fill, og stroke. Ellipse (3318) har samme attributter, men cx og cy er x/y-senter for ellipsen, og rx og ry er x/y-radiusene for ellipsen. Line (3319) har de samme attributtene (untatt cx, cy, rx, og ry), og har xl og yl som angir x/y-posisjonen til startpunktet, og x2 og y2 angir posisjonen til sluttpunktet. Polyline (3320) er en "polyline" med points som angir punktene til linjene, og stroke. Polygon (3321) er et "polygon" med points, fili, og stroke. BrushSolidColor (3322) er en enkeltfarget "brush" og har name, color, transparency, og tag. Brushlmage (3323) er en "bildebrush" og har name, src, titleMode som angir "title mode" til "brush'en" (0 er ingen, 1 er title, 2 er flipX, 3 er flipY, og 4 er flipXY), size som angir størrelsen på "brush'en," transform angir en 3x3 transformasjonsmatrise, color angir en ("default") enkeltfarge, transparency, og tag. BrushLinearGradient (3324) er en lineær gradient "brush" og har name, units som angir "gradient units" (0 er userSpaceOnUse og 1 er objectBoundingbox), startPt angir gradientvektor startpunkt, endPt angir gradientvektor sluttpunkt, transparency, og tag. BrushRadialGradient (3325) er en radial gradient "brush" og har name, units, center som er senterpunkt for gradient, rx og ry angir x og y radius, origin angir gradient origineringspunkter, transparency, og tag. GradientStop (3326) er en gradient stopper og har offset som angir posisjonen til gradient stopperen, color som angir gradient fargen, og transparency. Stage (3327) er en stage for å vise 3D innhold og har src, ageRating, inPlace som angir in-place rendering, autoStart, og loop som angir om elementet skal loope. Light (3333) brukes i en stage for 3D belysning og har type som angir lystype, diffuse som er diffus farge, specular som er spekular farge, ambient er miljøfarge, position er 3D posisjon, og direction er 3D retning for lyset. Viewpoint (3334) brukes i en stage for å definere et kamera og har fieldOfView som er synsfelt, position, lookAt som er synsretning, og up som angir opp-retningen til kameraet. Stage (3327) kan inneholde andre elementer (3316) is a "combo box," and has text which is the text, appearance which specifies how it looks (0 is "dropdown combo," 1 is "dropdown list," and 2 is "listbox"), value is the choice , and dataSource is the data source. Rect (3317) is a rectangle, and has name, x (or left), y (or top), width, height, rx which specifies the x-radius for rounded corners, ry which specifies the y-radius for rounded corners, rotation, enabled, visible, transparency, mousePointer, anchorEdge, tag, style, fill, and stroke. Ellipse (3318) has the same attributes, but cx and cy are the x/y center of the ellipse, and rx and ry are the x/y radii of the ellipse. Line (3319) has the same attributes (except cx, cy, rx, and ry), and has xl and yl specifying the x/y position of the start point, and x2 and y2 specifying the position of the end point. Polyline (3320) is a "polyline" with points that indicate the points of the lines, and strokes. Polygon (3321) is a "polygon" with points, fili, and stroke. BrushSolidColor (3322) is a single-colored "brush" and has name, color, transparency, and tag. Brushlmage (3323) is an "image brush" and has name, src, titleMode which specifies the "title mode" of the "brush" (0 is none, 1 is title, 2 is flipX, 3 is flipY, and 4 is flipXY) , size specifying the size of the brush, transform specifying a 3x3 transformation matrix, color specifying a ("default") single color, transparency, and tag. BrushLinearGradient (3324) is a linear gradient "brush" and has name, units that indicate "gradient units" (0 is userSpaceOnUse and 1 is objectBoundingbox), startPt indicates gradient vector starting point, endPt indicates gradient vector end point, transparency, and tag. BrushRadialGradient (3325) is a radial gradient "brush" and has name, units, center which is the center point for the gradient, rx and ry indicate the x and y radius, origin indicates the gradient origination points, transparency, and tag. GradientStop (3326) is a gradient stop and has offset that specifies the position of the gradient stop, color that specifies the gradient color, and transparency. Stage (3327) is a stage for displaying 3D content and has src, ageRating, inPlace which specifies in-place rendering, autoStart, and loop which specifies whether the element should loop. Light (3333) is used in a stage for 3D lighting and has type indicating the type of light, diffuse which is a diffuse color, specular which is a specular color, ambient is an environmental color, position is a 3D position, and direction is a 3D direction for the light. Viewpoint (3334) is used in a stage to define a camera and has fieldOfView which is the field of view, position, lookAt which is the direction of view, and up which indicates the up direction of the camera. Stage (3327) may contain other elements
(3335) . Glyphs (3328) inneholder et sett med "glyphs" som brukes for "fixed text" og har src, fontRenderingEmSize som er fontstørrelsen, styleSimulations som er stilflagg, bidiLevel som er "bi-directional layout level," indices er en streng med glyph spesifikasjoner, og text som er en tekststreng. Animation (3329) brukes til animasjoner og har name, autoStart, loop, frameCount som er antallet "frames," framesPerKSec er "framerate," referenceClock er referanse klokke (f.eks. et annet element), referenceClockSkew er offset på klokken, attrList er en liste med elementattributter som skal animeres (f.eks. Mylmage.x), og tag. Ai (3335) . Glyphs (3328) contains a set of "glyphs" used for "fixed text" and has src, fontRenderingEmSize which is the font size, styleSimulations which is style flags, bidiLevel which is "bi-directional layout level," indices is a string of glyph specifications , and text which is a text string. Animation (3329) is used for animations and has name, autoStart, loop, frameCount which is the number of "frames," framesPerKSec is "framerate," referenceClock is the reference clock (eg another element), referenceClockSkew is the offset of the clock, attrList is a list of element attributes to animate (eg Mylmage.x), and tag. Ouch
(3336) (eller keyframe, frame, frm, key, k, f, kf, e.l.) er et "animation item" og har key som angir key frame posisjon, attr er attributten (indeks i attrList), val som er verdien, effect som angir om interpolasjon skal brukes, og notify som angir om en programkode hendelse skal inntreffe. Animation (3329) kan ha andre elementer (3337). Effect (3330) er en shader og/eller fx effekt for et visuelt element og har src, progress som angir progresjon, duration som angir varighet, loop, visible, clock som er klokken til effekten, og tag. Param (3338) er en parameter til effektimplementasjonen og har name som angir navnet på parameteren, og value som er verdien. Effect (3330) kan ha andre elementer (3339). Style (3331) er en stil for andre elementer og har name, src, og targetType som angir typen til de elementene som kan endres av stilen. Si (3340) (eller param, item, attr, e.l.) angir parametere til stilen og har attr (eller name) som angir navnet til attributten, og val (eller value) som er verdien. Style (3331) kan ha andre elementer (3341). Timer (3332) er en "timer" og har name, left (eller x), top (eller y), enabled, interval som er intervallet, og tag. Scene (3300) kan også inneholde andre elementer (3342). Ressursene (3400) til (3404) refererer eller inneholder henholdsvis bilder, tekst, programkode, XML-data, og generelle ressurser. Ressursene har attributtene name, src, og preload som angir om ressursene skal lastes umiddelbart. Det er også mulighet for andre ressurselementer (3405). Movie elementet (3200) kan ha andre elementer (3500). Gxml elementet (3000) kan ha andre elementer (3600). Elementer og attributter er bare enkelt forklart i denne oversikten. Mange av attributtene og elementene har similær betydning som i HTML, SVG, Adobe Flash, Microsoft Silverlight, DirectX, m.v. Farger bruker 4 bytes, alpha, red, green, og blue som "#aarrggbb" (f.eks. #ff0000ff er blå). Presentasjonssystemet i FIG. 1 kan virke relativt omfattende og komplisert, men det er rett frem for en ekspert med gode kunnskaper og lang erfaringer innen C/C++ programmering, Microsoft COM, Java virtuelle maskiner, DirectX, OpenGL, video koding, og shader språk å implementere systemet. Det anbefales at systemet implementeres som et C/C++ bibliotek. Den virtuelle maskinen bør også struktureres som et C/C++ bibliotek. Det anbefales at tråd håndteringen i den virtuelle maskinen endres slik at tråden for hovedeksekvering taes bort og erstattes med en DoIterate() funksjon som kalles periodisk av Engine klassen i (1004). Dette vil gjøre synkronisering mye enklere. Dette er dog ikke et krav, og oppfinnelsen vil også omfatte virtuelle maskiner som bruker vanlig trådbasert eksekvering. GxmlJNI (1005) kan genereres automatisk ettersom dette er "brigde/wrapper" kode imellom Java og C++. Java pakkene og klassene i FIG. 2 har funksjoner som er markert som "native" (ref. Java). (3336) (or keyframe, frame, frm, key, k, f, kf, etc.) is an "animation item" and has key indicating the key frame position, attr is the attribute (index in attrList), val is the value, effect which indicates whether interpolation is to be used, and notify which indicates whether a program code event is to occur. Animation (3329) can have other elements (3337). Effect (3330) is a shader and/or fx effect for a visual element and has src, progress which indicates progression, duration which indicates duration, loop, visible, clock which is the clock of the effect, and tag. Param (3338) is a parameter to the effect implementation and has name which indicates the name of the parameter, and value which is the value. Effect (3330) may have other elements (3339). Style (3331) is a style for other elements and has name, src, and targetType indicating the type of the elements that can be modified by the style. Si (3340) (or param, item, attr, etc.) specifies parameters for the style and has attr (or name) which specifies the name of the attribute, and val (or value) which is the value. Style (3331) can have other elements (3341). Timer (3332) is a "timer" and has name, left (or x), top (or y), enabled, interval which is the interval, and tag. Scene (3300) may also contain other elements (3342). The resources (3400) to (3404) refer to or contain images, text, program code, XML data, and general resources, respectively. The resources have the attributes name, src, and preload which indicate whether the resources should be loaded immediately. There is also the possibility of other resource elements (3405). The Movie element (3200) can have other elements (3500). The gxml element (3000) can have other elements (3600). Elements and attributes are only simply explained in this overview. Many of the attributes and elements have a similar meaning as in HTML, SVG, Adobe Flash, Microsoft Silverlight, DirectX, etc. Colors use 4 bytes, alpha, red, green, and blue as "#aarrggbb" (eg #ff0000ff is blue). The presentation system of FIG. 1 may seem relatively extensive and complicated, but it is straight forward for an expert with good knowledge and long experience in C/C++ programming, Microsoft COM, Java virtual machines, DirectX, OpenGL, video coding, and shader languages to implement the system. It is recommended that the system be implemented as a C/C++ library. The virtual machine should also be structured as a C/C++ library. It is recommended that the thread handling in the virtual machine be changed so that the thread for main execution is removed and replaced with a DoIterate() function that is called periodically by the Engine class in (1004). This will make syncing much easier. However, this is not a requirement, and the invention will also cover virtual machines that use normal thread-based execution. GxmlJNI (1005) can be generated automatically as this is "brigde/wrapper" code between Java and C++. The Java packages and classes in FIG. 2 has functions marked as "native" (ref. Java).
Disse "native" funksjonene skal implementeres i C/C++. Java virtuelle maskiner inneholder som regel dokumentasjon om hvordan slike "Java Native Interfaces" kan genereres. GxmllO These "native" functions must be implemented in C/C++. Java virtual machines usually contain documentation on how such "Java Native Interfaces" can be generated. GxmllO
(1006) består av hovedklassene Reader, Writer, Gxml20, og Tools. Reader kan f.eks. enkelt lages med Expat til å parse en GXML fil og instansiere en scene graf GxmlSG (1003). Writer lager en GXML fil ifra en scene graf GxmlSG (1003). Gxml20 inneholder versjonsspesifikk parsingfunksjonalitet for Reader for GXML 2.0. GxmlSystem (1007) inneholder systemkode (f.eks. systeminformasjon, zlib komprimering/dekomprimering, MD5 hash, JPEG, PNG, GIF, DirectX og OpenGL hjelpefunksjonalitet, med videre). GxmlSG (1003) er scene grafen. De samme elementene og attributtene som i FIG. 3 blir benyttet i GxmlSG (1003). Klassene vil også implementere funksjoner (f.eks. kan Image inneholde kode for å dekomprimere JPEG, PNG, og GIF bilder). Vi vil beskrive "public" funksjoner til scene grafen i gjennomgangen av FIG. 2 i neste avsnitt. GxmlShow (1004) inneholder hovedmotoren Engine (eller Engine2D), spillmotoren Game (eller Engine3D), Graphics2D, Graphics3D, audiovisuelle klasser, system klasser, og rendering klasser (Show klasser). Engine klassen er relativt enkel og består av en GXML Reader, en Java VM instans, og en Show klasse. Engine klassen har også en URL attributt, og en DoIterate() funksjon. Et dataprogram (f.eks. en Web browser plug-in) kan benytte Engine klassen som hovedgrensesnitt til presentasjonssystemet. URL'en til en GXML fil må angis. DoIterate() må kalles periodisk (f.eks. så hyppig som mulig). Engine instansen vil i DoIterate() laste ned GXML filen og parse den med Reader. Java programkoden vil bli tilgjengelig, og Engine injekterer denne i Java VM'en og starter denne. Show instansen kan brukes av Engine for å rendre scene grafen. GxmlShow (1004) implementerer forskjellige Show klasser (f.eks. ShowDX8, ShowDX9, ShowDXIO, ShowDXll, ShowGL, med videre). Show kan også ha en abstrakt klasse som brukes av Engine, og som Show klassene arver. Show klassene kan inneholde all grafikk bibliotek spesifikk kode for å rendre scene grafen. Hvert element (f.eks. Image) gis et vertex buffer (i f.eks. DirectX). Selve bildet rendres som en tekstur på vertex'ene. Shadere kan brukes for å manipulere renderingen (dvs. effekter). Game klassen er lik Engine, men laster ikke en GXML fil. Renderingen gjøres 100% i Java. FIG. 2 illustrerer Java API'en til presentasjonssystemet. Pakken gxml.sg (2000) inneholder scene grafen. Scene grafens C/C++ representasjon er i (1003) i FIG. 1, og GXML fil format representasjon er i FIG. 3. De fleste elementene i FIG. 3 finnes i (1003) og (2000), som de er beskrevet med attributter tidligere. Java API'en benytter "get" og "set" funksjoner (som er vanlig i Java 2.0) for å lese og endre innholdet til attributter (f.eks. Image: :setX(int v)). Klassene Video, Audio, og Animation har funksjonene play (eller start), pause, stop, med videre. Browser klassen representerer Web browseren (for Web browser plug-in'en). Denne klassen kan brukes til å kontrollere Web browseren, og har funksjonen navigate, som kan brukes til å navigere til en ny nettside. Klassene i gxml.sg (2000) har flere funksjoner, men det blir for detaljert for beskrivelsen (og "scope") av oppfinnelsen. Det er også aktuelt for enkelte implementasjoner at scene grafen til formatet er en egen pakke i tillegg til gxml.sg. Pakken gxml.show (2001) inneholder Engine klassen, som kan kontrollere hovedmotoren, og har funksjonen play for å spille en spesifikk scene, samt funksjoner (f.eks. setShow) for å endre show modulen som brukes (f.eks. til ShowDX8, ShowDX9, ShowGDI, etc). Pakken gxml.show (2001) inneholder også klassene ShowDX, ShowGL, ShowGDI, og ShowPIX som brukes for grafikk bibliotek spesifikk rendering (navnene kan variere). Klassene EffectDX og EffectGL benyttes for å kontrollere henholdsvis DirectX og OpenGL effekter. Effekt klassene har funksjonene play (eller start), pause, og stop for kontroll av animerte effekter. Pakken gxml.av (2002) inneholder audiovisuell funksjonalitet. Klassen FilterGraph inneholder GPU/ shader-baserte filter grafer. Klassen FilterSource representerer lesing og dekomprimering av audiovisuelle filer (kodek) og har funksjonene open, close, play (eller start), pause, og stop. Klassen FilterEffect representerer en audiovisuell GPU effekt og har funksjonene play (eller start), pause, og stop. Klassen FilterDRM representerer kryptering og dekryptering av en audiovisuell fil eller strøm. Klassen AudioCue representerer lister av lydeffekter og musikk. Klassen Audio3D representerer avspilling av 3D lyd. WaveBank representerer en samlig lyder. De audiovisuelle klassene vil typisk ha lignende funksjoner som i Microsoft DirectX, Windows Media Format, Windows Media Rights Manager, og .NET. Pakken gxml.sys (2003) inneholder system funksjonalitet. Klassen Convert inneholder vanlige Java konverterings-funksjoner som toLong med videre. Klassen Debug inneholder debugging funksjoner som print for å skrive til en debugging konsoll. Klassen Cache brukes til midlertidig lokal lagring. Klassen System inneholder system spesifikk informasjon og funksjonalitet som getCPUCount og lignende. Klassen Network inneholder nettverksfunksjonalitet. Klassen Storage brukes til permanent lokal lagring. Pakken gxml.graphics2d (2004) inneholder funksjonalitet for 2D grafikk. Klassene er tilsvarende som klassene som finnes i Microsoft GDI+ med funksjoner. Pakken gxml.game (2005) inneholder klasser for å lage dataspill nettsider. Klassen Game brukes til å implementere dataspillet (en derivert klasse implementeres). Klassen GameWnd brukes til å styre vinduet som dataspillet vises i (f.eks. Web browser plug-in vindu eller eget vindu) og har funksjoner som f.eks. setFullScreen for fullskjerm visning. ContentManager klassen brukes til å laste og administrere innholdet (f.eks. 3D modeller) og har funksjoner som f.eks. load. Pakken gxml.game.graphics3d (2006) inneholder 3D grafikk funksjonalitet. Klassene er tilsvarende som klassene som finnes i Microsoft XNA med funksjoner. Klassen Graphics3D er tilsvarende GraphicsDevice i XNA. Klasser som ikke er angitt noen funksjoner har ingen spesifikke funksjoner. Funksjoner kan bli lagt til senere (og er utenfor "scope" av oppfinnelsen). Indirekte/refererte funksjoner (f.eks. GDI+ og XNA) er også utenfor "scope" av oppfinnelsen. Funksjoner som er utenfor "scope" er bare nevnt for å gjøre det lettere for en tredjepart å implementere oppfinnelsen. Alle kombinasjoner (innenfor "scope") er derfor en del av oppfinnelsen ettersom det naturligvis utgjør ulike utføringer av oppfinnelsen. (1006) consists of the main classes Reader, Writer, Gxml20, and Tools. Reader can e.g. easily created with Expat to parse a GXML file and instantiate a scene graph GxmlSG (1003). Writer creates a GXML file from a scene graph GxmlSG (1003). Gxml20 contains version-specific parsing functionality for the Reader for GXML 2.0. GxmlSystem (1007) contains system code (eg system information, zlib compression/decompression, MD5 hash, JPEG, PNG, GIF, DirectX and OpenGL helper functionality, etc.). GxmlSG (1003) is the scene graph. The same elements and attributes as in FIG. 3 is used in GxmlSG (1003). The classes will also implement functions (eg Image can contain code to decompress JPEG, PNG, and GIF images). We will describe "public" functions of the scene graph in the review of FIG. 2 in the next paragraph. GxmlShow (1004) contains the main engine Engine (or Engine2D), the game engine Game (or Engine3D), Graphics2D, Graphics3D, audiovisual classes, system classes, and rendering classes (Show classes). The Engine class is relatively simple and consists of a GXML Reader, a Java VM instance, and a Show class. The Engine class also has a URL attribute, and a DoIterate() function. A computer program (e.g. a Web browser plug-in) can use the Engine class as the main interface to the presentation system. The URL of a GXML file must be specified. DoIterate() must be called periodically (eg as frequently as possible). The Engine instance will in DoIterate() download the GXML file and parse it with Reader. The Java program code will become available, and Engine injects this into the Java VM and starts it. The Show instance can be used by the Engine to render the scene graph. GxmlShow (1004) implements various Show classes (eg ShowDX8, ShowDX9, ShowDXIO, ShowDXll, ShowGL, etc.). Show can also have an abstract class that is used by Engine, and from which the Show classes inherit. The show classes can contain all graphics library specific code to render the scene graph. Each element (eg Image) is given a vertex buffer (in eg DirectX). The image itself is rendered as a texture on the vertices. Shaders can be used to manipulate the rendering (ie effects). The Game class is similar to Engine, but does not load a GXML file. The rendering is done 100% in Java. FIG. 2 illustrates the Java API of the presentation system. The package gxml.sg (2000) contains the scene graph. The scene graph's C/C++ representation is at (1003) in FIG. 1, and the GXML file format representation is in FIG. 3. Most of the elements in FIG. 3 are found in (1003) and (2000), as they are described with attributes earlier. The Java API uses "get" and "set" functions (common in Java 2.0) to read and change the contents of attributes (eg Image: :setX(int v)). The classes Video, Audio, and Animation have the functions play (or start), pause, stop, etc. The Browser class represents the Web browser (for the Web browser plug-in). This class can be used to control the Web browser, and has the function navigate, which can be used to navigate to a new website. The classes in gxml.sg (2000) have several functions, but it becomes too detailed for the description (and "scope") of the invention. It is also relevant for some implementations that the scene graph for the format is a separate package in addition to gxml.sg. The package gxml.show (2001) contains the Engine class, which can control the main engine, and has the function play to play a specific scene, as well as functions (eg setShow) to change the show module used (eg to ShowDX8 , ShowDX9, ShowGDI, etc). The package gxml.show (2001) also contains the classes ShowDX, ShowGL, ShowGDI, and ShowPIX which are used for graphics library specific rendering (the names may vary). The classes EffectDX and EffectGL are used to control DirectX and OpenGL effects respectively. The effect classes have the functions play (or start), pause, and stop for controlling animated effects. The package gxml.av (2002) contains audiovisual functionality. The FilterGraph class contains GPU/shader-based filter graphs. The FilterSource class represents the reading and decompression of audiovisual files (codec) and has the functions open, close, play (or start), pause, and stop. The FilterEffect class represents an audiovisual GPU effect and has the functions play (or start), pause, and stop. The FilterDRM class represents the encryption and decryption of an audiovisual file or stream. The AudioCue class represents lists of sound effects and music. The Audio3D class represents playback of 3D audio. WaveBank represents a collective sound. The audiovisual classes will typically have similar functions as in Microsoft DirectX, Windows Media Format, Windows Media Rights Manager, and .NET. The package gxml.sys (2003) contains system functionality. The Convert class contains standard Java conversion functions such as toLong and so on. The Debug class contains debugging functions such as print to write to a debugging console. The Cache class is used for temporary local storage. The System class contains system-specific information and functionality such as getCPUCount and the like. The Network class contains network functionality. The Storage class is used for permanent local storage. The package gxml.graphics2d (2004) contains functionality for 2D graphics. The classes are equivalent to the classes found in Microsoft GDI+ with functions. The package gxml.game (2005) contains classes for creating computer game web pages. The Game class is used to implement the computer game (a derived class is implemented). The GameWnd class is used to control the window in which the computer game is displayed (e.g. Web browser plug-in window or separate window) and has functions such as setFullScreen for full screen display. The ContentManager class is used to load and manage the content (e.g. 3D models) and has functions such as e.g. load. The package gxml.game.graphics3d (2006) contains 3D graphics functionality. The classes are equivalent to the classes found in Microsoft XNA with functions. The Graphics3D class is equivalent to GraphicsDevice in XNA. Classes for which no functions are specified have no specific functions. Functions may be added later (and are outside the "scope" of the invention). Indirect/referenced functions (eg GDI+ and XNA) are also outside the scope of the invention. Features that are outside the "scope" are mentioned only to facilitate a third party to implement the invention. All combinations (within "scope") are therefore part of the invention as they naturally constitute different embodiments of the invention.
FIG. 4 illusterer brukergrensesnittet som vises (av Web browser plug-in eller lignende) når en GXML-fil inneholder "ratet" innhold (f.eks. at et element har minimums aldersgrense på 18 år). Brukergrensesnittet kan for eksempel vises som et Windows dialog-boks vindu som illustrert i FIG. 4 (tittellinje, minimeringsknapp, lukk/slutt-knapp, og lignende). Andre typer brukergrensesnitt som er (eller blir) vanlige i operativsystemer, plattformer, Web browsere, og lignende, for brukergrensesnittet, er også omfattet av oppfinnelsen. Brukergrensesnittet inneholder informasjon til brukeren, en "combobox" (eller annen liste) for å velge hva som FIG. 4 illustrates the user interface displayed (by Web browser plug-in or similar) when a GXML file contains "rated" content (eg an element has a minimum age limit of 18). The user interface may, for example, be displayed as a Windows dialog box window as illustrated in FIG. 4 (title bar, minimize button, close/exit button, and the like). Other types of user interfaces that are (or will become) common in operating systems, platforms, Web browsers, and the like, for the user interface, are also covered by the invention. The user interface contains information for the user, a "combobox" (or other list) to choose what
skal gjøres (f.eks. "vis uten 'ratet' innhold" som illustrert i FIG. 4), brukernavn, passord, en avkryssningsboks for om beskjeden alltid skal vises, en konfigureringsknapp, en "ok" knapp (eller lignende) og en avbrytningsknapp. Konfigureringsknappen viser en dialog-boks (eller vindu, Web side, eller lignende) for konfigurering av brukerkontoer, passord, og lignende. Hver bruker som skal få tilgang til "ratet" innhold må fremlegge aldersbevis (f.eks. tester og førerkort). Brukernavn og passord til en aldersverifisert brukerkonto må oppgis for tilgang til "ratet" innhold. Hovedidéen med dette brukergrensesnittet (og løsningen) er å beskytte barn og ungdom fra skadelig innhold på Internett (det forutsettes ikke noen aktive inngrep fra foreldre). Foreldre kan bes om ikke å opprette brukernavn og passord for å hjelpe barn og ungdom med å få tilgang til "ratet" innhold (dvs. hjelpe dem med å omgå systemet). to be done (e.g. "show without 'rated' content" as illustrated in FIG. 4), username, password, a check box for whether the message should always be displayed, a configuration button, an "ok" button (or similar) and a cancel button. The configuration button displays a dialog box (or window, Web page, or similar) for configuring user accounts, passwords, and the like. Each user to access "rated" content must provide proof of age (e.g. tests and driver's license). Username and password for an age-verified user account must be provided for access to "rated" content. The main idea of this user interface (and the solution) is to protect children and young people from harmful content on the Internet (no active intervention from parents is assumed). Parents may be asked not to create usernames and passwords to help children and youth access "rated" content (ie help them circumvent the system).
FIG. 5 og 6 illustrerer brukergrensesnittet til fjernspillingsklienten som brukes på brukerens datamaskin for å fjernspille dataspill (eller spesifikt Web-baserte dataspill) over Internett. Brukergrensesnittet kan for eksempel vises som et Windows dialog-boks vindu som illustrert i FIG. 5 og 6 (tittellinje, minimeringsknapp, lukk/slutt-knapp og lignende vinduselementer). Andre typer brukergrensesnitt som er (eller blir) vanlige i operativsystemer, plattformer, Web browsere, og lignende, for brukergrensesnittet, er også omfattet av oppfinnelsen. FIG. FIG. 5 and 6 illustrate the remote play client user interface used on the user's computer to remotely play computer games (or specifically Web-based computer games) over the Internet. The user interface may, for example, be displayed as a Windows dialog box window as illustrated in FIG. 5 and 6 (title bar, minimize button, close/exit button and similar window elements). Other types of user interfaces that are (or will become) common in operating systems, platforms, Web browsers, and the like, for the user interface, are also covered by the invention. FIG.
5 viser brukergrensesnittet som vises ved oppstart (av programmet) og eventuelt etter at en fjernspillingssesjon er ferdig. Brukergrensesnittet inneholder informasjon, og brukeren angir en server (eller et dataspill) i "comboboksen" (eller annen liste). Brukergrensesnittet kan også inneholde konfigurasjonskontroller for å konfigurere slike ting som bitraten som blir brukt for komprimering av audiovisuelle signaler, fullskjerm, "3D vision, grab input, in-game cursor," pakkestørrelse, bildeskalering, rammerate, nettverksport, brukernavn, og passord. Denne listen er et eksempel og kan naturligvis endres for ulike implementeringer. "Koble til" knappen (eller lignende) brukes for starte fjernspillingssesjonen (mot serveren). Oppdater-knappen (eller lignende) brukes til å oppdatere listen over servere (og lignende). Avbrytingsknappen (eller lignende) brukes til å lukke/avslutte brukergrensesnittet/klienten. Fjernspillingsklienten viser brukergrensesnittet i FIG. 6 når fjernspillingssesjonen eksekverer (untatt i fullskjerm-modus hvor spillvisningen dekker skjermen). Spillvisning viser dekodet videosignal fra serveren (dvs. en komprimert audio og video strøm av skjermbildene til et dataspill som eksekverer på serveren). Videosignalet kan være komprimert med et hvilket som helst video og lyd kodek (f.eks. Microsoft WMV2 og WMA). Fjernspillingsklienten fanger opp brukerinputt (som f.eks. tastatur, mus, game pad, joystick, Direct Input, eller lignende) og sender brukerinputt data komprimert (eller ukomprimert) til serveren (dvs. dataspillet). Fjernspillingsklienten er relativt rett frem og enkel å implementere. Fjernspillingsklienten kan også inneholde presentasjonssystemet for å visualisere 2D, 3D og multimedia innhold (med brukergrensesnitter) i spillvisningen. Integreringen av presentasjonssystemet i spillvisning er relativt rett frem og enkel, og video strømmen (dvs. for fjernspillingen) kan f.eks. vises med et Video element (1003) og (2000) i presentasjonssystemet. På serveren trengs det komponenter for muliggjøre fjernspilling. Det trengs programkode i dataspillet som tar imot brukerinputten (eventuelt dekomprimering av denne) og injekterer/håndterer denne i dataspillet. Dataspillet må også inneholde programkode for å administrere start og stopp av fjernspilling (med konfigurasjoner), fanging ("capture") av skjermbilder og lyd i dataspillet, komprimering av audio og video, samt sende audio/video pakker over nettverket. Det er også mulig at presentasjonssystemet er inkludert i dataspillet. Implementasjon av all denne funksjonaliteten i dataspillet er relativt rett frem og enkelt. Ulike komprimeringsteknikker kan benyttes. I DirectX er de ulike Present-funksjonene en naturlig plass for "capture" av skjermbildet. Oppfinnelsen omfatter også dataspill (og servere) som har slike komponenter for muliggjøring av fjernspilling. Brukergrensesnittene i FIG. 5 og 6 kan settes sammen på mange måter, f.eks. som to dialog-bokser/vinduer, som Microsoft Remote Desktop, slik at vinduet i FIG. 5 endres til vinduet i FIG. 6 når brukeren trykker "Koble til," med videre. Det er også mulig at andre layout og navn benyttes i grensesnittene. 5 shows the user interface that appears at start-up (of the program) and possibly after a remote play session is finished. The user interface contains information, and the user specifies a server (or computer game) in the "combo box" (or other list). The user interface may also contain configuration controls to configure such things as the bitrate used for audio-visual compression, full screen, "3D vision, grab input, in-game cursor," packet size, image scaling, frame rate, network port, username, and password. This list is an example and can of course be changed for different implementations. The "Connect" button (or similar) is used to start the remote play session (against the server). The Refresh button (or similar) is used to update the list of servers (or similar). The cancel button (or similar) is used to close/exit the user interface/client. The remote play client shows the user interface in FIG. 6 when the remote play session executes (except in full screen mode where the game view covers the screen). Game View displays the decoded video signal from the server (ie a compressed audio and video stream of the screen images of a computer game executing on the server). The video signal can be compressed with any video and audio codec (eg Microsoft WMV2 and WMA). The remote gaming client captures user input (such as keyboard, mouse, game pad, joystick, Direct Input, or similar) and sends user input data compressed (or uncompressed) to the server (ie the computer game). The remote play client is relatively straight forward and easy to implement. The remote gaming client may also contain the presentation system for visualizing 2D, 3D and multimedia content (with user interfaces) in the game view. The integration of the presentation system into game display is relatively straight forward and simple, and the video stream (ie for the remote play) can e.g. is displayed with a Video element (1003) and (2000) in the presentation system. Components are needed on the server to enable remote play. Program code is needed in the computer game which receives the user input (possibly decompressing this) and injects/handles this in the computer game. The computer game must also contain program code to manage the start and stop of remote play (with configurations), capture ("capture") of screen images and sound in the computer game, compression of audio and video, as well as sending audio/video packets over the network. It is also possible that the presentation system is included in the computer game. Implementation of all this functionality in the computer game is relatively straight forward and simple. Different compression techniques can be used. In DirectX, the various Present functions are a natural place for "capture" of the screen image. The invention also covers computer games (and servers) that have such components for enabling remote gaming. The user interfaces of FIG. 5 and 6 can be put together in many ways, e.g. as two dialog boxes/windows, such as Microsoft Remote Desktop, so that the window in FIG. 5 is changed to the window in FIG. 6 when the user presses "Connect," and so on. It is also possible that other layouts and names are used in the interfaces.
FIG. 7 illustrerer "desktop applikasjonen" som typisk er tilgjengelig i "system tray." Desktop applikasjonen vil typisk starte når datamaskinen starter opp (som et ikon i system tray, slik som f.eks. Skype). Desktop applikasjonen kan også implementeres som en tjeneste (f.eks. som en NT Service i Microsoft Windows). Brukergrensesnittet kan for eksempel vises som et Windows dialogvindu som illustrert i FIG. 7 (tittellinje, minimerings- og maksimeringsknapp, lukk/slutt-knapp og lignende). Andre typer brukergrensesnitt som er (eller blir) vanlige i FIG. 7 illustrates the "desktop application" that is typically available in the "system tray." The desktop application will typically start when the computer starts up (as an icon in the system tray, such as e.g. Skype). The desktop application can also be implemented as a service (eg as an NT Service in Microsoft Windows). For example, the user interface may be displayed as a Windows dialog window as illustrated in FIG. 7 (title line, minimize and maximize button, close/end button and similar). Other types of user interfaces that are (or will be) common in
operativsystemer, plattformer, Web browsere, og lignende, for brukergrensesnittet, er også omfattet av oppfinnelsen. Menylinjen (dvs. Menyl, Meny2, Meny3, med videre) inneholder menyfunksjoner som f.eks. exit for avslutning av applikasjonen, backup for å ta backup av operating systems, platforms, Web browsers, and the like, for the user interface, are also covered by the invention. The menu line (ie Menu, Menu2, Menu3, etc.) contains menu functions such as e.g. exit for terminating the application, backup for taking a backup of
et nedlastet dataspill (eller dataspill ressurser), options for å endre innstillinger, help for å gi tilgang til dokumentasjon, samt about for informasjon om desktop applikasjonen. Nedenfor menylinjen er verktøylinjen (dvs. Knappl, Knapp2, Knapp 3, osv.). Verktøylinjen inneholder som regel hyppig brukte funksjoner (som også finnes i menyen). Nedenfor verktøylinjen er en "tab" kontroll som viser hovedkategorier av funksjonaliteter (som f.eks. "Game Sites" og annet). Det er aktuelt at menylinjen og verktøylinjen varierer når "tab" kontrollen blir brukt (dvs. hovedkategori funksjonalitetene har ulike menylinjer og verktøylinjer). "Game Sites" er vist som valgt i FIG. 7. Desktop applikasjonen kan også inkludere en rekke hovedkategori funksjonaliteter (f.eks. "instant messaging, remote desktops, FTP verktøy, cache, licenses, heads-up display tools," med videre). "Game Sites tab" inneholder en liste over registrerte dataspill (lokalt nedlastbare dataspill og/eller dataspill for fjernspilling). Listen i figuren viser 3 eksempler på dataspill i listen. En "scrollbar" (til høyre) kan brukes til å "scrolle" i listen. Hvert dataspill i listen er vist med et lite "thumbnail" bilde (Bildel, Bilde2, og Bilde3) som viser et lite representasjonsbilde av dataspillet. Ved siden av "thumbnail" bildet er det et informasjonsfelt (f.eks. Informasjon 1) som inneholder informasjon om dataspillet (som f.eks. beskrivelser, utgiver/publisher, publiseringsdato, URL, antallet bytes det tar opp på harddisken, antall filer, bruksstatistikk, med videre). Informasjonsfeltet kan også inneholde kontroller (som f.eks. knapper og lignende). Typiske funksjoner som kan utføres på hvert enkelt dataspill i listen er å starte lokale dataspill i Web browser (eller i lokal klient), starte fjernspilling av dataspillene, samt administrere dataspillene (slette, allokere, synkronisere, komprimere, backup, med videre). Dataspill kan typisk registreres i listen i fra Web browser plug-in'en, eller i fra desktop applikasjonen direkte (f.eks. "add game" i menyen). Dersom et dataspill registreres i fra Web browser plug-in'en, kan det f.eks. skje via en Windows message (i Microsoft Windows), registry, en fil, et "remote procedure" kall, eller lignende. Desktop applikasjonen vil hente en XML liste over alle filene som skal lastes ned og/eller synkroniseres, hvorpå filene blir lastet ned. Det kan konfigureres hvor mye båndbredde som skal brukes og lignende. Filene kan naturligvis komprimeres (f.eks. zip/rar og lignende) og krypteres (f.eks. RSA og lignende). En hvilken som helst struktur kan benyttes for denne XML-filen, og f.eks. en liste med "file" og "folder" elementer (inkludert fil/foldernavn, dato, bytes, md5/crc, URL, ageRating, med videre) innenfor et "synch" element. Når desktop applikasjonen er ferdig med å laste ned, kan den sende en melding tilbake til Web browser plug-in'en og/eller fjernspillingsklienten (meldinger kan også sendes om "progress"). a downloaded computer game (or computer game resources), options to change settings, help to give access to documentation, and about for information about the desktop application. Below the menu bar is the toolbar (ie Button1, Button2, Button3, etc.). The toolbar usually contains frequently used functions (which are also found in the menu). Below the toolbar is a "tab" control that displays main categories of functionality (such as "Game Sites" and others). It is applicable that the menu bar and the toolbar differ when the "tab" control is used (ie the main category functionalities have different menu bars and toolbars). "Game Sites" are shown as selected in FIG. 7. The desktop application may also include a number of main category functionalities (eg "instant messaging, remote desktops, FTP tools, cache, licenses, heads-up display tools," etc.). The "Game Sites tab" contains a list of registered video games (local downloadable video games and/or remote play video games). The list in the figure shows 3 examples of computer games in the list. A "scrollbar" (on the right) can be used to "scroll" in the list. Each computer game in the list is shown with a small "thumbnail" image (Image, Image2, and Image3) that shows a small representation of the computer game. Next to the "thumbnail" image there is an information field (e.g. Information 1) which contains information about the computer game (such as descriptions, publisher, publication date, URL, the number of bytes it takes up on the hard drive, the number of files , usage statistics, etc.). The information field can also contain controls (such as buttons and the like). Typical functions that can be performed on each individual computer game in the list are starting local computer games in a Web browser (or in a local client), starting remote playing of the computer games, as well as managing the computer games (deleting, allocating, synchronizing, compressing, backup, etc.). Computer games can typically be registered in the list from the Web browser plug-in, or from the desktop application directly (e.g. "add game" in the menu). If a computer game is registered in from the Web browser plug-in, it can e.g. happen via a Windows message (in Microsoft Windows), registry, a file, a "remote procedure" call, or similar. The desktop application will retrieve an XML list of all the files to be downloaded and/or synchronized, after which the files will be downloaded. The amount of bandwidth to be used and similar can be configured. The files can of course be compressed (e.g. zip/rar and the like) and encrypted (e.g. RSA and the like). Any structure can be used for this XML file, and e.g. a list of "file" and "folder" elements (including file/folder name, date, bytes, md5/crc, URL, ageRating, etc.) within a "synch" element. When the desktop application has finished downloading, it can send a message back to the Web browser plug-in and/or remote play client (progress messages can also be sent).
Selv om oppfinnelsen har blitt beskrevet med referanse i en legemliggjørelse, vil de som er erfarne innse at variasjoner i form/detalj kan gjøres uten å avvike fra intensjonen i skopet til oppfinnelsen som definert i de vedlagte krav. De spesifikke detaljene ovenfor er ment bare for å være illustrative og skopet av oppfinnelsen er definert av de vedlagte krav. For eksempel kan oppfinnelsen praktiseres som fjernspilling i Web browser og oppfinnelsen kan integreres i operativsystem, Web browsere, maskinvare, og dataspill. Although the invention has been described with reference to one embodiment, those skilled in the art will realize that variations in form/detail can be made without deviating from the intent in the scope of the invention as defined in the appended claims. The specific details above are intended to be illustrative only and the scope of the invention is defined by the appended claims. For example, the invention can be practiced as remote gaming in a Web browser and the invention can be integrated into operating systems, Web browsers, hardware, and computer games.
Claims (21)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| NO20101412A NO333415B1 (en) | 2010-10-12 | 2010-10-12 | A system for graphics and computer game experiences on the Internet |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| NO20101412A NO333415B1 (en) | 2010-10-12 | 2010-10-12 | A system for graphics and computer game experiences on the Internet |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| NO20101412A1 true NO20101412A1 (en) | 2012-04-13 |
| NO333415B1 NO333415B1 (en) | 2013-06-03 |
Family
ID=46026226
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| NO20101412A NO333415B1 (en) | 2010-10-12 | 2010-10-12 | A system for graphics and computer game experiences on the Internet |
Country Status (1)
| Country | Link |
|---|---|
| NO (1) | NO333415B1 (en) |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20100175058A1 (en) * | 2009-01-06 | 2010-07-08 | Radin Andrew A | System for providing distraction-free content in a flash-based gaming environment |
-
2010
- 2010-10-12 NO NO20101412A patent/NO333415B1/en unknown
Also Published As
| Publication number | Publication date |
|---|---|
| NO333415B1 (en) | 2013-06-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12375567B2 (en) | Methods, systems, and computer program products for implementing cross-platform mixed-reality applications with a scripting framework | |
| US8028021B2 (en) | Techniques for providing presentation material in an on-going virtual meeting | |
| US10417308B2 (en) | Commenting dynamic content | |
| US20190377461A1 (en) | Interactive file generation and execution | |
| CN113411664B (en) | Video processing method and device based on sub-application and computer equipment | |
| EP1899970A2 (en) | Synchronization aspects of interactive multimedia presentation management | |
| CN101213609A (en) | Synchronous aspects of interactive multimedia presentation management | |
| EP1899968A2 (en) | Synchronization aspects of interactive multimedia presentation management | |
| CN117596377A (en) | Picture push method, device, electronic equipment, storage medium and program product | |
| US20070006061A1 (en) | Synchronization aspects of interactive multimedia presentation management | |
| US20050021552A1 (en) | Video playback image processing | |
| US12101525B1 (en) | Dynamic overlay elements for a video communication session | |
| NO20101412A1 (en) | A system for graphics and computer gaming experiences on the Internet | |
| TWI775397B (en) | 3d display system and 3d display method | |
| JP5619838B2 (en) | Synchronicity of interactive multimedia presentation management | |
| Brockschmidt | Programming Windows 8 Apps with HTML, CSS and Javascript | |
| CN116261003A (en) | Display equipment and streaming media playing control method based on browser | |
| US20230350532A1 (en) | System and method for on-screen graphical user interface encapsulation and application history reproduction | |
| CN117014689A (en) | Barrage display methods, devices and electronic equipment | |
| Korhonen et al. | Creating Mashups with Adobe Flex and AIR | |
| HK40052355B (en) | Video processing method based on child application, device and computer equipment | |
| CN118733032A (en) | A method, system, device and storage medium for developing nested application programs | |
| CN119336423A (en) | Command block rendering method, device, storage medium and electronic device | |
| Ghoda | Media Integration | |
| HK40052355A (en) | Video processing method based on child application, device and computer equipment |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| CHAD | Change of the owner's name or address (par. 44 patent law, par. patentforskriften) |
Owner name: GRIDSKY SOFTWARE AS, NORGE MELDING INNKOMMET PATENTSTYRET: 2021.10.17 |