PixelRunner: Oldschool Edition
PixelRunner (wcześniej znana jako DSHRunner, następnie PixelRunner: Oldschool Edition) to darmowa gra mobilna i desktopowa typu endless runner, stworzona przez Shieldziaka pod marką DashoGames. Jest to pierwsza gra oficjalnie wydana pod tym brandem.

- Gatunek: Endless runner
- Deweloper: Shieldziak / DashoGames
- Silnik: Unreal Engine 5 (początkowo 5.1, obecnie 5.6)
- Platformy: Windows, Linux, Android (Google Play — konto zbanowane, dostępna jako APK)
- Model płatności: Całkowicie darmowa — brak reklam i mikropłatności
- Okres produkcji: 2022–2025
- Obecna wersja: v.5.1.2
Historia
Gra powstała jako projekt edukacyjny Shieldziaka — służyła do nauki silnika Unreal Engine oraz podstaw kodowania w systemie Blueprints. Napisana niemal w 100% w Blueprintach, bez tradycyjnego kodu. Przez lata ewoluowała od prostego runnera na Androida (pod nazwą DSHRunner) do pełnoprawnej gry multiplatformowej dostępnej przez Pioza Launcher.
Pierwotnie gra była dostępna w Google Play, jednak konto DashoGames zostało zbanowane i tytuł zniknął ze sklepu. Na Androida można ją nadal zainstalować jako APK.
Rozgrywka

PixelRunner to klasyczny endless runner — gracz biegnie bez końca, unika przeszkód i zbiera monety. Nie ma etapów ani poziomów, celem jest jak najdłuższe przeżycie i zdobywanie waluty. Gra jest single player. Kiedyś na Androidzie dostępny był globalny scoreboard przez Google Play Games, jednak funkcja ta nie jest już aktywna.
Skiny

Skiny podzielone są na kilka kolekcji:
People
- Cyberpunk

- City Girl

- Hipster

- Gigachad

EkipaDSH
- Somek

- Kiemon

- Drifcior

- Shieldziak

- Mefiu

Monsters
- Ghoul

- Zombie

8-bit
- Cowboy

Visitor
- Visitor

Muzyka

Muzyka podzielona jest na następujące tiery:
Common

- Default Theme (Common | Darmowe zawsze)
- Dancefloor (Synth! | 200 Coins)
- To Hagi Łagi… (To on! | 200 Coins)
Seasonal

- Christmas Theme (Ho ho ho! | 100 Coins | Darmowe podczas zimy)
- Halloween Theme (Spooky… | 100 Coins | Darmowe podczas Halloween)
Rare


- Beta Theme (Hardbass | 2 DSHCoins)
- Haunted Universe (Chiptune 8-bit | 3 DSHCoins)
- 8-bit Stars (Chiptune 8-bit | 400 Coins)
- Christmas Drill (Drill! | 400 Coins)
- Secret… (Shhh… | 800 Coins)
Legendary

- “Ahh Ahh… (Remix)” (Reactive | 600 Coins)
- Indihomepacket (Phoenix! | 2 DSHCoins)
- Phonk Theme (Dum Dum… | 5 DSHCoins)
Mapy

Mapy odblokowywane są za materiały budowlane (drewno, metal, kamień):
- Concert Hall

- Christmas Winter
- Storage House
- Underwater
Waluty i ekonomia

Gra posiada własny system walut i zasobów:
| Waluta | Jak zdobyć | Na co wydać |
|---|---|---|
| Coin | Zbieranie podczas biegu | Skiny, pakiety muzyczne |
| DSHCoin | Bardzo rzadkie, pojawiają się w grze (wcześniej: mikropłatności i reklamy) | Materiały budowlane, rzadkie skiny |
| Drewno | Za DSHCoiny | Odblokowanie map |
| Metal | Za DSHCoiny | Odblokowanie map |
| Kamień | Za DSHCoiny | Odblokowanie map |
Dostępne są również pakiety muzyczne do kupienia za Coiny i DSHCoiny, rozszerzające ścieżkę dźwiękową gry.
Minimalne wymagania (Windows)
| Parametr | Wymaganie |
|---|---|
| System | Windows 10 64-bit (wersja 1703 lub nowsza) |
| Procesor | Czterordzeniowy Intel lub AMD, 2,5 GHz lub wyższy |
| RAM | 8 GB |
| Karta graficzna | Kompatybilna z DirectX 11 |
Dostępność
Gra dostępna jest przez Pioza Launcher na Windows i Linux. Wersja na Androida dostępna jako APK (poza Google Play).
Szczegóły techniczne z powstawania projektu (komentarz twórcy)
Wydajność
Gra PixelRunner: Oldschool Edition początkowo powstawała jako szybki prototyp gry typu Subway Surfers. Nie miał być on niczym więcej jak prostym konceptem tego jak mógłby wyglądać gotowy projekt, jednak przez brak doświadczenia postanowiłem na nim zbudować kompletną grę. Miało to swoje konsekwencje jakimi była katastrofalna wydajność gry na urządzeniach mobilnych.
Blueprinty w Unreal Engine nie są zbyt wydajne przy wykonywaniu wielu operacji na klatkę, a system spawnowania kafelków świata polegał na szybkim losowaniu ich wariantów i despawnowaniu konkretnych obiektów w zależności od losowej liczby. Rozłożenie tych operacji na kilka klatek wymagałoby przepisania całego systemu kafelków co też finalnie zrobiłem. Niestety szybko napotkałem na kolejny rażący problem – budżet GPU. Tworzenie wysokowydajnych gier mobilnych przypomina trochę tworzenie gier na konsole, z tym że nie mamy ściśle określonego dolnego pułapu sprzętu jaki gra musi wspierać. Ta dowolność szybko staje się przekleństwem kiedy zaczniemy optymalizować grę pod konkretne urządzenia docelowe. Ja miałem to szczęście że do dyspozycji miałem kilka starych smartfonów oraz znajomych do pomocy przy określaniu jak płynnie gra finalnie będzie działać.
Rozmiar pakietu
Pierwsza faza tworzenia projektu trwała ok. rok i pozwoliła mi poznać architekturę silnika Unreal Engine oraz sposób w jaki przebiega pakowanie gier na Androida. Jest ono nieco inne niż na PC gdyż nie możemy używać nowych technik kompresji tekstur Oodle, ani Nanite czy Lumen. Początkowo w wersjach Unreal Engine przed 5.1 nie było nawet SM5 na Androidzie i należało ściśle kierować grę na api OpenGL ES3.1 oraz Vulkan. To zwiększało rozmiar pakietu, czas pakowania i skomplikowanie paczki końcowej która dla sklepu Google Play od 2021r. musi być w formacie .aab lub .apk pod warunkiem że aplikacja używała go wcześniej. Unreal dalej nie wspiera natywnie w Blueprintach w poprawny sposób dynamicznego ładowania plików .pak. To bardzo istotne gdyż pozwoliło by mi wprowadzić dynamiczne pobieranie skinów i utworów muzycznych podczas ich odblokowywania i zaoszczędzić ok. 200MB miejsca na telefonie gracza, co jak na grę mobilną jest jak na wagę złota i może decydować czy ktoś zdecyduje się zostawić grę na swoim urządzeniu czy nie.
W tym celu początkowo próbowałem użyć mechanizmu Google PAD (skrót. Google Play Asset Delivery) dostępnego jako plugin w silniku. Powstał on prawdopodobnie pod jedną z gier Epic Games i nigdy nie został poprawnie dostosowany do nowszych wersji silnika i Androida, a zmuszenie go do działania sprawiało znaczne trudności. Jako alternatywę możemy użyć Mobile Patching Utilities (chciałem tu wkleić link od jego dokumentacji, ale od wersji 5.1 została ona usunięta), jeszcze innego rozwiązania stworzonego przez Epic w czasach gdy Android ich jeszcze obchodził. Do dziś używa go prawdopodobnie Fortnite i udało mi się go zmusić do działania w wersjach dystrybuowanych przez Google Play.
