A place to cache linked articles (think custom and personal wayback machine)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.html 9.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. <!doctype html><!-- This is a valid HTML5 document. -->
  2. <!-- Screen readers, SEO, extensions and so on. -->
  3. <html lang="fr">
  4. <!-- Has to be within the first 1024 bytes, hence before the <title>
  5. See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset -->
  6. <meta charset="utf-8">
  7. <!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 -->
  8. <!-- The viewport meta is quite crowded and we are responsible for that.
  9. See: https://codepen.io/tigt/post/meta-viewport-for-2015 -->
  10. <meta name="viewport" content="width=device-width,initial-scale=1">
  11. <!-- Required to make a valid HTML5 document. -->
  12. <title>Unreal Engine 5 is meant to ridicule web developers (archive) — David Larlet</title>
  13. <!-- That good ol' feed, subscribe :). -->
  14. <link rel="alternate" type="application/atom+xml" title="Feed" href="/david/log/">
  15. <!-- Generated from https://realfavicongenerator.net/ such a mess. -->
  16. <link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons2/apple-touch-icon.png">
  17. <link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons2/favicon-32x32.png">
  18. <link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons2/favicon-16x16.png">
  19. <link rel="manifest" href="/static/david/icons2/site.webmanifest">
  20. <link rel="mask-icon" href="/static/david/icons2/safari-pinned-tab.svg" color="#07486c">
  21. <link rel="shortcut icon" href="/static/david/icons2/favicon.ico">
  22. <meta name="msapplication-TileColor" content="#f0f0ea">
  23. <meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml">
  24. <meta name="theme-color" content="#f0f0ea">
  25. <!-- Documented, feel free to shoot an email. -->
  26. <link rel="stylesheet" href="/static/david/css/style_2020-06-19.css">
  27. <!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
  28. <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
  29. <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
  30. <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
  31. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  32. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  33. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  34. <script type="text/javascript">
  35. function toggleTheme(themeName) {
  36. document.documentElement.classList.toggle(
  37. 'forced-dark',
  38. themeName === 'dark'
  39. )
  40. document.documentElement.classList.toggle(
  41. 'forced-light',
  42. themeName === 'light'
  43. )
  44. }
  45. const selectedTheme = localStorage.getItem('theme')
  46. if (selectedTheme !== 'undefined') {
  47. toggleTheme(selectedTheme)
  48. }
  49. </script>
  50. <meta name="robots" content="noindex, nofollow">
  51. <meta content="origin-when-cross-origin" name="referrer">
  52. <!-- Canonical URL for SEO purposes -->
  53. <link rel="canonical" href="https://www.theolognion.com/unreal-engine-5-is-meant-to-ridicule-web-developers/">
  54. <body class="remarkdown h1-underline h2-underline h3-underline hr-center ul-star pre-tick">
  55. <article>
  56. <h1>Unreal Engine 5 is meant to ridicule web developers</h1>
  57. <nav>
  58. <p class="center">
  59. <a href="/david/" title="Aller à l’accueil" tabindex="1">🏠</a>
  60. </p>
  61. </nav>
  62. <hr>
  63. <h2><a href="https://www.theolognion.com/unreal-engine-5-is-meant-to-ridicule-web-developers/">Source originale du contenu</a></h2>
  64. <p>Our sources report that the underlying reason behind the impressive tech demo for Unreal Engine 5  by Epic Games is to ridicule web developers. </p>
  65. <p>According to the Washington Post, the tech demo includes a new dynamic lighting system and a rendering approach with a much higher geometric detail for both shapes and textures. For example, a single statue in the demo can be rendered with 33 million triangles, giving it a truly unprecedented level of detail and visual density.</p>
  66. <p>Turns out that the level of computational optimization and sheer power of this incredible technology is meant to make fun of web developers, who struggle to maintain 15fps while scrolling a single-page application on a $2000 MacBook Pro, while enjoying 800ms delays typing the corresponding code into their Electron-based text editors.</p>
  67. <figure class="kg-card kg-embed-card kg-card-hascaption"><iframe src="https://www.youtube.com/embed/qC5KtatMcUw?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="">VIDEO</iframe><figcaption>Each of hundreds of millions of triangles that compose this magnificent image is a direct evaluation of the skills of all web developers worldwide.</figcaption></figure>
  68. <p>"We are disappointed with our colleagues," says the head of Web Developers Union Peter Eanline. "Both 3D game- and web-development have fundamental problems to overcome. Sure, they work hard computing millions of states in real-time by applying linear algebra and physics while maintaining up to 60fps of 4k video output. But at the same time we expect them to acknowledge equally challenging tasks like highlighting dozens of lines of code with 16 <em>different</em> colors, or remembering the scroll position after user closes an absolutely-positioned div, or deciding whether to inject CSS via JS or scale up the static assets cluster with Kubernetes."</p>
  69. <p>The Web Developers Union members created an online petition to bring this potentially hostile decision of Epic Games to public light. The petition website is scheduled to go live in July 2020 (in approx. 43 days), as soon as the Node packages updating process is expected to finish.</p>
  70. </article>
  71. <hr>
  72. <footer>
  73. <p>
  74. <a href="/david/" title="Aller à l’accueil">🏠</a> •
  75. <a href="/david/log/" title="Accès au flux RSS">🤖</a> •
  76. <a href="http://larlet.com" title="Go to my English profile" data-instant>🇨🇦</a> •
  77. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel">📮</a> •
  78. <abbr title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340">🧚</abbr>
  79. </p>
  80. <template id="theme-selector">
  81. <form>
  82. <fieldset>
  83. <legend>Thème</legend>
  84. <label>
  85. <input type="radio" value="auto" name="chosen-color-scheme" checked> Auto
  86. </label>
  87. <label>
  88. <input type="radio" value="dark" name="chosen-color-scheme"> Foncé
  89. </label>
  90. <label>
  91. <input type="radio" value="light" name="chosen-color-scheme"> Clair
  92. </label>
  93. </fieldset>
  94. </form>
  95. </template>
  96. </footer>
  97. <script type="text/javascript">
  98. function loadThemeForm(templateName) {
  99. const themeSelectorTemplate = document.querySelector(templateName)
  100. const form = themeSelectorTemplate.content.firstElementChild
  101. themeSelectorTemplate.replaceWith(form)
  102. form.addEventListener('change', (e) => {
  103. const chosenColorScheme = e.target.value
  104. localStorage.setItem('theme', chosenColorScheme)
  105. toggleTheme(chosenColorScheme)
  106. })
  107. const selectedTheme = localStorage.getItem('theme')
  108. if (selectedTheme && selectedTheme !== 'undefined') {
  109. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  110. }
  111. }
  112. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  113. window.addEventListener('load', () => {
  114. let hasDarkRules = false
  115. for (const styleSheet of Array.from(document.styleSheets)) {
  116. let mediaRules = []
  117. for (const cssRule of styleSheet.cssRules) {
  118. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  119. continue
  120. }
  121. // WARNING: Safari does not have/supports `conditionText`.
  122. if (cssRule.conditionText) {
  123. if (cssRule.conditionText !== prefersColorSchemeDark) {
  124. continue
  125. }
  126. } else {
  127. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  128. continue
  129. }
  130. }
  131. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  132. }
  133. // WARNING: do not try to insert a Rule to a styleSheet you are
  134. // currently iterating on, otherwise the browser will be stuck
  135. // in a infinite loop…
  136. for (const mediaRule of mediaRules) {
  137. styleSheet.insertRule(mediaRule.cssText)
  138. hasDarkRules = true
  139. }
  140. }
  141. if (hasDarkRules) {
  142. loadThemeForm('#theme-selector')
  143. }
  144. })
  145. </script>
  146. </body>
  147. </html>