Tech Talks Episode 30: SLIM dan Transkoding Awan
SLIM dan Transkoding Awan
Bersama Varun Mani, Sergey Makeev, dan Tsvetan Tsvetanov
Dalam episode Tech Talks kali ini, pendiri dan CEO David Baszucki berbincang dengan para pemimpin produk dan teknik Roblox, yaitu Varun Mani, Sergey Makeev, dan Tsvetan Tsvetanov, untuk mengupas bagaimana SLIM (sistem tingkat detail hierarkis dan dinamis) serta Cloud Transcoding mengubah batasan kemungkinan di Roblox.
Pembicaraan ini mencakup cara Roblox menyiarkan dunia 3D interaktif secara real-time, bagaimana transcoding menghasilkan representasi aset yang optimal untuk setiap perangkat, dan bagaimana SLIM mengompresi lingkungan dan avatar yang kompleks menjadi model komposit yang ringan. Kelompok ini juga mengeksplorasi bagaimana sistem-sistem ini membuka kebebasan kreator yang lebih luas, dunia multipemain yang lebih besar, serta jalur menuju upsampling yang dibantu AI dan teknologi mesin yang tahan masa depan.
Transkrip Lengkap
Dave: Halo, ini Dave Baszucki, saya pendiri dan CEO Roblox, dan Anda sedang mendengarkan atau menonton Tech Talks. Jadi hari ini kita akan membahas apa saja yang membentuk mesin game generasi kedua, bagaimana hal itu melibatkan cloud, dan bagaimana kami membantu pengguna bergabung secara instan dengan resolusi tinggi. Kami memiliki tim impian teknis di sini, um, sebagai bagian dari Roblox.
Jadi, kita punya Varun Mani, Sergey Makeev, dan Tsvetan Tsvetanov, dan kita akan mendalami segala hal tentang streaming. Kita akan membahas Slim, kita akan membahas transcoding aset, segala hal yang membuat Roblox pada akhirnya dapat menampung seratus ribu pemain. Jika kita melihat industri game dalam 10 atau 20 tahun terakhir.
Ada cara tradisional bagaimana semua konten 3D ini ditampilkan di hadapan Anda, dan, um, uh, dan, dan ada beberapa masalah dengan cara tradisional ini. Karena apa yang kami coba lakukan di Roblox adalah bergabung secara instan. Eh, kami berusaha agar pengalaman yang sama bisa berjalan di ponsel maupun di PC besar. Kami berusaha melakukannya tanpa latensi, dan ketika kita melihat cara kerja game tradisional, itu tidak sepenuhnya sama, kan?
Seperti, saya ingat, um, di masa saya, game didistribusikan melalui benda yang disebut floppy disk. Tapi bahkan hari ini, kan, kita mendistribusikan game melalui. DVD besar, saya pikir. Benar begitu?
Varun: Ya. Dan menurut saya kuncinya adalah semuanya dikemas menjadi satu. Ya. Benar, kan? Jadi, baik itu DVD atau Anda mengunduh game hari ini, semuanya datang sebagai satu paket besar yang tidak bisa, tidak bisa dipisahkan.
Jadi, kamu harus menunggu sampai seluruh 4,7 gigabyte, atau 10 gigabyte, dalam beberapa kasus, selesai diunduh sebelum bisa mulai bermain.
Sergey: Ya. Dan seperti yang Varun katakan, untuk beberapa game itu bisa mencapai 20 atau 40 gigabyte, dan kamu harus menunggu sangat lama sebelum bisa mulai bermain. Dan itu agak, kamu tahu, mengganggu alurnya, kan?
Jadi, karena kamu ingin bermain, mungkin kamu punya waktu satu atau dua jam setelah kerja, ingin main game, tapi harus menunggu 30 atau 40 menit sambil menunggu pembaruan. Intinya, itu hampir sama dengan pengalaman saya saat bermain. Seperti
Dave: jadi bukankah itu mirip dengan apa yang kita lihat di video dan film?
Aku ingat dulu film-film didistribusikan lewat DVD, lalu aku juga ingat masa-masa BitTorrent, misalnya. Kamu harus mengunduh semuanya, dan akhirnya kita sampai pada titik di mana aku bisa langsung menonton di Amazon, Netflix, Hulu, atau Tubi. Tapi, menurutku hal itu belum sepenuhnya terjadi di pasar game.
Belum. Belum. Saya rasa belum.
Tsvetan: Kami adalah satu-satunya yang menargetkan
Dave: hal itu. Jadi, secara historis, Roblox sudah bekerja seperti itu di balik layar, um. Kebanyakan orang mungkin tidak menyadarinya, tapi saat kamu membuka halaman utama Roblox dan mengklik "Play", kamu bisa langsung bergabung. Ini sebenarnya sangat tidak konvensional karena saat saya berada di platform game yang sangat canggih, um, saya pernah melihat unduhan mencapai 200 gigabyte sebelum bisa bermain.
Jadi, jadi kita sudah melakukan fitur main instan ini? Ya.
Tsvetan: Uh, sejauh yang saya tahu, Roblox adalah satu-satunya platform yang memungkinkan fitur bergabung dan bermain instan ini. Oh ya,
Varun: ya, maaf. Dan, dan seperti saat kamu bicara tentang streaming video, kan? Seperti apa yang sebenarnya kamu lakukan saat streaming video di mana aku tidak mau mengunduh seluruh film, aku hanya mengunduh bagian film yang ada di depanku dan kita sebut itu buffering.
Saya, saya sedang streaming filmnya. Benar? Jadi itu benar, tapi itu hanya dalam satu dimensi. Karena di sana hanya ada dimensi waktu. Ya, itulah perbedaan utamanya di sini. Itulah yang sulit dilakukan di Roblox karena ini adalah dunia 3D interaktif penuh di mana kamu harus melakukan streaming baik untuk instance maupun aset, yang merupakan blok bangunan dasar dari segala hal di
Dave: Roblox A a dan uh, menurut saya ini membuatnya semakin sulit karena di pasar video game tradisional.
Saya cenderung melihat versi game yang berbeda di PC kelas atas dan ponsel kelas bawah. Dan menurut saya, yang saya maksud adalah di PC kelas atas di mana saya bisa mengunduh ratusan gigabyte. Akan ada aset yang sangat besar dan kompleks, sedangkan di ponsel, sepertinya pembuatnya membuat versi terpisah
Sergey: di beberapa.
Uh, ya. Jadi, itu, itu, itu poin yang sangat bagus, karena, misalnya, di game tradisional, mereka punya proses yang disebut 'asset cooking'. Jadi mereka, uh, menyiapkan versi yang sangat dioptimalkan, seperti, per platform. Dan kalau dipikir-pikir, dari perspektif streaming video, itu seperti di DVD.
Uh, videonya hanya dienkode sekali, kan? Ya. Jadi, tapi di platform streaming mana pun, mereka punya beberapa enkoding untuk video yang sama, jadi secara otomatis menyesuaikan dengan perangkatmu. Dan, uh, semua game saat ini, mereka, kamu tahu, seperti mereka menyiapkan aset mereka terlebih dahulu, dan mengirimkan versi yang sangat spesifik untuk setiap platform.
Jadi kami bisa menghasilkan versi yang dioptimalkan dari satu aset per platform di cloud. Benar.
Dave: Jadi, simpan dulu pemikiran itu, ya? Karena beberapa waktu lalu kami punya visi, jika kamu seorang kreator muda dan membuat pengalamanmu sendiri, itu bisa berjalan di bahasa apa pun. Kami punya visi bahwa itu bisa berjalan di perangkat apa pun dan dengan resolusi yang beragam di perangkat mana pun.
Kita akan, kita akan mendalaminya. Jadi, pasar game tradisional, kamu tahu, dikemas atau diunduh. Um, kita ingin menyelesaikan masalah akses instan, publikasi untuk perangkat apa pun, latensi rendah, dan semua itu bersama-sama. Dan hari ini kita akan membahas sesuatu yang disebut streaming 3D dan 40.
Kita akan membahas, um, konten di cloud. Kita akan membahas sesuatu yang disebut Slim, yang menurut saya semua orang akan sangat antusias. Dan jadi mungkin, um, untuk memulai, Varun, berikan sedikit gambaran tentang apa itu Slim dan apa. Um, kita sebut Cloud Transco. Ya. Dan apa artinya semua itu?
Varun: Jadi, jika kita mundur sejenak, jika kita memikirkan visi kita secara keseluruhan, kita berusaha mencapai 10% dari pasar game.
Ya. Cara kita melakukannya adalah dengan memberikan kebebasan penuh kepada kreator atas apa yang mereka buat. Hmm, dan jika kita memikirkan bagaimana kita berkembang, ada dua dimensi. Kita bisa melakukan ekspansi platform atau ekspansi genre. Ekspansi platform adalah bagaimana kita membuat konten yang sama berfungsi di semua platform?
Jadi, Anda membuatnya sekali. Roblox, pastikan itu berfungsi di mana saja. Dan dalam perluasan genre. Kami ingin Anda menciptakan hal-hal yang semakin mengesankan dan semakin gila di luar sana.
Dave: Dan ketika Anda mengatakan "berjalan di mana saja", secara harfiah, bayangkan sesuatu yang sangat besar, gila, dan menyenangkan. Grand Theft Auto, Red Dead Redemption, konsol kelas atas.
Berjalan di ponsel Android 2 gigabyte dan segala perangkat di antaranya. Benar. Mulai dari
Varun: Mulai dari PC hingga ponsel Android 2 GB, semuanya harus berjalan tanpa perlu kerja ekstra dari pembuatnya. Itulah visinya. Tepat sekali. Cloud, transcoding, dan Slim hanyalah dua langkah awal yang kami ambil menuju arah itu.
Dave: Oke, jadi itu sedikit teaser. Kita akan menjelaskan apa itu Slim dan kita akan menjelaskan, saya pikir kamu mungkin akan menjelaskan apa itu Transcoding, tapi mari kita perkenalkan dulu semua orang. Jadi Sergey, um, kamu kembali, bisakah kamu berbagi sedikit latar belakangmu dalam optimasi mesin? Salah satu hal paling seru di dunia, kan?
Bahasa pemrograman C++ dan assembly seperti C, D, bisakah kamu berbagi sedikit tentang apa yang sedang kamu kerjakan?
Sergey: Uh, jadi ya, seperti yang kamu sebutkan sebelumnya, jadi, ya, aku sudah bekerja di bidang game atau game sepanjang hidupku, melakukan semua optimasi itu, mulai dari Xbox regional dan sebagainya.
Uh, dan. Kamu tahu, saat pertama kali aku tahu tentang Roblox, pikiranku benar-benar terpesona dengan ide bahwa sebuah game dibuat sekali saja, atau bahkan bukan game. Mungkin pengalaman apa pun yang dibuat sekali, lalu bisa dijalankan di mana saja, di platform apa pun, di perangkat apa pun, tanpa memerlukan input tambahan dari pengguna.
Dan itu adalah masalah teknik yang sangat menantang. Uh, seperti, uh, seperti yang bisa dibayangkan semua orang, kan? Jadi, uh, dan itu membutuhkan banyak, uh, kamu tahu, optimasi tradisional, seperti CMD, seperti multi-threading, seperti penjadwalan GPU yang sangat hati-hati, semua itu. Tapi di sisi lain, kamu tahu, ada batasan, uh, seberapa jauh kita bisa menskalakan di satu perangkat.
Untungnya bagi kita, kita selalu punya cloud, kan? Jadi, kita bisa mengunggah sebagian pekerjaan ini ke cloud kita dan membantu perangkat-perangkat tersebut merender dengan lebih efisien untuk merender dinding yang lebih besar. Sampai batas tertentu, misalnya saat kita merender dinding yang bahkan tidak muat di memori perangkat fisik, karena dinding tersebut juga ada di sisi server, dan server membantu semua klien merendernya dengan efisien.
Dave: Ya. Dan jadi, sebagai poin penting, saya pikir bagian dari petunjuk yang akan kita bagikan di bawah ini adalah mesin game tradisional biasanya ditulis dalam C++, dan kamu mengunduh semua asetnya. Tapi katakanlah game yang ingin kamu mainkan adalah seluruh dunia, misalnya, tidak ada yang bisa menaruh seluruh dunia di DVD.
Jadi, yang sebenarnya Anda maksudkan, dan kita sudah melihatnya dengan Google Maps dan jenis layanan serupa lainnya. Tidak mungkin, um, Anda bisa menaruh semua itu di satu tempat. Dan jadi bagian dari apa yang akan kita bahas saat kita bicara tentang streaming adalah hal yang sama untuk game dan kemudian enton. Bisakah Anda sedikit menjelaskan, bagaimana, apa yang membawa Anda ke Roblox dan apa latar belakang Anda, serta mungkin sedikit petunjuk tentang apa itu Cloud Transcoding.
Jadi,
Tsvetan: uh, sebelum bergabung dengan Roblox, saya menghabiskan, uh, pengalaman profesional saya di dua bidang. Yang pertama adalah, uh, perangkat lunak desain dan simulasi 3D untuk arsitektur, konstruksi, dan teknik mesin. Dan yang kedua adalah komputasi terdistribusi skala besar, yang. Saya bisa menerapkan pengetahuan dari kedua bidang tersebut ke Roblox karena pada dasarnya itulah yang Roblox lakukan.
Dave: Ya. Mari kita beralih ke streaming di Roblox dan bahas itu. Jadi, kita tahu apa itu streaming video. Streaming video itu seperti hal yang linier, kan? Saya hanya butuh satu frame. Setelah satu frame, kita kirim satu per satu. Bisakah kamu jelaskan apa arti streaming dalam 3D secara real-time?
Varun: Jika kamu benar-benar melihat apa, um, hampir semua hal dalam, dalam, dalam game ROBLOX saat ini terdiri dari instance atau aset, kan?
Instance, semacam struktur dunia. Dan aset adalah hal yang sebenarnya menggerakkan instance tersebut untuk konten yang sebenarnya. Hmm, jika Anda memikirkan streaming, itu tentang streaming instance dan streaming aset-aset tersebut juga. Itu yang harus Anda lakukan. Jadi, jika dalam streaming video, Anda hanya memiliki satu aset, itu adalah videonya.
Di Roblox, kami melakukannya ribuan kali, 10.000 kali, berulang-ulang. Jadi, saat Anda berbicara tentang streaming instan, Anda hanya mencoba mengalirkan cukup bagian dunia di sekitar Anda, dan Anda tidak tahu apa yang akan dilakukan pemain. Pemain mungkin berjalan ke arah ini, pemain mungkin berjalan ke arah itu. Anda ingin mengalirkan atau menyimpan cukup bagian dunia.
Dan kemudian di dunia yang telah Anda simpan dalam buffer, Anda ingin menyimpan aset dengan kualitas yang tepat. Jadi seperti yang disebutkan Sergei, Anda memiliki tingkat kualitas yang berbeda untuk video. Kami memiliki hal yang sama untuk mesh, hal yang sama untuk gambar.
Dave: Jadi, jika kita uraikan, apakah tepat jika dikatakan bahwa instance adalah hal-hal yang mungkin sudah kita kenal?
Sebuah mobil, sebuah pohon, orang lain, sebuah bukit, sesuatu seperti itu. Dan kemudian aset adalah hal-hal teknis yang membentuk instance-instance tersebut. Seperti di dalam objek-objek 3D tersebut. Saat kita bermain game, kita memiliki gumpalan segitiga, kita memiliki gumpalan tekstur, jadi kita sedang membicarakan memilih mana dari gumpalan-gumpalan tersebut yang akan
Benar-benar menariknya kapan saja.
Varun: Ya. Dan representasi mana dari elemen-elemen tersebut. Jadi saat kamu berjalan, saat menjelajahi dunia, perangkatmu seperti berkata, "Oke, aku butuh pohon itu." Pohon itu terdiri dari banyak mesh dan tekstur, dan mungkin di masa depan juga animasi, audio, dan seterusnya.
Jadi kemudian sistem memutuskan. Oke. Berdasarkan posisi pohon itu, pentingnya, seberapa banyak ruang layar yang ditempati. Aku ingin teksturnya berkualitas tinggi. Aku ingin mesh-nya berkualitas sedang. Dan untuk audio, mungkin aku belum membutuhkannya, jadi jangan tunda audio. Jadi sistem terus-menerus membuat keputusan-
Dave: jadi, dalam arti tertentu, ini sedikit mirip dengan, saat saya menggunakan program pemetaan, saya, saya hanya memasukkan gambar-gambar kecil, potongan kecil dari peta.
Kita membicarakan versi 3D dari itu dan, kamu tahu, komponen 3D interaktif juga. Oke. Dan, ada hal yang sangat esensial di balik layar. Saya, saya, saya akan mengatakan visi kami selalu: tidak peduli perangkat apa atau apa yang kamu gunakan, kami berusaha memasukkan yang tepat secepat mungkin.
Dan, kadang-kadang kami mengatakan kami ingin memuatnya secepat mungkin untuk memaksimalkan persepsi manusia akan keajaiban. Seperti, "Wow, dunia ini tiba-tiba muncul di hadapan saya." Jadi, Sergey, bagaimana kita memilih dan menyortir apa yang harus dimuat dan apa yang harus dimasukkan?
Sergey: Jadi, ya. Uh, optimasi, seperti, uh, untuk persepsi, kamu tahu, seperti latensi.
Itu sangat penting karena, seperti yang Varun sebutkan tadi, kita terus mengukur area ruang layar, seberapa penting objek tersebut. Misalnya, jika kamu melihat pohon dari jarak sangat dekat, atau melihat pohon yang sama persis dari jarak sangat jauh, keduanya bisa jadi seperti dua pohon yang berbeda, kan?
Jadi, jika Anda melihatnya dari jarak jauh, Anda tidak terlalu peduli dengan detail tekstur yang halus, atau semacamnya. Jadi, kami bisa, kami bisa selalu menggunakan, Anda tahu, tekstur resolusi rendah untuk pohon tersebut. Eh, kamu tidak akan bisa membedakan, misalnya, apakah itu struktur berisiko rendah atau berisiko tinggi karena ukurannya sangat kecil di layar.
Tapi di sisi lain, kita bisa memuat data hampir seketika karena data yang dibutuhkan jauh lebih sedikit. Tapi saat kamu mendekati objek-objek itu, kita akan memuat data secara bertahap semakin banyak, dan tampilan akan semakin detail. Jadi kamu tidak akan melihat transisinya, tidak akan bisa membedakannya, tapi kamu akan langsung, langsung bisa melihat dan berinteraksi dengannya.
Dave: Dan, bagian dari ini adalah saat saya menggunakan ponsel Android 2 GB saya atau PC gaming saya, dan ingin bergabung dengan sesuatu secara instan. Meskipun internet sangat cepat, kita tidak memiliki bandwidth. Kita mencoba memaksakan dunia melalui pipa itu, entah Anda memiliki 10 megabit per detik atau 100 megabit per detik, dan menyeimbangkan apa yang kita dorong melalui sana.
Dan, dan saya, salah satu cara saya memikirkannya adalah seperti satu pohon yang dekat dengan saya. Hmm, bisa menggunakan informasi yang sama dengan seratus pohon yang jauh dari saya, dan pada dasarnya seratus pohon yang jauh dari saya mungkin memiliki pentingnya visual yang sama dengan yang dekat, dan kita membawanya dengan resolusi yang berbeda.
Seperti pohon yang dekat dengan saya, memiliki kualitas yang jauh lebih tinggi daripada yang jauh.
Sergey: Ya, uh, itu benar sekali. Uh, dan, dan, uh, poin penting yang juga kamu sebutkan adalah, kita tidak hanya mengukur seberapa penting objeknya, tapi juga seberapa banyak sumber daya komputer yang kita miliki?
Seperti berapa banyak memori yang kita miliki? Seperti bandwidth jaringan, seperti semuanya. Jadi kami, eh, kami mempertimbangkan segala hal yang memengaruhi pengalaman pengguna, seperti, dan itu termasuk kinerja. Anda tahu, seperti berapa banyak memori, seperti yang kita miliki, seperti, dan semua itu.
Dave: Jadi, kita sudah membahas bahwa instance itu seperti pohon, sedangkan aset adalah mesh atau tekstur.
Bisakah Anda berbagi lebih lanjut tentang bagaimana perbedaannya dan, apa yang sebenarnya kita lakukan di balik layar dengan streaming aset. Oke.
Tsvetan: Ya. Um, misalnya, saat streaming dari server, apa yang penting? Ya. Dan berdasarkan, uh, tingkat pentingnya, G memberikan informasi ini, mengirimkannya ke setiap klien, dan setiap klien sebenarnya mendapatkan instance yang berbeda untuk itu, tergantung.
Apakah terlihat? Tidak terlihat. Apakah ikut serta dalam area interaktif atau tidak? Untuk streaming aset? Klienlah yang sebenarnya melakukan streaming apa yang ada di dunia. Berdasarkan kualitas yang kita targetkan, seperti yang dikatakan Sergey, berdasarkan kemampuan perangkat, kita hanya menargetkan representasi-representasi tepat tersebut berdasarkan kualitas dan kemampuan perangkat.
Intinya begitulah cara kami. Uh, jadi
Dave: pohon-pohon yang jauh di kejauhan itu semoga sangat ringkas, kan? Resolusi lebih rendah, tidak memakan banyak sumber daya. Jadi kita bisa menghabiskan lebih banyak waktu dan daya komputasi untuk pohon yang lebih dekat. Kepada saya. Dan jadi kita punya yang namanya pipeline konten atau pipeline aset.
Bisakah kamu berbagi sedikit tentang, misalnya jika saya seorang pembuat game, seperti apa pipeline transkoding ini? Misalnya saya menggunakan Roblox Studio, saya membuat mobil yang sangat bagus. Apa yang terjadi di balik
Tsvetan:
Dave: adegan?
Tsvetan: Karena, eh, peningkatan pada mesin, kami juga ingin mempertahankan, eh, niat artistik para desainer dan pengembang game.
Jadi kami memunculkan ide transkoding awan yang memungkinkan kami, uh, uh, mengimpor konten dari, uh, toko pembuatnya. Mengoptimalkannya berdasarkan perangkat pengembang, uh, perangkat dan kemampuan yang, uh, uh, dibutuhkan klien. Dan, uh, pipeline ini bersifat end-to-end. Ia bekerja sesuai permintaan. Artinya, ketika klien meminta representasi tertentu, baru jika kami tidak memiliki representasi tersebut, kami memulai proses komputasi.
Jika tidak, kami mengembalikannya jika sudah ada. Jadi, kami sangat optimal dalam hal, eh, bandwidth dan komputasi, eh, yang kami sediakan untuk klien. Jadi
Dave: jika saya, um, dan kita, dulu sekali ketika kita belum memiliki ini, atau mungkin sebenarnya baru-baru ini, kita harus membatasi ketelitian aset-aset ini.
Misalnya, saya pikir kita akan mengatakan Anda hanya boleh memiliki sejumlah segitiga tertentu pada mobil Anda, dan semakin banyak segitiga, semakin akurat tampilan mobil Anda. Atau kita akan mengatakan Anda hanya boleh memiliki sejumlah piksel tertentu dalam ukuran tekstur. Yang kita katakan sekarang adalah, saya yakin Anda bisa mengunggah mobil itu apa pun bentuknya, dan kemudian saat Anda menyebut transkoding di belakang layar.
Kami membuat berbagai versi mobil itu dengan jumlah segitiga yang semakin sedikit.
Tsvetan: Ya, itu benar. Atau bahkan meningkat di masa depan. Ya. Dan, jadi kita memiliki kemampuan ini sekarang di mana kita bisa, tergantung pada peningkatan mesin dan daya komputasi yang kita miliki, kita bisa meningkatkan representasi jumlah segitiga atau tekstur, peta, audio, video, animasi, apa pun yang kita butuhkan.
Jadi,
Dave: jadi ini on-demand, dan saya pikir yang Anda katakan tadi, Sergey. Dulu Anda punya yang disebut baking, seperti Anda akan membakar versi high-end. Kami, kami pada dasarnya melakukan baking on-demand. Banyak versi mobil itu pada resolusi yang berbeda-beda. Semuanya ada di sana. Dan mobil yang jauh di kejauhan yang mungkin saya lihat adalah salah satu dari versi resolusi rendah itu.
Dan ini, uh, saya percaya yang kita sebut transcoding. Ya. Jadi bagaimana cara kerja transcoding? Misalnya, bagaimana cara mengubah satu juta segitiga menjadi seribu segitiga? Maksud saya, uh.
Tsvetan: Uh, ingestion. Ya. Jadi di studio, kami, uh, sebenarnya mengimpor mesh segitiga 1 juta segitiga itu. Kami lalu menyimpannya di, uh, platform konten backend kami, uh, sistem backend.
Dan kemudian, eh, atas permintaan, kami menjalankan, eh, pemrosesan LOD,
Dave: yang merupakan singkatan dari level of detail. Level of detail, yang berarti
Tsvetan: tergantung, kami berusaha mempertahankan kualitas sebanyak mungkin untuk, eh, representasi terbatas dari mesh tersebut. Atau tekstur.
Dave: Jadi, um, mungkin Varun, jika kita memikirkan bagaimana ini bekerja di berbagai perangkat, kamu, um, jadi kamu adalah pembuatnya.
Kamu memasukkan mobil beresolusi tinggi ini. Aku menggunakan perangkat Android kelas bawah. Kamu menggunakan perangkat PC gaming kelas atas. Semoga kita masih bisa memainkan game yang sama. Tepat sekali. Seperti apa yang terjadi bagi kita berdua? Dan,
Varun: jadi, intinya, saat klien saya terhubung, dia seperti berkata, "Hei, saya perangkat Android kelas bawah. Saya butuh ini," karena satu hal yang belum kita sebutkan, sebenarnya ini bukan hanya soal tingkat detail, tapi juga representasi yang spesifik untuk platform.
Jadi Android, iOS, masing-masing platform ini memiliki representasi yang sangat spesifik sehingga Anda bisa mengompres tekstur, Anda bisa menyesuaikannya sedemikian rupa agar bekerja jauh lebih optimal. Jadi perangkat Android saya akan online dan berkata, "Hei, saya ingin versi Android." Dari tekstur kelas bawah untuk pohon itu, lalu server cloud akan membuatnya untuk saya, dan menyimpannya di cache sehingga perangkat Android berikutnya yang online.
Tidak perlu membuatnya lagi, cukup kirim versi yang sudah saya buat. Saat PC Anda terhubung, ia akan berkata, "Hei, saya punya semua sumber daya di dunia. Berikan versi berkualitas tinggi, berikan versi tidak terkompresi. Saya hanya ingin kualitas tertinggi." Lalu sistem akan menyimpannya di cache, artinya ini benar-benar tahan masa depan.
Dave: Dan juga instan tanpa batas. Jadi saya suka Grand Theft Auto, dan mereka punya versi baru yang akan benar-benar mengagumkan, yang saya sangat nantikan. Jika saya seorang seniman yang ingin menyesuaikan aset. Di sistem masa depan kita, saya bisa mengunggahnya kembali dalam sekitar lima detik.
Game Anda dan saya akan memicu transkoding baru untuk itu. Dan secara harfiah, kamu tahu, pada puncak koneksi bersamaan, seperti menanam kebun dengan 25 juta orang, kamu bisa dalam lima hingga 10 detik memiliki semua orang baru itu. Mungkin mendapatkan aset baru itu. Inilah mengapa saya pikir ini, ini sedikit masa depan karena saya, saya pikir bagian dari, um, keindahan Grand Theft Auto adalah, mereka, mereka menyematkan begitu banyak kualitas.
Mereka akan mengemasnya dalam DVD raksasa. Mereka harus memastikan itu sempurna dan tidak ada cara untuk memperbaikinya. Anda harus membuatnya sempurna di sana. Dan, dan, jadi akhirnya. Mengenai persiapan untuk masa depan, selain perubahan instan, ada sesuatu yang baik tentang menyimpan niat artistik, Anda tahu, menyimpan karya seni asli.
Dalam arti tertentu, bisakah kamu menjelaskan bagaimana hal itu bisa membantu kita? Uh,
Sergey: ya. Jadi, karena kita berusaha menangkap sebanyak mungkin konten artistik asli, dan kita menyimpan versi sumber dari semua aset. Dan ini, seperti yang bisa kamu bayangkan, kita bisa.
Tidak hanya melakukan down-sampling dengan menghasilkan versi tekstur yang lebih sederhana, tetapi juga melakukan up-sampling di masa depan karena kami sudah menangkap makna semantik dari maksud asli tersebut, sehingga kami dapat meningkatkan resolusi aset ini di masa depan. Jadi, tanpa memerlukan masukan pengguna.
Kita bisa membuatnya terlihat lebih baik.
Dave: Itu, dan itu akan menjadi petunjuk besar saat kita memasuki masa depan. Um, jadi mari, um, mari tambahkan komponen kedua ke apa yang kita bicarakan. Jadi kita streaming. Melakukan perbaikan instan. Transkoding awan, mengirimkan LOD apa pun. Dan kemudian apa yang kita singgung di awal, kita akan melengkapinya dengan sesuatu yang disebut Slim.
Jadi Slim bukan program olahraga. Ini bukan seperti Roblox, bukan camilan Roblox yang, semoga saja, akan membuat kita semua merasa baik dan berpikir jernih, uh, apa itu Slim dalam konteks mesin Roblox.
Sergey: Jadi, ya. Uh, jadi. Uh, biar saya mundur sebentar, seperti, uh, dan uh, ambil contoh ini lagi, seperti dengan pohon, kan?
Jadi kita punya, uh, kamu punya pohon, dan seperti yang aku katakan, misalnya di mana kamu mungkin punya banyak pohon, seperti, uh, di kejauhan, uh, Slim adalah yang mengubah semua pohon individu itu menjadi hutan dan mengoptimalkannya, bukan lagi sebagai individu, tapi mengoptimalkannya sebagai sesuatu yang lebih besar, seperti agregasi dari lisensi individu dan, uh.
Dan itu adalah teknologi Slim. Teknologi ini selalu mengoptimalkan aset-aset tersebut dalam konteks tertentu. Jadi, katakanlah kamu punya sebuah gedung, kan? Jadi, dan ada banyak, uh. Uh, ruangan di dalam gedung itu. Misalnya, jika Anda berada di luar gedung, Anda tidak peduli dengan ruangan di dalam gedung. Jadi, Slim menyadari konteks ini, dan dapat dengan sangat efisien menghapus semua bagian dalam gedung, dalam kasus ini, dan mengoptimalkan, serta menghasilkan versi yang sangat optimal dari aset tersebut untuk Anda.
Dave: Jadi ada, ada tiga kasus penggunaan yang, saat Anda merancang ini, kami, maksud saya, saya telah memikirkannya. Kasus penggunaan pertama adalah orang-orang membuat avatar yang semakin kompleks. Dan secara historis di Roblox, kami sangat berhati-hati soal berapa lapisan pakaian yang bisa dipakai? Berapa banyak perhiasan yang bisa dipakai, berapa banyak barang.
Tapi di masa depan, mungkin avatar akan memiliki banyak sekali item, seperti seratus. Dan saya pikir para kreator kami sangat paham soal performa. Mereka mungkin akan membatasi kualitas detail avatar karena mereka sangat mengutamakan performa. Avatar yang kompleks, nomor satu. Nomor dua, seperti yang Anda sebutkan, mungkin ada seratus pohon di sana dan mereka jauh di kejauhan, dan tidak ada yang berinteraksi dengannya.
Dan, yang ketiga mungkin sebuah bangunan dengan ruangan di dalamnya. Uh, saya pikir apa yang, um, akan kita coba lakukan di sini adalah, apa pun itu, avatar yang bergerak, sekelompok pohon, atau sebuah bangunan, sistem yang sama persis ini pada dasarnya akan digabungkan menjadi satu objek, satu mesh, satu tekstur, dan itu benar-benar luar biasa.
Uh,
Sergey: ya, kamu benar sekali. Jadi, itu kata yang tepat. Seperti sistem ini, uh, secara dinamis menghasilkan representasi komposisi dari beberapa aset, dan menentukan, kamu tahu, batas-batas komposisi ini, tingkat detailnya, secara dinamis, selalu beroperasi dalam konteks dunia ini.
Jadi persis sama seperti dalam dua pengalaman berbeda, yang mungkin dioptimalkan secara berbeda berdasarkan perangkat target, berdasarkan konteks di mana mereka digunakan, dan. Uh, kami juga mendukung pembaruan dinamis untuk konten tersebut. Jadi ini bukan optimasi statis.
Jika ada sesuatu yang berubah seiring waktu, hal ini akan tercermin dalam representasi ramping karena kami dapat memperbaruinya secara dinamis.
Dave: Ini, ini hampir, salah satu alasan saya sangat menyukai ini adalah rasanya seperti saya adalah pengembang Roblox. Dan saya benar-benar menginginkan skala besar dan, misalnya, avatar yang sangat kompleks.
Mungkin ini hanya impian saya, seperti, saya bisa mendekati seseorang yang dekat dengan saya. Mereka bisa melepas topi mereka, mengenakan perhiasan baru, yang merupakan cara sistem ini akan bekerja dengan objek yang dekat, mungkin dengan fidelitas tinggi. Dan saat avatar itu menjauh, ia akan dikomposisikan menjadi satu objek.
Dan saat semakin jauh dengan LOD. Um, kami bercanda, seperti, yang paling ekstrem adalah avatar yang sangat jauh mungkin hanya terdiri dari 12 segitiga dan, dan tekstur yang sangat kecil. Jadi ini, ini hampir seperti apa yang saya pikir telah diimpikan oleh seorang pengembang. Dan kemudian saya, saya pikir ini memungkinkan, um, salah satu hal yang dimungkinkan adalah dunia yang lebih besar.
Di berbagai perangkat.
Varun: Benar sekali. Maksud saya, yang dilakukan Slim pada dasarnya adalah memberikan kita sumbu skalabilitas baru. Kita sudah banyak membahas tentang transcoding cloud pada tingkat detail yang berbeda. Sekarang kita menambahkan sumbu lain di sini, yaitu tentang komposisi. Benar? Dan, Anda bisa membayangkan sebuah matriks 2x2, dan setiap titik di dalamnya adalah pengalaman yang valid.
Benar. Jadi, Anda bisa memiliki kualitas tinggi dengan komposisi rendah, atau kualitas tinggi dengan komposisi tinggi jika Anda menggunakan perangkat kelas bawah atau perangkat lain. Dan semua titik tersebut masuk akal. Jadi, jika kita berbicara tentang dunia yang sangat besar, seluruh dunia itu bisa terdiri dari 12 segitiga. Juga, jika Anda cukup jauh, atau jika hal itu tidak membuat perbedaan.
Dave: Dan, lalu memikirkan pengalaman pengguna dan bagaimana Slim bisa membawa ke pengalaman pengguna yang lebih baik. Jika kita memikirkan LOD, kita memikirkan transcoding awan. Jika kita memikirkan Slim, kita memikirkan streaming dibandingkan dengan Roblox hari ini atau setahun yang lalu, bagaimana. Bagaimana ini bisa memengaruhi pengalaman pengguna?
Tsvetan: Ya, jadi Slim, uh, kami membangun Slim dengan ide bahwa, uh, kami memungkinkan para pengembang untuk menciptakan dunia yang lebih kaya dan kompleks yang akan, uh.
Berinteraksi dengan pengguna akhir. Siemens? Ya, sangat mudah. Tanpa perlu, dan pengalaman pengguna tetap sama persis seolah-olah menggunakan mesin paling canggih. Dan Slim adalah sistem yang saat ini mendukung model statis. Kami sedang, Memungkinkan di masa depan avatar dan model dinamis yang, um, dihasilkan, uh, secara hierarkis, uh, sehingga kami dapat, uh, membuat sistem secepat mungkin bagi pengguna akhir,
Dave: yang bagi pengguna akhir mungkin berarti dunia yang lebih kaya di perangkat kelas bawah.
Mungkin di ponsel kelas bawah saya. Saya bisa bermain dengan Anda di PC gaming Anda. Uh, kreator bisa membuat model yang lebih tinggi, um, tanpa khawatir tentang jumlah lapisan pakaian pada avatar. Kendaraan yang lebih kompleks, um, rumit. Um, objek mekanis juga akan dikompresi oleh Slim, yang akan sangat, sangat keren.
Lalu. Um, mungkin memikirkan bagaimana keduanya bekerja sama. Jadi kita sudah membahas cloud transcoding, uh, yang menawarkan LOD lebih rendah. Lalu kita membahas Slim, yang merupakan model sangat ringan. Apakah keduanya bekerja sama?
Varun: Benar sekali. Dan itulah yang saya maksud dengan hal akses itu. Jadi, semua model Slim juga melewati pipeline cloud transcoding yang sama persis.
Karena begitu Anda menggabungkannya, dan begitu slim ditentukan berdasarkan konteks dan konten, inilah yang seharusnya menjadi hasil gabungan tersebut. Model tersebut melewati pipeline transcoding yang sama dan kemudian menghasilkan versi kualitas rendah, versi kualitas tinggi, versi Android, dan versi iOS untuk semuanya.
Jadi, ini, ini, ini sangat, sangat saling melengkapi, um, antara,
Dave: dan jadi bagi kreator, ini hampir seperti pukulan ganda, cara avatar yang sangat rumit dari jarak jauh digabungkan menjadi model slim, lalu ditranskode. Avatar itu, sekali lagi bisa berupa 12 segitiga dan seperti satu warna. Dan, dan apa
Varun: yang Anda harapkan untuk dilihat, atau yang saya harapkan untuk dilihat adalah semacam prioritas utama.
Semua pengalaman yang ada bisa mulai berjalan di perangkat kelas bawah.
Dave: Ya.
Varun: Tapi hal yang benar-benar menarik adalah efek tingkat kedua, kan? Para kreator mulai menyadari, oh, saya bisa memasukkan lebih banyak hal ke dalam dunia ini. Oh, saya bisa menambahkan. Nah, coba pikirkan
Dave: tentang hal itu, um, jika saya membuat video. Seolah-olah kamera itu dirancang dengan sangat matang.
Kamu tahu, aku punya kamera 4K dan aku tidak pernah khawatir, ke mana pun aku mengarahkan kamera, apakah aku bisa merekam video seperti yang aku lakukan. Tapi para kreator kita tidak punya kamera seperti itu hari ini. Misalnya, jika mereka mengarahkan kamera ke tempat yang salah. Dunia bisa meledak, kan? Seperti resolusi yang terlalu tinggi, misalnya, jika mereka mengarahkan kamera ke kerumunan 10.000 orang, itu seperti, jadi ini hampir seperti membebaskan kamera 3D imersif,
Varun: tapi memberikan kebebasan kepada para kreator.
Jadi kita bisa melakukan ekspansi platform dan kemudian genre. Ya,
Dave: dan, dan saya pikir ada saatnya kita tidak tahu kapan itu, itu adalah campuran antara Hukum Moore, komputasi 3D, streaming AI, teknologi lokal, upscaling, apa pun. Di mana mungkin kamera ini tidak lagi menjadi batasan, di mana jika Anda ingin 100.000 orang di stadion raksasa, berinteraksi secara fotorealistik dengan teman-teman Anda, streaming di perangkat kelas bawah dengan latensi rendah, rasanya bagus.
Itulah, menurut saya, saat kita mengatakan kamera imersif 40 sudah matang, kabar baik atau buruknya adalah masih banyak pekerjaan yang harus dilakukan. Jadi, ini membuat pekerjaan kita cukup menarik. Dan saya, saya kira, dalam konteks ini, seberapa cepat kita bergerak menuju kamera tiga dan empat dimensi yang ultimate, um, Sergei, apa yang akan datang untuk Slim dan seperti, apa yang akan kita optimalkan setelah ini?
Jadi
Sergey: untuk Slim, seperti, uh. Ada beberapa langkah besar yang, uh, menanti di depan kita. Jadi, langkah berikutnya adalah membuat Slim sepenuhnya dinamis yang mendukung avatar, kendaraan bergerak, mekanisme bergerak, dan semua hal semacam itu. Tapi langkah yang lebih penting setelah itu adalah membuat Slim hierarkis, seperti yang disebutkan Barron, yaitu Slim menghasilkan aset yang hampir sama seperti aset biasa.
Mereka melewati pipeline streaming yang persis sama. Kami mengoptimalkannya karena setiap model Slim memiliki logika individual, dan sebagainya. Tapi, bagaimana jika kita bisa melangkah lebih jauh lagi, bagaimana jika kita bisa menggabungkan beberapa Slim menjadi satu, seperti, kamu tahu, 'mega Slim', dan terus berulang dalam cara yang fraktal.
Dave: Jadi ini adalah bagian dari pertanyaan desain kami. Karena ketika kamu, awalnya aku mengusulkan slim, kami sedang melihat avatar dan kami memiliki proyek terpisah. Memikirkan bagaimana cara menggabungkan seratus avatar dan, dan bagaimana, bagaimana kita akan mensimulasikan seratus ribu orang di stadion? Dan yang benar-benar menarik, ada hari yang menakjubkan ketika menurutku kamu berkata, tahu apa, kita mungkin bisa mengambil avatar slim dan kemudian menggabungkan seratus di antaranya menjadi kumpulan seratus avatar dengan teknologi yang persis sama.
Dan itulah yang membuat kita terkesima, seperti sifat hierarkisnya?
Sergey: Uh, ya, uh, itu tepat sekali. Dan jika kamu mengambil contoh ini ke ekstrem, jadi kamu bisa membayangkan seperti, oke, jadi kamera virtual kita bisa melihat seluruh planet. Jadi kita melihat seluruh planet dan itu seperti, kamu tahu, seperti bola, dengan teksturnya.
Saat kamera mendekat, kamu akan melihat benua-benua, lalu kota-kota, dan kamu bisa turun hingga ke stadion penuh orang karena simulasi ini berjalan di server, jadi klien tidak perlu tahu tentang seluruh dunia.
Jelas, kamu tahu, kamu tidak bisa memasukkan seluruh planet ini ke dalam memori perangkat, bahkan jika kamu menggunakan PC yang sangat powerful. Tapi server kami sangat powerful, dan dengan menghasilkan representasi kunci ini untuk skala yang ringkas, kita bisa turun dari skala planet hingga ke skala ruangan, atau bahkan ke Microworld.
Dave: Ya, benar. Kita mungkin bisa turun hingga ke jam tangan yang kamu atau aku pakai, melihat tombol kecil di jam tangan itu, dan bahkan lebih jauh lagi. Jadi, saat kita memikirkan ini, Satan, bagaimana hal ini bisa mengubah apa yang para kreator mulai lakukan? Benar. Kita akan, semoga bisa menghilangkan, oh my gosh, kekhawatiran tentang performa avatar.
Um, apakah ada perubahan lain yang menurutmu mungkin kita lihat
Tsvetan: ini akan menghilangkan, eh, menurut saya semua batasan yang mereka miliki saat ini. Mereka, seperti yang Anda katakan, tidak perlu memikirkan, eh, seberapa kompleks dunia yang mereka ciptakan. Mereka hanya perlu memikirkan apa yang ingin mereka tampilkan sebagai dinamika permainan kepada, eh, para pemain mereka.
Tidak ada yang lain. Segala hal lainnya akan ditangani oleh kami secara otomatis.
Dave: Jadi, dan, bagus juga membahas beberapa hal otomatis itu. Kamu tahu, di Roblox tradisional dulu, kami melakukan hal yang disebut texture atlas. Kami sebenarnya punya template untuk tekstur, dan kamu, kamu harus memikirkannya sendiri. Saya berasumsi dengan model slim, itu sepenuhnya otomatis.
Um, seperti pembuatan tekstur dengan resolusi lebih rendah.
Tsvetan: Ya. Itu akan otomatis, sama seperti menentukan, eh, blok-blok bangunan yang dijelaskan Sergei dalam dunia dinamis hierarkis.
Dave: Oke, jadi sekarang, um, sekarang kita benar-benar akan terpesona dan kita akan membahas, um, mudah membayangkan sesuatu menjadi lebih sederhana, kan?
Ini hampir seperti jika Anda seorang seniman, sangat mudah membayangkan, misalnya, membuatnya lebih kasar dan meratakan sesuatu, tapi jauh lebih sulit membayangkan sesuatu menjadi beresolusi lebih tinggi. Dan jadi saya ingin, saya ingin sedikit menggali, um, masa depan AI, dan saat ini ada banyak penelitian tentang AI, seperti bagaimana kita akan menghasilkan game video, streaming imersif real-time, model dunia, dan semua itu.
Um, dan saya, saya merasa semakin yakin bahwa ini bukan hal yang monolitik. Ini akan menjadi tumpukan 3, 4, 5, atau enam model yang bekerja bersama, termasuk, misalnya, baris perintah di mana jika kita berkumpul, kita bisa, seperti yang kita lakukan dengan 4D, hanya mengatakan, "Ubah Monumen Washington menjadi Godzilla," dan boom, itu akan terjadi di sana.
Um, dan, dan pada akhirnya menghasilkan objek atau dunia atau game lengkap. Um, dan semoga dalam konteks multipemain. Jadi kita, kita berjalan-jalan bersama, keempat orang kita, dan kita berkata, "Hei, di sana, keempat orang kita ingin mendesain game baru dan membuatnya muncul secara ajaib." Ada aspek sekunder. Um, selain Command Prompt, World Gen, dan 3D—yang kamu sebutkan tadi—ada Upsampling, dan, um, jika, misalnya, kita bayangkan game klasik Crossroads, yang berusia 20 tahun di Roblox, sebenarnya ada cukup informasi di sana.
Jika kita mengambil Crossroads klasik dan Sergey, kamu bilang, buat ini terlihat seperti versi abad pertengahan yang fotorealistik di mana gameplay-nya bisa tetap sama. Kamu tahu, semua alat peluncur roket kecil yang seru ini tetap sama, tapi tiba-tiba semuanya punya tampilan baru. Jadi bagaimana ini akan bekerja dalam konteksnya?
Saya, saya tidak tahu siapa yang mau ikut bicara. Tentang LOD, karena sekarang LOD harus ditingkatkan, bukan dihapus.
Varun: Saya, saya pikir salah satu poin yang Sergey sampaikan sebelumnya, kan? Ini tentang menyimpan sebanyak mungkin niat artistik asli agar kita bisa melakukan hal-hal ini di masa depan. Dan, contoh favorit saya, ini contoh acak, tapi bayangkan saya menggunakan tekstur, tapi tekstur itu sebenarnya foto yang diambil seseorang. Jika saya menyimpan bukaan lensa (f-stop) saat foto itu diambil.
Ukuran, jika saya menyimpan, f-stop saat foto itu diambil. Sekarang, algoritma Uprising saya memiliki konteks yang jauh lebih banyak. Ya. Jika saya tahu di mana tekstur itu digunakan, jika saya tahu itu digunakan di sebuah kastil, apakah itu digunakan di lantai? Algoritma Uprising saya bisa jauh lebih cerdas dalam membuatnya dan mempertahankan niat asli pencipta sepanjang proses, baik di PC high-end saat ini maupun di PC masa depan yang bahkan belum diciptakan.
Jadi
Dave: kami menunjukkan ini di RDC, seperti, saya pikir kami menunjukkan video berdurasi 15 detik tentang Crossroads yang di-upscaling. Um, bisakah kita, mari kita bahas apa yang sebenarnya mungkin terjadi. Asetnya ada di cloud, objek 3D, teksturnya. Um, ada prompt tambahan yang dikirim ke sistem konten kami yang mengatakan, lihat, semua aset ini adalah bagian dari, uh, yang seharusnya menjadi dunia abad pertengahan yang jauh lebih fotorealistik yang bisa dibayangkan.
Kemudian semua LED yang berbeda itu diregenerasi agar jauh lebih mendekati versi fotorealistik melalui apa yang kami sebut sebagai 3D UPS sampler atau sebenarnya 3D generative creator. Jadi, um, siapa yang ingin mendalami apa yang mungkin terjadi pada, misalnya, kastil?
Sergey: Saya, saya, saya pikir seperti yang baru saja disebutkan Baron, tahu, seperti, uh, sepertinya kita menangkap begitu banyak informasi semantik dari dunia itu.
Itu sangat penting. Misalnya, untuk contoh persimpangan ini, kan? Jadi, jika melihat kastil. Dari perspektif aset individu, ya, seperti sekumpulan blok, mereka hanya kotak-kotak. Dan tanpa konteks yang cukup, kamu tidak bisa membuat blok-blok itu terlihat lebih baik.
Dan kastil itu, uh, lebih dari sekadar blok-blok individu. Itu adalah gabungan dari semuanya. Uh, dan Slim, karena Slim beroperasi dalam konteks ini, Slim menyadari hal ini sebagai satu kesatuan. Jadi, sekarang setiap perakitan akan tahu jauh lebih banyak tentang kastil sebagai satu kesatuan, bukan tentang aset-aset individu.
Jadi, jadi dia bisa membuat versi yang jauh lebih... eh, lebih baik dari kastil yang di-upsample itu karena, ya, dia hanya, dia hanya memahami bahwa
Dave: seperti, dan, dan, dan dalam arti tertentu, orang bisa membayangkan tanpa adanya kastil Crossroads yang sudah ada. Dan hanya agar semua orang tahu, Crossroads adalah game Roblox yang sangat tua dan berpenampilan kotak-kotak.
Istana itu sebenarnya sangat membantu untuk prompt "bangunkan aku sebuah istana". Itu prompt yang cukup terbuka. Kita akan mendapatkan istana acak dengan bentuk acak. Tapi istana di Crossroads, terutama ukuran dimensinya, itu banyak informasi bagus untuk di-up-sample menjadi istana berkualitas tinggi.
Sergey: Uh, ya. Uh, itu benar sekali. Jadi karena, uh, bagian 3D dari kastil ini, pertama-tama, itu sangat penting dari perspektif gameplay, kan? Jadi kamu tidak bisa hanya menghasilkan kastil sembarangan dan membuatnya berfungsi untuk game. Uh, karena. Tapi jika kamu bisa menangkap semua dimensi, semua, kamu tahu, semantik, dalam semua konteks, dalam apa, uh, aset itu digunakan, maka kamu bisa melakukan upscaling dengan sangat efisien.
Dan, kamu tidak akan merusak game-mu dengan melakukan ini. Karena ini, hal lain yang sangat penting. Kamu tidak ingin melakukan upscaling pada aset yang bisa membuat game-mu jadi tidak bisa dimainkan.
Dave: Nah, saya pikir ada dunia di masa depan di mana selain semua informasi 3D Anda, Anda bisa mengedit informasi 3D atau mengedit prompt.
Keduanya bersatu untuk menghasilkan dunia tersebut. Pembaruan lima detik yang kita bicarakan, yang merupakan modifikasi aset di masa depan, mungkin menjadi pembaruan prompt lima detik dengan sedikit petunjuk tambahan di prompt. Lalu, dunia tersebut dihasilkan secara malas sesuai permintaan. Dan, menurut saya ada satu hal terakhir, um, saat kita memikirkan semua dimensi bagaimana AI dapat bersatu untuk menghadirkan hal-hal ini secara fotorealistik, kita belum.
Ada lapisan terakhir, yaitu lapisan 2D. Apa yang terjadi di PC gaming Anda? Apa yang akan terjadi di perangkat video di cloud di mana upscaling yang lebih tinggi mungkin terjadi? Jadi, um, misalnya, rambut yang sempurna di kepala saya. Tempat terbaik untuk membuat rambut itu mungkin secara lokal dengan upscaler 2D. Saya tahu Anda telah bekerja pada banyak game yang mencoba membuat rambut dalam 3D.
Bagaimana menurut Anda, apakah suatu hari nanti semua rambut akan dibuat dengan upsampling 2D atau tetap menggunakan rambut 3D?
Sergey: Ya, tentu saja. Saya pikir kita sedang bergerak ke arah itu karena beberapa hal hanya bisa dilakukan di ruang layar, karena lebih efisien. Begini, lebih efisien jika dilakukan di ruang layar.
Misalnya, seperti ini, uh, seperti rambut, seperti rendering, kan? Jadi, dan seperti, atau. Banyak mesin game saat ini menggunakan upscaling berbasis ML, seperti, uh, dari 1080p ke 4K. Tapi kamu bisa, kamu bisa melakukan jauh lebih dari itu, kan? Jadi kamu bisa mengubah shading, kamu bisa, uh, mengubah bagaimana tampilan objek.
Dan jika kita ambil contoh ini ke tingkat ekstrem, mesin game bisa hanya merender, misalnya, informasi semantik untuk algoritma ML, dan kemudian algoritma ML ini akan menghasilkan, misalnya, rambut yang terlihat bagus, atau material yang bagus. Di ruang render, arahan.
Dave: Sangat bagus. Um, jadi, saat kita mulai menyimpulkan, mungkin untuk semua pengembang C++ di luar sana, pengembang bahasa assembly, yang, um, aku, aku berharap bisa seperti itu, itu salah satu hal paling seru di dunia. Kita sedang melakukan hal yang sangat sulit di sini, kan? Kita mencoba, um, membuat semua teknologi ini berjalan di semua perangkat.
Pertanyaan tentang transkoding. Pertanyaan tentang transkoding adalah, saya tahu banyak PC memiliki optimasi, um, dengan register SIMD dan hal-hal semacam itu untuk membuat hal-hal ini berjalan lebih cepat. Apakah kita sudah mulai mengeksplorasi SIMD di salah satu transkoder kita, atau itu optimasi di masa depan?
Tsvetan: Uh, jadi pertama-tama, ngomong-ngomong, transkoding juga bisa berjalan di engine hari ini.
Oke. Bagus sekali. Baik. Jadi, kami memanfaatkan optimisasi CMD, tetapi kami, eh, melihat lebih jauh dari itu dengan menggunakan GPU dan, eh, lainnya,
Dave: jadi transpo Oke. Transkoding di GPU mungkin akan datang.
Tsvetan: Ya, kami sedang menelitinya.
Dave: Oke. Itu sangat, sangat seru. Oke, jadi, um, pembaruan yang bagus untuk semua orang, uh, uh, bagi yang ingin visual, mungkin RDC, presentasi panggung utama.
Saya pikir kita harus, kita sudah punya visual untuk banyak hal ini. Semua yang kita bicarakan ada di pipeline. Uh, kita memantaunya dengan cermat dan saya, saya, saya benar-benar yakin, um, kalian semua dan tim-tim di belakang kalian benar-benar berkontribusi pada apa yang saya kadang sebut "game engine 2.0", uh, yang sangat bergantung pada cloud.
Didukung penuh oleh Transcoders dalam seluruh teknologi ini. Jadi terima kasih semuanya. Saya rasa kita telah membuat semua orang terkesan hari ini. Saya sangat menghargainya.
Tsvetan: Terima kasih.
Dave: Oke, jadi, ini Dave. Uh, sekali lagi, sesi teknologi, dan kami menantikan pertemuan berikutnya dengan kalian. Terima kasih atas nama seluruh tim. Terima kasih.



