ボクセルグラフィックスずVRを䜿甚しおHighload ++甚のゲヌムを䜜成した方法

実際、これは技術的に長匕く軜いものです。本を読んだ埌、䜕らかのゲヌムを䜜成するこずにさらに興味を持぀か、少なくずもその仕組みを孊ぶこずを期埅したす。



スピヌカヌに぀いお Alexander Khayorov @allexx は、 Ingram Micro Cloudの開発郚門を率いおいたす。 アレクサンダヌのチヌムのメンバヌは、優れた゚ンゞニアだけでなく、優れたボクセルゞェダむチヌム、最適化りィザヌド、3Dの達人、ビッグデヌタの倧君だず自負しおいたす。 [泚LinkedInおよびMediumの圹職に䌌おいたす]

Highload ++ 2017でのパフォヌマンスの準備をしおいるこのクヌルなチヌムは、芳客を楜したせ、スタンドのために新しくお面癜いこずをするこずにしたした。 したがっお、圌らはゲヌムを撮圱したしたが、その䜜成に぀いおはさらに議論したす。

ホステスぞの泚意䞻催者偎では、䌚議ぞの参加に備える努力を倧いに歓迎したす。 圌らは䜕床も報い、参加者を匕き付け、そしお結局のずころ、チヌムに利益をもたらしたす。

さあ、行こう



倚くの堎合、メヌルを分類するずき、さたざたなニュヌスがフラッシュするニュヌスフィヌドの芋出しを調べたす。 「Who are the Indie Developers」ずいう芋出しを芋たら、 䜕らかの理由で、圌は私を倢䞭にさせ、私はこの蚘事を読むこずにしたした。 私はそれを開いた-数字、文字、統蚈がたくさんありたした。

参考独立系開発者ずは、特別な予算やコンピュヌタヌゲヌムの出版瀟からの財政的支揎なしでゲヌムを䜜成する人々です。

原則ずしお、むンディヌズ開発者はスクリプトずテンプレヌトの範囲に負担をかけられないため、かなり面癜いゲヌム、映画などを手に入れるこずができたす。

この蚘事では、いく぀かの面癜い事実を芋぀けたした。





偶然にも私たちはゲヌムを䜜り始めたした。

なぜゲヌムを䜜り始めたのですか


私はい぀もRedditサヌビスのゲヌムが奜きでした。 私は思う、そしおあなたはあなたの人生の1ヶ月以䞊をこのリ゜ヌスに費やした。

Redditによる瀟䌚実隓


毎幎、Redditは瀟䌚実隓を行っおいたす。 実際には、これらはコミュニティ向けのさたざたなゲヌムです。 2017幎には、い぀ものように4月䞊旬フヌルの日に瀟䌚実隓が行われたした。



ゲヌムの本質は有望でした。 Reddit開発者は1,000 x 1,000ピクセルの画像を䜜成したした。 Redditに登録されおいる各ナヌザヌ数癟䞇人には、このキャンバスの1ピクセルをかなり広いパレットの1色でペむントするよう提案されたした。

むベントは72時間続き、各参加者は5分ごずに画面䞊に1点しか描画できたせんでした。 人々は異なる絵を䜜成し、圌ら自身の間で戊い、ピクセルを再描画したした。 いく぀かの囜ず地域瀟䌚が集たり、䞀緒に働きたした。

その結果、面癜いパネルが出おきお、そこから誰かがパズルを䜜り、誰かがそのような食りで靎䞋を぀なぎたした。

シンプルなゲヌムプレヌダヌでも、 人々を倧芏暡なオンラむンゲヌムに匕き蟌むこずができるずいうアむデアが本圓に気に入りたした。 これはおそらく、オンラむンゲヌムを䜜成するための䞻なむンスピレヌションでした。 䞀般に、ゲヌムは楜しいものでいっぱいだず思うし、あなたは時々異なるゲヌムをプレむし、それがあなたに喜びをもたらすず確信しおいたす。

しかし、技術者にずっお最も興味深いものは内郚にありたした。なぜなら、ゲヌムには膚倧な数の人々が集たりたした-100䞇人以䞊の登録ナニヌクナヌザヌが参加したした-毎秒最倧9䞇人が同時にピクセルをペむントしたした

専門的には、サヌバヌがサヌバヌず通信するずきにWebサヌビスずさたざたなM2Mサヌビスを開発したす。 これは実際には非垞に重芁で責任がありたすが、時には少し退屈です。 したがっお、 新しい開発経隓は垞に興味深いものです。 今すぐ共有したす。

今埌は、最初から䜕も経隓するこずなく、このゲヌムに぀いお倚くの新しく興味深いこずを孊びたした。

ゲヌム


特城


みんなず䞀緒になっお、ゲヌムをどうするかに぀いおのアむデアの骚組みをスケッチしたした。 最初に、切り札を䜿甚しお、クヌルな機胜を䜜成するこずにしたした。


ゲヌムはネットワヌク化され 、さらには巚倧であり、分割画面圢匏ではないこずを決定したした。


経隓のない2Dを䜜成する方がおそらく簡単ですが、チヌムはボリュヌムを望んでいたした。


過倧評䟡され、移転された技術がなければ、ゲヌムを成功させるこずは䞍可胜だず理解したした。

そこで、機胜セットを䜜成したしたが、特定のゲヌムプレむはありたせんでした。

譲歩


しかし、玄1週間埌、りィッシュリストを䜕らかの圢で制限する必芁があるず刀断し、わずかな劥協を行いたした。




ヘルプボクセルはほがピクセルですが、3次元の䞖界です。 たずえば、Minecraftでは、䞖界はボクセルで衚されたす。




私たちはしばらくこれに別れ、将来、特にゲヌムプレむずルヌルに぀いお議論するために、ビゞネスに぀いおのみ話すこずにしたした。

ゲヌムプレむずルヌル


ゲヌムプレむは非垞に単玔なもののようです StarCraft、Doom、Quackのプレむ方法はよく知っおいたす。 しかし、ゲヌムを䜜成するずきには、膚倧な数のアむデアがありたす。 これらの考えはさたざたな方向に散圚しおおり、ゲヌムがどのように芋え、䜕が起こるかに぀いお合意するこずは非垞に困難です特にチヌム内。

このプロセスは私たちにずっお線圢ではなく、すぐにすべおを決定するこずはできたせんでした。 ルヌルの最終バヌゞョンは非垞にシンプルに芋えたす。





これに関しお、すべおの管理機胜を決定し、アヌキテクチャを実行するこずを決定したした。

建築


゚ンタヌプラむズ補品を䜜成しおいるので、ゲヌムの゚ンタヌプラむズアヌキテクチャから始めるこずにしたした。 私たちは間違いなく以䞋を含むべきだず考えたした

  1. プレヌダヌ 。
  2. 仮想珟実のヘルメットで遊ぶための特別なスタンド 。
  3. ブラりザ 、ブラりザゲヌムになるず刀断したため。 人々はそこに来おそこからデヌタを受け取りたす。
  4. ある皮の 「 ストレヌゞ 」-ネットワヌク䞊にマルチプレむダヌゲヌムがあるため、別のプレむダヌに関するデヌタをどこかに保存する必芁がありたす。

これは、オリゞナルの、かなり玠朎なアヌキテクチャスキヌムでした。



分散システムでのレプリケヌションの問題


「ストレヌゞ」はブラりザずどのように通信する必芁がありたすかゲヌムはどこで機胜したすか ここから面癜い瞬間が始たりたす。私はあなたをもっず身近な地域に連れおいきたいです。

䞀般に、分散システムでのレプリケヌションの問題はよく理解されおいたす。 レプリケヌションは業界で毎日䜿甚されおいたす。 しかし、ゲヌム、特にネットワヌク化されたゲヌムは、ゲヌムの発生時にのみ耇補を保蚌する必芁がある堎合、耇補の非兞型的な状況です。 分散システムのプレむダヌ間の耇補ず接続性、䞀貫性がない堎合、ゲヌムをプレむするこずは䞍可胜であるため、ゲヌムを完了するこずができたす。



2皮類のレプリケヌションが区別されたす。

  1. たずえば、あるクラむアントからデヌタを盎接取埗しお他のすべおのプレヌダヌに送信する堎合、プレヌダヌがフラグをキャプチャしたずいう情報が送信されたす。 他のクラむアントでは、たったく同じアニメヌション、同じむベントなどが発生したす。
  2. パッシブレプリケヌション 。この堎合、プレヌダヌはサヌバヌに情報を送信し、このサヌバヌは既に他のすべおのプレヌダヌにデヌタ転送を提䟛したす。

ここで塩が䜕であるか、䜕が良い、悪いか、アクティブレプリケヌションずパッシブレプリケヌションの間に違いがあるかどうかを把握しおみたしょう。

アクティブレプリケヌションの長所ず短所


+アクティブレプリケヌションでは、すべおがシンプルで盎感的です。デヌタを取埗し、他のすべおのプレヌダヌに送信し、他のすべおのプレヌダヌから情報を取埗したす。

+ 2番目の重芁な点-このシステムは非垞に効果的です。 実際、他のプレむダヌずデヌタを受信、凊理、送信するサヌバヌ圢匏の远加デバむスは必芁ありたせん。

-しかし、巚倧なマむナスがありたす-アクティブレプリケヌション䞊に構築されたシステムは非垞に脆匱です。 損倱、遅延、顧客ずの困難などのネットワヌクの問題の発生は十分であり、完党に䞀貫性のないシステムであるこずがわかりたす。 同期が壊れ、私たちの仕事は同じ共通䞖界を持぀こずです。

実際、同期が壊れおいる状況から抜け出すこずは簡単ではありたせん。 これにはさたざたなプロトコル、たずえばPaxosがありたすが、それらはすべお、アクティブレプリケヌションの単玔なスキヌムを感知できないほど耇雑にし、時間ず蚈算リ゜ヌスを必芁ずしたす。

たずえば、叀兞的なStarCraftゲヌムはアクティブレプリケヌションに基づいおいるず蚀えたす。 これは、シンプルでありながらもろいモデルを䜿甚する明確な䟋の1぀です。 そのため、同期で特定の問題が発生した堎合、原則ずしおゲヌムを完了しお再起動する必芁がありたす。

パッシブレプリケヌションの長所ず短所


+アクティブずは異なり、パッシブレプリケヌションは非同期化に察しお非垞に抵抗力がありたす。 䜕かがうたくいかない堎合、特別なデバむスがありたす-システムを正垞に戻すこずができるサヌバヌ。

+ 2番目のポむントは、倚くの堎合非垞に過小評䟡されおおり、重芁です。ゲヌムの安党性です 。 最近、 Vdpixel Battleゲヌムが登堎したした-RedditのPlaceゲヌムに盎接類䌌しおおり、ボヌドをペむントするこずもできたした。 このゲヌムは数時間にわたっおハッキングされたした ゜ヌス 。 パッシブモデルでは、倚くのこずを制埡できるサヌバヌがあるずいう理由で、ゲヌムのセキュリティを提䟛するのが非垞に簡単です。

-しかし、マむナスのないプラスはありたせん。 デヌタの送受信を行うサヌバヌであるサヌバヌの出珟により、叀兞的な障害点が発生したす。 シャヌディング、ノヌドぞの分離などの特別なツヌルを䜿甚しない堎合、サヌバヌをクラッシュさせるこずでゲヌム党䜓を倱う可胜性がありたす。

私たちは長く考えなかったし、すべおの珟代のゲヌムの開発者のように、耇補の受動的な方法を遞びたした。 実際、今ではゲヌムの倧郚分玄99がパッシブレプリケヌションを䜿甚しおいたす。 そのため、匷力な゚ンタヌプラむズアヌキテクチャに別の匷力なコンポヌネントが登堎したした。ゲヌムバック゚ンドは、同期のタスクを匕き受けたす。



デヌタ構造


ストレヌゞシステムに぀いお少し話したしょう。 実際のずころ、䞀郚のサヌクルでは慣習的であるように、ストレヌゞの遞択に䟝存しおいるずいうこずです。

デヌタを保存する堎所を理解するには、デヌタの衚瀺方法を知る必芁がありたす。 これはおそらく、特定の基準を定矩する最も重芁な問題です。 ゲヌムで可胜なデヌタ構造を考慮しおください。



ボクセルが倚く、䞖界は限られおいたす。 キュヌブボクセルに関するすべおの情報を取埗し、通垞の線圢の倧きな配列に栌玍できたす。 これは非垞にシンプルで簡単な方法です。 その䞻な利点は、セルぞの継続的な曞き蟌みず読み取りです。 ボクセルに関する情報を安党に取埗でき、䞀定の時間がかかりたす。

実際、Minecraftを含む倚くの珟代のゲヌムは、たさにそのようなモデルから始たり、非垞に成功しおいるこずが蚌明されたした。

ここでの欠点は、 倧量のメモリ消費です。 実際、私たちの䞖界は3次元で成長しおいるため、このデヌタを栌玍するために必芁なメモリ量は非線圢に増加したす。

この問題は、たずえばoctree treeを䜿甚しお解決できたす。 私たちはそれが䜕であるかに入る぀もりはありたせん、私はちょうど絵を芋お理解するこずを提案したす。



3次元の䞖界が倧きな立方䜓の圢で衚瀺される堎合、8぀の郚分に分割できたす-okta。 それぞれを8぀のセクションに分割するこずもできたす。 このメカニズムにより、デヌタのない領域のためにストレヌゞ構造を倧幅に節玄できたす。

明確なプラスがありたす-これは、 ストレヌゞの芳点からより奜たしい構造です。 マむナスは最初はそれほど明癜ではありたせんが、実際にはすぐに消えたす。 事実、異なるキャッシュを䜿甚する必芁があるずいうこずです。 原則ずしお、octreeを䜿甚するすべおの人は、octreeが通垞の配列よりも著しく動䜜が遅いず文句を蚀いたす。



最埌に、3番目のオプションがありたす。これを劥協ず呌びたす。通垞の線圢配列を䜿甚しお、䞀定の領域チャンクに分割できたす。 これにはいく぀かの利点がありたす。 たずえば、通垞の配列ずは異なり、個々のブロックをロヌドできたす。 1人のナヌザヌの党䞖界をダりンロヌドする必芁はありたせん。 そこから来るブロックのみをロヌドできたす。

しかし、マむナス点がありたす-もちろん、チャンクぞのリンクを保存したり、チャンクを操䜜したり、ゲヌムのフロント゚ンドにロゞックを远加したりする必芁があるため、これは通垞の配列のモデル党䜓を耇雑にしたす。

私たちのゲヌムでは、最埌のオプションが最適であるず刀断し、それを遞択したした。 その埌、私たちのストレヌゞの遞択は気付かれたせんでした私たちは決めたした-MongoDBにしたす。 私は今、このトピックでホリバヌを繁殖させたくありたせん-他の倚くの優れたデヌタベヌスでもこれを実装できるず確信しおいたす。 ただし、このベヌスを䜿甚した経隓はほずんどなかったため、実隓のためにこのベヌスを䜿甚するこずにしたした。

フロント゚ンドずバック゚ンド間の盞互䜜甚のプロトコル


特定の構造があり、クラむアントが存圚したす。おそらく、すべおが衚瀺されるブラりザが衚瀺されたす。 しかし、ストレヌゞずゲヌムの間でデヌタを転送する方法は プロトコルに぀いお考える時が来たした。

すでに知っおいるように、私たちの䞖界は、ベヌスが1000×1000、高さが200の平行六面䜓の圢で衚瀺されたす。高さは無芖しお、アンロヌド時に垞に最倧の高さを䜿甚できたす。 これにより、ゲヌムの䜜成が倧幅に簡玠化されたす。

同様に、各正方圢は暙準に埓っお、内郚で32×32ボクセルの塊に分割したした。

先ほど蚀ったように、MongoDBを䜿甚するこずにしたした。 ボクセルは非垞に簡単に栌玍されたす。これには通垞のドキュメントを䜿甚したす。 文曞の内郚は次のスラむドのようになりたす。




珟圚、少なくずも2぀のタスクがありたす。 たずえば、プレヌダヌを監督したす。 圌はある時点で䞖界で生たれたした。

  1. プレむダヌが芋るこずができる最も近いチャンクを決定し 、半埄を圢成したす。 実際、これは完党に正しい名前ではありたせん。 距離の理解を圢成し、それが圱響するチャンクの数を確認したす。 次に、デヌタベヌスぞのgetリク゚ストを䜜成したす。このリク゚ストでは、プレヌダヌの珟圚の座暙ずこの半埄を指定したす。
  2. セット -マップ䞊のブロックたたはキュヌブを䜜成したす。 蚭定するキュヌブの座暙を送信するだけで十分です。

これらは、リポゞトリぞの盎接リク゚ストです。

逆の方向では、他のキュヌブを曎新する芁求を監芖できたす。



この堎合、䞖界にいお初期状態の䞀郚を受け取ったずいう事実に぀いお話しおいるのは、他のナヌザヌが䜜成する新しいキュヌブを芳察したいずいうこずです。 これを行うために、むベントにサブスクラむブし、ゲヌムに衚瀺されるすべおのサむコロに関する曎新されたメッセヌゞを受け取りたす。

最埌に、ゲヌムに少しむンタラクティブ性を远加したかったので、ナヌザヌのアクティビティに関する特別なメッセヌゞを远加したした-誰かがゲヌムに入ったずき、倖出したずき、たたはポむントを獲埗できるフラグを傍受したずきです。

そこで、盞互䜜甚のプロトコルを䜜成したした。

バック゚ンドずフロント゚ンド間で通信する方法に぀いお、HTTP、WebSocket、HTTP2の小さな遞択がありたした。 明癜な理由で、可胜性のある朜圚的な遅延を盎感的に枛らすために、 WebSocketで停止するこずにしたした。

たた、ゲヌムの結果を取埗するのは良いこずだず考えたした。たずえば、誰がゲヌムに参加したか、どのポむントを獲埗したかを確認するこずです。 これを行うために、別の「ビュヌ」を䜜成したした。これをフロント゚ンドに固定し、HTTPを䜿甚しお、蚱可せず、このプロセスを耇雑にしないようにしたした。

そのため、アヌキテクチャに特定のスタックを圢成したした。 盞互䜜甚の重芁なポむントはWebSocketでした。

ゲヌムバック゚ンド


少なくずも、バック゚ンドはシステムの心臓郚ず蚀えたす。




そこで、完党に䌝統的なスタックを埗お、
指定されたプロトコルに埓っおデヌタを亀換したす。

ゲヌムフロント゚ンド


これが私たちのゲヌムのハむラむトです-ゲヌムが生きお存圚し始める方法です。

たず、ゲヌム゚ンゞンの䜜成方法、ゲヌムの䞀般的な䜜成方法、およびそれがどのように機胜するかずいう質問がありたした。 玠材の短い研究の埌、倚くを可胜にするWebGLラむブラリがあるこずに気付きたした。 OpenGLラむブラリで動䜜したす。OpenGLラむブラリは、すでに機噚、ドラむバヌ、ビデオカヌドなどで動䜜しおいたす。

したがっお、最初の考えは、通垞のネむティブJavaScriptを䜿甚しお、どのAPIがWebGLを提䟛するかを確認し、ゲヌムの䜜成を開始するこずでした。 Web開発の経隓から、Webサヌバヌ自䜓の開発は非垞に奇劙で長い間行われおいるこずがわかったため、私たちはこの考えをすぐに华䞋したした 。 たた、あたり時間がありたせんでした。

短い怜玢の埌、 Voxel.jsずいうJSラむブラリが芋぀かりたした。 実際、それは非垞に倚くのツヌルを衚しおいるため、私たちにずっお聖杯になっおいたす。



ラむブラリは3幎以䞊存圚し、著者が䞻匵するように、実際には、最新のブラりザヌゲヌムずボクセルゲヌムを䜜成するためのツヌルキットです。 必芁なものがすべお含たれおいたす。


スタック党䜓の様子




実際、three.jsを䜿甚したシヌン、特にそれを䜿甚するVoxel.jsを䜿甚したシヌンの䜜成はそれほど簡単ではありたせん。 長い目で芋れば耇雑なこずは䜕もないように芋えたすが。

コヌドを芋おみたしょうが、事前に怖がるこずはありたせん。



ブラりザヌでクヌルな3D画像を䜜成するには、本圓に3〜4個のものが必芁です。

  1. たず、普通の䞖界のように、 シヌンが必芁です。
  2. このシヌンにはカメラが必芁です。カメラオブゞェクトを䜜成し、その䞭に衚瀺される寞法ず最倧/最小距離を指定したす。
  3. その埌、レンダリングするデバむスが必芁です-シヌンのカメラ甚に芋たいものを䜜成したす。 これを行うには、 renderを䜜成したす 。 この堎合、WebGLテクノロゞが䜿甚されおおり、ビデオカヌドは䞖界を䜜成するために機胜したす。

基本的に、ゲヌムが機胜するためのすべおが揃っおいたす。 唯䞀のものは、いく぀かのオブゞェクトがありたせん。

4.オブゞェクトを䜜成するには、次のものが必芁です。


ゞオメトリずマテリアルを組み合わせるこずで、いわゆるメッシュたたはある皮のオブゞェクトメッシュが埗られたす。

次に、単玔なアニメヌション関数が呌び出されたす。 ブラりザのsetIntervalず同様に、新しいフレヌムを描画するたびにアニメヌションが衚瀺されたす。 実際、このメカニズムは通垞の3Dゲヌムで䜿甚され、ブラりザヌで䜿甚できたす。

バヌチャルリアリティ


VRに぀いお少しお話ししたいず思いたす。 私が蚀ったように、私たちは泚目を集めるためにハむテク技術を䜿いたかったのです。 VRを䜿甚するこずにしたした。 これはランダムで自然発生的な遞択でしたが、このトピックを研究した結果、VRはそれほど新しくも誇倧広告の技術でもないこずがわかりたした。 この写真は20䞖玀初頭のものです。VRですが、20䞖玀のものです



このヘルメットを䜿甚しお、実際の3Dオブゞェクトを衚瀺する必芁がありたす-これは静的なものだけです。



オクルスの裂け目


静止画像を䜿甚せずに、ビデオでグラフィックを䜜成するこずにしたした。 そのため、 Oculus Riftを遞択したした。



繰り返したすが、遞択は非垞に盎感的で自発的でした。 Oculus Riftは少なくずも3぀の基本的なデバむスで衚されたす。

  1. ヘルメット;
  2. 远跡、぀たり頭郚の動きを理解するための特別なデバむスで、本来補助的です巊。
  3. コントロヌラヌ-さたざたな方法で衚すこずができるコマンドの゜ヌス
    デバむス。

VRテクノロゞヌずOculusヘルメットに関係する人はいたせんでした。



長所

+これは本圓にVRの絵です-それは非垞に珟実的であり、あなたは私たちの脳を欺いお、私たちが3Dの䞖界にいるず想像するこずができたす。

+良奜な画面解像床ず非垞にたずもな画像リフレッシュレヌト。 仮想珟実の最初の叀いヘルメットずは異なり、私は個人的に、写真を芋ながら私の幞犏床の顕著な悪化を芳察したせんでした。

+これは実際に非垞に䟿利なデバむスで、手にぎったりずフィットし、頭にぎったりずフィットするように䜜られおいたす。 これは本圓に消費者向けデバむスだず蚀えたす。

短所

-VRを想像しお、ヘルメットやデバむスを装着するだけでクヌルになりたす 実際、これは膚倧な数のワむダです。 実際、各デバむスには1本たたは2本のケヌブルが必芁です。

-私にずっお2番目の重芁な瞬間ずわずかな倱望-私はい぀ものラップトップを持っお゜ファに座っおプログラムできるず思っおいたした。 重倧な制限があるこずが刀明したした。Windows、Oculusのみを䜿甚でき、SDKはmacOS / Linuxでは䜿甚できたせん。 おそらく、これは䌚瀟の戊略たたはオペレヌティングシステムの機胜です。私には蚀いにくいです。

-十分なビデオカヌドを接続しないず、VRで簡単なビデオやゲヌムを起動するこずさえできたせんでした。 私は珟代の3Dゲヌムの熱心なゲヌマヌではないため、開発を開始するためにそれを探す必芁がありたした。

これらの䞍利な点に恥ずかしくないのであれば、仮想珟実の珟代のヘルメットを安党に詊すこずができるず思いたす。

VRゲヌムの䜜り方


私たちにずっお、このトピックは完党に閉じられおおり、理解できたせん。 ガゞェットや孊䜍など、特別な魔法が必芁だず考えたした。 そうでもない。

Aフレヌム


珟圚、ブラりザでもVRゲヌムを䜜成できるツヌルは倚くありたせん。



おそらく、むンタヌネットで最初に芋぀けるこずができるのは、A-Frameフレヌムワヌクです。 .

, , Oculus Rift, . , , .

, , , web-, , HTML. , — , 3D VR- .

, html-. , .

, . , . , . 3D- .. , .

VR.

— VR? VR . . . , VR-. , , . .

, . . .



enterprise-, , :

  1. Voxel.js.
  2. — A-Frame.

, ,
, . Firebase, .

最適化


.



, , . , .

1. Pre-process voxel models

, , PowerPoint. , , , .

, , . , : « , ? !»

, , , , . — 78% .

2. User Mesher

mesher. , , , . , Minecraft , -.

, ( Mesh). mesher. , , , . , , , - , , .

, mesher . c Voxel.js FPC . A-Frame , mesher .

3. Enable compression for WebSocket (RFC 7692)

, web-. WebSocket — , , .

( JSON) . . — ?

WebSocket, HTTP. , , , RFC , , WebSocket.

, . — 5 MB 1,8 MB .

, — , Chrome, Firefox, Safari — . , .

, , . — , , , , , .

— - ! , , .

, コヌドベヌス、私たちはそれをオヌプンにしたした。私たちがどのようにゲヌムを開発したか、それが䜕であるかを芳察し、サヌバヌず2぀のバヌゞョンを含むゲヌムのコピヌを問題なく起動できたす-VR甚ずブラりザ専甚です。

ちなみに、RIT ++ 2018では、CloudPipesず呌ばれる論理ゲヌムPipesのリメむクを準備しおいたす。

論文を再確認し、䌚議、特に私たちの䌚議ぞの参加は楜しいです

スケゞュヌル祭りのプレれンテヌション、mitapami、クむズや「䜕のどこい぀準備はできおいたすが、チケットを入手するチャンスはただありたす。

たた、わずか1か月埌のHighload ++ Siberiaも忘れおください。

Source: https://habr.com/ru/post/J359130/


All Articles