{"id":44344,"date":"2026-08-19T03:43:55","date_gmt":"2026-08-19T03:43:55","guid":{"rendered":"https:\/\/futureknowledge.in\/?p=44344"},"modified":"2026-08-19T03:43:55","modified_gmt":"2026-08-19T03:43:55","slug":"deus-ex-creator-warren-spector-is-retiring-not-as-much-fun-for-me-anymore","status":"publish","type":"post","link":"https:\/\/futureknowledge.in\/?p=44344","title":{"rendered":"Deus Ex Creator Warren Spector is Retiring, &#039;Not as Much Fun for Me Anymore&#039;"},"content":{"rendered":"<p>&quot; width=&#039;0&#039; height=&#039;0&#039; data-mode=&#039;scan&#039; data-site-id=&#039;5b11330346e0fb00017cd841&#039;&gt;&quot;;<br \/>\n              var a=document.getElementById(&quot;vmv3-frm&quot;);<br \/>\n              a=a.contentWindow?a.contentWindow:a.contentDocument;<br \/>\n              a.document.open();<br \/>\n              a.document.write(&quot;&quot; + &quot;&quot;);<br \/>\n              a.document.close();<br \/>\n          })();<\/p>\n<p>          _uacct = &quot;UA-2243248-1&quot;;<br \/>\n          urchinTracker();<\/p>\n<p>          var _qevents = _qevents || [];<br \/>\n          (function() {<br \/>\n              var elem = document.createElement(&quot;script&quot;);<br \/>\n              elem.src = (document.location.protocol == &quot;https:&quot; ? &quot;https:\/\/secure&quot; : &quot;http:\/\/edge&quot;) + &quot;.quantserve.com\/quant.js&quot;;<br \/>\n              elem.async = true;<br \/>\n              elem.type = &quot;text\/javascript&quot;;<br \/>\n              var scpt = document.getElementsByTagName(&quot;script&quot;)[0];<br \/>\n              scpt.parentNode.insertBefore(elem, scpt);<br \/>\n          })();<br \/>\n          _qevents.push({<br \/>\n              qacct:&quot;p-caA2vpL1Ek8_c&quot;<br \/>\n          });<\/p>\n<p>          var _comscore = _comscore || [];<br \/>\n          _comscore.push({ c1: &quot;2&quot;, c2: &quot;6035334&quot; });<br \/>\n          (function() {<br \/>\n              var s = document.createElement(&quot;script&quot;), el = document.getElementsByTagName(&quot;script&quot;)[0];<br \/>\n\t            s.async = true;<br \/>\n              s.src = (document.location.protocol == &quot;https:&quot; ? &quot;https:\/\/sb&quot; : &quot;http:\/\/b&quot;) + &quot;.scorecardresearch.com\/beacon.js&quot;;<br \/>\n              el.parentNode.insertBefore(s, el);<br \/>\n          })();<\/p>\n<p>\t        jQuery.browser = {};<br \/>\n\t  \t    (function () {<br \/>\n\t  \t        jQuery.browser.msie = false;<br \/>\n\t  \t        jQuery.browser.version = 0;<br \/>\n\t  \t        if (navigator.userAgent.match(\/MSIE ([0-9]+).\/)) {<br \/>\n\t  \t            jQuery.browser.msie = true;<br \/>\n\t  \t            jQuery.browser.version = RegExp.$1;<br \/>\n\t  \t        }<br \/>\n\t  \t    })();<\/p>\n<p>        $(document).ready(function(){  var didScroll;<br \/>\n\t\t\t\t\tvar lastScrollTop = 0;<br \/>\n\t\t\t\t\tvar delta = 5;<br \/>\n\t\t\t\t\tvar navbarHeight = $(&quot;#additional_news&quot;).outerHeight();<\/p>\n<p>\t\t\t\t\t$(&quot;.mainOutsideContainer&quot;).scroll(function(event){<br \/>\n\t\t\t\t\t  didScroll = true;<br \/>\n\t\t\t\t\t});<\/p>\n<p>\t\t\t\t\tsetInterval(function() {<br \/>\n\t\t\t\t\t  if (didScroll) {<br \/>\n\t\t\t\t\t    hasScrolled();<br \/>\n\t\t\t\t\t    didScroll = false;<br \/>\n\t\t\t\t\t  }<br \/>\n\t\t\t\t\t}, 250);<\/p>\n<p>\t\t\t\t\tfunction hasScrolled() {<br \/>\n\t\t\t\t    var st = $(&quot;.mainOutsideContainer&quot;).scrollTop();<br \/>\n\t\t\t\t\t\tvar adheight = $(&quot;#topAdContainer&quot;).css(&quot;height&quot;);<br \/>\n\t\t\t\t\t\tif (typeof adheight == &quot;undefined&quot;)<br \/>\n\t\t\t\t\t\t  adheight=0;<br \/>\n            var margintop=&quot;-&quot; + (parseInt($(&quot;#mainContainerSub&quot;).css(&quot;margin-top&quot;)) + parseInt(adheight) + 15) + &quot;px&quot;;<br \/>\n\t\t\t\t    \/\/ Make sure they scroll more than delta<br \/>\n\t\t\t\t    if(Math.abs(lastScrollTop &#8211; st) &lt;= delta)<br \/>\n\t\t\t\t        return;<\/p>\n<p>\t\t\t\t    \/\/ If they scrolled down and are past the navbar, add class .nav-up.<br \/>\n\t\t\t\t    \/\/ This is necessary so you never see what is &quot;behind&quot; the navbar.<br \/>\n\t\t\t\t\t\tif (st &lt;= 70) {<br \/>\n\t\t\t\t\t\t  $(&quot;#additional_news&quot;).removeClass(&quot;news-scroll-up&quot;).addClass(&quot;news-scroll-down&quot;);<br \/>\n\t\t\t\t\t\t\t$(&quot;#content&quot;).css(&quot;padding-top&quot;,&quot;5px&quot;);<br \/>\n\t\t\t\t\t\t\t$(&quot;.news-scroll-down&quot;).css(&quot;margin-top&quot;, &quot;auto&quot;);<br \/>\n\t\t\t\t\t\t}<br \/>\n\t\t\t\t\t\telse {<br \/>\n\t\t\t\t\t\t  if (st &gt; lastScrollTop) {<br \/>\n\t\t\t\t\t\t\t  \/\/scrolling down<br \/>\n\t\t\t\t\t\t\t\t$(&quot;#additional_news&quot;).removeClass(&quot;news-scroll-up&quot;).addClass(&quot;news-scroll-down&quot;);<br \/>\n\t\t\t          $(&quot;#content&quot;).css(&quot;padding-top&quot;,&quot;5px&quot;);<br \/>\n\t\t\t\t\t\t\t\t$(&quot;.news-scroll-down&quot;).css(&quot;margin-top&quot;, &quot;auto&quot;);<br \/>\n\t\t\t\t\t\t\t}<br \/>\n\t\t\t\t\t\t\telse {<br \/>\n\t\t\t\t\t\t\t\t\/\/else, scrolling up<br \/>\n\t\t\t\t\t\t\t\t\/\/fixed position because we are scrolling up<br \/>\n\t\t\t\t\t\t\t  $(&quot;#additional_news&quot;).removeClass(&quot;news-scroll-down&quot;).addClass(&quot;news-scroll-up&quot;);<br \/>\n\t\t\t\t\t\t\t\t$(&quot;#content&quot;).css(&quot;padding-top&quot;,&quot;125px&quot;);<\/p>\n<p>\t\t\t\t\t\t\t\t$(&quot;.news-scroll-up&quot;).css(&quot;margin-top&quot;, margintop);<br \/>\n\t\t\t\t\t\t  }<br \/>\n\t\t\t\t\t\t}<br \/>\n\t\t\t\t\t\tif ($(&quot;.news-scroll-up&quot;).length)<br \/>\n\t\t\t\t\t\t  $(&quot;.news-scroll-up&quot;).width($(&quot;#content&quot;).width());  <\/p>\n<p>\t\t\t\t    lastScrollTop = st;<br \/>\n\t\t\t\t\t}\t\t$(&quot;#mobile-menu-icon&quot;).on(&quot;click&quot;, function(){<br \/>\n              $(&quot;#mainMenu&quot;).toggleClass(&quot;visible&quot;);<br \/>\n          });<br \/>\n          $(&quot;.hasSubMenu&quot;).on(&quot;click&quot;, function(){<br \/>\n              if ($(&quot;#mainMenu&quot;).hasClass(&quot;visible&quot;)) {<br \/>\n                  $(this).parent().toggleClass(&quot;hover&quot;);<br \/>\n                  if ($(this).hasClass(&quot;no-heading&quot;)){<br \/>\n                      $(this).parent().children().find(&quot;div.links&quot;).toggleClass(&quot;hover&quot;);<br \/>\n                  }<br \/>\n              }<br \/>\n          });<br \/>\n          $(&quot;.subMenu .heading&gt;a&quot;).on(&quot;click&quot;, function(){<br \/>\n              console.log($(this).parent().parent().children(&quot;div.links&quot;).html());<br \/>\n              $(this).parent().parent().children(&quot;div.links&quot;).toggleClass(&quot;hover&quot;);<br \/>\n          });<br \/>\n          $(&quot;#buddyTabsList&quot;).find(&quot;a&quot;).click(function (e) {<br \/>\n              e.preventDefault();<br \/>\n              $(this).tab(&quot;show&quot;);<br \/>\n          });<br \/>\n          $(&quot;#buddyIconImg&quot;).on(&quot;click&quot;, function(){<br \/>\n              console.log(&quot;viewport&quot;, $(window).width());<br \/>\n              if ($(window).width() &lt; 992){<br \/>\n                  $(&quot;#buddyContainer&quot;).removeClass(&quot;detached narrow&quot;).css(&quot;top&quot;, &quot;inherit&quot;).css(&quot;left&quot;, &quot;inherit&quot;);<br \/>\n                  console.log($(&quot;#buddyContainer&quot;).css(&quot;top&quot;));<br \/>\n                  $(&quot;#detach-buddy&quot;).removeClass(&quot;fa-times&quot;).addClass(&quot;fa-external-link&quot;);<br \/>\n              }<br \/>\n          });<br \/>\n          $(&quot;#detach-buddy&quot;).on(&quot;click&quot;, function(){<br \/>\n              $detachButton = $(this);<br \/>\n              $buddyContainer = $(&quot;#buddyContainer&quot;);<br \/>\n              $buddyContainer.toggleClass(&quot;detached&quot;);<br \/>\n              $(&quot;#mainContainerSub&quot;).toggleClass(&quot;detached&quot;);<br \/>\n              $(&quot;#buddyIconBox&quot;).toggleClass(&quot;detached&quot;);<br \/>\n              if ($buddyContainer.hasClass(&quot;detached&quot;)){<br \/>\n                  $buddyContainer.addClass(&quot;narrow&quot;);<br \/>\n                  $buddyContainer.attr(&quot;style&quot;, &quot;top: 90px;&quot;);<br \/>\n                  $detachButton.removeClass(&quot;fa-external-link&quot;).addClass(&quot;fa-times&quot;);<br \/>\n              } else {<br \/>\n                  $buddyContainer.attr(&quot;style&quot;, &quot;&quot;);<br \/>\n                  $buddyContainer.removeClass(&quot;narrow&quot;);<br \/>\n                  $detachButton.removeClass(&quot;fa-times&quot;).addClass(&quot;fa-external-link&quot;);<br \/>\n              }<br \/>\n              save_position();<br \/>\n          });<br \/>\n          $(&quot;#buddy-size&quot;).on(&quot;click&quot;, function(){<br \/>\n              $(this).parents(&quot;#buddyContainer&quot;).toggleClass(&quot;narrow&quot;);<br \/>\n              save_position();<br \/>\n          });<br \/>\n          $(&quot;#buddyContainer&quot;).find(&quot;.buddyHeader&quot;).on(&quot;mousedown&quot;, function(e) {<br \/>\n              $buddyBox = $(this).parent();<br \/>\n              oldLeft = e.pageX;<br \/>\n              oldTop = e.pageY;<br \/>\n              oldElementLeft = $(&quot;.buddyHeader&quot;).offset().left;<br \/>\n              oldElementTop = $(&quot;.buddyHeader&quot;).offset().top;<br \/>\n              if ($buddyBox.hasClass(&quot;detached&quot;)) {<br \/>\n                  $buddyBox.addClass(&quot;draggable&quot;).on(&quot;mousemove&quot;, function (e) {<br \/>\n                      offsetLeft = oldLeft &#8211; e.pageX;<br \/>\n                      offsetTop = oldTop &#8211; e.pageY;<\/p>\n<p>                      $(&quot;.draggable&quot;).offset({<br \/>\n                          top: oldElementTop &#8211; offsetTop,<br \/>\n                          left: oldElementLeft &#8211; offsetLeft<br \/>\n                      }).on(&quot;mouseup&quot;, function () {<br \/>\n                          $buddyBox.removeClass(&quot;draggable&quot;);<br \/>\n                          $buddyBox.unbind();<br \/>\n                      });<br \/>\n                  });<br \/>\n              }<br \/>\n              e.preventDefault();<br \/>\n          }).on(&quot;mouseup&quot;, function() {<br \/>\n              $(&quot;.draggable&quot;).unbind();<br \/>\n              $(&quot;.draggable&quot;).removeClass(&quot;draggable&quot;);<br \/>\n              save_position();<br \/>\n          });<br \/>\n          $(&quot;#socialMediaIconBox&quot;).on(&quot;click&quot;, function(){<br \/>\n              $(&quot;#subBar&quot;).hide();<br \/>\n              $(&quot;#subBarSearch&quot;).hide();<br \/>\n              $(&quot;#subBarSocial&quot;).slideDown(500);<br \/>\n          });<br \/>\n          $(&quot;#searchIconBox&quot;).on(&quot;click&quot;, function(){<br \/>\n              $(&quot;#subBar&quot;).hide();<br \/>\n              $(&quot;#subBarSocial&quot;).hide();<br \/>\n              $(&quot;#subBarSearch&quot;).slideDown(500);<br \/>\n          });<\/p>\n<p>\t\t\t\t\t$(&quot;#blue-theme&quot;).on(&quot;click&quot;, function(){<br \/>\n\t\t\t\t\t\t$(&quot;.vgc-theme&quot;).each(function() {<br \/>\n\t\t\t\t\t\t\tcssFile=$(this).data(&quot;css&quot;);<br \/>\n\t\t\t\t\t\t\tcssBClass=cssFile + &quot;_blue&quot;;<br \/>\n\t\t\t\t\t\t\tcssDClass=cssFile + &quot;_dark&quot;;<br \/>\n\t\t\t\t\t\t\tif ($(&quot;.&quot; + cssBClass).length &gt; 0)<br \/>\n                $(&quot;.&quot; + cssBClass).prop(&quot;disabled&quot;, false);<br \/>\n\t\t\t\t\t\t\telse {<br \/>\n\t\t\t\t\t\t\t\tcssPath=$(this).attr(&quot;href&quot;);<br \/>\n\t\t\t\t\t\t\t\tcssPath=cssPath.substr(0, cssPath.lastIndexOf(&quot;\/&quot;)) + &quot;\/&quot;;<br \/>\n\t\t\t\t\t\t\t  $(&quot;&lt;link class=&#039;&quot; + cssBClass + &quot;&#039; href=&#039;&quot; + cssPath + cssFile + &quot;_blue.css?assetVersion=1.99037&#039; rel=&#039;stylesheet&#039;&gt;&quot;).appendTo(&quot;head&quot;);<br \/>\n\t\t\t\t\t\t\t}<br \/>\n\t\t\t\t\t\t\tif ($(&quot;.&quot; + cssDClass).length &gt; 0)<br \/>\n\t\t\t\t\t\t\t  $(&quot;.&quot; + cssDClass).prop(&quot;disabled&quot;, true);<br \/>\n\t\t\t\t\t\t});<br \/>\n\t\t\t\t\t\t$(&quot;#searchIconBox img&quot;).attr(&quot;src&quot;, &quot;https:\/\/www.vgchartz.com\/assets\/images\/search-icon_blue.png&quot;);<br \/>\n\t\t\t\t\t\tif($(&quot;.shipchart_3ds&quot;).length)<br \/>\n\t\t\t\t\t\t  $(&quot;.shipchart_3ds&quot;).attr(&quot;src&quot;, &quot;https:\/\/www.vgchartz.com\/\/images\/3DS_console.png&quot;);<br \/>\n\t\t\t\t\t\t$.ajax({<br \/>\n\t\t\t\t\t\t\ttype: &quot;GET&quot;,<br \/>\n\t\t\t\t\t\t\turl: &quot;https:\/\/www.vgchartz.com\/assets\/includes\/responsive\/set_sitetheme.php&quot;,<br \/>\n\t\t\t\t\t\t\tdata: {sitetheme: 2},<br \/>\n\t\t\t\t\t\t\tdataType: &quot;jsonp&quot;<br \/>\n\t\t\t\t\t\t});<br \/>\n\t\t\t\t\t});<\/p>\n<p>\t\t\t\t\t$(&quot;#dark-theme&quot;).on(&quot;click&quot;, function(){<br \/>\n\t\t\t\t\t\t$(&quot;.vgc-theme&quot;).each(function() {<br \/>\n\t\t\t\t\t\t\tcssFile=$(this).data(&quot;css&quot;);<br \/>\n\t\t\t\t\t\t\tcssBClass=cssFile + &quot;_blue&quot;;<br \/>\n\t\t\t\t\t\t\tcssDClass=cssFile + &quot;_dark&quot;;<br \/>\n\t\t\t\t\t\t\tif ($(&quot;.&quot; + cssDClass).length &gt; 0)<br \/>\n                $(&quot;.&quot; + cssDClass).prop(&quot;disabled&quot;, false);<br \/>\n\t\t\t\t\t\t\telse {<br \/>\n\t\t\t\t\t\t\t\tcssPath=$(this).attr(&quot;href&quot;);<br \/>\n\t\t\t\t\t\t\t\tcssPath=cssPath.substr(0, cssPath.lastIndexOf(&quot;\/&quot;)) + &quot;\/&quot;;<br \/>\n\t\t\t\t\t\t\t  $(&quot;&lt;link class=&#039;&quot; + cssDClass + &quot;&#039; href=&#039;&quot; + cssPath + cssFile + &quot;_dark.css?assetVersion=1.99037&#039; rel=&#039;stylesheet&#039;&gt;&quot;).appendTo(&quot;head&quot;);<br \/>\n\t\t\t\t\t\t\t}<br \/>\n\t\t\t\t\t\t\tif ($(&quot;.&quot; + cssBClass).length &gt; 0)<br \/>\n\t\t\t\t\t\t\t  $(&quot;.&quot; + cssBClass).prop(&quot;disabled&quot;, true);<br \/>\n\t\t\t\t\t\t});<br \/>\n\t\t\t\t\t\t$(&quot;#searchIconBox img&quot;).attr(&quot;src&quot;, &quot;https:\/\/www.vgchartz.com\/assets\/images\/search-icon.png&quot;);<br \/>\n\t\t\t\t\t\tif($(&quot;.shipchart_3ds&quot;).length)<br \/>\n\t\t\t\t\t\t  $(&quot;.shipchart_3ds&quot;).attr(&quot;src&quot;, &quot;https:\/\/www.vgchartz.com\/\/images\/3DS_console_dark.png&quot;);<br \/>\n\t\t\t\t\t\t$.ajax({<br \/>\n\t\t\t\t\t\t\ttype: &quot;GET&quot;,<br \/>\n\t\t\t\t\t\t\turl: &quot;https:\/\/www.vgchartz.com\/assets\/includes\/responsive\/set_sitetheme.php&quot;,<br \/>\n\t\t\t\t\t\t\tdata: {sitetheme: 1},<br \/>\n\t\t\t\t\t\t\tdataType: &quot;jsonp&quot;<br \/>\n\t\t\t\t\t\t});<br \/>\n\t\t\t\t\t});<\/p>\n<p>\t\t\t\t\t$(&quot;#standard-theme&quot;).on(&quot;click&quot;, function(){<br \/>\n\t\t\t\t\t\t$(&quot;.vgc-theme&quot;).each(function() {<br \/>\n\t\t\t\t\t\t\tcssFile=$(this).data(&quot;css&quot;);<br \/>\n\t\t\t\t\t\t\tcssBClass=cssFile + &quot;_blue&quot;;<br \/>\n\t\t\t\t\t\t\tcssDClass=cssFile + &quot;_dark&quot;;<br \/>\n\t\t\t\t\t\t\tif ($(&quot;.&quot; + cssDClass).length &gt; 0)<br \/>\n                $(&quot;.&quot; + cssDClass).prop(&quot;disabled&quot;, true);<br \/>\n\t\t\t\t\t\t\tif ($(&quot;.&quot; + cssBClass).length &gt; 0)<br \/>\n                $(&quot;.&quot; + cssBClass).prop(&quot;disabled&quot;, true);<br \/>\n\t\t\t\t\t\t});<br \/>\n\t\t\t\t\t\t$(&quot;#searchIconBox img&quot;).attr(&quot;src&quot;, &quot;https:\/\/www.vgchartz.com\/assets\/images\/search-icon.png&quot;);<br \/>\n\t\t\t\t\t\tif($(&quot;.shipchart_3ds&quot;).length)<br \/>\n\t\t\t\t\t\t  $(&quot;.shipchart_3ds&quot;).attr(&quot;src&quot;, &quot;https:\/\/www.vgchartz.com\/\/images\/3DS_console.png&quot;);<br \/>\n\t\t\t\t\t\t$.ajax({<br \/>\n\t\t\t\t\t\t\ttype: &quot;GET&quot;,<br \/>\n\t\t\t\t\t\t\turl: &quot;https:\/\/www.vgchartz.com\/assets\/includes\/responsive\/set_sitetheme.php&quot;,<br \/>\n\t\t\t\t\t\t\tdata: {sitetheme: 0},<br \/>\n\t\t\t\t\t\t\tdataType: &quot;jsonp&quot;<br \/>\n\t\t\t\t\t\t});<br \/>\n\t\t\t\t  });<\/p>\n<p>          $(window).resize(function() {<br \/>\n              lineLoop(&quot;lines&quot;, 5);<br \/>\n          });\t\t<\/p>\n<p>          $(function(){<br \/>\n              $(&quot;.spoiler-text&quot;).hide();<br \/>\n              $(&quot;.spoiler-toggle&quot;).click(function(){<br \/>\n                  $(this).next().toggle();<br \/>\n              }); \/\/ end spoiler-toggle<br \/>\n          }); \/\/ end function<\/p>\n<p>          function save_position(){<br \/>\n              detached = ($(&quot;#buddyContainer&quot;).hasClass(&quot;detached&quot;)) ? 1 : 0;<br \/>\n              narrow = ($(&quot;#buddyContainer&quot;).hasClass(&quot;narrow&quot;)) ? 1 : 0;<br \/>\n              topPosition = $(&quot;#buddyContainer&quot;).css(&quot;top&quot;);<br \/>\n              leftPosition = $(&quot;#buddyContainer&quot;).css(&quot;left&quot;);<br \/>\n              $.ajax({<br \/>\n                  method: &quot;post&quot;,<br \/>\n                  url: &quot;https:\/\/gamrconnect.vgchartz.com\/assets\/handlers\/save_position.php&quot;,<br \/>\n                  data: ({<br \/>\n                      &quot;userid&quot; : 0,<br \/>\n                      &quot;detached&quot; : detached,<br \/>\n                      &quot;narrow&quot; : narrow,<br \/>\n                      &quot;topPosition&quot; : topPosition,<br \/>\n                      &quot;leftPosition&quot; : leftPosition<br \/>\n                  }),<br \/>\n                  success: function(data) {<br \/>\n                    \/\/Nothing<br \/>\n                  }<br \/>\n              });<br \/>\n          }<\/p>\n<p>          function calculateLineCount(element, i) {<br \/>\n              var textHeight = element.css(&quot;height&quot;)<br \/>\n              document.getElementById(&quot;figcaption&quot; + i.toString()).style.bottom= (textHeight);<br \/>\n              return true<br \/>\n          }<\/p>\n<p>          function lineLoop(elementId, num) {<br \/>\n              for (i=0; i &lt; num; i++) {<br \/>\n                  elem=elementId + i.toString();<br \/>\n                  if (document.getElementById(elem)!=null) {<br \/>\n                      calculateLineCount($(&quot;#&quot; + elem), i);<br \/>\n                  }<br \/>\n              }<br \/>\n          }<\/p>\n<p>          \/\/#lines are used in &quot;top 5&quot; articles heading on front page<br \/>\n          \/\/function is used to calculate number of lines based upon height<br \/>\n          lineLoop(&quot;lines&quot;, 5);<\/p>\n<p>          \/\/this functionality allows for any &lt;th&gt; heading to become &quot;sortable&quot;<br \/>\n          var getCellValue = function(tr, idx){<br \/>\n              return tr.children[idx].dataset.value || tr.children[idx].innerText || tr.children[idx].textContent;<br \/>\n          };<br \/>\n          var comparer = function(idx, asc) {<br \/>\n              return function(a, b) {<br \/>\n                  return function(v1, v2) {<br \/>\n                      return v1 !== &quot;&quot; &amp;&amp; v2 !== &quot;&quot; &amp;&amp; !isNaN(v1) &amp;&amp; !isNaN(v2) ? v1 &#8211; v2 : v1.toString().localeCompare(v2);<br \/>\n                  }(getCellValue(asc ? a : b, idx), getCellValue(asc ? b : a, idx));<br \/>\n              }<br \/>\n          };<\/p>\n<p>          \/\/ do the work&#8230;<br \/>\n          Array.prototype.slice.call(document.querySelectorAll(&quot;th&quot;)).forEach(function(th) {<br \/>\n              th.addEventListener(&quot;click&quot;, function() {<br \/>\n                  var table = th.parentNode<br \/>\n                  while(table.tagName.toUpperCase() != &quot;TABLE&quot;)<br \/>\n                      table = table.parentNode;<br \/>\n                  Array.prototype.slice.call(table.querySelectorAll(&quot;tr:nth-child(n+2)&quot;))<br \/>\n                  .sort(comparer(Array.prototype.slice.call(th.parentNode.children).indexOf(th), this.asc = !this.asc))<br \/>\n                  .forEach(function(tr) {<br \/>\n                      table.appendChild(tr)<br \/>\n                  });<br \/>\n              })<br \/>\n          });<\/p>\n<p>        }); \/\/ end document ready\t\t\t<\/p>\n<p>        var switchTo5x=true;<\/p>\n<p>        stLight.options({<br \/>\n          publisher: &quot;618b1cf3-3d40-4b84-a2e1-a2169f16a2f2&quot;<br \/>\n        });<\/p>\n<p>Video game design Warren Spector, best known for creating Deus Ex, announced on LinkedIn he is retiring from game development as the &quot;game business has changed and it&#039;s just not as much fun.&quot;<\/p>\n<p>&quot;Let me cut right to the chase. I&#039;m retiring from game development. At least I think so. I&#039;ve been here before and changed my mind but this time I&#039;m pretty sure I mean it,&quot; said Spector.<\/p>\n<p>&quot;I&#039;ve had a great career. Wouldn&#039;t change a thing even if I could. But the reasons to retire are simple: I&#039;m a month away from my 44th year as a developer. I&#039;ve had the chance to work on tabletop roleplaying games and boardgames. I&#039;ve worked on more digital games than I can remember &#8212; 17 full games, I think, and 9 or so add-on packs. Gratifyingly, some of those games are still being played 15&#8230; 20&#8230; 30 years later. And most of them have been in a genre that has had influence beyond what I or anyone else expected. I&#039;ve run teams as small as a dozen and as big as 800. I&#039;ve worked for big companies and done startups. I like to think I&#039;ve helped some insanely talented people along in their careers. (That last is the most important.)&quot;With all that behind me and with age and health (my business) catching up with me I&#039;m feeling like I&#039;ve done what I set out to do. It&#039;s time to write some books, do a lot of reading, do some lecturing, maybe do some consulting. (Feel free to get in touch about those last two.) Also there&#039;s a keyboard here just waiting for me to get my piano chops back.&quot;I definitely have mixed feelings about this. I mean there are three games in particular I&#039;d still like to make. (One is very big&#8230; one is very small&#8230; and one I don&#039;t know how to make which scares me.) But the game business has changed and it&#039;s just not as much fun for me anymore. Plus there&#039;s a new generation of developers coming up who deserve their time in the sun.&quot;To all of you reading this I want you to remember that games are not a solved problem yet &#8212; there is, I hope, plenty of experimentation and innovation to come. And to all you young developers out there, I&#039;ve said it before and I&#039;ll say it again, your job is to make people forget people like me ever existed.&quot;Will I come back? Never say never. But I think it&#039;s time to ride off into the sunset.&quot;Now stop reading and make great games.&quot;<\/p>\n<p>A life-long and avid gamer,\u00a0William D&#039;Angelo\u00a0was first introduced to VGChartz in 2007. After years of supporting the site, he was brought on in 2010 as a junior analyst, working his way up to lead analyst in 2012 and taking over the hardware estimates in 2017. He has expanded his involvement in the gaming community by producing content on his own\u00a0YouTube channel\u00a0and\u00a0Twitch channel. You can follow the author\u00a0on\u00a0Bluesky.<\/p>\n<p>The devs who created our gaming childhood and the game industy itself are slowly fading away.<\/p>\n<p>Honestly not a surprise. He hasn&#039;t been attached to anything real in 14 years. When people do give him a chance we get stuff like Underworld Ascendant (bad) or Thick as Thieves (bad but also live service guff)<\/p>\n<p>Went a bit over the top at times but Deus Ex is a top 10 game imo could do with a modern version although it pioneered much of what we see in games like CB2077 etc&#8230;<\/p>\n<p>A controversial persona, some argue that he is just a team lead, not a developer, but none the less Deus Ex was his dream game even if developed by other people, and my fav game ever.<\/p>\n<p>About Us |<br \/>\n                  Terms of Use |<br \/>\n                  Privacy Policy |<br \/>\n                  Advertise |<br \/>\n                  Staff |<br \/>\n                  Contact<\/p>\n<p>                    Display As Desktop<\/p>\n<p>                    Display As Mobile<\/p>\n<p>                  \u00a9 2006-2026 VGChartz Ltd. All rights reserved.<\/p>\n<p><em>Source: <a href='https:\/\/www.vgchartz.com\/article\/468755\/deus-ex-creator-warren-spector-is-retiring-not-as-much-fun-for-me-anymore\/' target='_blank'>Read the original article on www.vgchartz.com<\/a><\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&quot; width=&#039;0&#039; height=&#039;0&#039; data-mode=&#039;scan&#039; data-site-id=&#039;5b11330346e0fb00017cd841&#039;&gt;&quot;; var a=document.getElementById(&quot;vmv3-frm&quot;); a=a.contentWindow?a.contentWindow:a.contentDocument; a.document.open(); a.document.write(&quot;&quot; + &quot;&quot;); a.document.close(); })(); _uacct = &quot;UA-2243248-1&quot;; urchinTracker(); var _qevents = _qevents || []; (function() { var elem = document.createElement(&quot;script&quot;); elem.src = (document.location.protocol == &quot;https:&quot; ? &quot;https:\/\/secure&quot; : &quot;http:\/\/edge&quot;) + &quot;.quantserve.com\/quant.js&quot;; elem.async = true; elem.type = &quot;text\/javascript&quot;; var scpt = document.getElementsByTagName(&quot;script&quot;)[0]; scpt.parentNode.insertBefore(elem, scpt); })(); _qevents.push({ [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":44345,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[36,3],"tags":[10,28,34],"class_list":["post-44344","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-share-suggestions","category-technology","tag-impact-googl","tag-signal-buy","tag-stage-stage-2"],"_links":{"self":[{"href":"https:\/\/futureknowledge.in\/index.php?rest_route=\/wp\/v2\/posts\/44344","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/futureknowledge.in\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/futureknowledge.in\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/futureknowledge.in\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/futureknowledge.in\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=44344"}],"version-history":[{"count":0,"href":"https:\/\/futureknowledge.in\/index.php?rest_route=\/wp\/v2\/posts\/44344\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/futureknowledge.in\/index.php?rest_route=\/wp\/v2\/media\/44345"}],"wp:attachment":[{"href":"https:\/\/futureknowledge.in\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=44344"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/futureknowledge.in\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=44344"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/futureknowledge.in\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=44344"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}