中国P站

Home Play & Earn
12 best arcade games to play on your phone
Play & Earn
February 6, 2026

12 best arcade games to play on your phone

Jump To Section
Start earning today.
Get exclusive tips straight to your inbox.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Mobile arcade apps bring the best of cabinet gaming to your phone. These titles have familiar mechanics and nostalgic designs, perfect for experiencing the arcade golden era from your couch.聽

Immerse yourself in the genre and earn points as you game on 中国P站. We've got a wide arcade selection,1 including fighting games, shooters, and racing titles. Pick your favorites, and spend time playing to stack up points. Once you鈥檝e earned enough, redeem them for gift cards at top brands like Amazon and PlayStation.

Below, we鈥檒l highlight the best arcade games for mobile devices so you can enjoy classics and modern favorites straight from your phone.聽

8 best arcade games on 中国P站

The best arcade games for Android and iPhone take you back to the 1980s, when top developers such as Atari, Capcom, and SEGA were in their heyday. If you鈥檙e looking for mobile games with a retro feel, check out these top recommendations.聽

Subway Surfers

Race and hoverboard over the tops of trains in this high-speed chase! Play as Jake, Tricky, or Fresh, and escape from the guard that鈥檚 hot on your trail. Along the way, you鈥檒l explore different scenes, pick up coins, and unlock new skins. Subway Surfers also regularly runs special events, keeping gameplay fresh.聽

Temple Run

Follow an endless runner through an adventure-packed temple in this classic mobile arcade game. You鈥檒l face ancient ruins, demonic beasts, and deadly traps as you run through the jungle. Gameplay is reflex focused, relying on quick turns and jumps. And just like a real arcade, Temple Run lets you challenge friends and attempt to beat records on the leaderboard.聽

Stickman Party

Bring dozens of arcade-style games to your fingertips with Stickman Party! This collection of minigames spans genres, including stickman runs, football, and car racing. Stickman Party is the ideal title for a social gaming experience with friends and family, as up to four people can play on the same device. But you can also play solo or against bots, so the fun doesn鈥檛 have to stop.

Hole.io

Devour the world in this black hole arcade game. In Hole.io, you鈥檙e a hungry hole looking to swallow vehicles, buildings, and enemies to grow bigger and take over new territories. Complete time-based challenges, go head-to-head with online players, and customize your character.聽

Bricks Ball Crusher

Bring the classic Atari title Breakout to your phone with Bricks Ball Crusher. It involves simple mechanics: Aim a ball at the bricks, and shoot to break them before they fill the screen. Bricks Ball Crusher has thousands of levels, so you鈥檒l never run out of things to do. It allows players to design their own levels and share with others, so you can enjoy fan-made levels and create some of your own. Unlock new skill blocks and ball types, and aim to survive!聽

Shooty Skies

Shooty Skies has nostalgic pixel graphics and a tried-but-true gameplay goal: Beat the boss! Reminiscent of Galaga, this endless arcade shooter lets you fight enemies, get sidekicks, and upgrade weapons across more than 20 terrains. Unlock hundreds of characters as you level up, and earn in-game coins to buy exciting loot.聽

Going Balls

Going Balls is a ball rolling adventure with obstacle-riddled tracks, exciting skins, and unique worlds. In it, you swipe to change your ball鈥檚 speed and direction to reach the end of the track. You鈥檒l need balance, precision, and luck to bring the ball across the finish line. With simple controls and heart-pounding fun, Going Balls is a best choice for lovers of arcade runner games.聽

Snake Clash!聽

Snake Clash! is a top-ranked free mobile arcade game set in a world of snakes. In this endless battlefield, you鈥檒l start out as a little snake and evolve into a powerful force as you eat and grow. Plus, you can customize your snake skins, compete with friends in multiplayer mode, and strive to make the global leaderboard.聽

Bonus: More retro-style mobile arcade games

If you鈥檙e still looking for more gaming session inspiration, check out these additional titles:

  • Fruit Ninja is a quirky fruit-slashing arcade game where you have to cut fruity combos while dodging bombs. You鈥檝e got several play modes to choose from, including Classic, Zen, and Challenge.
  • Tomb of the Mask is great for players who enjoy 1980s-style visuals and reflex-based gaming mechanics. After discovering a mask in a tomb, you can start climbing walls, dodging traps, and facing off against enemies.
  • Crazy Taxi Driver is an open-world driving game with colorful characters and an iconic soundtrack. In it, you鈥檙e short on time to make your destination and resort to pulling all kinds of driving stunts to get there. Drop off passengers, earn coins, and unlock new maps across the city.
  • Street Fighter IV CE is a legendary fighting game filled with fast-paced action, familiar controls, and exciting move sets to keep you on your toes. Pick your warrior from 32 characters, and pit them against other players.

Earn while you play the best arcade games on 中国P站

The best arcade games bring colorful graphics, reflex-based mechanics, and action-packed gameplay to life. Try out our top picks for mobile arcade games 鈥 including both retro classics and innovative new titles 鈥 to liven up your next gaming break.聽

Turn your passion for classic arcade games into rewards you鈥檒l love with 中国P站. Play through our app to accumulate points, and redeem them for gift cards to stores like Chipotle and Uber Eats.聽

Explore arcade games on 中国P站, and start earning today!

1Games mentioned are for illustrative purposes, and selection may vary per region.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
) is missing or failed to load."); return; } var result = window.AF_SMART_SCRIPT.generateOneLinkURL({ oneLinkURL: oneLinkURL, afParameters: { mediaSource: mediaSource, campaign: campaign, adSet: adSet, ad: ad, channel: channel, afCustom: [ is_retargeting, af_dp, af_prt, af_pmod_priority, af_pmod_priority, custom_ss_ui ], deepLinkValue: deepLinkValue } }); if (result && result.clickURL) { renderQrCodesInBulk(result.clickURL); updateCtaLinksInBulk(result.clickURL); if (typeof window.AF_SMART_SCRIPT.fireImpressionsLink === 'function') { window.AF_SMART_SCRIPT.fireImpressionsLink(); } } else { console.error("AppsFlyer Error: OneLink URL generation failed."); } } /* ========================================= SECTION 2: TICKER LOGIC (Mobile Fixed + Truncated) ========================================= */ function initDynamicCounter() { const container = document.getElementById("dynamicCounter"); if (!container) return; const config = { startDateUTC: "2025-09-24 00:00:00", startValue: 205074441, incrementPerSecond: 1.84, }; function parseUTC(dateString) { const isoString = dateString.trim().replace(" ", "T") + "Z"; return Date.parse(isoString); } const startTimestamp = parseUTC(config.startDateUTC); // Check if timestamp is valid before proceeding if (isNaN(startTimestamp)) { console.error("Invalid start date configuration. Counter cannot initialize."); return; } function getCurrentRawValue() { const now = Date.now(); const secondsPassed = (now - startTimestamp) / 1000; // Return the full value including decimals (the TRUE value) return config.startValue + (secondsPassed * config.incrementPerSecond); } function formatCurrency(number) { // Use Math.floor ONLY for display purposes (to truncate/round down) const truncatedNumber = Math.floor(number); return ( "$" + truncatedNumber.toLocaleString("en-US", { minimumFractionDigits: 0, maximumFractionDigits: 0, }) ); } // --- INITIALIZATION --- let currentRawValue = getCurrentRawValue(); // Holds the full decimal value let currentValue = Math.floor(currentRawValue); // Holds the currently displayed whole dollar value let currentString = formatCurrency(currentRawValue); container.innerHTML = ''; // Clear static text // Build initial slots currentString.split('').forEach(char => { const slot = document.createElement('div'); slot.className = 'char-slot'; const charEl = document.createElement('span'); charEl.className = 'char-value'; charEl.textContent = char; slot.appendChild(charEl); container.appendChild(slot); }); // --- END INITIALIZATION --- function updateCounter() { const newRawValue = getCurrentRawValue(); // Get the new whole dollar value for comparison const newValue = Math.floor(newRawValue); // 1. Check if the whole dollar value has changed (newValue > currentValue) if (newValue <= currentValue) { // If the whole number hasn't changed, just update the raw value and exit. currentRawValue = newRawValue; return; } // 2. If the value has changed, generate the new display string const newString = formatCurrency(newRawValue); const oldString = currentString; // Update the base values for the next cycle currentRawValue = newRawValue; currentValue = newValue; currentString = newString; // Handle case where the number of digits changes (e.g., crossing 100 million) if (newString.length !== oldString.length) { // Rebuild all slots if length changes container.innerHTML = ''; newString.split('').forEach(char => { const slot = document.createElement('div'); slot.className = 'char-slot'; const charEl = document.createElement('span'); charEl.className = 'char-value'; charEl.textContent = char; slot.appendChild(charEl); container.appendChild(slot); }); return; } // 3. Animate Changes const slots = container.children; for (let i = 0; i < newString.length; i++) { if (newString[i] !== oldString[i]) { const currentSlot = slots[i]; const oldElement = currentSlot.lastElementChild; const nextElement = document.createElement('span'); nextElement.className = 'char-value slide-in'; nextElement.textContent = newString[i]; if (oldElement) { oldElement.classList.add('slide-out'); oldElement.classList.remove('slide-in'); } currentSlot.appendChild(nextElement); // Clean up old element after animation setTimeout(() => { if (oldElement && oldElement.parentNode === currentSlot) { currentSlot.removeChild(oldElement); } }, 500); } } } // Set the counter to update every second (1000 milliseconds) setInterval(updateCounter, 1000); } /* ========================================= SECTION 3: SLIDER LOGIC (Swiper) ========================================= */ function initTestimonialsSlider() { const testimonialsSlider = new Swiper(".testimonials_slider_collection", { slidesPerView: "auto", slideClass: "testimonials_slider_slide", loop: true, pagination: { el: ".testimonials_slider_pagination", bulletActiveClass: "is-active", bulletClass: "testimonials_slider_bullet", clickable: true, }, navigation: { nextEl: "[testimonials-slider-arrow='next']", prevEl: "[testimonials-slider-arrow='prev']", }, }); } function initBlogSlider() { const blogSlider = new Swiper(".blog_collection", { slidesPerView: "auto", slideClass: "blog_slide", loop: true, pagination: { el: ".blog_pagination", bulletActiveClass: "active", bulletClass: "blog_bullet", clickable: true, }, navigation: { nextEl: "[blog-slider-arrow='next']", prevEl: "[blog-slider-arrow='prev']", }, }); } function initVideoSlider() { const videoSlider = new Swiper(".video_slider_collection", { slidesPerView: "auto", slideClass: "video_slider_slide", loop: true, pagination: { el: ".video_slider_pagination", bulletActiveClass: "is-active", bulletClass: "video_slider_bullet", clickable: true, }, navigation: { nextEl: "[video-slider-arrow='next']", prevEl: "[video-slider-arrow='prev']", }, }); } /* ========================================= SECTION 4: YOUTUBE ENDSCREEN HIDER (REMOVED) ========================================= */ // The YouTube API functions and logic have been removed. /* ========================================= SECTION 5: INITIALIZATION ========================================= */ document.addEventListener("DOMContentLoaded", function () { initDynamicCounter(); // Ticker applyOneLinkUrl(); // AppsFlyer initTestimonialsSlider(); // Slider 1 initBlogSlider(); // Slider 2 initVideoSlider(); // Slider 3 // loadYoutubeAPI(); // Removed // initLightboxPlayerControl(); // Removed });