
Image via Netflix
Having suffered more downs than ups over the last few years – which includes the widely-despised conclusion to Game of Thrones, the sensibly cancelled Confederate, and a brief flirtation with Star Wars – David Benioff and D.B. Weiss are finally making their way back to screens with Netflix’s 3 Body Problem.
The massively ambitious and inordinately expensive sci-fi epic based on the novel of the same name by Liu Cixin follows an astrophysicist who gets conscripted by the military due to her scientific background and sent to work in a secretive facility located in a remote region of China, where a single decision made in the 1960s will end up reverberating across space and time to a group of scientists in the present day.

The trailer won a lot of people over after premiering at the recent TUDUM event, but there’s a bittersweet element to 3 Body Problem in the wake of producer Lin Qi’s alleged murder. The billionaire had made it his life’s work to bring the source material to as wide an audience as possible, buying up copyrights and licenses connected to the book, as well as establishing a production company specifically for that end, which was fittingly named Three-Body Universe.
While an official release date hasn’t been announced by the company itself, What’s on Netflix has claimed that the show will premiere on New Year’s Day, which is guaranteed to yield massive viewership figures.
There’s enough distance between Zack Snyder’s Rebel Moon that they won’t cannibalize the other, while Cobra Kai ended up as one of the streamer’s biggest-ever shows by debuting its third and fourth seasons right around the time the clock drops on a brand new annum, so let’s hope it manages to deliver a fitting binge for what’s sure to be the first of 2023 for many.
‘;
About the author
‘+
// ”+
// ‘
‘+
// ‘
// ”+
// ‘ ‘+
// ‘ ‘+
// ‘
‘+
// ”);
// launch zerg
// if ( WGTCADS.isMobile ) {
// (function () {
// var zergnet = document.createElement(‘script’);
// zergnet.type=”text/javascript”;
// zergnet.async = true;
// zergnet.src=”https://www.zergnet.com/zerg.js?id=”;
// var znscr = document.getElementsByTagName(‘script’)[0];
// znscr.parentNode.insertBefore(zergnet, znscr);
// })();
// }
// else {
// (function() {
// var zergnet = document.createElement(‘script’);
// zergnet.type=”text/javascript”; zergnet.async = true;
// zergnet.src=”https://www.zergnet.com/zerg.js?id=”;
// var znscr = document.getElementsByTagName(‘script’)[0];
// znscr.parentNode.insertBefore(zergnet, znscr);
// })();
// }
// hide next link
jQuery(‘.post_pagination .next’).parent().css(‘visibility’, ‘hidden’);
refreshAds();
// tracking
if (typeof window.parent.postMessage !== ‘undefined’) {
parent.postMessage(“encaction”, “*”); // `*` on any domain
}
// hide other rows on mobile
// if ( WGTCADS.isMobile ) {
// jQuery(‘#zerglayout .zergentity:gt(1)’).hide();
// }
}
else {
/*
jQuery.get(addressValue, qparams, function (result) {
var this_result = jQuery(result);
$post_content.removeClass(‘loading’).html(this_result.find(‘#post_content’).children());
this_result.find(‘#post_content > script’).appendTo(‘#post_content’);
if (currentPageUrl == pageLen + 1) {
// hide regular partner ads and show different IDs for tracking
jQuery(‘.js-footer-zerg:eq(0)’).css({‘height’: 0, ‘width’: 0, ‘overflow’: ‘hidden’});
} else {
jQuery(‘.js-footer-zerg:eq(0)’).css({‘height’: ‘auto’, ‘width’: ‘auto’, ‘overflow’: ‘visible’});
}
setTimeout(function () {
loadTheSlider();
}, 1000);
CMNUNT.refreshAds();
// tracking
if (typeof window.parent.postMessage !== ‘undefined’) {
parent.postMessage(“encaction”, “*”); // `*` on any domain
}
}, ‘html’);
*/
jQuery.get(addressValue, qparams, function (result) {
var this_result = jQuery(result);
var video =this_result.find(“[src*=’content.jwplatform.com’]”);
if (video.length >0) {
url = video[0].src;
console.log(url);
// var videourl = this_result.html().substr(video);
var sc = $(”).load(url, function () {
var sub1 = sc.html().substring(sc.html().search(‘document.write’));
var str=”document.write”;
if (sub1.charAt(sub1.search(“;”) – 4) == ‘”‘) {
var sub2 = sub1.substring(28, sub1.search(“;”) – 4);
} else {
var sub2 = sub1.substring(25, sub1.search(“;”) – 10);
}
this_result.find(‘.wgtc-post-video’).append(“”);
$post_content.removeClass(‘loading’).html(this_result.find(‘#post_content’).children());
this_result.find(‘#post_content > script’).appendTo(‘#post_content’);
if (currentPageUrl == pageLen + 1) {
// hide regular partner ads and show different IDs for tracking
jQuery(‘.js-footer-zerg:eq(0)’).css({‘height’: 0, ‘width’: 0, ‘overflow’: ‘hidden’});
} else {
jQuery(‘.js-footer-zerg:eq(0)’).css({
‘height’: ‘auto’,
‘width’: ‘auto’,
‘overflow’: ‘visible’
});
}
setTimeout(function () {
loadTheSlider();
}, 1000);
refreshAds();
// tracking
if (typeof window.parent.postMessage !== ‘undefined’) {
parent.postMessage(“encaction”, “*”); // `*` on any domain
}
});
}
else
{
$post_content.removeClass(‘loading’).html(this_result.find(‘#post_content’).children());
this_result.find(‘#post_content > script’).appendTo(‘#post_content’);
if (currentPageUrl == pageLen + 1) {
// hide regular partner ads and show different IDs for tracking
jQuery(‘.js-footer-zerg:eq(0)’).css({‘height’: 0, ‘width’: 0, ‘overflow’: ‘hidden’});
} else {
jQuery(‘.js-footer-zerg:eq(0)’).css({
‘height’: ‘auto’,
‘width’: ‘auto’,
‘overflow’: ‘visible’
});
}
setTimeout(function () {
loadTheSlider();
}, 1000);
refreshAds();
// tracking
if (typeof window.parent.postMessage !== ‘undefined’) {
parent.postMessage(“encaction”, “*”); // `*` on any domain
}
}
}, ‘html’);
/*
jQuery.get(‘http://wegotthiscovered.com/testvido.html’, qparams, function (result) {
var this_result = jQuery(result);
$post_content.removeClass(‘loading’).html(this_result);
// this_result.find(‘#post_content > script’).appendTo(‘#post_content’);
if (currentPageUrl == pageLen + 1) {
// hide regular partner ads and show different IDs for tracking
jQuery(‘.js-footer-zerg:eq(0)’).css({‘height’: 0, ‘width’: 0, ‘overflow’: ‘hidden’});
} else {
jQuery(‘.js-footer-zerg:eq(0)’).css({‘height’: ‘auto’, ‘width’: ‘auto’, ‘overflow’: ‘visible’});
}
setTimeout(function () {
loadTheSlider();
}, 1000);
CMNUNT.refreshAds();
// tracking
if (typeof window.parent.postMessage !== ‘undefined’) {
parent.postMessage(“encaction”, “*”); // `*` on any domain
}
}, ‘html’);*/
}
};
if (typeof jwplayer == ‘function’)
{
if($vid_short_code.length > 0) {
var address_href = window.location.pathname;
var address_array = address_href.split(“https://wegotthiscovered.com/”);
var final_array = address_array[address_array.length-2];
var not_numeric = isNaN(final_array);
if(not_numeric != true) { $vid_short_code.css( “display”, “none” ); }
}
var playerInstance = jwplayer(0);
var playerContainerEl = document.querySelector(‘.wgtc-post-video’);
function getElementOffsetTop(el) {
var boundingClientRect = el.getBoundingClientRect();
var bodyEl = document.body;
var docEl = document.documentElement;
var scrollTop = window.pageYOffset || docEl.scrollTop || bodyEl.scrollTop;
var clientTop = docEl.clientTop || bodyEl.clientTop || 0;
return Math.round(boundingClientRect.top + scrollTop – clientTop +700);
}
function getScrollTop() {
var docEl = document.documentElement;
return (window.pageYOffset || docEl.scrollTop) – (docEl.clientTop || 0);
}
var config = playerInstance.getConfig();
var utils = playerInstance.utils;
// get height of player element
// var playerHeight = config.containerHeight;
// get player element position from top of document
var playerOffsetTop = getElementOffsetTop(playerContainerEl);
// set player container to match height of actual video element
// this prevents container from disappearing and changing element positions
// on page when player becomes minimized. this also leaves a nice visual
// placeholder space for minimized player to return to when appropriate
// playerContainerEl.style.height = playerHeight + ‘px’;
// below we handle window scroll event without killing performance
// this is a minimal approach. please consider implementing something more extensive:
// i.e. http://joji.me/en-us/blog/how-to-develop-high-performance-onscroll-event
// determine player display when scroll event is called
// if inline player is no longer visible in viewport, add class
// .player-minimize to minimize and float. otherwise, remove the class to put
// player back to inline inline position
function onScrollViewHandler() {
var minimize = getScrollTop() >= playerOffsetTop;
if (!is_mobile()) {
// utils.toggleClass(playerContainerEl, ‘player-minimize’, minimize);
}
// update the player’s size so the controls are adjusted
// playerInstance.resize();
}
// namespace for whether or not we are waiting for setTimeout() to finish
var isScrollTimeout = false;
// window onscroll event handler
window.onscroll = function() {
// skip if we’re waiting on a scroll update timeout to finish
if (isScrollTimeout) return;
// flag that a new timeout will begin
isScrollTimeout = true;
// otherwise, call scroll event view handler
onScrollViewHandler();
// set new timeout
setTimeout(function() {
// reset timeout flag to false (no longer waiting)
isScrollTimeout = false;
}, 80);
};
}
});
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = “expires=”+d.toUTCString();
document.cookie = cname + “=” + cvalue + “; ” + expires + “; path=/”;
}
function getCookie(cname) {
var name = cname + “=”;
var ca = document.cookie.split(‘;’);
for(var i=0; i
var gallerySlideCount = jQuery(‘.gallery-slider .slider-list li’).length;
gallerySlider = jQuery(‘.gallery-slider .slider-list’).bxSlider({
adaptiveHeight: true,
preloadImages: ‘all’,
pagerCustom: ‘#thumbnails’,
mode:’fade’,
prevText:”,
nextText:”,
nextSelector:’.control.next’,
prevSelector:’.control.prev’,
onSliderLoad: function (currentIndex) {
var slideCount = gallerySlideCount;
/* lazy loading */
var direction = 1;
var $sliderImgs = jQuery(“.slider-list li img”);
var $curImg = $sliderImgs.eq(currentIndex);
if ($curImg && $curImg.hasClass(‘lazy’)) {
$curImg.attr(‘src’, $curImg.data(‘src’)).one(‘load’, function () {
jQuery(this).removeClass(‘lazy’);
gallerySlider.reloadSlider();
});
}
var $nextImg = $sliderImgs.eq(currentIndex+direction);
if ($nextImg && $nextImg.hasClass(‘lazy’)) {
$nextImg.attr(‘src’, $nextImg.data(‘src’)).one(‘load’, function () {
jQuery(this).removeClass(‘lazy’);
});
}
/* end lazy loading */
jQuery(‘.js-image-count’).html( (currentIndex+1) + ‘ of ‘ + slideCount );
jQuery(‘.gallery-slider .gallery-slider-wrap’).css(‘height’, ‘auto’);
if(currentIndex > 0) {
changeHash(currentIndex);
}
if (currentIndex == 0) {
jQuery(‘.control.prev’).hide();
} else {
jQuery(‘.control.prev’).show();
}
jQuery(‘.caption-item[data-index=’+currentIndex+’]’).show();
},
onSlideBefore: function (ele, oI, nI) {
var slideCount = gallerySlideCount;
/* lazy loading */
var direction = nI – oI;
var $sliderImgs = jQuery(“.slider-list li img”);
var $curImg = $sliderImgs.eq(nI);
if ($curImg.hasClass(‘lazy’)) {
$curImg.attr(‘src’, $curImg.data(‘src’)).one(‘load’, function () {
jQuery(this).removeClass(‘lazy’);
gallerySlider.resizeSlider();
});
}
var $nextImg = $sliderImgs.eq(nI+direction);
if ($nextImg && $nextImg.hasClass(‘lazy’)) {
$nextImg.attr(‘src’, $nextImg.data(‘src’)).one(‘load’, function () {
jQuery(this).removeClass(‘lazy’);
gallerySlider.resizeSlider();
});
}
/* end lazy loading */
jQuery(‘.js-image-count’).html( (nI+1) + ‘ of ‘ + slideCount );
var galleryOffset = jQuery(ele).parents(‘.gallery-wrap’).offset().top – 50;
if (galleryOffset) {
jQuery(‘html, body’).animate({scrollTop: galleryOffset+’px’}, 600);
}
if(nI > 0) {
changeHash(nI);
} else {
changeHash(”);
}
if ((oI+1) == slideCount && (nI+1) == (slideCount-1)) {
// _gaq.push([‘_trackEvent’, ‘GalBackLastPage’, ‘clickEvent’, ‘Went back on gallery last page’]);
// ga(‘send’, ‘event’,’GalBackLastPage’ , ‘clickEvent’, ‘Went back on gallery last page’);
}
if (nI == 0) {
jQuery(‘.control.prev’).hide();
} else {
jQuery(‘.control.prev’).show();
}
jQuery(‘.caption-item’).hide();
jQuery(‘.caption-item[data-index=’+nI+’]’).show();
/*
CMNUNT.refreshAds([
‘ads-desktop-btf-leaderboard’,
‘ads-desk-square-1’,
‘ads-desk-square-2’,
‘cmn_ad_toolbar’,
‘top’,
‘ads-mobile-square-1’,
‘ads-mobile-square-2’,
‘ads-mobile-square-3’,
‘ads-mobile-square-4’,
‘ads-mobile-square-end’,
‘toolbar’]);*/
refreshAds();
// tracking
if (typeof window.parent.postMessage !== ‘undefined’) {
parent.postMessage(“encaction”,”*”); // `*` on any domain
}
}
});
}
}
function refreshAds () {
if ( WGTCADS.isMobile ) {
freestar.freestarReloadAdSlot([
“wegotthiscovered_300x250_incontent”,
“wegotthiscovered_300x600_300x250_Sidebar_4”,
“wegotthiscovered_728x90_970x250_970x90_320x50_ATF”,
“wegotthiscovered_300x250_incontent_2”,
“wegotthiscovered_728x90_320x50_Adhesion”,
“wegotthiscovered_300x250_Mobile_Footer”,
“freestar-slot-footer-ad”
]);
} else {
cpmstarAPI({
kind:”refresh”,
data:{
modules:[
“sidebar1”,
“sidebar2”,
“sidebar3”,
“sidebar4”,
“atf”,
“728x90adhesion”
]
}
});
}
}
function changeHash( index ){
var pushAddress, hashnohash;
if (index == ”) {
window.history.pushState({},””, ‘https://’ + window.location.hostname + window.location.pathname);
pushAddress = location.pathname + location.search + ‘wgtc-gallery/’;
} else {
window.location.hash = index;
hashnohash = window.location.hash.substr(1);
pushAddress = location.pathname + location.search + ‘wgtc-gallery/’ + hashnohash + “https://wegotthiscovered.com/”;
}
//pushAddress = addressValue.replace(/^.*\/\/[^\/]+/, ”).substr(1);
gtag(‘config’, ‘UA-17178859-1’, {
“page_path”: pushAddress
});
}