-
Notifications
You must be signed in to change notification settings - Fork 10
/
sweeney.html
284 lines (267 loc) · 122 KB
/
sweeney.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="mobile-web-app-capable" content="yes">
<title>
Tim Sweeney Metaverse - HackMD
</title>
<link rel="icon" type="image/png" href="https://hackmd.io/favicon.png">
<link rel="apple-touch-icon" href="https://hackmd.io/apple-touch-icon.png">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha256-916EbMg70RQy9LHiGkXzG8hSg9EdNy97GazNG/aiY1w=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" integrity="sha256-eZrrJcwDc/3uDhsdt61sL2oOBY362qM3lon1gyExkL0=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ionicons/2.0.1/css/ionicons.min.css" integrity="sha256-3iu9jgsy9TpTwXKb7bNQzqWekRX7pPK+2OLj3R922fo=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/octicons/3.5.0/octicons.min.css" integrity="sha256-QiWfLIsCT02Sdwkogf6YMiQlj4NE84MKkzEMkZnMGdg=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.5.1/themes/prism.min.css" integrity="sha256-vtR0hSWRc3Tb26iuN2oZHt3KRUomwTufNIf5/4oeCyg=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/emojify.js/1.1.0/css/basic/emojify.min.css" integrity="sha256-UOrvMOsSDSrW6szVLe8ZDZezBxh5IoIfgTwdNDgTjiU=" crossorigin="anonymous" />
<style>
@charset "UTF-8";@import url(https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,500,500i|Source+Code+Pro:300,400,500|Source+Sans+Pro:300,300i,400,400i,600,600i|Source+Serif+Pro&subset=latin-ext);.hljs{display:block;background:#fff;padding:.5em;color:#333;overflow-x:auto}.hljs-comment,.hljs-meta{color:#969896}.hljs-emphasis,.hljs-quote,.hljs-string,.hljs-strong,.hljs-template-variable,.hljs-variable{color:#df5000}.hljs-keyword,.hljs-selector-tag,.hljs-type{color:#a71d5d}.hljs-attribute,.hljs-bullet,.hljs-literal,.hljs-number,.hljs-symbol{color:#0086b3}.hljs-built_in,.hljs-builtin-name{color:#005cc5}.hljs-name,.hljs-section{color:#63a35c}.hljs-tag{color:#333}.hljs-attr,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-selector-pseudo,.hljs-title{color:#795da3}.hljs-addition{color:#55a532;background-color:#eaffea}.hljs-deletion{color:#bd2c00;background-color:#ffecec}.hljs-link{text-decoration:underline}.markdown-body{font-size:16px;line-height:1.5;word-wrap:break-word}.markdown-body:after,.markdown-body:before{display:table;content:""}.markdown-body:after{clear:both}.markdown-body>:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .absent{color:#c00}.markdown-body .anchor{float:left;padding-right:4px;margin-left:-20px;line-height:1}.markdown-body .anchor:focus{outline:none}.markdown-body blockquote,.markdown-body dl,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-top:0;margin-bottom:16px}.markdown-body hr{height:.25em;padding:0;margin:24px 0;background-color:#e7e7e7;border:0}.markdown-body blockquote{font-size:16px;padding:0 1em;color:#777;border-left:.25em solid #ddd}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body kbd,.popover kbd{display:inline-block;padding:3px 5px;font-size:11px;line-height:10px;color:#555;vertical-align:middle;background-color:#fcfcfc;border:1px solid #ccc;border-bottom-color:#bbb;border-radius:3px;box-shadow:inset 0 -1px 0 #bbb}.markdown-body .loweralpha{list-style-type:lower-alpha}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:#000;vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1 code,.markdown-body h1 tt,.markdown-body h2 code,.markdown-body h2 tt,.markdown-body h3 code,.markdown-body h3 tt,.markdown-body h4 code,.markdown-body h4 tt,.markdown-body h5 code,.markdown-body h5 tt,.markdown-body h6 code,.markdown-body h6 tt{font-size:inherit}.markdown-body h1{font-size:2em}.markdown-body h1,.markdown-body h2{padding-bottom:.3em;border-bottom:1px solid #eee}.markdown-body h2{font-size:1.5em}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h5{font-size:.875em}.markdown-body h6{font-size:.85em;color:#777}.markdown-body ol,.markdown-body ul{padding-left:2em}.markdown-body ol.no-list,.markdown-body ul.no-list{padding:0;list-style-type:none}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-top:0;margin-bottom:0}.markdown-body li>p{margin-top:16px}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:700}.markdown-body dl dd{padding:0 16px;margin-bottom:16px}.markdown-body table{display:block;width:100%;overflow:auto;word-break:normal;word-break:keep-all}.markdown-body table th{font-weight:700}.markdown-body table td,.markdown-body table th{padding:6px 13px;border:1px solid #ddd}.markdown-body table tr{background-color:#fff;border-top:1px solid #ccc}.markdown-body table tr:nth-child(2n){background-color:#f8f8f8}.markdown-body img{max-width:100%;box-sizing:content-box;background-color:#fff}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body .emoji{max-width:none;vertical-align:text-top;background-color:transparent}.markdown-body span.frame{display:block;overflow:hidden}.markdown-body span.frame>span{display:block;float:left;width:auto;padding:7px;margin:13px 0 0;overflow:hidden;border:1px solid #ddd}.markdown-body span.frame span img{display:block;float:left}.markdown-body span.frame span span{display:block;padding:5px 0 0;clear:both;color:#333}.markdown-body span.align-center{display:block;overflow:hidden;clear:both}.markdown-body span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.markdown-body span.align-center span img{margin:0 auto;text-align:center}.markdown-body span.align-right{display:block;overflow:hidden;clear:both}.markdown-body span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.markdown-body span.align-right span img{margin:0;text-align:right}.markdown-body span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.markdown-body span.float-left span{margin:13px 0 0}.markdown-body span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.markdown-body span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.markdown-body code,.markdown-body tt{padding:0;padding-top:.2em;padding-bottom:.2em;margin:0;font-size:85%;background-color:rgba(0,0,0,.04);border-radius:3px}.markdown-body code:after,.markdown-body code:before,.markdown-body tt:after,.markdown-body tt:before{letter-spacing:-.2em;content:"\00a0"}.markdown-body code br,.markdown-body tt br{display:none}.markdown-body del code{text-decoration:inherit}.markdown-body pre{word-wrap:normal}.markdown-body pre>code{padding:0;margin:0;font-size:100%;word-break:normal;white-space:pre;background:transparent;border:0}.markdown-body .highlight{margin-bottom:16px}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body .highlight pre,.markdown-body pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;background-color:#f7f7f7;border-radius:3px}.markdown-body pre code,.markdown-body pre tt{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.markdown-body pre code:after,.markdown-body pre code:before,.markdown-body pre tt:after,.markdown-body pre tt:before{content:normal}.markdown-body .csv-data td,.markdown-body .csv-data th{padding:5px;overflow:hidden;font-size:12px;line-height:1;text-align:left;white-space:nowrap}.markdown-body .csv-data .blob-line-num{padding:10px 8px 9px;text-align:right;background:#fff;border:0}.markdown-body .csv-data tr{border-top:0}.markdown-body .csv-data th{font-weight:700;background:#f8f8f8;border-top:0}.news .alert .markdown-body blockquote{padding:0 0 0 40px;border:0 none}.activity-tab .news .alert .commits,.activity-tab .news .markdown-body blockquote{padding-left:0}.task-list-item{list-style-type:none}.task-list-item label{font-weight:400}.task-list-item.enabled label{cursor:pointer}.task-list-item+.task-list-item{margin-top:3px}.task-list-item-checkbox{float:left;margin:.31em 0 .2em -1.3em!important;vertical-align:middle;cursor:default!important}.markdown-body{padding-top:40px;padding-bottom:40px;max-width:758px;overflow:visible!important}.markdown-body .emoji{vertical-align:top}.markdown-body pre{border:inherit!important}.markdown-body code{color:inherit!important}.markdown-body pre code .wrapper{display:-moz-inline-flex;display:-ms-inline-flex;display:-o-inline-flex;display:inline-flex}.markdown-body pre code .gutter{float:left;overflow:hidden;-webkit-user-select:none;user-select:none}.markdown-body pre code .gutter.linenumber{text-align:right;position:relative;display:inline-block;cursor:default;z-index:4;padding:0 8px 0 0;min-width:20px;box-sizing:content-box;color:#afafaf!important;border-right:3px solid #6ce26c!important}.markdown-body pre code .gutter.linenumber>span:before{content:attr(data-linenumber)}.markdown-body pre code .code{float:left;margin:0 0 0 16px}.markdown-body .gist .line-numbers{border-left:none;border-top:none;border-bottom:none}.markdown-body .gist .line-data{border:none}.markdown-body .gist table{border-spacing:0;border-collapse:inherit!important}.markdown-body code[data-gist-id]{background:none;padding:0}.markdown-body code[data-gist-id]:after,.markdown-body code[data-gist-id]:before{content:""}.markdown-body code[data-gist-id] .blob-num{border:unset}.markdown-body code[data-gist-id] table{overflow:unset;margin-bottom:unset}.markdown-body code[data-gist-id] table tr{background:unset}.markdown-body[dir=rtl] pre{direction:ltr}.markdown-body[dir=rtl] code{direction:ltr;unicode-bidi:embed}.markdown-body .alert>p{margin-bottom:0}.markdown-body pre.abc,.markdown-body pre.flow-chart,.markdown-body pre.graphviz,.markdown-body pre.mermaid,.markdown-body pre.sequence-diagram{text-align:center;background-color:inherit;border-radius:0;white-space:inherit}.markdown-body pre.abc>code,.markdown-body pre.flow-chart>code,.markdown-body pre.graphviz>code,.markdown-body pre.mermaid>code,.markdown-body pre.sequence-diagram>code{text-align:left}.markdown-body pre.abc>svg,.markdown-body pre.flow-chart>svg,.markdown-body pre.graphviz>svg,.markdown-body pre.mermaid>svg,.markdown-body pre.sequence-diagram>svg{max-width:100%;height:100%}.markdown-body pre>code.wrap{white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}.markdown-body .alert>p,.markdown-body .alert>ul{margin-bottom:0}.markdown-body summary{display:list-item}.markdown-body summary:focus{outline:none}.markdown-body details summary{cursor:pointer}.markdown-body details:not([open])>:not(summary){display:none}.markdown-body figure{margin:1em 40px}.markdown-body .mark,.markdown-body mark{background-color:#fff1a7}.vimeo,.youtube{cursor:pointer;display:table;text-align:center;background-position:50%;background-repeat:no-repeat;background-size:contain;background-color:#000;overflow:hidden}.vimeo,.youtube{position:relative;width:100%}.youtube{padding-bottom:56.25%}.vimeo img{width:100%;object-fit:contain;z-index:0}.youtube img{object-fit:cover;z-index:0}.vimeo iframe,.youtube iframe,.youtube img{width:100%;height:100%;position:absolute;top:0;left:0}.vimeo iframe,.youtube iframe{vertical-align:middle;z-index:1}.vimeo .icon,.youtube .icon{position:absolute;height:auto;width:auto;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;opacity:.3;transition:opacity .2s;z-index:0}.vimeo:hover .icon,.youtube:hover .icon{opacity:.6;transition:opacity .2s}.slideshare .inner,.speakerdeck .inner{position:relative;width:100%}.slideshare .inner iframe,.speakerdeck .inner iframe{position:absolute;top:0;bottom:0;left:0;right:0;width:100%;height:100%}.MJX_Assistive_MathML{display:none}.ui-infobar{position:relative;z-index:2;max-width:760px;margin:25px auto -25px;padding:0 15px;color:#777}.toc .invisable-node{list-style-type:none}.ui-toc{position:fixed;bottom:20px;z-index:998}.ui-toc-label{opacity:.3;background-color:#ccc;border:none;transition:opacity .2s}.ui-toc .open .ui-toc-label{opacity:1;color:#fff;transition:opacity .2s}.ui-toc-label:focus{opacity:.3;background-color:#ccc;color:#000}.ui-toc-label:hover{opacity:1;background-color:#ccc;transition:opacity .2s}.ui-toc-dropdown{margin-top:23px;margin-bottom:20px;padding-left:10px;padding-right:10px;max-width:45vw;width:25vw;max-height:70vh;overflow:auto;text-align:inherit}.ui-toc-dropdown>.toc{max-height:calc(70vh - 100px);overflow:auto}.ui-toc-dropdown[dir=rtl] .nav{padding-right:0;letter-spacing:.0029em}.ui-toc-dropdown a{overflow:hidden;text-overflow:ellipsis;white-space:pre}.ui-toc-dropdown .nav>li>a{display:block;padding:4px 20px;font-size:13px;font-weight:500;color:#767676}.ui-toc-dropdown .nav>li:first-child:last-child > ul,.ui-toc-dropdown .toc.expand ul{display:block}.ui-toc-dropdown .nav>li>a:focus,.ui-toc-dropdown .nav>li>a:hover{padding-left:19px;color:#000;text-decoration:none;background-color:transparent;border-left:1px solid #000}.ui-toc-dropdown[dir=rtl] .nav>li>a:focus,.ui-toc-dropdown[dir=rtl] .nav>li>a:hover{padding-right:19px;border-left:none;border-right:1px solid #000}.ui-toc-dropdown .nav>.active:focus>a,.ui-toc-dropdown .nav>.active:hover>a,.ui-toc-dropdown .nav>.active>a{padding-left:18px;font-weight:700;color:#000;background-color:transparent;border-left:2px solid #000}.ui-toc-dropdown[dir=rtl] .nav>.active:focus>a,.ui-toc-dropdown[dir=rtl] .nav>.active:hover>a,.ui-toc-dropdown[dir=rtl] .nav>.active>a{padding-right:18px;border-left:none;border-right:2px solid #000}.ui-toc-dropdown .nav .nav{display:none;padding-bottom:10px}.ui-toc-dropdown .nav>.active>ul{display:block}.ui-toc-dropdown .nav .nav>li>a{padding-top:1px;padding-bottom:1px;padding-left:30px;font-size:12px;font-weight:400}.ui-toc-dropdown[dir=rtl] .nav .nav>li>a{padding-right:30px}.ui-toc-dropdown .nav .nav>li>ul>li>a{padding-top:1px;padding-bottom:1px;padding-left:40px;font-size:12px;font-weight:400}.ui-toc-dropdown[dir=rtl] .nav .nav>li>ul>li>a{padding-right:40px}.ui-toc-dropdown .nav .nav>li>a:focus,.ui-toc-dropdown .nav .nav>li>a:hover{padding-left:29px}.ui-toc-dropdown[dir=rtl] .nav .nav>li>a:focus,.ui-toc-dropdown[dir=rtl] .nav .nav>li>a:hover{padding-right:29px}.ui-toc-dropdown .nav .nav>li>ul>li>a:focus,.ui-toc-dropdown .nav .nav>li>ul>li>a:hover{padding-left:39px}.ui-toc-dropdown[dir=rtl] .nav .nav>li>ul>li>a:focus,.ui-toc-dropdown[dir=rtl] .nav .nav>li>ul>li>a:hover{padding-right:39px}.ui-toc-dropdown .nav .nav>.active:focus>a,.ui-toc-dropdown .nav .nav>.active:hover>a,.ui-toc-dropdown .nav .nav>.active>a{padding-left:28px;font-weight:500}.ui-toc-dropdown[dir=rtl] .nav .nav>.active:focus>a,.ui-toc-dropdown[dir=rtl] .nav .nav>.active:hover>a,.ui-toc-dropdown[dir=rtl] .nav .nav>.active>a{padding-right:28px}.ui-toc-dropdown .nav .nav>.active>.nav>.active:focus>a,.ui-toc-dropdown .nav .nav>.active>.nav>.active:hover>a,.ui-toc-dropdown .nav .nav>.active>.nav>.active>a{padding-left:38px;font-weight:500}.ui-toc-dropdown[dir=rtl] .nav .nav>.active>.nav>.active:focus>a,.ui-toc-dropdown[dir=rtl] .nav .nav>.active>.nav>.active:hover>a,.ui-toc-dropdown[dir=rtl] .nav .nav>.active>.nav>.active>a{padding-right:38px}.markdown-body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif}html[lang^=ja] .markdown-body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Helvetica,Roboto,Arial,Hiragino Kaku Gothic Pro,ヒラギノ角ゴ Pro W3,Osaka,Meiryo,メイリオ,MS Gothic,MS\ ゴシック,sans-serif}html[lang=zh-tw] .markdown-body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Helvetica,Roboto,Arial,PingFang TC,Microsoft JhengHei,微軟正黑,sans-serif}html[lang=zh-cn] .markdown-body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Helvetica,Roboto,Arial,PingFang SC,Microsoft YaHei,微软雅黑,sans-serif}html .markdown-body[lang^=ja]{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Helvetica,Roboto,Arial,Hiragino Kaku Gothic Pro,ヒラギノ角ゴ Pro W3,Osaka,Meiryo,メイリオ,MS Gothic,MS\ ゴシック,sans-serif}html .markdown-body[lang=zh-tw]{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Helvetica,Roboto,Arial,PingFang TC,Microsoft JhengHei,微軟正黑,sans-serif}html .markdown-body[lang=zh-cn]{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Helvetica,Roboto,Arial,PingFang SC,Microsoft YaHei,微软雅黑,sans-serif}html[lang^=ja] .ui-toc-dropdown{font-family:Source Sans Pro,Helvetica,Arial,Meiryo UI,MS PGothic,MS\ Pゴシック,sans-serif}html[lang=zh-tw] .ui-toc-dropdown{font-family:Source Sans Pro,Helvetica,Arial,Microsoft JhengHei UI,微軟正黑UI,sans-serif}html[lang=zh-cn] .ui-toc-dropdown{font-family:Source Sans Pro,Helvetica,Arial,Microsoft YaHei UI,微软雅黑UI,sans-serif}html .ui-toc-dropdown[lang^=ja]{font-family:Source Sans Pro,Helvetica,Arial,Meiryo UI,MS PGothic,MS\ Pゴシック,sans-serif}html .ui-toc-dropdown[lang=zh-tw]{font-family:Source Sans Pro,Helvetica,Arial,Microsoft JhengHei UI,微軟正黑UI,sans-serif}html .ui-toc-dropdown[lang=zh-cn]{font-family:Source Sans Pro,Helvetica,Arial,Microsoft YaHei UI,微软雅黑UI,sans-serif}.ui-affix-toc{position:fixed;top:0;max-width:15vw;max-height:70vh;overflow:auto}.back-to-top,.expand-toggle,.go-to-bottom{display:block;padding:4px 10px;margin-top:10px;margin-left:10px;font-size:12px;font-weight:500;color:#999}.back-to-top:focus,.back-to-top:hover,.expand-toggle:focus,.expand-toggle:hover,.go-to-bottom:focus,.go-to-bottom:hover{color:#563d7c;text-decoration:none}.back-to-top,.go-to-bottom{margin-top:0}.ui-user-icon{width:20px;height:20px;display:block;border-radius:3px;margin-top:2px;margin-bottom:2px;margin-right:5px;background-position:50%;background-repeat:no-repeat;background-size:cover}.ui-user-icon.small{width:18px;height:18px;display:inline-block;vertical-align:middle;margin:0 0 .2em}.ui-infobar>small>span{line-height:22px}.ui-infobar>small .dropdown{display:inline-block}.ui-infobar>small .dropdown a:focus,.ui-infobar>small .dropdown a:hover{text-decoration:none}.ui-published-note{color:#337ab7}.ui-published-note .fa{font-size:20px;vertical-align:top}.unselectable{-webkit-user-select:none;-o-user-select:none;user-select:none}@media print{blockquote,div,img,pre,table{page-break-inside:avoid!important}a[href]:after{font-size:12px!important}}.markdown-body.slides{position:relative;z-index:1;color:#222}.markdown-body.slides:before{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;background-color:currentColor;box-shadow:0 0 0 50vw}.markdown-body.slides section[data-markdown]{position:relative;margin-bottom:1.5em;background-color:#fff;text-align:center}.markdown-body.slides section[data-markdown] code{text-align:left}.markdown-body.slides section[data-markdown]:before{content:"";display:block;padding-bottom:56.23%}.markdown-body.slides section[data-markdown]>div:first-child{position:absolute;top:50%;left:1em;right:1em;transform:translateY(-50%);max-height:100%;overflow:hidden}.markdown-body.slides section[data-markdown]>ul{display:inline-block}.markdown-body.slides>section>section+section:after{content:"";position:absolute;top:-1.5em;right:1em;height:1.5em;border:3px solid #777}body{font-smoothing:subpixel-antialiased!important;-webkit-font-smoothing:subpixel-antialiased!important;-moz-osx-font-smoothing:auto!important;text-shadow:0 0 1em transparent,1px 1px 1.2px rgba(0,0,0,.004);-webkit-overflow-scrolling:touch;letter-spacing:.025em}.focus,:focus{outline:none!important}::-moz-focus-inner{border:0!important}body{font-family:Source Sans Pro,Helvetica,Arial,sans-serif}html[lang^=ja] body{font-family:Source Sans Pro,Helvetica,Arial,Hiragino Kaku Gothic Pro,ヒラギノ角ゴ Pro W3,Osaka,Meiryo,メイリオ,MS Gothic,MS\ ゴシック,sans-serif}html[lang=zh-tw] body{font-family:Source Sans Pro,Helvetica,Arial,PingFang TC,Microsoft JhengHei,微軟正黑,sans-serif}html[lang=zh-cn] body{font-family:Source Sans Pro,Helvetica,Arial,PingFang SC,Microsoft YaHei,微软雅黑,sans-serif}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}abbr[data-original-title],abbr[title]{cursor:help}body.modal-open{overflow-y:auto;padding-right:0!important}
</style>
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js" integrity="sha256-3Jy/GbSLrg0o9y5Z5n1uw0qxZECH7C6OQpVBgNFYa0g=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.min.js" integrity="sha256-g6iAfvZp+nDQ2TdTR/VVKJf3bGro4ub5fvWSWVRi2NE=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/es5-shim/4.5.9/es5-shim.min.js" integrity="sha256-8E4Is26QH0bD52WoQpcB+R/tcWQtpzlCojrybUd7Mxo=" crossorigin="anonymous"></script>
<![endif]-->
</head>
<body>
<div id="doc" class="markdown-body container-fluid comment-enabled" data-hard-breaks="true" style="position: relative;"><h1 id="Tim-Sweeney-Metaverse"><a class="anchor hidden-xs" href="#Tim-Sweeney-Metaverse" title="Tim-Sweeney-Metaverse"><span class="octicon octicon-link"></span></a>Tim Sweeney Metaverse</h1><p><img src="https://i.imgur.com/Vgd3qxD.jpg" alt=""></p><p>Video: <a href="https://www.youtube.com/watch?v=KBEg9riBc_U" target="_blank" rel="noopener">https://www.youtube.com/watch?v=KBEg9riBc_U</a><br>
Soundcloud: <a href="https://soundcloud.com/siggraph-spotlight/30-tim-sweeney-and-the-metaverse" target="_blank" rel="noopener">https://soundcloud.com/siggraph-spotlight/30-tim-sweeney-and-the-metaverse</a><br>
Kent Bye tweets: <a href="https://i.imgur.com/CtlwDR2.jpg" target="_blank" rel="noopener">https://i.imgur.com/CtlwDR2.jpg</a><br>
Dana Cowley tweets: <a href="https://i.imgur.com/wY53tKj.jpg" target="_blank" rel="noopener">https://i.imgur.com/wY53tKj.jpg</a></p><p>Spreed extension: <a href="https://chrome.google.com/webstore/detail/spreed-speed-read-the-web/ipikiaejjblmdopojhpejjmbedhlibno" target="_blank" rel="noopener">https://chrome.google.com/webstore/detail/spreed-speed-read-the-web/ipikiaejjblmdopojhpejjmbedhlibno</a><br>
Clean text version (for spreed): <a href="https://hackmd.io/@XR/timsweeneyclean" target="_blank" rel="noopener">https://hackmd.io/@XR/timsweeneyclean</a><br>
Speed read video (13 minutes): <a href="https://vimeo.com/373079933" target="_blank" rel="noopener">https://vimeo.com/373079933</a></p><hr><h2 id="Table-of-Contents"><a class="anchor hidden-xs" href="#Table-of-Contents" title="Table-of-Contents"><span class="octicon octicon-link"></span></a>Table of Contents</h2><ul>
<li><a href="https://youtu.be/KBEg9riBc_U?t=200" target="_blank" rel="noopener">03:20</a> - What is the Metaverse?</li>
<li><a href="https://youtu.be/KBEg9riBc_U?t=447" target="_blank" rel="noopener">07:27</a> - Web standards</li>
<li><a href="https://youtu.be/KBEg9riBc_U?t=564" target="_blank" rel="noopener">09:24</a> - File Formats</li>
<li><a href="https://youtu.be/KBEg9riBc_U?t=837" target="_blank" rel="noopener">13:57</a> - Identity</li>
<li><a href="https://youtu.be/KBEg9riBc_U?t=1002" target="_blank" rel="noopener">16:42</a> - Network Architecture</li>
<li><a href="https://youtu.be/KBEg9riBc_U?t=https://youtu.be/KBEg9riBc_U?t=1101" target="_blank" rel="noopener">18:21</a> - Blockchain</li>
<li><a href="https://youtu.be/KBEg9riBc_U?t=1355" target="_blank" rel="noopener">22:35</a> - Programming Models</li>
<li><a href="https://youtu.be/KBEg9riBc_U?t=1443" target="_blank" rel="noopener">24:03</a> - Advertising Experiences</li>
<li><a href="https://youtu.be/KBEg9riBc_U?t=1605" target="_blank" rel="noopener">26:45</a> - Open world compatibility</li>
<li><a href="https://youtu.be/KBEg9riBc_U?t=1766" target="_blank" rel="noopener">29:26</a> - Transactions</li>
<li><a href="https://youtu.be/KBEg9riBc_U?t=2094" target="_blank" rel="noopener">34:54</a> - Virtual Economy</li>
<li><a href="https://youtu.be/KBEg9riBc_U?t=2353" target="_blank" rel="noopener">39:13</a> - Curation and Moderation</li>
<li><a href="https://youtu.be/KBEg9riBc_U?t=2507" target="_blank" rel="noopener">41:47</a> - Empathy</li>
<li><a href="https://youtu.be/KBEg9riBc_U?t=2616" target="_blank" rel="noopener">43:36</a> - The Betterverse</li>
<li><a href="https://youtu.be/KBEg9riBc_U?t=2746" target="_blank" rel="noopener">45:46</a> - Roadmap</li>
<li><a href="https://youtu.be/KBEg9riBc_U?t=3203" target="_blank" rel="noopener">53:23</a> - Q&A</li>
</ul><hr><p><a href="https://youtu.be/KBEg9riBc_U?t=9" target="_blank" rel="noopener">00:09</a></p><p>Hello and welcome back to SIGGRAPH spotlight. I hope you’re prepared for a really great talk today from an industry legend. For the first time we’re bringing you a live recording from one of our sessions. Specifically the SIGGRAPH 2019 talk given by Tim Sweeney, founder and CEO of Epic Games. He’ll dive deep into the metaverse and the future of creator-centric and social gaming. For a man who needs no introduction, here’s Tim.</p><h2 id="Intro"><a class="anchor hidden-xs" href="#Intro" title="Intro"><span class="octicon octicon-link"></span></a>Intro</h2><p><a href="https://youtu.be/KBEg9riBc_U?t=37" target="_blank" rel="noopener">00:37</a></p><p>Thank you all for coming. It was in the early 1990s when the first fictional writing about the metaverse began, and that was an interesting environment back then. the internet had not taken off as a consumer phenomena yet, but everybody who was in a college or university setting or big corporation had access to the early version of the Internet which was you know text-based.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=61" target="_blank" rel="noopener">01:01</a></p><p>At the time there were also early Silicon Graphics workstations demonstrating real-time 3d for the low low price of a quarter million dollars.</p><p>There’s a growing awareness that 3d interactive experiences would be possible. You know the first VR headset had been developed on more than 15 years prior. There was a growing recognition that the technologies were falling in place to put this a medium together.</p><p>In the 30 years since, it’s been a very slow process, and we’ve seen little leaps and bounds here and there, but we’re still not anywhere near the original visions for the Metaverse.</p><p>Some of the interesting developments have occurred lately are the advent of creator centric games, like Minecraft and Roblox where some or all of the game’s content is created by the community itself and engaging in community content in these virtual worlds created by other people is the primary experience.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=114" target="_blank" rel="noopener">01:56</a></p><p>We’ve also seen a really interesting interplay of the real world and the virtual world with games like Pokemon go and location-based entertainment.</p><p>We’ve also seen the advent of social gaming as a new type of experience people have together with Fortnite. Fortnite is kind of the biggest scaled phenomena yet in this sector:</p><ul>
<li>More than 250 million people have experienced the game</li>
<li>They interact across seven different platforms</li>
<li>It’s a very broad audience, not all hardcore gamerz</li>
</ul><p>There is a study that showed that about 35% of Fortnite players were female which is a really impressive statistic for a game that’s primarily a shooter in nature.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=158" target="_blank" rel="noopener">02:38</a></p><p>We find a lot of the time when people are playing Fortnite they’re spending a large fraction of their time actually just in the game lobby on voice chat with friends, emoting and just hanging out and having a good time in between play sessions.</p><p>We’re really seeing the beginning of these social experiences in a 3D world and yet what we have I don’t think anybody would claim is the Metaverse. Actually nobody really knows what the Metaverse is because all of these science fiction portrayals are very interesting, but they they don’t really get to the core elements of what the media is, how it works, and what what’s necessary for it to succeed in a major competitive economy.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=200" target="_blank" rel="noopener">03:20</a></p><p>The purpose of this talk is to try to say what the Metaverse is and then review the building blocks that we at Epic think are going to be necessary for the industry to build together in order to enable this medium to really take off on a new scale.</p><p>Then I hope to leave a lot of time for questions and other viewpoints to be heard on this topic.</p><p>I started out by trying to say what the Metaverse is and my first version of the statement was <strong>it’s a real-time 3d social medium where people can engage in shared experiences together</strong>, but that doesn’t really work does it?</p><p>Doom is the Metaverse and Halo is the Metaverse, every multiplayer games the Metaverse, so that’s not quite enough.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=246" target="_blank" rel="noopener">04:06</a></p><p>I think that players being able to create a large amount of the content to the world is a critical part of this new medium.</p><p>If players can create their own stuff then the whole platform is just going to be limited to what this one central company can build and I don’t see any argument or any indication that that could ever succeed of at a phenomenal level necessary for it to change the world.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=270" target="_blank" rel="noopener">04:30</a></p><p>So, I think creating is a really critical part of it but creating isn’t enough because creating content costs money and creating high quality content costs a lot of money.</p><p>The Metaverse is a platform we’ll be competing with all of these other platforms and Triple A games and every other digital competitor for players times.</p><p>I think it’s also critically important that the Metaverse have an economy that’s open for creators to participate in so that you can not only be a builder of content, but you can also build a business around content. Companies can have employees, that can grow and we can build an entire digital ecosystem around a degree of free-market economics.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=313" target="_blank" rel="noopener">05:13</a></p><p>Is that enough still? I think what why I described there which is a real-time 3d social medium where people can create, share, and engage in shared experiences as part of an open economy is also a potential invitation for a corporate dystopia like we have with a lot of the social media platforms now where one company sucks all the money out or most of it, and has the unilateral right to decide what can and should be seen in the thing.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=342" target="_blank" rel="noopener">05:42</a></p><p>I don’t think that’s enough. I think that we not only need to be participants in this economy but we need to all be equal participants - users together with all the software and technology companies that provide portions of the platform in order for it to be a really fair and competitive medium.</p><p>So I’m talking about the Metaverse I’m really talking about the <strong>open Metaverse</strong> so let’s try it so one more time.</p><p><strong>It’s a real-time 3d social medium where people can create and engage in shared experience as equal participants in an economy with societal impact.</strong></p><p><a href="https://youtu.be/KBEg9riBc_U?t=379" target="_blank" rel="noopener">06:19</a></p><p>If this is a small thing and it fails, then it’s not the Metaverse. The Metaverse has to be a next-generation platform that’s a successor to a lot of communication media that came before it and has to take off at an unprecedented scale.</p><p>That’s what I think the Metaverse is, so we’re now going to try to break down the technical aspects and the principles that we need in place to actually build this thing successfully together.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=406" target="_blank" rel="noopener">06:46</a></p><p>If we’re going to try to build the Metaverse as an open platform then we’re going to need a degree of industry standards to specify what it is, how it works, how all the participants interoperate.</p><p>I think you can look at the history of technical standards evolving over time. The first really interesting technical standard I could find for interoperability was RFC 822, you know as the internet standards - the standard for the format of ARPA Internet text messages.</p><p>They’re talking about email here, the standard was formed in 1982, it’s like the dozen pages of text, very simple stuff anybody can implement. The protocol is necessary to exchange email.</p><h2 id="The-Web"><a class="anchor hidden-xs" href="#The-Web" title="The-Web"><span class="octicon octicon-link"></span></a>The Web</h2><p><a href="https://youtu.be/KBEg9riBc_U?t=447" target="_blank" rel="noopener">07:27</a></p><p>Today you step forward to the web standards powering the modern web. You’ve a large array of actual standards, they’re all bundled up together under a bunch of different industry initiatives.</p><p>There’s the World Wide Web Consortium providing the HTML standard, ECMA providing the javascript standard, a separate organization. Then there are dozens of audio and video formats and visual formats for different data types that can be conveyed by the web.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=475" target="_blank" rel="noopener">07:55</a></p><p>These standards are really diverse; you not only specify file formats they also specify protocols for exchanging data, and some fairly complex specifications of operations.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=487" target="_blank" rel="noopener">08:07</a></p><p>The web works based on the document object model Dom, which describes the top-level document of a web page and how code can interact with it, and how content is injected to it through HTML. It’s sort of the 2d web browser equivalent of a 3d scene graph that we experience in a modern game.</p><p>Also powering the web or a lot of other related standards used on the backend side, server-to-server and server-to-service, such as JSON and XML and WebRTC.</p><p>It will be actually a hard project to find all of the standards governing the web and to collect them together. I imagine you’d need dozens of standards, and they’d span tens of thousands of pages to understand it all.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=532" target="_blank" rel="noopener">08:52</a></p><p>There’s a growth in complexity and I can only imagine the future 3d standards will have to be significantly more complex than this, because what 3d engines do is far far beyond what web does. If you look at the variety of ways that game objects interoperate, there’s a huge huge surface area there that would need to be specified.</p><p>It doesn’t all need to happen at once right? As with the web standards we can break down all of the components needed for 3D scene formats and related data by category and decompose at all.</p><h2 id="File-Formats"><a class="anchor hidden-xs" href="#File-Formats" title="File-Formats"><span class="octicon octicon-link"></span></a>File Formats</h2><p><a href="https://youtu.be/KBEg9riBc_U?t=564" target="_blank" rel="noopener">09:24</a></p><p>The good news is there are actually quite a lot of standards that are candidates for powering an open Metaverse. For example, there’s the Pixar USD universal scene description format which does a pretty good job of describing scene graphs. There is the MDL material description language and material X shading graph language which described their operation of shaders for physically based realistic materials. Then there are formats like glTF for describing geometry, intensive geometry, and 3d objects of all sorts.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=596" target="_blank" rel="noopener">09:56</a></p><p>We’re lacking standards a lot of areas or we have very early formative standards that haven’t really taken hold yet. There are standards for a character animation, faces, particle systems, for describing the physics of objects that can interact together, and for describing how live servers and clients interact together using real-time network streams because we’re presuming you’re not sending everybody the entire scene graph every time something changes but you have to have optimized protocols to make all these things really efficient.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=627" target="_blank" rel="noopener">10:27</a></p><p>You need standards for objects: How does code interact with the scene graph to make interesting things happen in a dynamic world? How does audio work in this environment? It’s not just sound file, it’s also 3D geospatial location and physical interactions and interface user interface components on top of that because this future 3D medium will also have forms of 2D interaction in it.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=651" target="_blank" rel="noopener">10:51</a></p><p>So we’re going to need dozens of different file formats of which many exist. The constant challenge over the next few decades is going to be filling in all of these gaps over time. We’re going to need to fill in these gaps and then iterate and constantly improve things.</p><p>It really took about five iterations before HTML really hit a sweet spot where it’s a completely functional language for powering webpages.</p><p>If we look around at the whole spectrum file formats it’s really quite a mess right now. Most standard file formats are layered on top of one of two standards, either JSON you know JavaScript object notation or XML, and these file formats actually don’t solve the core problem of a file format which is to convey data and information about any topic losslessly from any computer to any other computer.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=700" target="_blank" rel="noopener">11:40</a></p><p>If you look at like glTF and all of these other JSON based file formats what they really do is they specify, “like okay the key name for this data type is vertex and the value is a bunch of floating-point numbers separated by commas.”</p><p>So really saying is like here’s a file format for bundling up sub file formats together in a really messy way.</p><p>I think there’s a real opportunity for a simpler and more definitive file format for any data type that could conceivably exist in any system can describe that data in a way that can always be conveyed from one end to the other without the need for any interpretation, or any schema, and without any sort of loss.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=744" target="_blank" rel="noopener">12:24</a></p><p>Right? JSON is a good example, it supports two data types: strings and double-precision floating-point numbers, but it’s missing a huge set of of data types that you would need to convey any realistic data that would exist in a in a complex environment.</p><p>So over time it will be great if we could take the existing file formats there based on these crappy low-level file formats and rebase them in a more rigorous way on top of a new kind of carrier file format so that USD and MDL and glTF and others could cut it into a more uniform framework for describing describing the data they contain.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=783" target="_blank" rel="noopener">13:03</a></p><p>That might sound a little bit pedantic when talking about specific file formats because after all you write the importer once and you’re done, and you never have to touch it again. However, file format issues really come to the forefront when you’re talking about a Metaverse consisting of huge sets of user-created objects powered by user created scripts each defining huge quantities of data that they will can contain and data types that define new containers of data.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=809" target="_blank" rel="noopener">13:29</a></p><p>What we need it’s not just a file format for specific types of data that we lay out in advance but also file formats for any type of data that any programmer might write in one of these programs.</p><p>This is because in the open Metaverse you expect these objects be able to move around between servers and interact and be conveyable losslessly even between software products written using different code bases and different engines or so on.</p><h2 id="Identity"><a class="anchor hidden-xs" href="#Identity" title="Identity"><span class="octicon octicon-link"></span></a>Identity</h2><p><a href="https://youtu.be/KBEg9riBc_U?t=837" target="_blank" rel="noopener">13:57</a></p><p>Next there’s a set of technical standards that are needed not for representing the world but for representing participants in the world.</p><p>Here we’ll need standards for identity of people, for communication between people (voice communication, text communication, video streaming), and also social interactions and social relationships between people such as social graphs.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=860" target="_blank" rel="noopener">14:20</a></p><p>There are some really interesting web standards that already exist and already widely deployed now along these lines like oauth, a good standard for identity and authentication.</p><p>In the federated environment we have many different authentication for writers who can all interoperate and respect each other’s users. You also have a really good standard for communications with WebRTC</p><p><a href="https://youtu.be/KBEg9riBc_U?t=882" target="_blank" rel="noopener">14:42</a></p><p>Epics build up a lot of experience with these topics lately and implementing Fortnight cross-platform play and cross-platform item ownership across all seven platforms.</p><p>Fortnite was kind of the first game that runs on Windows/Mac/iOS/Android/Xbox/Playstation and Nintendo switch and now supports game play with players in all these platforms together in a single game play session.</p><p>We actually built these systems by supporting Playstation login on Epic’s account system and Xbox logon plus all these other different components.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=917" target="_blank" rel="noopener">15:17</a></p><p>I think if we look around we find we already have in place most of the infrastructure we need for federated identity across many different ecosystems. That’s a great starting point for a shared open Metaverse anybody can participate in.</p><p>However, we need more standards. There’s a no workable standard for social graphs right now. There was an OpenSocial standard that was proposed that never gained traction because I guess Facebook and the Instagram and everybody else found it was more profitable if they didn’t open their social graphs up to other people.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=947" target="_blank" rel="noopener">15:47</a></p><p>We need to develop a bunch of new standards also need standards for ownership of digital objects if we want to create an economy around this future Metaverse. That means the ability for creators to create things, for them to sell the things to users, for users to be able to prove and establish that they own things, wherever they go, whatever server they’re on, and whoever they communicate with.</p><p>We will also need some sorts of standards for appearance, right? Because the key point about the Metaverse is it cannot just be another App Store, right?</p><p>We already have app stores, they already sell 3D games, and I think the unique element that’s going to make this an engaging medium for everybody is the fact that you can carry your image, yourself, your persona, and your avatar across different entertainment experiences as you go around these shared worlds. We’ll need first-class ways of treating all that.</p><h2 id="Networking"><a class="anchor hidden-xs" href="#Networking" title="Networking"><span class="octicon octicon-link"></span></a>Networking</h2><p><a href="https://youtu.be/KBEg9riBc_U?t=1002" target="_blank" rel="noopener">16:42</a></p><p>We’re also going to need to decide on some sort of network architecture for the system to work.</p><p>If we look at how games work today and how all of these shared entertainment experiences work, they’re essentially client-server applications.</p><p>A client is distinguished from a server, it’s transient, it’s not necessarily trusted, it might be on a device that’s hacked, they might be trying to cheat.</p><p>The client is kind of a single autonomous machine representing an owner in the whole system.</p><p>Servers are trusted authoritative decision-makers about interactions in the world.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=1039" target="_blank" rel="noopener">17:19</a></p><p>That works for Fortnite: up to 100 players and when you have 10 million concurrent Fortnite players you have a hundred thousand Fortnite servers running around the world hosting them all, but I don’t think that that’s enough for a future medium as the Metaverse fiction suggests should exist.</p><p>I think what you really want is one single huge shared world everybody can participate in seamlessly. This is obviously going to be something that cannot run on a single server or even a single data center, but will require massive massive numbers of servers all over the world to host.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=1071" target="_blank" rel="noopener">17:51</a></p><p>There needs to be standards for client to server communication and server to server communication. We need to make a big architectural decision about the the model in which servers work together.</p><p>There are two major possibilities: one is a Federation model where a bunch of trusted companies and service providers agree to link their systems together so that all of their servers can interoperate.</p><p>Email is the perfect example of that: tens of thousands of companies link their email servers together.</p><h2 id="Blockchain"><a class="anchor hidden-xs" href="#Blockchain" title="Blockchain"><span class="octicon octicon-link"></span></a>Blockchain</h2><p><a href="https://youtu.be/KBEg9riBc_U?t=https://youtu.be/KBEg9riBc_U?t=1101" target="_blank" rel="noopener">18:21</a></p><p>The other alternative is a decentralized model where something like the blockchain centrally ensures that anybody can participate, anybody can add their hardware power to the overall network that’s computing the evolution of this game world.</p><p>These decentralized participants in the network don’t need to be trusted because the network protocols and the economy itself ensure that everybody operates honestly.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=1129" target="_blank" rel="noopener">18:49</a></p><p>There’s a suggestion the Metaverse could be powered by the blockchain. I think it’s really important to recognize that this could be a really fundamental part of all computing in the long-term future.</p><p>I think it’s easy to for this to be obscured by hype around Bitcoin and all these other cryptocurrencies. A lot of it is financial hucksterism, a lot of it is scams, and the focus is way too much on money.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=1154" target="_blank" rel="noopener">19:14</a></p><p>The existence of these currency tokens as money is almost a coincidence to the underlying fact of the existence of this blockchain.</p><p>What the blockchain is, it’s a decentralized network for processing transactions, for determining ownership of items, for data storage, and compute power.</p><p>There’s an economic model that incentivizes everybody to contribute the computing power to this shared cloud of decentralized computers.</p><p>There’s also an economic model based on game theory that incentivizes everybody to be honest and to conduct transactions fairly and so heavily punishes dishonest transactions that everybody has a clear economic incentive to operate honestly. This is this is how the Bitcoin blockchain implements trust.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=1204" target="_blank" rel="noopener">20:04</a></p><p>It’s a whole lot of machines competing to compute hashes, but the underlying protocol guarantee is that as long as the majority participants in the network are acting honestly a dishonest participant cannot take over, hijack, introduce corrupt or untrusted computations in the blockchain.</p><p>That’s done in two ways:</p><ol>
<li>
<p>This blockchain protocol itself ensures that the blockchain only accumulates the best and longest amount of further computations and transactions that can be created</p>
</li>
<li>
<p>Also by ensuring that every transaction that’s recognized on the blockchain is actually signed by the owners of some current currency and transferring currency to somebody else</p>
</li>
</ol><p>We can completely divorce this topic from money because what we could easily be talking about are virtual goods, ownership of items, real estate, data storage, or anything else.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=1257" target="_blank" rel="noopener">20:57</a></p><p>I think there is a real possibility of blockchain implementation eventually being a practical solution for this, but there is a huge huge gap between current state of the art and what would be needed for a real-time game or Metaverse experience.</p><p>The blockchain works at one update every 10 minutes, game servers like in Fortnite and Call of Duty support one update every one thirtieth of a second. So we’re off by orders of magnitude in performance and there are also significant single-threaded bottlenecks and these blockchain implementations.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=1294" target="_blank" rel="noopener">21:34</a></p><p>If we were ever to look to a blockchain solution for this we’re going to need something radically different than anything that exists now.</p><p>It will need a lot of parallel computation bandwidth where there cannot just be a single evolving global transaction state which everybody has to synchronize with. The speed of light ensures that that cannot possibly work for a real-time communication medium.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=1315" target="_blank" rel="noopener">21:55</a></p><p>This is a big open question, but I think it can be answered by Federation now and decentralization later.</p><p>We’re already seeing increased interconnectivity between all of the gaming ecosystems. You know, good old games introduced a game store that’s now supports purchases on Steam and other stores. We’re seeing more and more integration where games are supporting players across all platforms and platforms themselves are recognizing players from other platforms.</p><p>We’re going to have to watch that space closely but I certainly feel like there’s the necessary technical infrastructure in place now that you could build this and you wouldn’t find co-operation between servers to be a practical issue.</p><h2 id="Programming-Models"><a class="anchor hidden-xs" href="#Programming-Models" title="Programming-Models"><span class="octicon octicon-link"></span></a>Programming Models</h2><p><a href="https://youtu.be/KBEg9riBc_U?t=1355" target="_blank" rel="noopener">22:35</a></p><p>The next question is about programming model, because if we want to have this huge shared experience with many different types of games, other entertainment experiences, or any sort of experience at all, what you’re talking about is a huge amount of user-generated content in the form of 3D assets and also a huge amount of user written code - perhaps an unprecedented amount of user written code.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=1380" target="_blank" rel="noopener">23:00</a></p><p>There’s already some evidence of models like this working: I think the web with JavaScript is sort of a microcosm of this.</p><p>Now the web is a much simpler programming model than the Metaverse will have to be because on a website all of the code that’s running in JavaScript on that site is nominally under the control of the website operator. You can decide exactly what code runs and you don’t ever have to deal with random user code being injected that might interact with you.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=1408" target="_blank" rel="noopener">23:28</a></p><p>The web uses the closed world programming model, whereas the Metaverse will need to be an open world programming model because the goal is it can’t just be another App Store, right? You can’t have a thousand different experiences, and you can be in one at a time, and when you’re in that one experience it dictates everything.</p><p>The Metaverse has got to be about interoperability of user created objects of all different types, right? Because besides having some core game experiences in the sort of place you’re also going to have the equivalent of Facebook pages for every object that exists in the physical world.</p><h2 id="Advertising-Experiences"><a class="anchor hidden-xs" href="#Advertising-Experiences" title="Advertising-Experiences"><span class="octicon octicon-link"></span></a>Advertising Experiences</h2><p><a href="https://youtu.be/KBEg9riBc_U?t=1443" target="_blank" rel="noopener">24:03</a></p><p>Say Ford creates a new car and they’re going to want to unveil the car as a user drivable object in this virtual world. That’s going to be really interesting and more powerful way to unveil a car than to just announce it on your Facebook page. The Facebook page can have text and video, but in the virtual world you can:</p><ul>
<li>Actually get in the car</li>
<li>Go around it</li>
<li>Look at it from all different angles</li>
<li>Open the doors</li>
<li>Drive it you</li>
<li>See how it handles</li>
<li>Have a huge set of interactions that are much more interesting and organic as it’s not just an advertisement for a product but also something that you can experience and have fun with.</li>
</ul><p><a href="https://youtu.be/KBEg9riBc_U?t=1485" target="_blank" rel="noopener">24:45</a></p><p>I think we need to look at all of the crossovers that have occurred in recent years between games and other brands as kind of an indicator of where the Metaverse will go.</p><p>These are not just like cheap advertising deals. If you look at Fortnite for example, the musician Marshmellow held a concert in the virtual world of Fortnite. It’s a really amazing experience that introduced a huge set of new people to his music and brought a lot of marshmallow fans into the game. It was a real crossover that it was not commercial and too intense at all. It was an incredibly fun event for everybody who participated.</p><p>You also saw Marvel’s Infinity War movie appeared in Fortnite as a mode and Fortnite appeared in the movie.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=1530" target="_blank" rel="noopener">25:30</a></p><p>A few years ago Epic partnered with McLaren to build a digital version of their car. The purpose of that project was to see if we could recreate completely realistic carbon fiber, an isotropic paint, and other workings from a billion polygons model that was used to CAD model the original car.</p><p>The modeling project succeeded, but then a few years later, very recently, McLaren car showed up in Rocket League as a drivable car you can play the game with. That was incredibly interesting to see, I think this is going to be the future of this shared 3D entertainment medium.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=1566" target="_blank" rel="noopener">26:06</a></p><p>It’s not about Facebook pages, it’s not about advertising, it’s about actually delivering meaningful experiences that people can interact with and that become part of this much larger world.</p><p>The programming model for the Metaverse must incorporate the assumption that everybody’s on objects that they build should be able to interact sensibly and safely with everybody else’s objects.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=1589" target="_blank" rel="noopener">26:29</a></p><p>Your car built by Ford should be able to interact with your motorcycle built by Ducati. If an architect to be is a major work of architecture in the Metaverse that should work with all the different player models have been introduced into the game, and everything should work together.</p><h2 id="Open-World-Evolution"><a class="anchor hidden-xs" href="#Open-World-Evolution" title="Open-World-Evolution"><span class="octicon octicon-link"></span></a>Open World Evolution</h2><p><a href="https://youtu.be/KBEg9riBc_U?t=1605" target="_blank" rel="noopener">26:45</a></p><p>I think the focus of any programming model for the Metaverse needs to be open world compatibility over time. Open interfaces, which can evolve, would be extended over time.</p><p>If you look at Java and C sharp they’ve done a remarkably thorough job of pursuing this direction and it’s largely been under exploited, but if you look under the covers and compare what these languages have done to C++ just from extreme intelligence and the backwards compatibility rules they’ve introduced into the languages.</p><p>If you release one version of a module with an interface you specify (and that interface is a set of classes and member functions and variables) then there’s a guaranteed set of rules where you can add new members to your class, you can add new variable, add new functions, if you have a constant you can narrow the type of the constant, if you have a function you can add new optional parameters without breaking compatibility with existing users of the class.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=1667" target="_blank" rel="noopener">27:47</a></p><p>I think we have to realize that the Metaverse isn’t going to evolve through one Standards Committee specifying how the entire world is supposed to work.</p><p>The Metaverse is going to evolve as a lot of independent creators each creating their own modules with their own interfaces. Your game object might be a car, your car might suppose a bunch of physical points of interaction to a user like door handles that you can open, and indicators to say you can sit in this here, you can drive this car this way, indications for the users.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=1698" target="_blank" rel="noopener">28:18</a></p><p>It can also expose a programming language interface for programmers to interface with which enable other objects to interact with the car, to understand what it is, and how to interact with it.</p><p>This is going to have to be the central point of any programming language - to really be designed with modular open world evolution as the first-class design consideration in order for it to just not fall apart as so many other software frameworks have over time.</p><h2 id="Seamless-World"><a class="anchor hidden-xs" href="#Seamless-World" title="Seamless-World"><span class="octicon octicon-link"></span></a>Seamless World</h2><p><a href="https://youtu.be/KBEg9riBc_U?t=1727" target="_blank" rel="noopener">28:47</a></p><p>The other essential element for the Metaverse is if we want to scale beyond just a few hundred players in a shard and separate disconnected worlds, I think what we really want is one shared world everybody can participate in that’s completely seamless.</p><p>That means that any sort of programming language needs to scale to be unlimited in size. It needs to support interaction with an outside world that is much larger than can be held in any one server computer or any one data center.</p><p>You know that that has really profound programming model implications. It’s not just going to be single threaded C++ code anymore running locally.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=1766" target="_blank" rel="noopener">29:26</a></p><p>There are several competing ideas for that: one idea is message passing concurrency as Erlang and other languages define. I think you could look at JSON over HTTP is one way of delivering this sort of message passing concurrency.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=1782" target="_blank" rel="noopener">29:42</a></p><p>The challenge with that is every interaction between objects requires negotiating to be consistent on both ends. If you have two different objects on two different servers, they send each other a bunch of messages.</p><p>For example, I’m trying to trade you an object for money, then on my side for the economy to work I had better be able to spend money and guarantee that either you get my money and I get the object you offered or nothing happened at all.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=1812" target="_blank" rel="noopener">30:12</a></p><p>It can’t be like, you got my money but the other message was lost in the network and so I didn’t get my object or you got I got the object and you get the money.</p><p>I think what we’re really talking about here is the challenge for any sort of large-scale concurrency is implementing safe transactions.</p><p>A transaction is an atomic operation that modifies state in a number of different places and occurs atomically. Nothing occurs during their point of view of observables in the system and nothing occurs in between it can inspect intermediate state.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=1850" target="_blank" rel="noopener">30:50</a></p><p>A transaction has to be atomic, isolated, durable, and consistent. Isolated and that nobody sees temporary intermediate states during a transaction.</p><p>Consistent in that everybody in the world sees that the transaction occurred or didn’t occur and nobody sees a conflicting view of that.</p><p>Endurable in that once the transaction is completed we better be able to count on that, because we might conduct subsequent transactions that are dependent on it.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=1877" target="_blank" rel="noopener">31:17</a></p><p>So I think what we really need for this Metaverse to work and not fall apart with data race conditions is some sort of transaction model it scales up to world scale and currency, and that’s really interesting.</p><p>You know there’s been a lot of research on software transactional memory as a small scale solution to running a lot of threads and being able to update shared state without data race conditions at all.</p><p>Intel’s CPUs now have transactional memory extensions (tsx) to facilitate a little bit of this.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=1907" target="_blank" rel="noopener">31:47</a></p><p>I think what you need is a much higher level protocol for negotiating transactions involving sets of objects across multiple servers.</p><p>Actually this is what the blockchain does at a much slower frame rate. The Ethereum blockchain or the Bitcoin blockchain does nothing but process transactions and guarantee they meet that acid guarantee: atomic, consistent, isolated, and durable.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=1930" target="_blank" rel="noopener">32:10</a></p><p>This is a big problem that we’re going to have to tackle if we want to write this system and we want it to work as an economy and we want to work reliably.</p><p>Those are kind of the core requirements for the programming environment. Notice all along I didn’t say programming language, because it’s not clear if we needed no programming language, though a programming language might be a desirable way to specify this.</p><p>I think the lowest common denominator solution is a set of network protocols for negotiating all transactional interactions between servers in this Metaverse, right?</p><p>If you specify that then anybody can implement however they want as long as they followed the protocol. Then the system can evolve, the game state can or world state can develop consistently, and everything works fine.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=1979" target="_blank" rel="noopener">32:59</a></p><p>To actually make that work I think you had at least need a software library on every side which implements a framework ensures it’s easy to write code to this Metaverse later.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=1988" target="_blank" rel="noopener">33:08</a></p><p>I envisioned a potential layering: at the top level we have a network protocol which standardizes transactions, data formats for describing objects and their properties, a really solid robust file format standard, and network protocol at a lower level you need a language library which could run in C++ or Python or Java or C sharp or any language which exposes really nice kind of intermediate programmer level friendly operations for interacting in this Metaverse so it’s not just a bunch of low-level bit manipulation operations but a real rigorous library where if you follow the library according to the spec and everything works safely.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=2029" target="_blank" rel="noopener">33:49</a></p><p>I think that the highest level layer in this platform could then be a scripting language which is a programming environment where if the compiler doesn’t beep then your code is guaranteed to be safe. Meaning it can run anywhere, it’s sandbox, can’t craft memory, it can’t steal private state, or violate security principles, and it can’t break the transactional guarantees of the system.</p><p>If we added something like that whether it looks like Python or JavaScript or Lua or c-sharp those are all possibilities but I think that’s the correct layering because in this software framework we have to acknowledge that the big heavy metal software here is going to be written in C++.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=2070" target="_blank" rel="noopener">34:30</a></p><p>It’s either going to be a game engine, or the future equivalent of a web browser engine for the Metaverse which i think would look a lot like a game engine does today, but you’re going to have a lot of C++ code written in it and if there is a scripting environment then it’s not going to be a new thing that takes over our entire computers - it’s going to be an abstraction layer in a higher-level system that’s written in a native language.</p><h2 id="Virtual-Economy"><a class="anchor hidden-xs" href="#Virtual-Economy" title="Virtual-Economy"><span class="octicon octicon-link"></span></a>Virtual Economy</h2><p><a href="https://youtu.be/KBEg9riBc_U?t=2094" target="_blank" rel="noopener">34:54</a></p><p>Next I want to talk a little bit about the economy because the core thesis here is that to have a successful Metaverse you need an economy where creators can make money from their work so you have incentives continue to create stuff and you have a really thriving economy.</p><p>I think it’s essential for success because if the Metaverse doesn’t enable creators to make money, then they’re probably going to go create games instead and the Metaverse will be replaced with a bunch of proprietary apps that actually do get the economy right.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=2124" target="_blank" rel="noopener">35:24</a></p><p>Economy is the way of matching up buyers and sellers of items and creating discoverability mechanisms for transparency and also an environment where a level of trust exists where you know if you go to buy something you actually receive it and it actually works.</p><p>It’s a bunch of layer of different components. I think financial transactions are actually the easiest part of all of this. The the higher-level issues involved in establishing trust and fairness in an economy is much harder.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=2156" target="_blank" rel="noopener">35:56</a></p><p>I think we’re going to have to expect a rich and evolving set of economic models to work in this universe.</p><p>The AppStore model is you buy an app, you receive it or you buy an app, and then you conduct micro-transactions in it. In every case you’re paying money to get a specific thing at a specific point in time.</p><p>That works for somethings like buying a Fortnite outfit - there’s a successful business around that, some games have established it.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=2180" target="_blank" rel="noopener">36:20</a></p><p>Not every item in the world that’s valuable to consumers has a means of selling it, right?</p><p>If there’s a beautiful building out in the Metaverse everybody loves and enjoys and goes to, for that to be an economic success you couldn’t charge for access to it necessarily.</p><p>You might need to have ancillary ways of earning revenue from related economic activity associated with it.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=2210" target="_blank" rel="noopener">36:50</a></p><p>I think if we look at the modern digital economy, we see a lot of dysfunction in these advertising business models and privacy invading business models, which I thoroughly reject.</p><p>We have to we have to look and recognize that there’s a lot of value in ways of enabling monetization of content other than through paying money directly for it.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=2232" target="_blank" rel="noopener">37:12</a></p><p>YouTube monetizes through annoying ads. Netflix has a more interesting model: they charge a subscription price and then the creators who put their content on Netflix usually negotiate some deal up front but they’re also paid typically a percentage of the revenue from this subscription service based on their play time or the percentage of play time in the system that goes into their movie as opposed to everybody else’s.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=2259" target="_blank" rel="noopener">37:39</a></p><p>Fortnite has nurtured a similar economy with its supporter creator program where when you go to buy an outfit in Fortnite you can say what streamer you’re watching or what creator you want to support and part of the proceeds from that outfit goes to the creator.</p><p>I think these are just the tip of the iceberg of indirect economic models where people can make money for participating in the economic activity around it without ever charging a gate price.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=2284" target="_blank" rel="noopener">38:04</a></p><p>Trust in an economy is essential and so I think we have to be skeptical of a fully decentralized economy where anybody can do anything and everybody’s anonymous and there’s no recourse.</p><p>You know all the successful economies have a very high degree of trust that you’re going to get what you’re paying for and it will work.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=2303" target="_blank" rel="noopener">38:23</a></p><p>There needs to be some sort of really active governments around all commerce and this sort of environment system for recognising reputations of sellers and qualities of items and all of these things and it’s going to be a real can of worms.</p><p>If you look at Amazon which is the largest e-commerce platform in the world, Amazon Trust is built through reviews and you can buy high quality reviews for your product. It’s a frequent case so there’s a never-ending game of cat and mouse around shutting down fake reviews.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=2335" target="_blank" rel="noopener">38:55</a></p><p>There are also services that will hurt your reviews that your competitors can use to hurt your products and send some business to them. There’s a whole sham economy around that needs to be managed and I think this is going to be a first-class issue in the birth of any new digital platform and the more decentralized it is the more of a challenge it’s going to be for us.</p><h2 id="Curation-and-Moderation"><a class="anchor hidden-xs" href="#Curation-and-Moderation" title="Curation-and-Moderation"><span class="octicon octicon-link"></span></a>Curation and Moderation</h2><p><a href="https://youtu.be/KBEg9riBc_U?t=2353" target="_blank" rel="noopener">39:13</a></p><p>I also wanted to talk about some of the challenges around curation and moderation because in a user-generated content ecosystem there’s going to be all sorts of bad things being created.</p><p>There’s going to be pornography, there’s going to be abusive content, there’s going to be trolls, and I think today’s social network really is a clear warning to all of us about the dangers of future social platforms.</p><p>I think we need to be very aware of the things that have gone terribly wrong with existing social platforms as we think about what a Metaverse should be when it grows up.</p><p>I think that there are problems because there’s so much partisan rhetoric on these social platforms, I think the real causes of the problems tend to be obscured, but there are enormous problems with trolls, and bullies, and astroturfers, and fake news.</p><p>We have to acknowledge it doesn’t exist just because a lot of people are bad - it’s just because there are these algorithms that drive curation in the system are driven by engagement.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=2419" target="_blank" rel="noopener">40:19</a></p><p>Engagement can be positive and engagement can be negative. Unfortunately for humans, a lot of the things that are most engaging in an impersonal, text-based, social environment are negative things.</p><p>I really believe that the problems that we see in today’s social networks are not a defect of the idea of social communications in itself. I believe they are a defect of the specific curation medium and the way that bad content can magnify and outgrow good content through this this economic model that they’ve devised here.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=2455" target="_blank" rel="noopener">40:55</a></p><p>Let’s remember that these platforms curate content to maximize engagement. So basically, tweet that gets more likes or retweets or responses, even if the responses are negative, is curated higher than tweets that get less interaction.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=2470" target="_blank" rel="noopener">41:10</a></p><p>They do that for money, right? They do that because the more time you engage on the platform, the more ads you can see, the more money they can make.</p><p>It’s all financially driven and when you pay somebody money to do something, they’re really motivated to do it.</p><p>When we’re paying when we’re paying Facebook, Instagram, and Google money in the form of our eyeballs translating to advertising dollars to display crap that offends us - well they’re going to do it. We shouldn’t be surprised by it, but what we should do is we should think about designing platforms that don’t fall victim to this set of problems.</p><h2 id="Empathy"><a class="anchor hidden-xs" href="#Empathy" title="Empathy"><span class="octicon octicon-link"></span></a>Empathy</h2><p><a href="https://youtu.be/KBEg9riBc_U?t=2507" target="_blank" rel="noopener">41:47</a></p><p>There’s some really great news here. I couldn’t be more pleased with the situation in Fortnite. Fortnite is the most positive social experience I’ve ever interacted with.</p><p>It’s true that there are negative people out there sometimes, but the far majority of encounters are positive. Also the far majority of social engagement on Fortnite isn’t with random strangers - it’s not many-to-many with millions of people participating. It’s players together with their friends, talking with their friends, kind of as an isolated group wandering through a much larger outside world.</p><p>A lot of the decisions we made in the game have really contributed to the positivity here.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=2545" target="_blank" rel="noopener">42:25</a></p><p>One is that we have voice chat so you can chat with your friends, but voice chat only works with people in your squad that either you’re explicitly friends with and you explicitly joined up with, or your friends explicitly joined up with.</p><p>The social communication in this environment has led to a much more positive and empathetic place.</p><p>Voice carries much much higher empathetic bandwidth than text. The tone of somebody voice carries a huge amount of subtlety about their thought and their state of mind.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=2576" target="_blank" rel="noopener">42:56</a></p><p>We really are innately trained to, in ordinary circumstances, respect people when we’re interacting with them personally far far more than when we’re interacting with them with text.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=2585" target="_blank" rel="noopener">43:05</a></p><p>I think this is an area where the Metaverse will have a major advantage over all other social media. It’s that inherently by being focused on small groups and actual friends engaging in a much larger outside world, and in carrying all of the emotional content of voice and perhaps even facial capture in the future will be a much higher empathy platform that’s much less subject to abuse where one nasty action affects millions of people because of curation.</p><h2 id="Betterverse"><a class="anchor hidden-xs" href="#Betterverse" title="Betterverse"><span class="octicon octicon-link"></span></a>Betterverse</h2><p><a href="https://youtu.be/KBEg9riBc_U?t=2616" target="_blank" rel="noopener">43:36</a></p><p>I think we have a lot of positive things to be excited about there, but the key challenge for this new medium is that to succeed anything that calls itself the Metaverse must actually be better than all other experiences competing for people’s digital time.</p><p>That’s a massive challenge. This means an hour on the Metaverse needs to be better than an hour on Facebook, or Instagram, or an hour on YouTube, or an hour on Netflix. It needs to be better than an hour in Fortnite, or an hour in minecraft, or an hour in Roblox, or GTA, or any of the world’s best games.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=2655" target="_blank" rel="noopener">44:15</a></p><p>It’s going to carry a very high bar. It’s a high technological bar, a high quality bar, a high content availability bar, and that’s going to be a big challenge.</p><p>When you have a user created content ecosystem a lot of users create a lot of content and a lot of it is just really bad. You have to have great curation mechanisms for surfacing the best stuff.</p><p>You have to have highly competitive technology and foundations for building experiences that are as compelling as Triple A games. You have to have really compelling integrations with people’s daily lives.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=2687" target="_blank" rel="noopener">44:47</a></p><p>I think you have to have a platform where every brand decides, “I’m going to put my product here!”</p><p>On Facebook that means we’re going to advertise a new Ford Escape on our Facebook page and we’re going to pay a bunch of money to reach a bunch of users with this video ad.</p><p>I think in the Metaverse it’ll be much more interesting. It will be actual interactive objects, actual experiences, and actual engaging things, and not just ads forced upon.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=2717" target="_blank" rel="noopener">45:17</a></p><p>I think we can completely escape an advertising based business model if we take this approach that the only way you ever get to see a commercial thing is if you decide to see it yourself because it’s really cool.</p><p>I think we’ll see a whole new level of competition among brands to surface really awesome 3D content.</p><p>I think you can look to Fornite and some of these other games is pioneering a lot of these really exciting engaging non-advertising based mechanisms for exposing stuff.</p><h2 id="Roadmap"><a class="anchor hidden-xs" href="#Roadmap" title="Roadmap"><span class="octicon octicon-link"></span></a>Roadmap</h2><p><a href="https://youtu.be/KBEg9riBc_U?t=2746" target="_blank" rel="noopener">45:46</a></p><p>It’s that quality bar that I think limits the possibilities for the Metaverse. I have a feeling that if we built a spec for this thing, and we got a thousand experts together for three years, and we roll it all out, and we build really great documents for standards, and then we built the software, players might not come. They might just find that it sucks.</p><p>They might find that other games are more experienced. They might find it never gains a critical mass needed for success.</p><p>I think we have to be very cognizant in the entertainment experience. <strong>Failure is forever.</strong> Once a brand, a new platform, or experience is rejected it tends not to come back.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=2789" target="_blank" rel="noopener">46:29</a></p><p>I think that we’re going to have to evolve from where we are to the Metaverse with what we have by going from success to success; taking the existing engines that we have today, and existing games we have today, and future ones we build, and driving them more and more that in the direction of the Metaverse by integrating more features across platforms, across ecosystems, and across game experiences.</p><p>We’re going to have to do a little bit more of this every month and every year until we finally get there because I think the barriers to success and launching a completely new platform with nothing are just so immense and it’s so unlikely for standards-based solution to win out.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=2834" target="_blank" rel="noopener">47:14</a></p><p>I think we’re going to have to gradually adopt standards in existing software, but I don’t know that might sound like bad news but I think it’s very exciting because it means we’re much closer to the start of an open Metaverse then we would be if we had to begin negotiating standards right now.</p><p>We already have a lot of the standards we need for file formats - or at least version one or two of them and by Version three or four they might be there.</p><p>We need to continue to iterate on these standards for scene descriptions, material descriptions, animation, networking protocols, and real-time game communication until we get to something that’s ready to open up to a large scale. We can do that right now in live products.</p><p>Epic is conscientiously making an effort to do this and everything we do. For example, we’re moving to a webRTC based voice-comms framework in Fortnite for voice, text, and video chat so that we can start integrating with other services, other platforms, other stores, other ecosystems, other chat clients, and have shared social experiences across different game clients.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=2898" target="_blank" rel="noopener">48:18</a></p><p>We already have some standards for identity and authentication, we can expand them from there with new standards for friends and connectivity.</p><p>Right now most of the major engines (unreal / unity / Godot) support most of the major interchange formats like Pixar’s USD format and will support more and more over time as interchange formats we can import.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=2920" target="_blank" rel="noopener">48:40</a></p><p>That’s just the first step. I think the next really interesting step is that we need to start supporting these file formats as our primary format.</p><p>It’s only going to be in the Metaverse when anybody can load the content as it exists on the server and that means moving away from proprietary Unreal binary files, Unity package files, to the actual file formats.</p><p>That means further iteration on the file formats to make them load efficiently enough and contain and all the features needed by all the engines to make it work. We can do this and it doesn’t have to be one big step, we can do a little bit more of it every month until we get there a few years from now.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=2957" target="_blank" rel="noopener">49:17</a></p><p>Also needs standards for these networking protocols and we’ll need agreements between companies so that you can start integrating on a much larger scale. For example, if Fortnite and Minecraft happened to agree that we’re going to support each other’s avatar formats, and you could have Minecraft avatars in Fortnite and Fortnite avatars in minecraft, and we had agreed to integrate our account systems and our voice and text communication systems, then what could you do?</p><p>Then as a Fortnite player you’ve gone to Minecraft and continued identity and stay in contact with your friends and even though you’re switching between different applications, you’re still a single persistent identity of yourself going from place to place.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=3004" target="_blank" rel="noopener">50:04</a></p><p>As a next step beyond that, if we agreed on file formats for worlds and for digital scenes and for physics interactions in scenes, and perhaps some degree of gameplay object scripting, then perhaps you can actually be in Fortnite and go on to a Minecraft server and be in a Minecraft world and while you’re in Minecraft go into a Fortnite level and be in a Fortnite world.</p><p>I think in those cases now we have a Minecraft server which is still a distinct piece of software, and a Fortnite server which is running Unreal engine, is totally different than that, but if they have agreement on the networking protocol and at least the client-side components of scripting then you should be able to connect to a server and if it says this object is here and it’s model is that model then you can render it and you can communicate and coordinate those objects in real time.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=3051" target="_blank" rel="noopener">50:51</a></p><p>I think without agreeing on standardizing everything all at once we can make great strides towards this and I think the final one most interesting component of this is if we eventually agree on a programming language standard of some sort or at least a library standard of some sort, then you could have the ability to write game object that would run in any engine, or any Metaverse server framework, or any future client for this, then have a completely standards-based ecosystem.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=3082" target="_blank" rel="noopener">51:22</a></p><p>I think it’s important to identify that this will be very different from a bunch of games in an app store in that it’s a single seamless experience, you never have to download a new program, you never need to sign up for a new account, you never need to change characters. It’s you, and your persistent avatar and identity, as you traverse through this entire world. You can bring any of your friends with you anywhere you go in this entire time.</p><p>I think these entertainment experiences will be hugely varied. There’s an anecdote, right? We recognize this when you’re looking at how people were playing Fortnite. A bunch of guys can’t get together for a night and just sit on a couch and talk, like for some reason everybody thinks “oh that’s gay you can’t do it”, but what you can do is get together and play billiards all night with a bunch of guys and that’s totally cool. Or you can shoot hoops or you can play Fortnite and that brings the fundamental realization that all of these social experiences needed some sort of actual activities to drive the conversation, right?</p><p><a href="https://youtu.be/KBEg9riBc_U?t=3142" target="_blank" rel="noopener">52:22</a></p><p>You know when you run out of things to talk about in billiards you start talking about the game, and then when you run out of things in Fortnite you’re talking about the game, and you’re going in and out of personal life conversations and game conversations throughout the whole process.</p><p>That’s what makes it so compelling. That’s what’s going to make the Metaverse a vastly better platform than Facebook or Instagram or any other social media platform before it.</p><p>It’s going to be you and your actual friends hanging out having a great time together. It’s going to be small groups. It’s going to be a largely positive experience not affected by global politics to any greater extent than you want it to be and it’s going to be based on open standards that we can all participate in and contribute to.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=3184" target="_blank" rel="noopener">53:04</a></p><p>So that’s my idea for this and I would like to open it up for questions and criticisms of this view and your own thoughts of any sort, thank you.</p><h2 id="QampA"><a class="anchor hidden-xs" href="#QampA" title="QampA"><span class="octicon octicon-link"></span></a>Q&A</h2><p><a href="https://youtu.be/KBEg9riBc_U?t=3203" target="_blank" rel="noopener">53:23</a></p><p><strong>Q</strong>: Tim, I was just wondering about, you talked about voice being very expressive and a much more emotional way of doing stuff and obviously one of the things about Fortnite is you’re aware of other characters that are other people, but what about somehow putting a face on the character in Fortnite so I can see them emoting as much as listening to them talking?</p><p><a href="https://youtu.be/KBEg9riBc_U?t=3226" target="_blank" rel="noopener">53:46</a></p><p><strong>A</strong>: Well yeah, that brings the core topic of digital humans and I think the really critical thing for a social 3D experience to succeed is empathy between the participants, right? That’s where the voice communication breaks that barrier that text creates, but the next step is digital humans. Digital humans will be a central component of this. Being able to scan faces in real time.</p><p>This is Mike Seymour asking the question, one of the world’s foremost digital humans, but you know we have the tech for that now. The iPhone 10 has an amazing face scanning technology and you could, while you’re playing on console or PC or iPhone, you could be using that simultaneously. I think this is going to be a key component of the experience. We need to have be able to project faces on the characters both photorealistic characters, but also stylized characters.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=3275" target="_blank" rel="noopener">54:35</a></p><p>I think it’s a stylization of Fortnite that breaks down a lot of the barriers to people who don’t want to play a hardcore shooter game, right? The graphics aren’t so intimidating, they’re really readable and keep the game whimsical and I think that being able to project realistic humans faces and emotions onto that is going to change the world.</p><p>Funny anecdote, you know the Marshmellow concert we did in Fortnite, it was just the perfect partnership. One of the really key elements that was perfect for that was that this is the one great musician in the world who doesn’t have a face, so we didn’t have to solve that problem that quickly.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=3315" target="_blank" rel="noopener">55:15</a></p><p>For future events like that you really want to see performers, you want to see their faces, you want to see your friends, you want to see their emotions, and that’s going to be the key part of it, thank you.</p><hr><p><a href="https://youtu.be/KBEg9riBc_U?t=3323" target="_blank" rel="noopener">55:23</a></p><p><strong>Q</strong>: What is something that you’re personally looking forward to in the near future?</p><p><strong>A</strong>: Personally looking forward to, well lets see… I think the really exciting thing to me is the increasing connectivity of these ecosystems. Y’know Fortnite was the first game that finally got Microsoft and Sony on board with cross-platform play between all platforms in Fortnite. Now we’re working with a bunch of other partners like Ubisoft and the humble store to integrate our store ecosystems so that you don’t have to have so many accounts as you go around.</p><p>I think there’s now finally a lot of momentum in the whole tech industry, at least the good parts of it, to integrate systems and reduce barriers to interconnectivity, recognizing that everybody benefits from increased social graph size, increased connectivity, and decreased friction.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=3371" target="_blank" rel="noopener">56:11</a></p><p>I’m really really looking forward to times when you start seeing much greater crossover of content between games and much greater crossover of actual games themselves as the barriers start to be removed. You’re gonna see some really interesting things in Fortnite along these lines over the next year.</p><hr><p><a href="https://youtu.be/KBEg9riBc_U?t=3392" target="_blank" rel="noopener">56:32</a></p><p><strong>Q</strong>: Hi Tim, so you often criticize Apple Store model which gives 30% away from creators, so could you share your deeper comment about this? How do you solve this problem between platformer and creator for Metaverse concept?</p><p><strong>A</strong>: Oh sure, yeah promise I wouldn’t use this as a ploy pulpit to promote store economics, but economic efficiency is going to be a really important part of this, right?</p><p><a href="https://youtu.be/KBEg9riBc_U?t=3426" target="_blank" rel="noopener">57:06</a></p><p>Content creation costs are really high and the more of the revenue from content that goes to the actual creators as opposed to overheads means better content and more efficiency and more jobs and you know just an overall better state for the industry.</p><p>Digital commerce is the most efficient platform in the world. MasterCard and Visa charge two and a half or three and a half percent for processing and transaction. Download bandwidth for major games is maybe 1% and if you add up all the cost of operating a store it’s really only between 5 and 7%.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=3457" target="_blank" rel="noopener">57:37</a></p><p>It’s higher in developing economies where there aren’t official payment processing methods, but= we really hope that economization of payments and just digital commerce in general is a critical part of this.</p><p>I guess the more we can reduce the need for middlemen the better, but if we need middlemen then we just want to be to be as efficient as possible.</p><p>A funny story is there was a Bitcoin transaction a couple years ago that made the news. Somebody transferred a hundred million dollars from one Bitcoin user to another, and the payment processing charge that was collected by the blockchain was 33 cents.</p><p>So we can do better here, and that’s just the tip of the iceberg, right? How much tax the ecosystem collects is a big issue we can optimize, but the variety of methods available for monetizing content in ways that don’t detract from the users experience is really critical too.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=3513" target="_blank" rel="noopener">58:33</a></p><p>Fortnite support-a-creator program is a multi tens of millions of dollar program worldwide. It’s a very first attempt for us to enable streamers and other people to create content around Fortnite to make some money from it without putting up any sort of any sort of pay walls in front of any content.</p><p>We do that by saying “Oh gee, you bought a skin and you were recently watching that streamer, well that streamer will get some money from that.”</p><p>We’d like to explore ways of expanding that and increasing its reach so that we can more naturally just accumulate an understanding of all of the things you interacted with and all the revenue you spent in association or proximity to that and ensure that there’s revenue sharing even for free completely free content.</p><hr><p><a href="https://youtu.be/KBEg9riBc_U?t=3561" target="_blank" rel="noopener">59:21</a></p><p><strong>Q</strong>: Hi Tim, nice talk. What you described sounded a little bit like Ubuntu with a better presentation layer, and I’m wondering how the contract would work between the user contributed code and operating system, and also how you would incentivize apps to be good citizens and not consume too many resources?</p><p><strong>A</strong>: Well lets see, I think to make this sort of thing work where you would run the same code on a bunch of different servers run by a bunch of different companies you need to release it under some sort of license. You can create one like an semi-open-source Metaverse license of some sort. The creator of the code owns the copyright to the codes so it’s automatically theirs, and they can choose to share it open-source if they want or they can choose to license it just for use in this context.</p><p><strong>Q</strong>: Oh sorry I didn’t mean legally like ownership, I meant in terms of interfaces. It sounds like you’d be replacing the window with the scene graph and what you envision as the interface between the application and the shared state.</p><p><strong>A</strong>: Let’s see, I think there are really two levels of that. One is sort of the operating system itself would provide the equivalent of the web browser’s document object model, which is kind of the scene graph storing basically, the leaves are a bunch of user created objects, and all the other nodes are kind of standardized by the system. Also a large set of library functions which everybody can use just to interoperate.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=3647" target="_blank" rel="noopener">60:47</a></p><p>So I think everybody as a participant in this system would have some degree of access to the scene graph and be able to look at other objects, and query / interact with them. I think this doesn’t need to necessarily look much different than a bunch of like c-sharp code that’s running within the Unity engine to implement gameplay, except all of these scripts are written by different people. Doesn’t need to look much different than the C++ code powering or blueprints powering an Unreal Engine game.</p><p>I think what you really need are long-term backwards compatibility guarantees to the code and also super robust sandboxing and security guarantees where like if you declare a bunch of variables private, nobody but you can touch them. All users can do is they can call your public interface. They might pass to you their identity like some sort of cryptographic proof of their ownership or credentials as a condition of that object interacting with you.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=3701" target="_blank" rel="noopener">61:41</a></p><p>So you’d have some very robust security protocols enabling each programmer of every object to determine what an arbitrary user can do with the object and how it responds.</p><p>For example, a car in the game, you probably have the system provide like a standardized car interface just kind of two bound the set of possibilities and provide a standard way of interacting with cars. Then every implementation of that car might implement that class and might provide some additional interfaces that are specific to it, like how to integrate with its navigation system or jet boosters or whatever.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=3716" target="_blank" rel="noopener">62:15</a></p><p>I think you’re ultimately going to have a bunch of interfaces that are standardized either by a standards committee or de-facto standardized by the user who owns that code. You would use code signing to specify that like this is really my co-owned code and only future versions of it can be trusted if I’m signing it using the same signing key to have a degree of cryptographic security, degree of programming model, sandboxing, and interface security, to ensure that nobody does bad things.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=3765" target="_blank" rel="noopener">62:45</a></p><p><strong>Q</strong>: To draw an analogy with UE4 development, when people contribute changes they often need to make new subsystems that provide singletons that many actors can use. Would that sort of thing be involved in this signing process?</p><p><strong>A</strong>: Yeah, I think ultimately with an open Metaverse you’d have a Standards Committee that gets together and decides what pieces to standardize over time. I think there could be a lot of pieces of this that are owned by people in the community, they just stay owned by them as long as that works fine, then having private ownership of stuff is great.</p><p>But, when something becomes so pervasive and there’s an outcry for standardizing it, then you can start working on standardizing the behavior specification.</p><p>If a user writes a car using the scripting system it should be able to work on every server everywhere and automatically work, regardless of whether it’s standardized or not. The standardization reflects whether it’s officially blessed and whether ownership of the cryptographic signing key is handed over from a creator to the Standards Committee by their choice.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=3828" target="_blank" rel="noopener">63:48</a></p><p>I think the Metaverse would have a lot of different experiences and every experience would be able to say what sorts of things are allowed within it. So you might have this badass car, but this level only allows you to run around in it - it bans cars and so you’d have some sort of really robust system for categorizing objects and saying what’s allowed and ensuring that even if objects don’t like - it’s okay if the thing breaks sometimes. If some parts of the Metaverse that are user-created break from time to time it’s okay the authors can just go in and fix it.</p><p>We shouldn’t be worried about that, we should just be worried about the user’s privacy and security always being respected.</p><hr><p><a href="https://youtu.be/KBEg9riBc_U?t=3868" target="_blank" rel="noopener">64:28</a></p><p><strong>Q</strong>: Hi Tim, I think you touched on a lot of things adjacent to this, but as the Metaverse gets to a point where your real identity is more tied into it you - this is something that exists across country lines and everything do, you think this will get to a point where you need like specific laws for the Metaverse or even like a government for things within the Metaverse? Or is there another way to think about it?</p><p><strong>A</strong>: That’s a good question. You know people write laws in response to bad things that happen, right? Nobody’s speculatively writes laws because something might happen. I think the best way of avoiding unfavorable legislation is to build a system that is open so that it’s not accused of bad practices of any sort and that the curation mechanisms and the way that people interact socially together are reinforced positive behavior so that you don’t end up having to have massive debates over censorship of hateful content.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=3928" target="_blank" rel="noopener">65:28</a></p><p>I believe with the sort of system you want it to be so focused on positive interaction among small social groups that you could allow free speech, Just as a member of a group if you never want to hear awful stuff you just avoid it and you never see it. I think we need to get to a point where like if you don’t search for porn or go out and seek it out, you just never see porn.</p><p>If we do it that way I think that we avoid a lot of the calls from censorship which arise from hateful content surfacing to a massive number of people, intentionally reserves all of the curation algorithms.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=3963" target="_blank" rel="noopener">66:03</a></p><p>That’s what’s killing sentiment about social media right now. It’s not that it’s bad stuff is being said, it’s that bad stuff is being broadcast to millions of people procedurally.</p><p><strong>Q</strong>*: Right, on top of that there’s also the interaction between you mentioned a lot of the engagement, a lot of the feedback mechanisms are engagement driven, but that might not always be aligned with like what might be good in a different sense.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=3989" target="_blank" rel="noopener">66:29</a></p><p><strong>A</strong>: Yeah, I think there’s a negative feedback loop, it begins with making money from advertising which means that the amount of time you spend with your eyeballs on the screen determines how much money they make. That’s a crappy thing to optimize for, because they’re just trying to suck your time away and the way to get you to spend the most time on the thing might be to aggravate you to the point where you’re spending all of your time fighting the people.</p><p>It’s kind of a well of despair they seem to be stuck in, whereas if you create a social experience where people would just like to interact with their friends then you could be on it or not - it doesn’t matter.</p><p>I think what you’re going to optimize for is an engagement with positive experiences where if money is being made, they you want to sell you an item, so you have the item and enjoy it, right? That’s why the Fortnite economic model is quite positive. None of the items in Fortnite Battle Royale give you a gameplay advantage so you’re just buying them because you want to have a cool outfit.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=4044" target="_blank" rel="noopener">67:24</a></p><p>I think ensuring that all commerce is optimized for things that people will be happy buying and not like the negative feedback loop of loot boxes where you really want a rare item so you buy another loot box, it doesn’t have it, so you buy another one - and now you’ve bought 10 and then you’re really pissed off.</p><p>I think optimizing for positive economic engagement is crucially important. I think what’s really needed there are systems for building trust where if a company makes a game that has crappy monetization practices, word gets around and people don’t play it.</p><p>You want that rather than a huge set of rules saying you can’t do this that or the other thing. Reputation based rather than rules based.</p><hr><p><a href="https://youtu.be/KBEg9riBc_U?t=4090" target="_blank" rel="noopener">68:10</a></p><p><strong>Q</strong>: So I just kind of want to know your thoughts about kind of stepping out of the Metaverse, powering, accessing, sustainability, and infrastructure - how accessing the Metaverse… and kind want your thoughts about that.</p><p><strong>A</strong>: Oh infrastructure, well that’s an interesting question. Our Amazon Web Services bill is astronomical in running Fortnite servers for 2 million peak concurrent users, but I think the Metaverse will be a lot larger than that.</p><p>It’s going to be interesting, I think the really interesting effects start to happen once you have an open Federation between a bunch of different servers, potentially running different server software, that can all interoperate properly together because then you will have a lot of competition between them, you’ll have optimization and features and a whole economy develop around running servers for this Metaverse environment.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=4141" target="_blank" rel="noopener">69:01</a></p><p>I think the hope is to ensure that there’s competition in the economy for every aspect of this thing so the best deals and the best software wins at every stage of it, right?</p><p>I wish there’s competition among App Stores where they competed on the fees they charge. If you had a dozen app stores competing for business that would keep everybody honest. Same thing for server time, same thing for server hosting, same thing for digital goods in the Metaverse. You really want economic competition to drive the quality and value trade-offs that are made in the economy.</p><hr><p><a href="https://youtu.be/KBEg9riBc_U?t=4176" target="_blank" rel="noopener">69:36</a></p><p><strong>Q</strong>: Hi Tim, keeping in mind the long term view of the Metaverse, what 3 things do you hope Unreal as a game engine should achieve five years from now?</p><p><strong>A</strong>: That’s really interesting, you know we’ve been pushing photorealism so fast I’m thinking like it might not take five years. I think the real core challenge for every engine right now, which nobody’s really solved fully, are being able to serve gigantic open worlds with an unbounded number of participants playing together without any visible boundaries between them.</p><p>Fortnight is 10 million peak concurrent users but divided up into hundred players each in a hundred thousand sessions. What we want is one world with ten million players in it all at once and a huge procedurally generated world that we can render and stream.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=4227" target="_blank" rel="noopener">70:27</a></p><p>I think that the server side challenges of dealing with these huge environments and user accounts without charting are really critical. The rendering side details of being able to render those things are critical. Also, just increased adoption of open standards as interchange formats now and as definitive formats in the future is going to be really important.</p><p>Game engines are always pushing new features far ahead of the point where it would make sense to standardize and we’ve got to decide where the bleeding edge is, like what we’re trying to standardize and what we’re not bothering with yet. I feel we shouldn’t really be trying to standardize particle systems yet because they’re too complicated and engine specific, but we can certainly standardize animation and faces and body rigs and all sorts of other components.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=4275" target="_blank" rel="noopener">71:15</a></p><p>I think standardization push is going to be another really huge one.</p><p><strong>Q</strong>: Last question on that, you clearly don’t seem to be a fan of the existing advertising business, what would be Tim Sweeney version of YouTube’s positive reinforcement sort of economics - what would your version be if you were to retool?</p><p><strong>A</strong>: I think my revulsion is to business models that are adversarial to the consumer, where you make money by doing things that are detracting from the consumers experience. I think an honest business model makes money from selling consumers things that they want or delivering great experiences to consumers and making money from economic activity around it.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=4320" target="_blank" rel="noopener">72:00</a></p><p>I think and advertising is just taxing your time instead of taxing your wallet, I’d rather have my wallet taxed personally. Similar thing with our privacy situation right now is so many of these platforms are so invasive with privacy that they’re taxing your personal life rather than your wallet as well.</p><p>I think having a business model that’s always aligned with consumer interest is critical. That’s actually a pretty subtle topic because in a game like Fortnite a reasonable percentage f the population never spends money at all, but they are actually adding a lot of value to the economy.</p><p>They’re playing with friends, they’re creating additional engagement in their social group, and even if you’re not spending the money in Fortnite you’re participating an economic activity that is valuable.</p><p>I think we need to be really broad and open-minded about how we structure the roles for this thing just so that indirect monetization of content that inherently has to be free is a major part of it and it’s not neglected.</p><p>We’d like to see an environment where all these decisions are made not by ecosystem vendors trying to extract taxes out of it, but the taxes are low and agreed on and all of the economic trade-offs are between the value created by the different economic participants themselves.</p><p>They are hopefully going to be self balancing to some extent, and then if you under pay somebody for their work they deliver less of it and the people who profit from the work do worse, and so they actually recognize it’s in their best interest to transfer more the value of their work to them.</p><p><a href="https://youtu.be/KBEg9riBc_U?t=4413" target="_blank" rel="noopener">73:33</a></p><p>It’s like Fortnite selling skins as the primary or sewing costumes is the primary monetization vector, but the value creation is primarily around people playing the game and streamers streaming the game and raising awareness.</p><p>There needs to be lots of internal inflows within the economy that are a tied to activity rather than to spending.</p><p>Thank you all for your time.</p></div>
<div class="ui-toc dropup unselectable hidden-print" style="display:none;">
<div class="pull-right dropdown">
<a id="tocLabel" class="ui-toc-label btn btn-default" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false" title="Table of content">
<i class="fa fa-bars"></i>
</a>
<ul id="ui-toc" class="ui-toc-dropdown dropdown-menu" aria-labelledby="tocLabel">
<div class="toc"><ul class="nav">
<li class=""><a href="#Tim-Sweeney-Metaverse" title="Tim Sweeney Metaverse">Tim Sweeney Metaverse</a><ul class="nav">
<li class=""><a href="#Table-of-Contents" title="Table of Contents">Table of Contents</a></li>
<li><a href="#Intro" title="Intro">Intro</a></li>
<li><a href="#The-Web" title="The Web">The Web</a></li>
<li><a href="#File-Formats" title="File Formats">File Formats</a></li>
<li><a href="#Identity" title="Identity">Identity</a></li>
<li><a href="#Networking" title="Networking">Networking</a></li>
<li><a href="#Blockchain" title="Blockchain">Blockchain</a></li>
<li><a href="#Programming-Models" title="Programming Models">Programming Models</a></li>
<li><a href="#Advertising-Experiences" title="Advertising Experiences">Advertising Experiences</a></li>
<li><a href="#Open-World-Evolution" title="Open World Evolution">Open World Evolution</a></li>
<li><a href="#Seamless-World" title="Seamless World">Seamless World</a></li>
<li><a href="#Virtual-Economy" title="Virtual Economy">Virtual Economy</a></li>
<li><a href="#Curation-and-Moderation" title="Curation and Moderation">Curation and Moderation</a></li>
<li><a href="#Empathy" title="Empathy">Empathy</a></li>
<li><a href="#Betterverse" title="Betterverse">Betterverse</a></li>
<li><a href="#Roadmap" title="Roadmap">Roadmap</a></li>
<li><a href="#QampA" title="Q&A">Q&A</a></li>
</ul>
</li>
</ul>
</div><div class="toc-menu"><a class="expand-toggle" href="#">Expand all</a><a class="back-to-top" href="#">Back to top</a><a class="go-to-bottom" href="#">Go to bottom</a></div>
</ul>
</div>
</div>
<div id="ui-toc-affix" class="ui-affix-toc ui-toc-dropdown unselectable hidden-print" data-spy="affix" style="top:17px;display:none;" null null>
<div class="toc"><ul class="nav">
<li class=""><a href="#Tim-Sweeney-Metaverse" title="Tim Sweeney Metaverse">Tim Sweeney Metaverse</a><ul class="nav">
<li class=""><a href="#Table-of-Contents" title="Table of Contents">Table of Contents</a></li>
<li><a href="#Intro" title="Intro">Intro</a></li>
<li><a href="#The-Web" title="The Web">The Web</a></li>
<li><a href="#File-Formats" title="File Formats">File Formats</a></li>
<li><a href="#Identity" title="Identity">Identity</a></li>
<li><a href="#Networking" title="Networking">Networking</a></li>
<li><a href="#Blockchain" title="Blockchain">Blockchain</a></li>
<li><a href="#Programming-Models" title="Programming Models">Programming Models</a></li>
<li><a href="#Advertising-Experiences" title="Advertising Experiences">Advertising Experiences</a></li>
<li><a href="#Open-World-Evolution" title="Open World Evolution">Open World Evolution</a></li>
<li><a href="#Seamless-World" title="Seamless World">Seamless World</a></li>
<li><a href="#Virtual-Economy" title="Virtual Economy">Virtual Economy</a></li>
<li><a href="#Curation-and-Moderation" title="Curation and Moderation">Curation and Moderation</a></li>
<li><a href="#Empathy" title="Empathy">Empathy</a></li>
<li><a href="#Betterverse" title="Betterverse">Betterverse</a></li>
<li><a href="#Roadmap" title="Roadmap">Roadmap</a></li>
<li><a href="#QampA" title="Q&A">Q&A</a></li>
</ul>
</li>
</ul>
</div><div class="toc-menu"><a class="expand-toggle" href="#">Expand all</a><a class="back-to-top" href="#">Back to top</a><a class="go-to-bottom" href="#">Go to bottom</a></div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js" integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha256-U5ZEeKfGNOja007MMD3YBI0A3OSZOQbeG6z2f2Y0hu8=" crossorigin="anonymous" defer></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gist-embed/2.6.0/gist-embed.min.js" integrity="sha256-KyF2D6xPIJUW5sUDSs93vWyZm+1RzIpKCexxElmxl8g=" crossorigin="anonymous" defer></script>
<script>
var markdown = $(".markdown-body");
//smooth all hash trigger scrolling
function smoothHashScroll() {
var hashElements = $("a[href^='#']").toArray();
for (var i = 0; i < hashElements.length; i++) {
var element = hashElements[i];
var $element = $(element);
var hash = element.hash;
if (hash) {
$element.on('click', function (e) {
// store hash
var hash = this.hash;
if ($(hash).length <= 0) return;
// prevent default anchor click behavior
e.preventDefault();
// animate
$('body, html').stop(true, true).animate({
scrollTop: $(hash).offset().top
}, 100, "linear", function () {
// when done, add hash to url
// (default click behaviour)
window.location.hash = hash;
});
});
}
}
}
smoothHashScroll();
var toc = $('.ui-toc');
var tocAffix = $('.ui-affix-toc');
var tocDropdown = $('.ui-toc-dropdown');
//toc
tocDropdown.click(function (e) {
e.stopPropagation();
});
var enoughForAffixToc = true;
function generateScrollspy() {
$(document.body).scrollspy({
target: ''
});
$(document.body).scrollspy('refresh');
if (enoughForAffixToc) {
toc.hide();
tocAffix.show();
} else {
tocAffix.hide();
toc.show();
}
$(document.body).scroll();
}
function windowResize() {
//toc right
var paddingRight = parseFloat(markdown.css('padding-right'));
var right = ($(window).width() - (markdown.offset().left + markdown.outerWidth() - paddingRight));
toc.css('right', right + 'px');
//affix toc left
var newbool;
var rightMargin = (markdown.parent().outerWidth() - markdown.outerWidth()) / 2;
//for ipad or wider device
if (rightMargin >= 133) {
newbool = true;
var affixLeftMargin = (tocAffix.outerWidth() - tocAffix.width()) / 2;
var left = markdown.offset().left + markdown.outerWidth() - affixLeftMargin;
tocAffix.css('left', left + 'px');
} else {
newbool = false;
}
if (newbool != enoughForAffixToc) {
enoughForAffixToc = newbool;
generateScrollspy();
}
}
$(window).resize(function () {
windowResize();
});
$(document).ready(function () {
windowResize();
generateScrollspy();
});
//remove hash
function removeHash() {
window.location.hash = '';
}
var backtotop = $('.back-to-top');
var gotobottom = $('.go-to-bottom');
backtotop.click(function (e) {
e.preventDefault();
e.stopPropagation();
if (scrollToTop)
scrollToTop();
removeHash();
});
gotobottom.click(function (e) {
e.preventDefault();
e.stopPropagation();
if (scrollToBottom)
scrollToBottom();
removeHash();
});
var toggle = $('.expand-toggle');
var tocExpand = false;
checkExpandToggle();
toggle.click(function (e) {
e.preventDefault();
e.stopPropagation();
tocExpand = !tocExpand;
checkExpandToggle();
})
function checkExpandToggle () {
var toc = $('.ui-toc-dropdown .toc');
var toggle = $('.expand-toggle');
if (!tocExpand) {
toc.removeClass('expand');
toggle.text('Expand all');
} else {
toc.addClass('expand');
toggle.text('Collapse all');
}
}
function scrollToTop() {
$('body, html').stop(true, true).animate({
scrollTop: 0
}, 100, "linear");
}
function scrollToBottom() {
$('body, html').stop(true, true).animate({
scrollTop: $(document.body)[0].scrollHeight
}, 100, "linear");
}
</script>
</body>
</html>