ADVERTISEMENT

A review of 'American Born Chinese'

Published May 30, 2023 01:54 pm


Adapted from the graphic novel of the same name by Gene Luen Yang, American Born Chinese is about, well, a lot of things. There’s the life of Jin (played by Ben Wang), a high schooler, and the aforementioned American Born Chinese, who dreams of living a good, normal life. Maybe get into the soccer team, or better yet, be a soccer star and have a great girlfriend. You know, the usual teenager dreams. His parents however are old-school Chinese parents who came over to the States in search of a better life, and while they work hard and mean well, their old-timey ways and attitudes often clash with Jin’s Americanized sensibilities. Alongside this is the story of the son of the Monkey King, (Yes, the Monkey King of legend himself) who is trying to prevent a takeover of Heaven by the evil forces of the Bull Demon. It is part coming-of-age story, part immigrant story, and part saving the world story. Despite trying to being so many things, though, the show mostly balances all these aspects well. There’s something to be said as well about living in two worlds, as Jin does trying to embrace the ways of his American peers and still honor and stay in touch with his Chinese roots. There is also a parallel with the Monkey King’s son balancing being between worlds, having come from the divine realm to earth in his mission to stop the Bull Demon, but the show doesn’t really touch on that as much which is a shame. There is a certain 80’s or late 90’s vibe to the show, particularly with the aesthetic choices and the depiction of the Chinese gods and other divine beings. The costumes, make-up and even the sets seem to be intentional throwbacks to the yesteryears of Chinese movies. While that may be amusing to some, younger audiences may find it odd. There is a sense that the creators wanted to celebrate the tropes that defined that sub-genre of movies, but also update them, and that is most obvious with the martial arts sequences. When it comes to the fight scenes, the action can get fast-paced, and is often cleverly shot. The kung fu benefits from modern camera techniques, giving the often over-the-top wirework that is a signature of Chinese action cinema a sort of hard hitting grace. The tone of the show is very light, perhaps too light at times. Think of Shang Chi, but for the adolescent teen set. It is after all very difficult to feel a real, serious threat from the looming overthrowing and destruction of the divine realm when your lead character is running around doing embarrassing things for what is essentially a hazing for newbie soccer players. If the more serious side of the show were given more weight, it would have made the story more compelling. For a show targeting younger audiences, it is the adult actors that give solid performances. Daniel Wu (Into the Badlands, Tomb Raider), Chin Han (Mortal Kombat, Captain America: Winter Soldier) and Yeo Yann (9th Pricinct, Havoc) all play their parts with intensity and aplomb. The show’s big draws, however are, of course, Academy Award Winners Michelle Yeoh and Ke Huy Quan. Yeoh plays the Goddess of Mercy, Guanyin, a role she is perfect for, and inhabits effortlessly. Quan’s role as a retired actor feels like a sidebar to the main story. It intersects, but is not really essential. Overall, the show has enough to keep the viewer intrigued and waiting for the next chapter.
ADVERTISEMENT
.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1561_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1562_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1563_widget.title }}

{{ articles_filter_1564_widget.title }}

.mb-article-details { position: relative; } .mb-article-details .article-body-preview, .mb-article-details .article-body-summary{ font-size: 17px; line-height: 30px; font-family: "Libre Caslon Text", serif; color: #000; } .mb-article-details .article-body-preview iframe , .mb-article-details .article-body-summary iframe{ width: 100%; margin: auto; } .read-more-background { background: linear-gradient(180deg, color(display-p3 1.000 1.000 1.000 / 0) 13.75%, color(display-p3 1.000 1.000 1.000 / 0.8) 30.79%, color(display-p3 1.000 1.000 1.000) 72.5%); position: absolute; height: 200px; width: 100%; bottom: 0; display: flex; justify-content: center; align-items: center; padding: 0; } .read-more-background a{ color: #000; } .read-more-btn { padding: 17px 45px; font-family: Inter; font-weight: 700; font-size: 18px; line-height: 16px; text-align: center; vertical-align: middle; border: 1px solid black; background-color: white; } .hidden { display: none; }
function initializeAllSwipers() { // Get all hidden inputs with cms_article_id document.querySelectorAll('[id^="cms_article_id_"]').forEach(function (input) { const cmsArticleId = input.value; const articleSelector = '#article-' + cmsArticleId + ' .body_images'; const swiperElement = document.querySelector(articleSelector); if (swiperElement && !swiperElement.classList.contains('swiper-initialized')) { new Swiper(articleSelector, { loop: true, pagination: false, navigation: { nextEl: '#article-' + cmsArticleId + ' .swiper-button-next', prevEl: '#article-' + cmsArticleId + ' .swiper-button-prev', }, }); } }); } setTimeout(initializeAllSwipers, 3000); const intersectionObserver = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { const newUrl = entry.target.getAttribute("data-url"); if (newUrl) { history.pushState(null, null, newUrl); let article = entry.target; // Extract metadata const author = article.querySelector('.author-section').textContent.replace('By', '').trim(); const section = article.querySelector('.section-info ').textContent.replace(' ', ' '); const title = article.querySelector('.article-title h1').textContent; // Parse URL for Chartbeat path format const parsedUrl = new URL(newUrl, window.location.origin); const cleanUrl = parsedUrl.host + parsedUrl.pathname; // Update Chartbeat configuration if (typeof window._sf_async_config !== 'undefined') { window._sf_async_config.path = cleanUrl; window._sf_async_config.sections = section; window._sf_async_config.authors = author; } // Track virtual page view with Chartbeat if (typeof pSUPERFLY !== 'undefined' && typeof pSUPERFLY.virtualPage === 'function') { try { pSUPERFLY.virtualPage({ path: cleanUrl, title: title, sections: section, authors: author }); } catch (error) { console.error('ping error', error); } } // Optional: Update document title if (title && title !== document.title) { document.title = title; } } } }); }, { threshold: 0.1 } ); function showArticleBody(button) { const article = button.closest("article"); const summary = article.querySelector(".article-body-summary"); const body = article.querySelector(".article-body-preview"); const readMoreSection = article.querySelector(".read-more-background"); // Hide summary and read-more section summary.style.display = "none"; readMoreSection.style.display = "none"; // Show the full article body body.classList.remove("hidden"); } document.addEventListener("DOMContentLoaded", () => { let loadCount = 0; // Track how many times articles are loaded const offset = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // Offset values const currentUrl = window.location.pathname.substring(1); let isLoading = false; // Prevent multiple calls if (!currentUrl) { console.log("Current URL is invalid."); return; } const sentinel = document.getElementById("load-more-sentinel"); if (!sentinel) { console.log("Sentinel element not found."); return; } function isSentinelVisible() { const rect = sentinel.getBoundingClientRect(); return ( rect.top < window.innerHeight && rect.bottom >= 0 ); } function onScroll() { if (isLoading) return; if (isSentinelVisible()) { if (loadCount >= offset.length) { console.log("Maximum load attempts reached."); window.removeEventListener("scroll", onScroll); return; } isLoading = true; const currentOffset = offset[loadCount]; window.loadMoreItems().then(() => { let article = document.querySelector('#widget_1690 > div:nth-last-of-type(2) article'); intersectionObserver.observe(article) loadCount++; }).catch(error => { console.error("Error loading more items:", error); }).finally(() => { isLoading = false; }); } } window.addEventListener("scroll", onScroll); });

Sign up by email to receive news.