Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ce407214ee | ||
|
|
f45899c5a9 | ||
|
|
c0a750f3ea | ||
|
|
876a6fc564 | ||
|
|
c7e962db9a | ||
|
|
17e79c3a43 | ||
|
|
3e2666bb2e | ||
|
|
e991e97dd5 | ||
|
|
7853000e5e | ||
|
|
9ced2a7008 | ||
|
|
39ae858a27 | ||
|
|
ceefe812cb | ||
|
|
07400f5308 | ||
|
|
b9e30f101b | ||
|
|
5d6a6063ec | ||
|
|
a87e445dcd | ||
|
|
1119b9f830 | ||
|
|
49ab59723d | ||
|
|
e95c344647 | ||
|
|
b8ac82f9a7 | ||
|
|
d860395853 | ||
|
|
0eea159a88 | ||
|
|
a145bd3aeb | ||
|
|
cc27f7b279 | ||
|
|
c7653e46a0 | ||
|
|
9f90d88277 | ||
|
|
89e9b188cd | ||
|
|
b67337b094 | ||
|
|
f1ec9c94d5 | ||
|
|
8630f9fec2 | ||
|
|
a5dfc5bd4a | ||
|
|
9170f56597 | ||
|
|
5b4c89377d | ||
|
|
4d8388d38b | ||
|
|
cb4e695706 | ||
|
|
98d81a299f | ||
|
|
fcf210b765 | ||
|
|
b69f7e24c3 | ||
|
|
ff1c95197c | ||
|
|
16ef0575b6 | ||
|
|
7e905b98e1 | ||
|
|
07d0ebf1a4 | ||
|
|
684f31545b | ||
|
|
ef1d389301 | ||
|
|
9673ad66b8 | ||
|
|
afca004822 | ||
|
|
cdabb1bfb7 | ||
|
|
e284d41b3f | ||
|
|
adde740a4f | ||
|
|
0e7112e56f | ||
|
|
e8001492bf | ||
|
|
ed9798b7d7 | ||
|
|
dff3d99855 | ||
|
|
73bce2f73f | ||
|
|
eed910f3df | ||
|
|
53e93e95af | ||
|
|
a885231b7e | ||
|
|
58e22d9cdf | ||
|
|
c4731ba1ed | ||
|
|
d8525e0459 | ||
|
|
c742f637b3 | ||
|
|
af7b31e691 | ||
|
|
b5f1ae4411 | ||
|
|
223221bb43 | ||
|
|
5e1a981926 | ||
|
|
6579f2d498 | ||
|
|
39467359bf | ||
|
|
c72924e58b | ||
|
|
efc0d1c14b | ||
|
|
8022425ced | ||
|
|
d0088575bf | ||
|
|
1010275178 | ||
|
|
02992ccb7c | ||
|
|
4e7d4fa070 | ||
|
|
c9538e43e8 | ||
|
|
f5d2ba4248 | ||
|
|
30b129854a | ||
|
|
aaa0fa214b | ||
|
|
66206a3d5f | ||
|
|
62f71eb299 | ||
|
|
a20c799dd5 | ||
|
|
ac978145d3 | ||
|
|
1aee98a621 | ||
|
|
903633b60a | ||
|
|
af472a5316 | ||
|
|
d375034cf0 | ||
|
|
1f7d29bfea | ||
|
|
b8082ce86f | ||
|
|
8ce2d554ed | ||
|
|
8daa2ad700 | ||
|
|
34663b95f9 | ||
|
|
5e8c06200d | ||
|
|
74178b2d88 | ||
|
|
95b2c2715a | ||
|
|
f9e1908cbf | ||
|
|
30324b53e2 | ||
|
|
62e6e01bc1 | ||
|
|
ec28cb46fa |
No files matched your search
@@ -0,0 +1,122 @@
|
||||
name: catalog
|
||||
|
||||
# Every night, and from Run workflow: the importers read what Pegasus and SuperPSX changed, the new
|
||||
# games are filled from the PlayStation Store (IGDB when it lacks something), and what changed since
|
||||
# main's last commit goes to catalog-update.json on the "catalog" branch, which the app downloads.
|
||||
# main itself is never written: a release folds the update into the build's own catalog.
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 2 * * *" # 04:00 in Italy in summer, 03:00 in winter
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
concurrency:
|
||||
group: catalog
|
||||
cancel-in-progress: false
|
||||
|
||||
defaults:
|
||||
run:
|
||||
shell: bash # -e and pipefail: a tool that fails fails the run, even before a filter
|
||||
|
||||
jobs:
|
||||
update:
|
||||
runs-on: ubuntu-24.04
|
||||
timeout-minutes: 300
|
||||
env:
|
||||
CACHES: /home/runner/catalog-caches
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: "3.12"
|
||||
|
||||
- name: Install Pillow (the new games' tint)
|
||||
run: pip install --disable-pip-version-check pillow
|
||||
|
||||
# What the last run read: the sites' pages and feeds, and the store's answers. Without it the
|
||||
# run reads everything again (about an hour), and nothing goes wrong.
|
||||
- name: Restore the caches
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ env.CACHES }}
|
||||
key: catalog-caches-${{ github.run_id }}
|
||||
restore-keys: catalog-caches-
|
||||
|
||||
- name: Read Pegasus
|
||||
run: python -P tools/import-pegasus.py fetch --cache "$CACHES/pegasus"
|
||||
|
||||
- name: Read SuperPSX
|
||||
run: python -P tools/import-superpsx.py crawl --scope all --incremental --cache "$CACHES/superpsx"
|
||||
|
||||
- name: Import
|
||||
run: |
|
||||
python -P tools/import-pegasus.py import --new --write --cache "$CACHES/pegasus" | sed '/^ new:/d'
|
||||
python -P tools/import-superpsx.py import --scope catalog --new --write --cache "$CACHES/superpsx" \
|
||||
| sed '/twin of\|shown again/d'
|
||||
|
||||
- name: Fill in the new games
|
||||
env:
|
||||
IGDB_CLIENT_ID: ${{ secrets.IGDB_CLIENT_ID }}
|
||||
IGDB_CLIENT_SECRET: ${{ secrets.IGDB_CLIENT_SECRET }}
|
||||
run: python -P tools/enrich-catalog.py --since HEAD --write --cache "$CACHES/enrich" | sed '/looked up/d'
|
||||
|
||||
- name: Mark the VR games
|
||||
env:
|
||||
IGDB_CLIENT_ID: ${{ secrets.IGDB_CLIENT_ID }}
|
||||
IGDB_CLIENT_SECRET: ${{ secrets.IGDB_CLIENT_SECRET }}
|
||||
run: python -P tools/vr-games.py --write --cache "$CACHES/enrich"
|
||||
|
||||
- name: Save the caches
|
||||
if: always()
|
||||
uses: actions/cache/save@v4
|
||||
with:
|
||||
path: ${{ env.CACHES }}
|
||||
key: catalog-caches-${{ github.run_id }}
|
||||
|
||||
# Against the latest published release: the players' catalog is that release's, and the app
|
||||
# applies an update only when it is its own version (app/state/catalog-update.js).
|
||||
- name: Write the update
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
tag=$(gh release view --repo "${{ github.repository }}" --json tagName --jq .tagName)
|
||||
git fetch -q --depth 1 origin "refs/tags/$tag:refs/tags/$tag"
|
||||
python -P tools/catalog-update.py --base "$tag" --version "${tag#v}" --out "$RUNNER_TEMP/catalog-update.json"
|
||||
|
||||
# One commit on an orphan branch, replaced each night: the branch never grows. Nothing is pushed
|
||||
# when only the date changed.
|
||||
- name: Publish it
|
||||
env:
|
||||
TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
set -e
|
||||
if [ ! -f "$RUNNER_TEMP/catalog-update.json" ]; then
|
||||
echo "no update written: nothing to publish"
|
||||
exit 0
|
||||
fi
|
||||
out="$RUNNER_TEMP/publish"
|
||||
git init -q -b catalog "$out"
|
||||
cp "$RUNNER_TEMP/catalog-update.json" "$out/"
|
||||
cd "$out"
|
||||
remote="https://x-access-token:$TOKEN@github.com/${{ github.repository }}"
|
||||
if git fetch -q --depth 1 "$remote" catalog 2>/dev/null; then
|
||||
git show FETCH_HEAD:catalog-update.json > "$RUNNER_TEMP/published.json"
|
||||
if python - "$RUNNER_TEMP/published.json" catalog-update.json <<'EOF'
|
||||
import json, sys
|
||||
old, new = (json.load(open(path, encoding="utf-8")) for path in sys.argv[1:])
|
||||
old.pop("generated", None); new.pop("generated", None)
|
||||
sys.exit(0 if old == new else 1)
|
||||
EOF
|
||||
then
|
||||
echo "nothing changed since the last update"
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
git add catalog-update.json
|
||||
git -c user.name="github-actions[bot]" -c user.email="41898282+github-actions[bot]@users.noreply.github.com" \
|
||||
commit -q -m "catalog update"
|
||||
git push -q -f "$remote" catalog
|
||||
echo "published: https://raw.githubusercontent.com/${{ github.repository }}/catalog/catalog-update.json"
|
||||
@@ -43,11 +43,12 @@
|
||||
|
||||
## Features
|
||||
|
||||
- **1,800+ games** to discover, with **Top rated**, **New releases** and a featured spotlight
|
||||
- **1,800+ games** to discover, with **Top rated**, a hand-picked row and a featured spotlight
|
||||
- **Homebrew**: native PS5 apps and games from the community catalog at [prosperostore.net](https://prosperostore.net/), always up to date, installed from each developer's GitHub release
|
||||
- **Browse the whole library** with filters, sorting, scores and download sizes at a glance
|
||||
- **Downloads straight to the console**, to internal storage or any USB drive, with live speed and storage stats
|
||||
- **Favorites**, **search** with an on-screen keyboard, and a **Files** page to see and clean up what's on your drives
|
||||
- **13 languages**: English, Deutsch, Español, Français, Português (Brasil), Русский, Bahasa Indonesia, 日本語, 简体中文, العربية, اردو, हिन्दी, বাংলা
|
||||
- **18 languages**: English, Deutsch, Español, Français, Italiano, Nederlands, Português (Brasil), Português (Portugal), Русский, Bahasa Indonesia, 日本語, 简体中文, 繁體中文, العربية, فارسی, اردو, हिन्दी, বাংলা
|
||||
- **Updates itself**: a new version installs from the console, no PC needed
|
||||
- Made for the controller: <kbd>L1</kbd> <kbd>R1</kbd> to switch sections, <kbd>✕</kbd> to select, <kbd>○</kbd> to go back
|
||||
|
||||
@@ -157,6 +158,22 @@ Overdrive is free and open source. If you enjoy it, sponsoring helps me keep it
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><b>Overdrive opens but the page doesn't load</b></summary>
|
||||
<br>
|
||||
|
||||
The copy of `Overdrive.exfat` on the console is damaged. This usually happens when it is copied
|
||||
through a USB drive. Deleting the app's folders doesn't help: Overdrive creates them again at
|
||||
every start.
|
||||
|
||||
1. Delete `Overdrive.exfat` from the `homebrew` folder, then its icon from the home screen.
|
||||
2. Download `Overdrive.exfat` again from the
|
||||
[latest release](https://github.com/MyLuxy/overdrive/releases/latest).
|
||||
3. Copy it to the console with [PS5Upload](https://github.com/phantomptr/ps5upload) instead of a
|
||||
USB drive, and check that its size on the console matches the downloaded file's.
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><b>After an update, the app still shows the old version</b></summary>
|
||||
<br>
|
||||
@@ -320,9 +337,11 @@ Nothing else in the framework is changed.
|
||||
|
||||
## Credits
|
||||
|
||||
- **[MyLuxy](https://github.com/MyLuxy)**, who decompiled Overdrive, recovered its source and rebuilt it.
|
||||
- **[MyLuxy](https://github.com/MyLuxy)**, current maintainer, who decompiled Overdrive, recovered its source and rebuilt it.
|
||||
- **[ps5-react](https://github.com/half144/ps5-react)**, the framework it runs on.
|
||||
- **[ShadowMount+](https://github.com/drakmor/ShadowMountPlus)** by drakmor, which installs it.
|
||||
- **[kstuff](https://github.com/EchoStretch/kstuff-lite)** by EchoStretch, the kernel payload that lets the console run homebrew and the games it installs.
|
||||
- **[PS5 Homebrew Catalog](https://github.com/darkxex/ps5-homebrew-catalog)** by darkxex, the store API behind the Homebrew section, and every developer listed in it.
|
||||
|
||||
`ps5-react/` is GPL-3.0-or-later and carries its own `LICENSE`, `LICENSE-ATTRIBUTION` and
|
||||
`NOTICE`. Every dependency notice is copied into `notices/` inside the built app, and
|
||||
|
||||
@@ -43,11 +43,12 @@
|
||||
|
||||
## Возможности
|
||||
|
||||
- **Более 1800 игр** для поиска, с подборками **«Лучшие по оценкам»**, **«Новые релизы»** и отдельной рекомендованной игрой
|
||||
- **Более 1800 игр** для поиска, с подборкой **«Лучшие по оценкам»**, рядом избранных игр и отдельной рекомендованной игрой
|
||||
- **Хоумбрю**: нативные приложения и игры для PS5 из каталога сообщества [prosperostore.net](https://prosperostore.net/), всегда актуальные, устанавливаются из релизов разработчиков на GitHub
|
||||
- **Просмотр всей библиотеки** с фильтрами, сортировкой, оценками и размерами загрузок — всё видно сразу
|
||||
- **Загрузка прямо на консоль** — во внутренний накопитель или на любой USB-накопитель, со скоростью и занятым местом в реальном времени
|
||||
- **Избранное**, **поиск** с экранной клавиатурой и страница **«Файлы»**, где видно, что лежит на накопителях, и можно это почистить
|
||||
- **13 языков**: английский, немецкий, испанский, французский, португальский (Бразилия), русский, индонезийский, японский, китайский (упрощённый), арабский, урду, хинди, бенгальский
|
||||
- **16 языков**: английский, немецкий, испанский, французский, итальянский, нидерландский, португальский (Бразилия), русский, индонезийский, японский, китайский (упрощённый), арабский, персидский, урду, хинди, бенгальский
|
||||
- **Обновляется сам**: новая версия устанавливается прямо с консоли, без компьютера
|
||||
- Сделано под геймпад: <kbd>L1</kbd> <kbd>R1</kbd> — переключение разделов, <kbd>✕</kbd> — выбрать, <kbd>○</kbd> — назад
|
||||
|
||||
@@ -159,6 +160,22 @@ Overdrive бесплатный и с открытым исходным кодо
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><b>Overdrive открывается, но страница не загружается</b></summary>
|
||||
<br>
|
||||
|
||||
Копия `Overdrive.exfat` на консоли повреждена. Обычно это происходит при копировании через
|
||||
USB-накопитель. Удаление папок приложения не помогает: Overdrive создаёт их заново при каждом
|
||||
запуске.
|
||||
|
||||
1. Удалите `Overdrive.exfat` из папки `homebrew`, затем его значок с главного экрана.
|
||||
2. Скачайте `Overdrive.exfat` заново из
|
||||
[последнего релиза](https://github.com/MyLuxy/overdrive/releases/latest).
|
||||
3. Скопируйте его на консоль через [PS5Upload](https://github.com/phantomptr/ps5upload), а не через
|
||||
USB-накопитель, и проверьте, что размер файла на консоли совпадает с размером скачанного.
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><b>После обновления приложение всё ещё показывает старую версию</b></summary>
|
||||
<br>
|
||||
@@ -282,6 +299,8 @@ Linux:
|
||||
- **[MyLuxy](https://github.com/MyLuxy)** — декомпилировал Overdrive, восстановил его исходный код и собрал заново.
|
||||
- **[ps5-react](https://github.com/half144/ps5-react)** — фреймворк, на котором всё работает.
|
||||
- **[ShadowMount+](https://github.com/drakmor/ShadowMountPlus)** от drakmor — устанавливает приложение.
|
||||
- **[kstuff](https://github.com/EchoStretch/kstuff-lite)** от EchoStretch — пейлоад ядра, благодаря которому консоль запускает хоумбрю и установленные игры.
|
||||
- **[PS5 Homebrew Catalog](https://github.com/darkxex/ps5-homebrew-catalog)** от darkxex — API магазина для раздела «Хоумбрю», и все разработчики, которые в нём есть.
|
||||
|
||||
`ps5-react/` распространяется под GPL-3.0-or-later и содержит собственные `LICENSE`,
|
||||
`LICENSE-ATTRIBUTION` и `NOTICE`. Все уведомления о зависимостях копируются в `notices/` внутри
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
"render": { "width": 1920, "height": 1080 },
|
||||
"surface": { "width": 1920, "height": 1080 },
|
||||
"refreshRate": 60,
|
||||
"textFonts": ["chinese", "japanese", "bengali", "devanagari", "arabic"],
|
||||
"textFonts": ["chinese", "chinese-traditional", "japanese", "bengali", "devanagari", "arabic"],
|
||||
"resources": ["data/releases", "data/pages", "i18n/locales"],
|
||||
"filesystemAccess": "console",
|
||||
"networking": true,
|
||||
|
||||
|
After Width: | Height: | Size: 517 B |
|
After Width: | Height: | Size: 440 B |
|
After Width: | Height: | Size: 375 B |
|
After Width: | Height: | Size: 454 B |
|
After Width: | Height: | Size: 373 B |
|
After Width: | Height: | Size: 431 B |
|
After Width: | Height: | Size: 360 B |
|
After Width: | Height: | Size: 454 B |
|
After Width: | Height: | Size: 375 B |
|
After Width: | Height: | Size: 371 B |
|
After Width: | Height: | Size: 487 B |
|
After Width: | Height: | Size: 390 B |
|
After Width: | Height: | Size: 421 B |
|
After Width: | Height: | Size: 505 B |
|
After Width: | Height: | Size: 470 B |
|
After Width: | Height: | Size: 456 B |
|
After Width: | Height: | Size: 539 B |
|
After Width: | Height: | Size: 386 B |
@@ -0,0 +1,56 @@
|
||||
// "Recently added": the games the catalog's importers added last (state/catalog.js addedAt), so a
|
||||
// player sees the library grow. Its title opens the library sorted the same way. Games added before
|
||||
// 2026-10-21 carry no date and never show here; with none, the row is not shown.
|
||||
|
||||
import { jsx } from 'react/jsx-runtime';
|
||||
import { memo, useState } from 'react';
|
||||
import { GameRail } from './GameRail.jsx';
|
||||
import { games } from '../data/catalog.js';
|
||||
import { useT } from '../i18n/index.js';
|
||||
import { NO_FILTERS, addedAt, sortGames } from '../state/catalog.js';
|
||||
import { useNavActions } from '../state/nav.jsx';
|
||||
import { useStoreActions } from '../state/store.jsx';
|
||||
import { GameCard } from '../ui/GameCard.jsx';
|
||||
import { ART_AHEAD, FIRST_ART } from './GameRail.jsx';
|
||||
import { RowCard, useRowWindow, useSectionShown } from './near.js';
|
||||
|
||||
var WIDTH = 152;
|
||||
var COUNT = 25;
|
||||
var ADDED = sortGames(games.filter((game) => addedAt(game) && game.art.cover), "added").slice(0, COUNT);
|
||||
var AddedRail = (0, memo)(function AddedRail2() {
|
||||
const t2 = useT();
|
||||
const { openGame, focusLater } = useNavActions();
|
||||
const { setFilters, setQuery, setSort } = useStoreActions();
|
||||
// Covers load only up to a few cards past the furthest one reached, as in the other rows.
|
||||
const [reach, setReach] = (0, useState)(FIRST_ART);
|
||||
const row = useRowWindow();
|
||||
useSectionShown(ADDED.length > 0);
|
||||
if (!ADDED.length) return null;
|
||||
const seeAll = () => {
|
||||
setFilters(NO_FILTERS);
|
||||
setQuery("");
|
||||
setSort("added");
|
||||
focusLater("catalog:sort");
|
||||
};
|
||||
return /* @__PURE__ */ (0, jsx)(GameRail, { title: t2("browse.recentlyAdded"), onSeeAll: seeAll, seeAllKey: "added:all", children: ADDED.map((game, index) => {
|
||||
const key = `added:${game.id}`;
|
||||
return /* @__PURE__ */ (0, jsx)(RowCard, { far: row.far(index), children: /* @__PURE__ */ (0, jsx)(
|
||||
GameCard,
|
||||
{
|
||||
game,
|
||||
width: WIDTH,
|
||||
detailed: true,
|
||||
focusKey: key,
|
||||
rowEnd: index === ADDED.length - 1,
|
||||
deferArt: index >= reach,
|
||||
onFocus: () => {
|
||||
setReach((count) => Math.max(count, index + ART_AHEAD));
|
||||
row.reached(index);
|
||||
},
|
||||
onPress: () => openGame(game.id, key)
|
||||
}
|
||||
) }, game.id);
|
||||
}) });
|
||||
});
|
||||
|
||||
export { AddedRail };
|
||||
@@ -5,12 +5,14 @@ import '../assets/Inter-Regular.ttf';
|
||||
import '../assets/JetBrainsMono-Regular.ttf';
|
||||
import { Fragment, jsx, jsxs } from 'react/jsx-runtime';
|
||||
import { memo, useState } from 'react';
|
||||
import { AddedRail } from './AddedRail.jsx';
|
||||
import { Catalog } from './Catalog.jsx';
|
||||
import { CdnRail } from './CdnRail.jsx';
|
||||
import { ContinueRow } from './ContinueRow.jsx';
|
||||
import { FilterDrawer } from './FilterDrawer.jsx';
|
||||
import { GenreRail } from './GenreRail.jsx';
|
||||
import { PageHints } from './PageHints.jsx';
|
||||
import { FocusedSection, NearSection } from './near.js';
|
||||
import { PopularRail } from './PopularRail.jsx';
|
||||
import { RecentRow } from './RecentRow.jsx';
|
||||
import { Spotlight } from './Spotlight.jsx';
|
||||
@@ -46,17 +48,20 @@ import { FocusScope, ScrollView, Text, View } from '@ps5-react/core';
|
||||
var Sections = (0, memo)(function Sections2({ onOpenFilters }) {
|
||||
const onAction = useFavoriteAction();
|
||||
return /* @__PURE__ */ (0, jsx)(FocusScope, { trap: true, onAction, children: /* @__PURE__ */ (0, jsxs)(ScrollView, { style: { flex: 1, gap: 60, paddingHorizontal: 48 }, children: [
|
||||
/* @__PURE__ */ (0, jsxs)(View, { scrollAnchor: true, style: { gap: 24, paddingTop: 36 }, children: [
|
||||
/* @__PURE__ */ (0, jsx)(FocusedSection, {}),
|
||||
// Each section keeps its images in use only while focus is in it or the next one (near.js).
|
||||
/* @__PURE__ */ (0, jsx)(NearSection, { index: 0, children: /* @__PURE__ */ (0, jsxs)(View, { scrollAnchor: true, style: { gap: 24, paddingTop: 36 }, children: [
|
||||
/* @__PURE__ */ (0, jsx)(FolderInstallNotice, {}),
|
||||
/* @__PURE__ */ (0, jsx)(Spotlight, {})
|
||||
] }),
|
||||
/* @__PURE__ */ (0, jsx)(PopularRail, {}),
|
||||
/* @__PURE__ */ (0, jsx)(CdnRail, {}),
|
||||
/* @__PURE__ */ (0, jsx)(ContinueRow, {}),
|
||||
/* @__PURE__ */ (0, jsx)(RecentRow, {}),
|
||||
/* @__PURE__ */ (0, jsx)(TopCharts, {}),
|
||||
/* @__PURE__ */ (0, jsx)(GenreRail, {}),
|
||||
/* @__PURE__ */ (0, jsx)(Catalog, { onOpenFilters }),
|
||||
] }) }),
|
||||
/* @__PURE__ */ (0, jsx)(NearSection, { index: 1, children: /* @__PURE__ */ (0, jsx)(PopularRail, {}) }),
|
||||
/* @__PURE__ */ (0, jsx)(NearSection, { index: 2, children: /* @__PURE__ */ (0, jsx)(AddedRail, {}) }),
|
||||
/* @__PURE__ */ (0, jsx)(NearSection, { index: 3, children: /* @__PURE__ */ (0, jsx)(CdnRail, {}) }),
|
||||
/* @__PURE__ */ (0, jsx)(NearSection, { index: 4, children: /* @__PURE__ */ (0, jsx)(ContinueRow, {}) }),
|
||||
/* @__PURE__ */ (0, jsx)(NearSection, { index: 5, children: /* @__PURE__ */ (0, jsx)(RecentRow, {}) }),
|
||||
/* @__PURE__ */ (0, jsx)(NearSection, { index: 6, children: /* @__PURE__ */ (0, jsx)(TopCharts, {}) }),
|
||||
/* @__PURE__ */ (0, jsx)(NearSection, { index: 7, children: /* @__PURE__ */ (0, jsx)(GenreRail, {}) }),
|
||||
/* @__PURE__ */ (0, jsx)(NearSection, { index: 8, children: /* @__PURE__ */ (0, jsx)(Catalog, { onOpenFilters }) }),
|
||||
/* @__PURE__ */ (0, jsx)(Footer, {})
|
||||
] }) });
|
||||
});
|
||||
|
||||
@@ -6,6 +6,7 @@ import cdnCard from '../assets/cdn-card.png';
|
||||
import { Fragment, jsx, jsxs } from 'react/jsx-runtime';
|
||||
import { memo } from 'react';
|
||||
import { GameRail } from './GameRail.jsx';
|
||||
import { RowCard, useRowWindow, useSectionShown } from './near.js';
|
||||
import { games } from '../data/catalog.js';
|
||||
import { useT } from '../i18n/index.js';
|
||||
import { CDN_HOST, NO_FILTERS, onCdn, sortGames } from '../state/catalog.js';
|
||||
@@ -45,6 +46,8 @@ import { Image, Text, View, motion, useIsFocused } from '@ps5-react/core';
|
||||
var CdnRail = (0, memo)(function CdnRail2() {
|
||||
const { openGame, focusLater } = useNavActions();
|
||||
const { setFilters, setQuery } = useStoreActions();
|
||||
const row = useRowWindow();
|
||||
useSectionShown(SERVED.length > 0);
|
||||
if (!SERVED.length) return null;
|
||||
const browse = () => {
|
||||
setFilters({ ...NO_FILTERS, provider: [CDN_HOST] });
|
||||
@@ -55,7 +58,7 @@ import { Image, Text, View, motion, useIsFocused } from '@ps5-react/core';
|
||||
/* @__PURE__ */ (0, jsx)(View, { focusKey: "cdn:card", onPress: browse, children: /* @__PURE__ */ (0, jsx)(CollectionCard, {}) }),
|
||||
SERVED.map((game, index) => {
|
||||
const key = `cdn:${game.id}`;
|
||||
return /* @__PURE__ */ (0, jsx)(
|
||||
return /* @__PURE__ */ (0, jsx)(RowCard, { far: row.far(index), children: /* @__PURE__ */ (0, jsx)(
|
||||
GameCard,
|
||||
{
|
||||
game,
|
||||
@@ -63,10 +66,10 @@ import { Image, Text, View, motion, useIsFocused } from '@ps5-react/core';
|
||||
detailed: true,
|
||||
focusKey: key,
|
||||
rowEnd: index === SERVED.length - 1,
|
||||
onFocus: () => row.reached(index),
|
||||
onPress: () => openGame(game.id, key)
|
||||
},
|
||||
game.id
|
||||
);
|
||||
}
|
||||
) }, game.id);
|
||||
})
|
||||
] });
|
||||
});
|
||||
|
||||
@@ -5,6 +5,7 @@ import '../assets/Inter-Regular.ttf';
|
||||
import { Fragment, jsx, jsxs } from 'react/jsx-runtime';
|
||||
import { memo } from 'react';
|
||||
import { GameRail } from './GameRail.jsx';
|
||||
import { useSectionShown } from './near.js';
|
||||
import { WAITING, shownState, stateLabel } from '../downloads/labels.js';
|
||||
import { fractionOf, useJobs, useProgress } from '../downloads/useQueue.js';
|
||||
import { formatPercent2 } from '../i18n/core.js';
|
||||
@@ -38,6 +39,7 @@ import { Text, View, useIsFocused } from '@ps5-react/core';
|
||||
const { jobs } = useJobs();
|
||||
const { push, openGame } = useNavActions();
|
||||
const entries2 = jobs.filter((job2) => UNFINISHED.includes(job2.state)).map((job2) => ({ job: job2, game: getGame(job2.gameId) })).filter((entry2) => entry2.game);
|
||||
useSectionShown(entries2.length > 0);
|
||||
if (!entries2.length) return null;
|
||||
return /* @__PURE__ */ (0, jsx)(
|
||||
GameRail,
|
||||
|
||||
@@ -6,7 +6,7 @@ import { Fragment, jsx, jsxs } from 'react/jsx-runtime';
|
||||
import { memo, useRef, useState } from 'react';
|
||||
import { formatNumber2 } from '../i18n/core.js';
|
||||
import { useT } from '../i18n/index.js';
|
||||
import { FACETS, activeCount, facetCounts, facetTitle, filterGames, optionLabel } from '../state/catalog.js';
|
||||
import { FACETS, activeCount, facetSummary, facetTitle, optionLabel } from '../state/catalog.js';
|
||||
import { useNavActions } from '../state/nav.jsx';
|
||||
import { useStore } from '../state/store.jsx';
|
||||
import { Button2 } from '../ui/Button.jsx';
|
||||
@@ -69,11 +69,10 @@ import { AnimatePresence, FocusScope, ScrollView, Text, View, useIsFocused } fro
|
||||
/* @__PURE__ */ (0, jsx)(Text, { style: focused ? { fontFamily: "Inter-Regular", fontSize: 21, color: "#f2f2f3", lineHeight: 30 } : { fontFamily: "Inter-Regular", fontSize: 21, color: "#a3a3ab", lineHeight: 30 }, children: t2("filters.clearFacet") })
|
||||
] });
|
||||
}
|
||||
function Facet({ facet, store, autoFocus }) {
|
||||
function Facet({ facet, store, counts, autoFocus }) {
|
||||
const t2 = useT();
|
||||
const [expanded, setExpanded] = (0, useState)(false);
|
||||
const { focusLater } = useNavActions();
|
||||
const counts = facetCounts(store, facet);
|
||||
const picked = store.filters[facet.key];
|
||||
const tiles = facet.options.length <= TILE_LIMIT;
|
||||
const folded = !tiles && !expanded && facet.options.length > PILL_LIMIT;
|
||||
@@ -119,7 +118,7 @@ import { AnimatePresence, FocusScope, ScrollView, Text, View, useIsFocused } fro
|
||||
const { filters, clearFilters } = store;
|
||||
const { focusLater } = useNavActions();
|
||||
const count = activeCount(filters);
|
||||
const total = filterGames(store).length;
|
||||
const { total, counts } = facetSummary(store);
|
||||
const opened = (0, useRef)(JSON.stringify(filters));
|
||||
const close = () => {
|
||||
if (JSON.stringify(filters) !== opened.current) focusLater("catalog:filters");
|
||||
@@ -136,7 +135,7 @@ import { AnimatePresence, FocusScope, ScrollView, Text, View, useIsFocused } fro
|
||||
/* @__PURE__ */ (0, jsx)(Text, { style: { fontFamily: "Inter-Regular", fontSize: 21, color: "#a3a3ab", lineHeight: 30 }, children: t2("catalog.gameCount", { count: total }) })
|
||||
] }),
|
||||
/* @__PURE__ */ (0, jsxs)(ScrollView, { style: { marginHorizontal: -24, flex: 1, paddingHorizontal: 24 }, children: [
|
||||
FACETS.map((facet, index) => /* @__PURE__ */ (0, jsx)(Facet, { facet, store, autoFocus: index === 0 }, facet.key)),
|
||||
FACETS.map((facet, index) => /* @__PURE__ */ (0, jsx)(Facet, { facet, store, counts: counts[facet.key], autoFocus: index === 0 }, facet.key)),
|
||||
/* @__PURE__ */ (0, jsxs)(View, { style: { flexDirection: "row", gap: 18, paddingBottom: 36, paddingTop: 30 }, children: [
|
||||
count > 0 && /* @__PURE__ */ (0, jsx)(Button2, { variant: "secondary", size: "lg", label: t2("filters.clearAll"), onPress: () => {
|
||||
clearFilters();
|
||||
|
||||
@@ -20,6 +20,11 @@ import { FocusScope, ScrollView, Text, View, useIsFocused } from '@ps5-react/cor
|
||||
// the end looked for the nearest element across the whole page and could land at its top.
|
||||
var Arrow = ({ name }) => /* @__PURE__ */ (0, jsx)(View, { style: { width: 48, height: 48, alignItems: "center", justifyContent: "center", borderRadius: 14999, backgroundColor: "#17171a" }, children: /* @__PURE__ */ (0, jsx)(Icon, { name, size: 16, color: colors.muted, fixed: true }) });
|
||||
var LTR = { direction: "ltr" };
|
||||
// A long row loads the art of its first cards (about a screen and a half of them) and, as focus moves
|
||||
// along it, of the cards up to ART_AHEAD past the furthest one reached: every image in use stays in the
|
||||
// decoded cache, and forty covers per row pushed the rest of the app's images out of it.
|
||||
var FIRST_ART = 10;
|
||||
var ART_AHEAD = 8;
|
||||
function GameRail({ title, onSeeAll, seeAllKey, children }) {
|
||||
return /* @__PURE__ */ (0, jsxs)(View, { scrollAnchor: true, children: [
|
||||
/* @__PURE__ */ (0, jsxs)(View, { style: { marginBottom: 24, flexDirection: "row", alignItems: "center", justifyContent: "space-between" }, children: [
|
||||
@@ -33,4 +38,4 @@ import { FocusScope, ScrollView, Text, View, useIsFocused } from '@ps5-react/cor
|
||||
] });
|
||||
}
|
||||
|
||||
export { GameRail };
|
||||
export { ART_AHEAD, FIRST_ART, GameRail };
|
||||
@@ -4,6 +4,7 @@
|
||||
import '../assets/Inter-Regular.ttf';
|
||||
import { jsx, jsxs } from 'react/jsx-runtime';
|
||||
import { memo } from 'react';
|
||||
import { GENRE_ART } from './genre-art.js';
|
||||
import { useT } from '../i18n/index.js';
|
||||
import { genreLabel } from '../state/catalog.js';
|
||||
import { Cover } from '../ui/Cover.jsx';
|
||||
@@ -12,13 +13,15 @@ import { Icon } from '../ui/Icon.jsx';
|
||||
import { Shine } from '../ui/Shine.jsx';
|
||||
import { colors } from '../ui/colors.js';
|
||||
import { EASE_OUT } from '../ui/ease.js';
|
||||
import { Text, View, motion, useIsFocused } from '@ps5-react/core';
|
||||
import { Image, Text, View, motion, useIsFocused } from '@ps5-react/core';
|
||||
|
||||
var spread = { type: "tween", duration: 0.3, ease: EASE_OUT };
|
||||
var cover = { width: 126, height: 168, borderRadius: 12 };
|
||||
var side = { width: 113, height: 151, borderRadius: 12 };
|
||||
var front = { position: "absolute", left: 87, top: 24, zIndex: 10 };
|
||||
var OPEN = [-12.6, 12.6];
|
||||
// The sprite is drawn at the size it was baked at, centred in the space the covers take.
|
||||
var art = { position: "absolute", left: 78, top: 36, width: 144, height: 144 };
|
||||
function Fan({ covers }) {
|
||||
const focused = useIsFocused();
|
||||
return covers.slice(1).map(
|
||||
@@ -35,20 +38,21 @@ import { Text, View, motion, useIsFocused } from '@ps5-react/core';
|
||||
)
|
||||
);
|
||||
}
|
||||
var GenreCard = (0, memo)(function GenreCard2({ genre, count, covers, active: active2, onToggle }) {
|
||||
var GenreCard = (0, memo)(function GenreCard2({ genre, count, covers, index, active: active2, onToggle, onReach }) {
|
||||
const t2 = useT();
|
||||
return /* @__PURE__ */ (0, jsxs)(
|
||||
motion.View,
|
||||
{
|
||||
focusKey: `genre:${genre}`,
|
||||
onFocus: () => onReach?.(index),
|
||||
onPress: () => onToggle(genre),
|
||||
selected: active2,
|
||||
whileFocus: { y: -6 },
|
||||
transition: spread,
|
||||
style: (_state) => [{ width: 300, borderRadius: 18, backgroundColor: "#17171a", paddingHorizontal: 24, paddingBottom: 24, paddingTop: 216 }, active2 ? { backgroundColor: "#212125" } : null, _state.focused ? { backgroundColor: "#212125" } : null],
|
||||
children: [
|
||||
/* @__PURE__ */ (0, jsx)(Fan, { covers }),
|
||||
covers[0] && /* @__PURE__ */ (0, jsx)(Cover, { game: covers[0], style: [cover, front], label: false }),
|
||||
GENRE_ART[genre] ? /* @__PURE__ */ (0, jsx)(Image, { source: GENRE_ART[genre], resizeMode: "contain", style: art }) : /* @__PURE__ */ (0, jsx)(Fan, { covers }),
|
||||
!GENRE_ART[genre] && covers[0] && /* @__PURE__ */ (0, jsx)(Cover, { game: covers[0], style: [cover, front], label: false }),
|
||||
active2 && /* @__PURE__ */ (0, jsx)(View, { style: { position: "absolute", right: 18, top: 18, zIndex: 20, width: 36, height: 36, alignItems: "center", justifyContent: "center", borderRadius: 14999, backgroundColor: "#f2f2f3" }, children: /* @__PURE__ */ (0, jsx)(Icon, { name: "check", size: 14, strokeWidth: 3, color: colors.canvas }) }),
|
||||
/* @__PURE__ */ (0, jsx)(Text, { style: { fontFamily: "Inter-Regular", fontSize: 24, color: "#f2f2f3", lineHeight: 36 }, children: genreLabel(genre) }),
|
||||
/* @__PURE__ */ (0, jsx)(Text, { style: { fontFamily: "Inter-Regular", fontSize: 21, color: "#8a8a94", lineHeight: 30 }, children: t2("catalog.gameCount", { count }) }),
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
import { jsx, jsxs } from 'react/jsx-runtime';
|
||||
import { useState } from 'react';
|
||||
import { GenreCard } from './GenreCard.jsx';
|
||||
import { GENRE_ART } from './genre-art.js';
|
||||
import { RowCard, useRowWindow } from './near.js';
|
||||
import { games } from '../data/catalog.js';
|
||||
import { useT } from '../i18n/index.js';
|
||||
import { genres } from '../state/catalog.js';
|
||||
@@ -12,7 +14,8 @@ import { SectionHeader } from '../ui/SectionHeader.jsx';
|
||||
import { FocusScope, ScrollView, View } from '@ps5-react/core';
|
||||
|
||||
var used = /* @__PURE__ */ new Set();
|
||||
var RAIL = genres.map((genre) => ({ genre, matches: games.filter((game) => game.genres.includes(genre)).sort((a, b) => b.recommendations - a.recommendations) })).filter(({ matches }) => matches.length >= 3).sort((a, b) => b.matches.length - a.matches.length).map(({ genre, matches }) => {
|
||||
// Only the genres drawn in genre-art.js: one a catalog update grows past three games stays a filter, not a card.
|
||||
var RAIL = genres.filter((genre) => GENRE_ART[genre]).map((genre) => ({ genre, matches: games.filter((game) => game.genres.includes(genre)).sort((a, b) => b.recommendations - a.recommendations) })).filter(({ matches }) => matches.length >= 3).sort((a, b) => b.matches.length - a.matches.length).map(({ genre, matches }) => {
|
||||
const covers = [...matches.filter((game) => !used.has(game.id)), ...matches.filter((game) => used.has(game.id))].slice(0, 3);
|
||||
covers.forEach((game) => used.add(game.id));
|
||||
return { genre, count: matches.length, covers };
|
||||
@@ -22,22 +25,25 @@ import { FocusScope, ScrollView, View } from '@ps5-react/core';
|
||||
const { filters } = useStoreState();
|
||||
const { toggleFilter } = useStoreActions();
|
||||
const [toggleGenre] = (0, useState)(() => (genre) => toggleFilter("genre", genre));
|
||||
// Three covers a card: the cards far from where focus rests let theirs go.
|
||||
const row = useRowWindow();
|
||||
return /* @__PURE__ */ (0, jsxs)(View, { scrollAnchor: true, children: [
|
||||
/* @__PURE__ */ (0, jsx)(SectionHeader, { title: t2("browse.popularGenres") }),
|
||||
/* @__PURE__ */ (0, jsxs)(View, { style: { position: "relative", marginHorizontal: -9, marginVertical: -30 }, children: [
|
||||
// A row scope, like GameRail: Left and Right stop at the rail's ends.
|
||||
/* @__PURE__ */ (0, jsx)(FocusScope, { row: true, children: /* @__PURE__ */ (0, jsx)(ScrollView, { style: [{ flexDirection: "row", gap: 18, paddingHorizontal: 9, paddingVertical: 30 }, { direction: "ltr" }], children: RAIL.map(
|
||||
({ genre, count, covers }) => /* @__PURE__ */ (0, jsx)(
|
||||
({ genre, count, covers }, index) => /* @__PURE__ */ (0, jsx)(RowCard, { far: row.far(index), children: /* @__PURE__ */ (0, jsx)(
|
||||
GenreCard,
|
||||
{
|
||||
genre,
|
||||
count,
|
||||
covers,
|
||||
index,
|
||||
active: filters.genre.includes(genre),
|
||||
onToggle: toggleGenre
|
||||
},
|
||||
genre
|
||||
)
|
||||
onToggle: toggleGenre,
|
||||
onReach: row.reached
|
||||
}
|
||||
) }, genre)
|
||||
) }) }),
|
||||
/* @__PURE__ */ (0, jsx)(View, { style: { position: "absolute", top: 0, bottom: 0, right: 0, width: 96, backgroundGradient: { type: "linear", to: "right", stops: [{ color: "transparent", offset: 0 }, { color: "#000000", offset: 1 }] } } })
|
||||
] })
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// reconstructed from the esbuild bundle in eboot.bin
|
||||
|
||||
import { jsx } from 'react/jsx-runtime';
|
||||
import { memo } from 'react';
|
||||
import { memo, useState } from 'react';
|
||||
import { GameRail } from './GameRail.jsx';
|
||||
import { games } from '../data/catalog.js';
|
||||
import { useT } from '../i18n/index.js';
|
||||
@@ -11,16 +11,19 @@ import { FAMOUS, INDIE, picked, shuffle } from './picks.js';
|
||||
import { useNavActions } from '../state/nav.jsx';
|
||||
import { useStoreActions } from '../state/store.jsx';
|
||||
import { GameCard } from '../ui/GameCard.jsx';
|
||||
import { ART_AHEAD, FIRST_ART } from './GameRail.jsx';
|
||||
import { RowCard, useRowWindow } from './near.js';
|
||||
|
||||
var WIDTH4 = 152;
|
||||
// "You might like" (was the most popular, which only Archive.org's few games could reach): fifteen
|
||||
// "You might like" (was the most popular, which only Archive.org's few games could reach): 25
|
||||
// games, new on every launch, from the hand-picked famous and indie ones and the rest of the
|
||||
// catalog's games that have art and a genre, so the row always has something worth opening.
|
||||
var PICKS = 25;
|
||||
function selectPicks() {
|
||||
const famous = picked(games, FAMOUS).slice(0, 6);
|
||||
const indie = picked(games, INDIE).slice(0, 3);
|
||||
const famous = picked(games, FAMOUS).slice(0, 10);
|
||||
const indie = picked(games, INDIE).slice(0, 5);
|
||||
const chosen = new Set([...famous, ...indie]);
|
||||
const others = shuffle(games.filter((game) => !chosen.has(game) && game.art.cover && game.art.hero && game.genres.length)).slice(0, 15 - chosen.size);
|
||||
const others = shuffle(games.filter((game) => !chosen.has(game) && game.art.cover && game.art.hero && game.genres.length)).slice(0, PICKS - chosen.size);
|
||||
return shuffle([...famous, ...indie, ...others]);
|
||||
}
|
||||
var POPULAR = selectPicks();
|
||||
@@ -29,6 +32,10 @@ import { GameCard } from '../ui/GameCard.jsx';
|
||||
const t2 = useT();
|
||||
const { openGame, focusLater } = useNavActions();
|
||||
const { setFilters, setQuery, setSort } = useStoreActions();
|
||||
// Covers load only up to a few cards past the furthest one reached.
|
||||
const [reach, setReach] = (0, useState)(FIRST_ART);
|
||||
// And the ones far from where focus rests let theirs go.
|
||||
const row = useRowWindow();
|
||||
const seeAll = () => {
|
||||
setFilters(NO_FILTERS);
|
||||
setQuery("");
|
||||
@@ -37,7 +44,7 @@ import { GameCard } from '../ui/GameCard.jsx';
|
||||
};
|
||||
return /* @__PURE__ */ (0, jsx)(GameRail, { title: t2("browse.forYou"), onSeeAll: seeAll, seeAllKey: "popular:all", children: POPULAR.map((game, index) => {
|
||||
const key = `popular:${game.id}`;
|
||||
return /* @__PURE__ */ (0, jsx)(
|
||||
return /* @__PURE__ */ (0, jsx)(RowCard, { far: row.far(index), children: /* @__PURE__ */ (0, jsx)(
|
||||
GameCard,
|
||||
{
|
||||
game,
|
||||
@@ -45,10 +52,14 @@ import { GameCard } from '../ui/GameCard.jsx';
|
||||
detailed: true,
|
||||
focusKey: key,
|
||||
rowEnd: index === POPULAR.length - 1,
|
||||
deferArt: index >= reach,
|
||||
onFocus: () => {
|
||||
setReach((count) => Math.max(count, index + ART_AHEAD));
|
||||
row.reached(index);
|
||||
},
|
||||
onPress: () => openGame(game.id, key)
|
||||
},
|
||||
game.id
|
||||
);
|
||||
}
|
||||
) }, game.id);
|
||||
}) });
|
||||
});
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
import { jsx } from 'react/jsx-runtime';
|
||||
import { memo, useRef } from 'react';
|
||||
import { GameRail } from './GameRail.jsx';
|
||||
import { RowCard, useRowWindow, useSectionShown } from './near.js';
|
||||
import { useT } from '../i18n/index.js';
|
||||
import { getGame, listedId } from '../state/catalog.js';
|
||||
import { useNavActions, useNavState } from '../state/nav.jsx';
|
||||
@@ -19,11 +20,13 @@ import { GameCard } from '../ui/GameCard.jsx';
|
||||
const kept = (0, useRef)(recent2);
|
||||
if (shown) kept.current = recent2;
|
||||
const { openGame } = useNavActions();
|
||||
const row = useRowWindow();
|
||||
const games2 = [...new Set(kept.current.map(listedId))].map(getGame).filter(Boolean);
|
||||
useSectionShown(games2.length > 0);
|
||||
if (!games2.length) return null;
|
||||
return /* @__PURE__ */ (0, jsx)(GameRail, { title: t2("browse.recentlyViewed"), children: games2.map((game, index) => {
|
||||
const key = `recent:${game.id}`;
|
||||
return /* @__PURE__ */ (0, jsx)(
|
||||
return /* @__PURE__ */ (0, jsx)(RowCard, { far: row.far(index), children: /* @__PURE__ */ (0, jsx)(
|
||||
GameCard,
|
||||
{
|
||||
game,
|
||||
@@ -31,10 +34,10 @@ import { GameCard } from '../ui/GameCard.jsx';
|
||||
detailed: true,
|
||||
focusKey: key,
|
||||
rowEnd: index === games2.length - 1,
|
||||
onFocus: () => row.reached(index),
|
||||
onPress: () => openGame(game.id, key)
|
||||
},
|
||||
game.id
|
||||
);
|
||||
}
|
||||
) }, game.id);
|
||||
}) });
|
||||
});
|
||||
|
||||
|
||||
@@ -142,6 +142,8 @@ import { AnimatePresence, Image, Text, View, motion } from '@ps5-react/core';
|
||||
variant: "primary",
|
||||
size: "lg",
|
||||
label: t2("browse.viewGame"),
|
||||
// The plain ring of the page's other buttons, not the primary button's halo.
|
||||
halo: false,
|
||||
focusKey: "spotlight:cta",
|
||||
nextFocusUp: "nav:current",
|
||||
nextFocusDown: FIRST_POPULAR,
|
||||
|
||||
@@ -61,8 +61,8 @@ import { Text, View } from '@ps5-react/core';
|
||||
useT();
|
||||
const { openGame } = useNavActions();
|
||||
const show = useShowLibrary();
|
||||
// "See all" opens the library on that sort, as the header's section of the same name does.
|
||||
const seeAll = (id) => show(NO_FILTERS, id, "catalog:sort", { rating: "top", newest: "new" }[id] ?? "catalog");
|
||||
// "See all" opens Browse with the selected chart sorting, including Top rated.
|
||||
const seeAll = (id) => show(NO_FILTERS, id, "catalog:sort", "browse");
|
||||
return /* @__PURE__ */ (0, jsx)(View, { scrollAnchor: true, style: { marginBottom: -18, marginTop: -12, flexDirection: "row", gap: 48 }, children: CHARTS.map(
|
||||
(chart) => /* @__PURE__ */ (0, jsxs)(View, { style: { flex: 1 }, children: [
|
||||
/* @__PURE__ */ (0, jsx)(SectionHeader, { title: sortLabel(chart.id), onSeeAll: () => seeAll(chart.id) }),
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
// The genre cards' pixel art (tools/genre-sprites.py), baked into the app: a card that has one shows
|
||||
// it instead of three covers, so the rail loads no images. A genre without one keeps its covers.
|
||||
|
||||
import action from '../assets/genres/genre-action.png';
|
||||
import adventure from '../assets/genres/genre-adventure.png';
|
||||
import arcade from '../assets/genres/genre-arcade.png';
|
||||
import brain from '../assets/genres/genre-brain.png';
|
||||
import casual from '../assets/genres/genre-casual.png';
|
||||
import family from '../assets/genres/genre-family.png';
|
||||
import fighting from '../assets/genres/genre-fighting.png';
|
||||
import horror from '../assets/genres/genre-horror.png';
|
||||
import indie from '../assets/genres/genre-indie.png';
|
||||
import music from '../assets/genres/genre-music.png';
|
||||
import party from '../assets/genres/genre-party.png';
|
||||
import puzzle from '../assets/genres/genre-puzzle.png';
|
||||
import racing from '../assets/genres/genre-racing.png';
|
||||
import rpg from '../assets/genres/genre-rpg.png';
|
||||
import shooter from '../assets/genres/genre-shooter.png';
|
||||
import simulation from '../assets/genres/genre-simulation.png';
|
||||
import sport from '../assets/genres/genre-sport.png';
|
||||
import strategy from '../assets/genres/genre-strategy.png';
|
||||
|
||||
// By the catalog's genre names.
|
||||
var GENRE_ART = {
|
||||
Action: action,
|
||||
Adventure: adventure,
|
||||
Arcade: arcade,
|
||||
Casual: casual,
|
||||
Educational: brain,
|
||||
Family: family,
|
||||
Fighting: fighting,
|
||||
Horror: horror,
|
||||
Indie: indie,
|
||||
"Music/Rhythm": music,
|
||||
Party: party,
|
||||
Puzzle: puzzle,
|
||||
Racing: racing,
|
||||
RPG: rpg,
|
||||
Shooter: shooter,
|
||||
Simulation: simulation,
|
||||
Sport: sport,
|
||||
Strategy: strategy
|
||||
};
|
||||
|
||||
export { GENRE_ART };
|
||||
@@ -0,0 +1,77 @@
|
||||
// Which images the store front keeps in use. An image in use is never evicted from the decoded cache,
|
||||
// and the store front mounts every section and every card of its rows, so it held over a hundred images
|
||||
// at once: the cache stayed full and, with the Homebrew page's many small icons, the engine's image
|
||||
// registry ran out ("the engine image registry is full") and new covers never drew.
|
||||
//
|
||||
// Down the page, the section focus is in and the one above and below keep theirs; the rest let them go
|
||||
// (ReleaseImages: an image released stays cached until the room is needed, and one on screen at that
|
||||
// moment stays). A section with nothing to show (no recent games, no download to continue) is not
|
||||
// counted, so the one past it is still the next. Along a row, the cards near the one focus last rested
|
||||
// on keep theirs.
|
||||
|
||||
import { jsx } from 'react/jsx-runtime';
|
||||
import { createContext, useContext, useEffect, useState } from 'react';
|
||||
import { ReleaseImages, useFocus } from '@ps5-react/core';
|
||||
|
||||
// The sections in page order, by the prefix of their elements' focus keys.
|
||||
var SECTIONS = { spotlight: 0, popular: 1, added: 2, cdn: 3, continue: 4, recent: 5, chart: 6, genre: 7, card: 8, catalog: 8, chip: 8 };
|
||||
var NEAR = 1;
|
||||
var current = 0;
|
||||
var listeners = /* @__PURE__ */ new Set();
|
||||
var empty = /* @__PURE__ */ new Set();
|
||||
var notify = () => {
|
||||
for (const listener of listeners) listener(current);
|
||||
};
|
||||
// Where a section sits among the ones shown.
|
||||
var rank = (index) => index - [...empty].filter((other) => other < index).length;
|
||||
var SectionIndex = (0, createContext)(-1);
|
||||
// Rendered once by the page: follows focus and tells the sections, which re-render only when they turn
|
||||
// near or far. Focus elsewhere (the header, another screen) leaves the last section as it was.
|
||||
function FocusedSection() {
|
||||
const { focusedKey } = useFocus();
|
||||
(0, useEffect)(() => {
|
||||
const index = SECTIONS[String(focusedKey ?? "").split(":")[0]];
|
||||
if (index === void 0 || index === current) return;
|
||||
current = index;
|
||||
notify();
|
||||
}, [focusedKey]);
|
||||
return null;
|
||||
}
|
||||
function NearSection({ index, children }) {
|
||||
const far = (focused) => Math.abs(rank(index) - rank(focused)) > NEAR;
|
||||
const [released, setReleased] = (0, useState)(() => far(current));
|
||||
(0, useEffect)(() => {
|
||||
const listener = (focused) => setReleased(far(focused));
|
||||
listeners.add(listener);
|
||||
listener(current);
|
||||
return () => {
|
||||
listeners.delete(listener);
|
||||
};
|
||||
}, [index]);
|
||||
return /* @__PURE__ */ (0, jsx)(SectionIndex.Provider, { value: index, children: /* @__PURE__ */ (0, jsx)(ReleaseImages, { when: released, children }) });
|
||||
}
|
||||
// Called by a section that can have nothing to show, before it returns null.
|
||||
function useSectionShown(shown) {
|
||||
const index = (0, useContext)(SectionIndex);
|
||||
(0, useEffect)(() => {
|
||||
if (index < 0 || shown === !empty.has(index)) return;
|
||||
if (shown) empty.delete(index);
|
||||
else empty.add(index);
|
||||
notify();
|
||||
}, [index, shown]);
|
||||
}
|
||||
// Cards further than this from the one focus last rested on let their images go; a screen shows six
|
||||
// or seven. The centre moves in steps of four, so a row re-renders every few cards, not on every one.
|
||||
var ROW_WINDOW = 8;
|
||||
var STEP = 4;
|
||||
// `reached` keeps its identity across renders, so a memoized card given it does not re-render.
|
||||
function useRowWindow() {
|
||||
const [center, setCenter] = (0, useState)(0);
|
||||
const [reached] = (0, useState)(() => (index) => setCenter(Math.floor(index / STEP) * STEP));
|
||||
return { far: (index) => Math.abs(index - center) > ROW_WINDOW, reached };
|
||||
}
|
||||
function RowCard({ far, children }) {
|
||||
return /* @__PURE__ */ (0, jsx)(ReleaseImages, { when: far, children });
|
||||
}
|
||||
|
||||
export { FocusedSection, NearSection, RowCard, useRowWindow, useSectionShown };
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["UNITE AGAINST ANNIHILATION","Lead your elite squad in the fightback to save Earth from a huge alien invasion in this frantic, top down twin-stick shooter.","With hordes of alien creatures swarming across the planet, you’ll need to work together with up to three friends to devise tactics and keep each other alive under mounting pressure.","RUN & GUN:","1. Unleash a devastating array of firepower, shooting and looting Alien hordes in massively destructible environments.","2. Experiment with different player classes, earn skill upgrades and customize weapons and equipment to suit the way you play.","3. Fight alongside your friends, or become a ruthless mercenary to invade other players’ games and cause mayhem.","4. Track your kills and compare statistics against other players.","5. Experience brutal arcade action from the makers of Dead Nation™, RESOGUN™ and Super Stardust™.","Offline single player","Uses DUALSHOCK 4 vibration function","PS4 game can be controlled via PS Vita"],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/v9ftllayi6ynnkt8pgmh.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/v9ftllayi6ynnkt8pgmh.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/teckfq2xfw20giofk6sb.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/teckfq2xfw20giofk6sb.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/qthrzrbkmgyscz4ily8x.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/qthrzrbkmgyscz4ily8x.jpg"}],"summary":"Lead your elite squad in the fightback to save Earth from a huge alien invasion in this frantic, top down twin-stick shooter."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["The Glade of Dreams is in trouble once again! During a 100-year nap, the nightmares multiplied and spread, creating new monsters even more terrifying than before! These creatures are the stuff of legend… Dragons, giant toads, sea monsters, and even evil luchadores. With the help of Murfy, Rayman and Globox awake and must now help fight these nightmares and save the Teensies!","Offline multiplayer (2-4 players)","Uses DUALSHOCK 4 vibration function","Software subject to license (us.playstation.com/softwarelicense)."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/kkgfjyuoqng00x4sir6j.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/kkgfjyuoqng00x4sir6j.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/t8zhedgdwoileoam4wia.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/t8zhedgdwoileoam4wia.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/yhctbxy9zjyvauavex9i.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/yhctbxy9zjyvauavex9i.jpg"}],"summary":"The Glade of Dreams is in trouble once again! During a 100-year nap, the nightmares multiplied and spread, creating new monsters even more terrifying than before!"}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Injustice: Gods Among Us Ultimate Edition enhances the bold new franchise to the fighting game genre from NetherRealm Studios. Featuring six new playable characters, over 30 new skins, and 60 new S.T.A.R. Labs missions, this edition packs a punch. In addition to DC Comics icons such as Batman, The Joker, Green Lantern, The Flash, Superman and Wonder Woman, the latest title from the award-winning studio presents a deep original story. Heroes and villains will engage in epic battles on a massive scale in a world where the line between good and evil has been blurred.","Software subject to license (us.playstation.com/softwarelicense)."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/qmfehbfsxbkcfb9xu3b4.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/qmfehbfsxbkcfb9xu3b4.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/rp2ggffuntqjzjyk6yqu.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/rp2ggffuntqjzjyk6yqu.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/z8mfnuz32a1nqdrjwqlp.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/z8mfnuz32a1nqdrjwqlp.jpg"}],"summary":"Injustice: Gods Among Us Ultimate Edition enhances the bold new franchise to the fighting game genre from NetherRealm Studios. Featuring six new playable characters, over 30 new skins, and 60 new S.T.A.R."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Join an epic adventure with the Angry Birds in the legendary Star Wars universe, re-mastered for gaming systems! Use the Force, wield your Lightsaber, and blast away Pigtroopers on an intergalactic journey from the deserts of Tatooine to the depths of the Pig Star! Can you become a Jedi Master and restore freedom to the galaxy?"],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/dcaoj4wueibbv75ptc77.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/dcaoj4wueibbv75ptc77.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/faicxrbky37pqpasjwk4.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/faicxrbky37pqpasjwk4.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/zsspconuptqdqj6pwt4e.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/zsspconuptqdqj6pwt4e.jpg"}],"summary":"Join an epic adventure with the Angry Birds in the legendary Star Wars universe, re-mastered for gaming systems!"}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Online servers for RIGS: Mechanized Combat League will shut down on 12th August 2022. All online features for this game (including online multiplayer modes) will cease on that date. You will still be able to play and enjoy this game in single player offline modes. However, from 12th August 2022, all online functionality will no longer be accessible in this game.","Have you got what it takes to be MVP in RIGS Mechanized Combat League?","Pilot your finely-tuned double-gunned sports “RIG” in futuristic custom-built arenas where mechanized combat and sports collide head-on.","Build your skills to unlock extra RIGS in the exhilarating single player experience, then team up and go online to take on the world.","Enjoy an incredible sense of immersion in this all-action sports shooter – exclusive to PlayStation®VR.","Offline single player","PlayStation VR headset required","PlayStation Camera required","Uses DUALSHOCK 4 vibration function","One-time licence fee to download to multiple PS4 systems. Sign in to PlayStation is not required to use this on your primary PS4, but is required for use on other PS4 systems.","See Health Warnings for important health information before using this product."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/y5milgnew2zlkhs1bqnd.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/y5milgnew2zlkhs1bqnd.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/f2txqtsqazum7jvwukxu.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/f2txqtsqazum7jvwukxu.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/lvvnhw9ekjuxk2mpujcx.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/lvvnhw9ekjuxk2mpujcx.jpg"}],"summary":"Online servers for RIGS: Mechanized Combat League will shut down on 12th August 2022. All online features for this game (including online multiplayer modes) will cease on that date."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["PlayStation VR will no longer be supported in Minecraft after March 2025","CREATE","Build whatever you can imagine in your own infinite world that’s unique in every playthrough.","EXPLORE","Discover biomes, resources and mobs, and craft your way through a world filled with surprises in the ultimate sandbox game.","SURVIVE","Experience unforgettable adventures as you face mysterious foes, traverse exciting landscapes, and travel to perilous dimensions.","PLAY TOGETHER","Have a blast with friends, whether you’re sitting on the same couch in split screen or miles apart in cross-platform play for console, mobile and PC. Connect with millions of players on community servers or subscribe to Realms Plus to play with up to 10 friends on your own private server.","VIBRANT VISUALS","Vibrant Visuals is Minecraft’s biggest official visual enhancement – delivering a dazzling cosmetic upgrade with a new modern graphics pipeline and an array of visual improvements. Sunrises are more vivid, water reflects, forests become shaded, and more!","EXPERIENCE MORE"],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/sc8d2m.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/sc8d2m.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/sc8d2k.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/sc8d2k.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/sc8d2n.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/sc8d2n.jpg"}],"summary":"Build whatever you can imagine in your own infinite world that’s unique in every playthrough."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["What if someone knew your mind better than you did?","The Swapper is an award-winning, narrative driven puzzle game set in the furthest reaches of space.","The Swapper takes place in an isolated and atmospheric sci-fi world. Players wield an experimental device which allows them to create clones of themselves, swapping their entire consciousness into new bodies to overcome the challenges of the environment.","Features:","• Think: Fiendishly designed puzzles with equally clever solutions that are never more than a few steps away.","• Wonder: The art in The Swapper is constructed using clay models and everyday materials, which combine to create truly unique visuals in a detailed and atmospheric environment.","• Discover: A powerful and thoughtful story, told through the game's environment with narrative design from Tom Jubert, the writer behind hits including Driver: San Francisco and Faster Than Light.","Additional hardware required for Remote Play.","Additional hardware required for Interconnectivity.","Offline single player","Uses DUALSHOCK 4 vibration function","Remote Play allows users to connect to and play games on their PlayStation®4 or PlayStation®5 using a mobile device, PC, or another PlayStation®4 or PlayStation®5."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/yfgpi0oskz4jnrus5qvo.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/yfgpi0oskz4jnrus5qvo.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/qsmcd1bfh644hjr5c1fr.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/qsmcd1bfh644hjr5c1fr.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/sc1026c.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/sc1026c.jpg"}],"summary":"The Swapper is an award-winning, narrative driven puzzle game set in the furthest reaches of space."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["In this frantic 2D action game, you are part of the Mercenary Kings, the most skilled team of warriors-for-hire on Earth, but when your comrades have fallen and the fearsome forces of CLAW have seized an island-wide top secret Laboratory Base, you must do what it takes to stop them.","But you're not going in unprepared! Your back-up is made of a crew of rogue geniuses and experts of their field! Able to craft & customize guns'n'blades or upgrading body armor, you've never been this ready to join the fight.","Whether its solo or with friends, move out, cut down CLAW and save the world!","Remote Play requires PS Vita system and sufficiently robust Wi-Fi connection.","1-4 players","Network Players 2-4","500MB minimum save size","DUALSHOCK®4","Remote Play","1080p HD Video Output","Online Play (Optional)"],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/zcjhmqeb7f25a5epnuxl.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/zcjhmqeb7f25a5epnuxl.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/uvaxhjnnplsnzta59qst.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/uvaxhjnnplsnzta59qst.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/s6ia95p2xgfxqlhaxtp6.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/s6ia95p2xgfxqlhaxtp6.jpg"}],"summary":"In this frantic 2D action game, you are part of the Mercenary Kings, the most skilled team of warriors-for-hire on Earth, but when your comrades have fallen and the fearsome forces of CLAW have seized an island-wide top…"}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Music pack 1 gives you access to further killer tracks from Chase and Status, Kove, Modestep and Nero to listen to as you race around the galaxy.","In-game purchases optional","PS4: One-time licence fee to download to multiple PS4 systems. Sign in to PSN is not required to use this on your primary PS4, but is required for use on other PS4 systems.","PS Vita: One-time fee for use of downloads on up to 3 activated compatible Portable Console systems.","See Health Warnings for important health information before using this product."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/e96wbmy0dgzogspip7ia.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/e96wbmy0dgzogspip7ia.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/e4yvv1tlcoodapgwirfy.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/e4yvv1tlcoodapgwirfy.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/x2oyerzw3byvucmm7trp.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/x2oyerzw3byvucmm7trp.jpg"}],"summary":"Music pack 1 gives you access to further killer tracks from Chase and Status, Kove, Modestep and Nero to listen to as you race around the galaxy."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Long ago, the human realm was ruled by Adyr, a terrible and malevolent god, who enslaved mankind. But over time, rebellion grew in the hearts of men. Led by three powerful beings - the Judges - man rose up and overthrew Adyr and his monstrous Rhogar army, banishing them to a distant dimension. Humanity was finally free to dictate its own destiny. To dictate a new order...","Now, millennia later, in a land where no sins are forgiven and redemption does not exist, Adyr threatens to break free from his imprisonment. His Rhogar legions have invaded the human realm to pave a bloody path for their vengeful master’s return. Desperate and under siege, mankind calls upon an unlikely saviour - a convicted sinner rejected by society and cast out of the light... a man known as Harkyn. Branded with the tattoos of his immorality, he must travel to the source of this Darkness and face… the Lords of the Fallen.","Prepare to plunge into a dark fantasy Action-RPG, set amidst a grim world on the brink of annihilation. Harness powerful magic. Master a complex and satisfying melee combat system. Seek redemption through the fires of battle... and stand against a God.","Explore a Vast, Dark Fantasy World","From crumbling tower tops to ancient burial grounds, delve into a world facing mass destruction. Navigate labyrinthine paths and uncover hidden passages in pursuit of great treasures, but be warned: loot isn’t all that awaits the curious...","Conquer a Complex, Combat System","With every encounter presenting its own unique challenge, only those who master the deep and rewarding Soulslike combat will taste victory. Bolster your steel with devastating magic attacks, and earn XP with every kill to upgrade your preferred spells and attributes.","Confront the Lords of the Rhogar Army","While every Rhogar is guaranteed to test your mettle, by far the greatest threat amongst Adyr’s army is posed by his mighty generals, the towering Lords of the Fallen. These calamitous boss battles will test even the most skillful of warriors - one false move and the fate of the world could be sealed.","Wield Legendary Weapons and Epic Armour","Customise your combat style with a multitude of weapons and armours. Armour arrives in three forms: light for nimble players, medium for all-rounders, and heavy for those unafraid to absorb a blow. As for weapons, a vast array of hammers, staves, axes, swords, daggers, and claws are at your disposal in the battle against the Rhogar army. And then, there are those rare and powerful items of legend that only the most dedicated warriors will ever find…","Key Features:"],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/scii73.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/scii73.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/scii72.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/scii72.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/scii74.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/scii74.jpg"}],"summary":"Long ago, the human realm was ruled by Adyr, a terrible and malevolent god, who enslaved mankind. But over time, rebellion grew in the hearts of men."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Tetris Ultimate has six exciting modes, fun new features, and unique visuals, the evolution of this iconic game is the ultimate must-have on next-gen consoles."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/mi3nyinrv2icymsk67mv.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/mi3nyinrv2icymsk67mv.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/wdh4acm4k9r5rpmwn5wy.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/wdh4acm4k9r5rpmwn5wy.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/bae34q3floztdipb6xy4.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/bae34q3floztdipb6xy4.jpg"}],"summary":"Tetris Ultimate has six exciting modes, fun new features, and unique visuals, the evolution of this iconic game is the ultimate must-have on next-gen consoles."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Experience the addictive gameplay of old-school arcade favorites, updated for the 21st century, with unique upgrades, player responsive difficulty, and a subtle system of tactics combined with classic gameplay.","Ultratron is a twin-stick arena shooter inspired by some of the best classics arcade gaming has to offer, updated and improved for the 21st century.","The last human in the universe has been slain by evil killer robots. As the last remaining humanoid battle droid, you'll be fighting through over 40 arcade levels to finally take on the four giant boss 'bots of the apocalypse.","An arcade game on steroids, Ultratron combines risk-reward arena gameplay with an upgrade system, responsive difficulty, pet drones, special weapon abilities, and online leaderboards. (Two player drop-in co-op mode on the PS3™ system and PS4™ system).","Video output in Full HD 1080p requires 1080p native display.","Additional hardware required for Remote Play.","2-1 players","11MB minimum save size","DUALSHOCK®4","Remote Play","1080p HD Video Output","Online Play (Optional)"],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/gzwcebwatrjkic9v1zkx.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/gzwcebwatrjkic9v1zkx.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/tjqbm6ytwvnwcuawdtxy.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/tjqbm6ytwvnwcuawdtxy.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/zpucvllxbrtrigomfx6t.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/zpucvllxbrtrigomfx6t.jpg"}],"summary":"Experience the addictive gameplay of old-school arcade favorites, updated for the 21st century, with unique upgrades, player responsive difficulty, and a subtle system of tactics combined with classic gameplay."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Hotline Miami is a high-octane action game overflowing with raw brutality, hard-boiled gunplay and skull crushing close combat. Set in an alternative 1989 Miami, you will assume the role of a mysterious antihero on a murderous rampage against the shady underworld at the behest of voices on your answering machine. Soon you'll find yourself struggling to get a grip of what is going on and why you are prone to these acts of violence.","Offline single player","Software subject to license (us.playstation.com/softwarelicense).","PS3: One time license fee entitles play on up to 2 PlayStation® 3 systems activated by this account.","PS Vita: One time license fee entitles play on up to 3 PlayStation® Vita systems activated by this account."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/xnzetcofuyj7oo9dtsjd.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/xnzetcofuyj7oo9dtsjd.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/czluiyzytlkkchwn1mga.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/czluiyzytlkkchwn1mga.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/qv1iqu0f1g1wmygyvsga.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/qv1iqu0f1g1wmygyvsga.jpg"}],"summary":"Hotline Miami is a high-octane action game overflowing with raw brutality, hard-boiled gunplay and skull crushing close combat."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["• Immerse yourself in the Moscow Metro – witness one of the most atmospheric worlds in gaming brought to life with stunning next-gen visuals at 60FPS","• Brave the horrors of the Russian apocalypse – equip your gasmask and an arsenal of hand-made weaponry as you face the threat of deadly mutants, human foes, and the terrifying environment itself","• Rebuilt and Remastered for next gen – this is no mere ‘HD port’. Metro 2033 has been rebuilt in the vastly improved Last Light engine and gameplay framework, to create the definitive version of the cult classic that fans and newcomers alike can enjoy","• Two unique Play Styles : ‘Spartan’ and ‘Survival’ – approach the campaign as a slow burn Survival Horror , or tackle it with the combat skills of a Spartan Ranger in these two unique modes","• The legendary Ranger Mode returns – dare you play the fearsome Ranger Mode?","Based on the internationally bestselling novel series by Dmitry Glukhovsky","Uses DUALSHOCK 4 vibration function","Offline single player","Remote Play allows users to connect to and play games on their PlayStation®4 or PlayStation®5 using a mobile device, PC, or another PlayStation®4 or PlayStation®5.","One-time licence fee to download to multiple PS4 systems. Sign in to PlayStation is not required to use this on your primary PS4, but is required for use on other PS4 systems.","See Health Warnings for important health information before using this product."],"shots":[{"url":"https://image.api.playstation.com/vulcan/ap/rnd/202608/2707/d46c88e6094d383dfb64460bce21b06c0036218eb017922f.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/vulcan/ap/rnd/202608/2707/d46c88e6094d383dfb64460bce21b06c0036218eb017922f.jpg?w=600&thumb=false"},{"url":"https://image.api.playstation.com/vulcan/ap/rnd/202608/2707/9165b3f112eb961ab712af495cc49d317a333db535f68ff3.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/vulcan/ap/rnd/202608/2707/9165b3f112eb961ab712af495cc49d317a333db535f68ff3.jpg?w=600&thumb=false"},{"url":"https://image.api.playstation.com/vulcan/ap/rnd/202608/2707/7cd4266d04c964a59a3eca6eef4e2f32e92ef3b39793f2f7.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/vulcan/ap/rnd/202608/2707/7cd4266d04c964a59a3eca6eef4e2f32e92ef3b39793f2f7.jpg?w=600&thumb=false"}],"summary":"Remote Play allows users to connect to and play games on their PlayStation®4 or PlayStation®5 using a mobile device, PC, or another PlayStation®4 or PlayStation®5."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["You are a solar-powered craft. The sun is your death timer. Hurtle towards the sunset at breakneck speed in a futile race against time. Delay the inevitable by catching speed boosts which reverse the setting sun - if only for a moment. Race The Sun is inspired by arcade games of the past with a focus on high scores, short game sessions, and pure fun mingled with nerve-wracking tension. The rules are simple: don't crash, stay in the light, and don't slow down!","VR Games may cause some players to experience motion sickness.","Offline single player","PlayStation VR headset compatible","Uses DUALSHOCK 4 vibration function","Remote Play allows users to connect to and play games on their PlayStation®4 or PlayStation®5 using a mobile device, PC, or another PlayStation®4 or PlayStation®5.","Software subject to license (us.playstation.com/softwarelicense).","PS3: One time license fee entitles play on up to 2 PlayStation® 3 systems activated by this account.","PS Vita: One time license fee entitles play on up to 3 PlayStation® Vita systems activated by this account."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/e1qo5ia3khwpuyhbr5di.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/e1qo5ia3khwpuyhbr5di.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/htdzjp8glraklifyi5cg.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/htdzjp8glraklifyi5cg.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/ielqv4nqgxgyldwn9ph9.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/ielqv4nqgxgyldwn9ph9.jpg"}],"summary":"You are a solar-powered craft. The sun is your death timer. Hurtle towards the sunset at breakneck speed in a futile race against time."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["An ancient evil force has emerged from the portals and threatens the balance of both worlds! Only the Avatar stands a chance in defeating this new threat!","• Original Avatar storyline penned by the TV show’s creators.","• Wield the power of all 4 elements—water, earth, fire, and air as only the Avatar can!","• Change bending styles at any time to unleash devastating combos.","• Beat overwhelming odds by activating the all-powerful Avatar state.","Copyright:","a registered trademark of Activision Publishing, Inc. Purchasing and using the software constitutes acceptance of the Software License Agreement available at support.activision.com/license. ESRB rating icon is a registered trademarks of the Entertainment Software Association. All other trademarks and trade names are the properties of their respective owners."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/sbr4xoktgwfkpckwfrsz.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/sbr4xoktgwfkpckwfrsz.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/in5npfohxl9c6fgxp9gg.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/in5npfohxl9c6fgxp9gg.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/svwbfzpxlvp58o8go44l.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/svwbfzpxlvp58o8go44l.jpg"}],"summary":"An ancient evil force has emerged from the portals and threatens the balance of both worlds! Only the Avatar stands a chance in defeating this new threat!"}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["N++ is a fast-paced, momentum-based platformer about darting around obstacles, narrowly evading enemies and collecting gold in a beautiful minimalist landscape.","In addition to the lengthy and challenging single player campaign, we’ve packed a ton of features into this one last entry in the N series including:","-4340 hand-made levels","-Custom Levels, Level Editor & Global Level Sharing","-Leaderboards and replays for every level (even the ones you make)","-Local Co-op Mode (up to 4 players)","-Local Competitive Mode (up to 4 Players)","-Hardcore Mode, an intense single-player challenge which only the best ninjas will survive","-Intense, hidden Secret challenges to discover","-63 tracks by top electronic artists","-119 different color palettes let you customize the game’s look and keep it fresh every time you play","-and more!"],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/yo3grrfhqnhtku7rvhyi.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/yo3grrfhqnhtku7rvhyi.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/cvytcmdaphc73ocnnd5r.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/cvytcmdaphc73ocnnd5r.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/swy1ecrvxhdrjnepwjwb.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/swy1ecrvxhdrjnepwjwb.jpg"}],"summary":"N++ is a fast-paced, momentum-based platformer about darting around obstacles, narrowly evading enemies and collecting gold in a beautiful minimalist landscape."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["The darkest entry in the series yet, FINAL FANTASY TYPE-0 delivers bloody, breakneck battles alongside the masterful storytelling known of the franchise.","This upcoming blockbuster title will transport you to the dynamic and enthralling world of Orience, where an unforgiving war of nations threatens to decimate the entire continent.","Enter the fray as Class Zero, a group of elite students defending their homeland against the onslaught of the warmongering Militesi Empire.","Master their fourteen unique fighting styles in an all-new, fast-paced combat system to topple the empire and uncover the secrets behind the war.","1 player","26GB minimum save size","DUALSHOCK®4 Vibration Function","HD Video Output 720p,1080i,1080p","One-time licence fee to download to multiple PS4 systems. Sign in to PlayStation Network is not required to use this on your primary PS4, but is required for use on other PS4 systems.","See Health Warnings for important health information before using this product.","CHARACTER DESIGN: TETSUYA NOMURA","FINAL FANTASY TYPE-0, SQUARE ENIX and the SQUARE ENIX logo are registered trademarks or trademarks of Square Enix Holdings Co., Ltd."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/fueyqnriur1srap1gcy6.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/fueyqnriur1srap1gcy6.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/x5ptcgwrmowdwrsyoaqi.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/x5ptcgwrmowdwrsyoaqi.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/i1aagpaoa3e6u1hfjprt.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/i1aagpaoa3e6u1hfjprt.jpg"}],"summary":"The darkest entry in the series yet, FINAL FANTASY TYPE-0 delivers bloody, breakneck battles alongside the masterful storytelling known of the franchise."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Play Homefront: The Revolution for free! Enjoy unlimited access to Resistance Mode, the online co-operative experience, and play through the entire first Red Zone from the single-player Story Mode in the huge Free Demo.","Homefront features enhanced visuals on PS4™ Pro, including higher resolutions and smoother framerate.","Philadelphia - once the birthplace of Independence - has become a ghetto, where surveillance drones and armoured patrols keep the population at heel, crushing any dissent with savage force.","Her once-proud citizens live in a police state, forced to collaborate just to survive, their dreams of freedom long since extinguished.","But in the badlands of the Red Zone, in the bombed out streets and abandoned subways, a Resistance is forming. A guerrilla force, determined to fight for their freedoms despite overwhelming odds and ignite the second American Revolution.","But Freedom always has a price…","Uses DUALSHOCK 4 vibration function","Offline single player","Enhanced game play on PS4 Pro console","Remote Play allows users to connect to and play games on their PlayStation®4 or PlayStation®5 using a mobile device, PC, or another PlayStation®4 or PlayStation®5.","One-time licence fee to download to multiple PS4 systems. Sign in to PlayStation is not required to use this on your primary PS4, but is required for use on other PS4 systems.","See Health Warnings for important health information before using this product."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/ilbqvool7vfejli1qdud.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/ilbqvool7vfejli1qdud.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/fuzrsolthwhlq2wijmlx.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/fuzrsolthwhlq2wijmlx.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/wsubulssj7lvki0wtweb.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/wsubulssj7lvki0wtweb.jpg"}],"summary":"Play Homefront: The Revolution for free! Enjoy unlimited access to Resistance Mode, the online co-operative experience, and play through the entire first Red Zone from the single-player Story Mode in the huge Free Demo."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Blood Bowl 2: Legendary Edition is the video game adaptation of Games Workshop's acclaimed board game, a masterful blend of American football and the Warhammer fantasy world, brought together in an incredible turn-based strategy game.","Play as 24 races, each with their own Star Players. Discover a new endless solo league and a brand-new Challenge mode. For the first time in Blood Bowl history, spice up your matches by fielding teams made up of players from different races, or going all-in with a roster of Star Players only!","A wealth of multiplayer additions further expand the possibilities available to players to communicate, create, organise and customise their online leagues and competitions.","Warhammer Classics","Warhammer Classics is a collection of the greatest titles from the annals of Warhammer video game history, spanning the last 30 years, brought back to life as a series to celebrate their iconic legacy.","Because of their classic nature, some of the content may not accurately reflect current depictions, lore, or presentation within the current Warhammer universes and settings.","Uses DUALSHOCK 4 vibration function","Optional In-game purchases","Offline multiplayer (2 players)","Remote Play allows users to connect to and play games on their PlayStation®4 or PlayStation®5 using a mobile device, PC, or another PlayStation®4 or PlayStation®5."],"shots":[{"url":"https://image.api.playstation.com/vulcan/ap/rnd/202009/2315/kMTDyni0UqBuZyYD5uLEaoT3.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/vulcan/ap/rnd/202009/2315/kMTDyni0UqBuZyYD5uLEaoT3.jpg?w=600&thumb=false"}],"summary":"Blood Bowl 2: Legendary Edition is the video game adaptation of Games Workshop's acclaimed board game, a masterful blend of American football and the Warhammer fantasy world, brought together in an incredible turn-based…"}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Taking place nine years after the events of MGSV: Ground Zeroes and the fall of Mother Base, Snake a.k.a. Big Boss, awakes from a near decade-long coma. The game resumes the story in 1984, with the Cold War still as the backdrop, which continues to shape a global crisis. Snake’s journey takes him into a world where he is driven by a need for revenge and the pursuit of a shadow group, XOF. METAL GEAR SOLID V: The Phantom Pain continues to ambitiously explore mature themes such as the psychology of warfare and the atrocities that result from those that engage in its vicious cycle. One of the most anticipated games of the year with its open-world design, photorealistic visual fidelity and feature-rich game design, MGSV: The Phantom Pain will leave its mark as one of the hallmarks in the gaming industry for its cinematic storytelling, heavy themes, and immersive tactical gameplay.","Uses DUALSHOCK 4 vibration function","Optional In-game purchases","Offline single player","Remote Play allows users to connect to and play games on their PlayStation®4 or PlayStation®5 using a mobile device, PC, or another PlayStation®4 or PlayStation®5.","One-time licence fee to download to multiple PS4 systems. Sign in to PlayStation is not required to use this on your primary PS4, but is required for use on other PS4 systems.","See Health Warnings for important health information before using this product."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/scj1o8.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/scj1o8.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/scj1o3.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/scj1o3.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/scj1o4.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/scj1o4.jpg"}],"summary":"Taking place nine years after the events of MGSV: Ground Zeroes and the fall of Mother Base, Snake a.k.a. Big Boss, awakes from a near decade-long coma."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["For the first time in any LEGO videogame, characters from iconic entertainment franchises join forces and battle in worlds outside of their own. In addition to the game, the LEGO Dimensions Starter Pack will include the LEGO Toy Pad, which allows players to transport special LEGO minifigures and other LEGO objects into the game"],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/eyxq75cvuttufqael9vr.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/eyxq75cvuttufqael9vr.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/ji2xvhzi3uycpseknlds.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/ji2xvhzi3uycpseknlds.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/ulzcloxvtwcnpbnd7dvy.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/ulzcloxvtwcnpbnd7dvy.jpg"}],"summary":"For the first time in any LEGO videogame, characters from iconic entertainment franchises join forces and battle in worlds outside of their own."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["YOU have to show what you’re made of as the war over Europe is in full swing. Fight waves of Axis planes and panzers until you hit the boss enemies – the ACES OF THE LUFTWAFFE.","It is the darkest hour for England. The Axis are sending their best into the Battle of Britain, and only a handful of brave pilots are left to destroy them. Get into your war plane and don’t let go of the trigger before each and every enemy has been blown out of the skies! But even if you vanquish the notorious Aces of the Luftwaffe, are you prepared to take the fight to the mainland?","Will YOU foil the occult plans of the Luftwaffe to spread darkness over England?","Uses DUALSHOCK 4 vibration function","Offline single player","One-time licence fee to download to multiple PS4 systems. Sign in to PlayStation is not required to use this on your primary PS4, but is required for use on other PS4 systems.","See Health Warnings for important health information before using this product."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/fleu4mwgjvx4gkvkomr5.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/fleu4mwgjvx4gkvkomr5.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/fgznz7hhoihs8jwkdw3d.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/fgznz7hhoihs8jwkdw3d.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/uctgwbuafswq0o2x7vah.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/uctgwbuafswq0o2x7vah.jpg"}],"summary":"YOU have to show what you’re made of as the war over Europe is in full swing. Fight waves of Axis planes and panzers until you hit the boss enemies – the ACES OF THE LUFTWAFFE."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["The Gods of Olympus have abandoned humanity, leaving you to perish without their benevolence. Take up arms against the Gods, climb Mount Olympus, and take their divine powers for yourself to ensure mankind’s survival!","Apotheon is a fast and brutal 2D action game with a striking art style and heroic narrative based on Ancient Greek Mythology.","Features:","-Brutal and bloody bronze-aged combat! Slay your enemies with swords, spears, arrows, and other ancient weapons of war.","-Explore the massive open world of Mount Olympus! Battle mythical beings and search for divine treasure across the Forests of Artemis, the Palaces of Apollo, and other sanctuaries of the Gods.","-Guide the rise of Nikandreos, humanity’s last hero. Interact with a colorful cast of fully voiced legendary characters throughout a rich single-player experience.","-Challenge your friends to single combat! In one versus one local multiplayer, pit your skills against other would-be heroes of Greece.","1-2 players","650MB minimum save size","DUALSHOCK®4","1080p HD Video Output","Copyright Alientrap Games"],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/v97ez4hjzon6fk2ctv6y.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/v97ez4hjzon6fk2ctv6y.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/il5dpb1rvdik09iq5inx.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/il5dpb1rvdik09iq5inx.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/xftaiytexnvbyd2nzbwe.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/xftaiytexnvbyd2nzbwe.jpg"}],"summary":"The Gods of Olympus have abandoned humanity, leaving you to perish without their benevolence. Take up arms against the Gods, climb Mount Olympus, and take their divine powers for yourself to ensure mankind’s survival!"}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Grab your trusty sword, strap on a fearsome helmet, and plunge into the chaotic fray of Viking Squad! As a member of this ragtag group you must put a stop to the wildly mischievous Loki and reopen the gates to Valhalla. Work together to unleash massive attacks on foes and expand your arsenal in this three player co-op brawler.","Key features:","- PS4 Pro Enhanced","- Local and Online Co-op.","- Find new weapons and gear to level up each character.","- Each playable character has their own signature weapon changing the way they approach combat.","- Lane based brawling with precise and intense combat system.","- The Gods guide your voyage: By worshiping each god new opportunities and perils are unveiled.","- Striking hand-drawn 2d art style, courtesy of Jesse 'the Drawbarian' Turner.","- Sound by Power Up Audio, Music by A Shell In The Pit.","Additional hardware required for Remote Play.","Online features may be terminated at any time."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/d5qan5kj1rpied3ekei5.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/d5qan5kj1rpied3ekei5.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/d0oc06hrm3a8n6sujd2n.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/d0oc06hrm3a8n6sujd2n.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/gbqsletmdbwaa0lfsupm.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/gbqsletmdbwaa0lfsupm.jpg"}],"summary":"Grab your trusty sword, strap on a fearsome helmet, and plunge into the chaotic fray of Viking Squad! As a member of this ragtag group you must put a stop to the wildly mischievous Loki and reopen the gates to Valhalla."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Odin Sphere: Leifthrasir is an enhanced HD remake of Odin Sphere game for PlayStation 2. Many various adjustments and changes were made in gameplay, considering comments from people who played the original game. While this is enhanced version of the original and it's trying to stay true to it, there are new gameplay and story elements presented in this release, some of which include new boss fights, new attack moves, new background music, and new map area to explore. While the initial idea of the developers was to make just n HD remastered release, it ended up being more of a re-created game version. As such, the game offers both classic mode as well as refined mode with all new elements and new gameplay."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/qxuyqlcamjs8qkqfbr5y.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/qxuyqlcamjs8qkqfbr5y.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/hkg63ccqtrd1oyt3vnh4.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/hkg63ccqtrd1oyt3vnh4.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/pvhet9dbfhziwrg6cmnx.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/pvhet9dbfhziwrg6cmnx.jpg"}],"summary":"Odin Sphere: Leifthrasir is an enhanced HD remake of Odin Sphere game for PlayStation 2. Many various adjustments and changes were made in gameplay, considering comments from people who played the original game."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Never Alone (Kisima Ingitchuna) is the first game developed in collaboration with the Iñupiat, an Alaska Native people. Nearly 40 Alaska Native elders, storytellers and community members contributed to the development of the game. Play as a young Iñupiat girl and an arctic fox as they set out to find the source of the eternal blizzard which threatens the survival of everything they have ever known.","Guide both characters in single-player mode or play cooperatively with a friend or family member as you trek through frozen tundra, leap across treacherous ice floes, swim through underwater ice caverns, and face numerous enemies both strange and familiar in the journey to save the girl’s village.","In this atmospheric puzzle platformer, you will explore awe-inspiring environments, perform heroic deeds, and meet legendary characters from Iñupiaq stories — all narrated by a master storyteller in the spoken Iñupiaq language.","Video output in Full HD 1080p requires 1080p native display.","1 player","2GB minimum save size","1080p HD Video Output"],"shots":[],"summary":"Never Alone (Kisima Ingitchuna) is the first game developed in collaboration with the Iñupiat, an Alaska Native people."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["A new era of Monopoly for home consoles! The Monopoly Family Fun Pack gathers the 3 Monopoly Games:","- Monopoly PLUS: the classic Monopoly with a 3D animated board!","- My Monopoly, to create your very own board","- Monopoly Deal, a fast-paced and addictive Monopoly card-game","- The Monopoly Rabbids DLC is offered !","Enjoy the classic Monopoly in new fun ways, with your friends and people all around the world!","Video output in Full HD 1080p requires 1080p native display.","1080p HD Video Output","Offline Play Enabled"],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/x3he4erwn89jp5zd06tl.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/x3he4erwn89jp5zd06tl.jpg"}],"summary":"Enjoy the classic Monopoly in new fun ways, with your friends and people all around the world!"}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["※The items offered in this pack can be purchased as a single item. Refunds will not be offered for duplicate purchase.","Project CARS: Game Of The Year Edition is the ultimate choice for serious racing fans - created by gamers, tested by real racing drivers, and the preferred choice of Esports pros. Featuring all the elements of the original core experience that made Project CARS the most authentic, beautiful, intense, and technically-advanced racing game on the planet, the Game Of The Year Edition also includes an additional:","• 50+ cars (125 total)","• 4 tracks (35 unique locations, 100+ layouts total)","• 60+ community-created liveries","• 500+ features and improvements","All this, plus two special and exclusive items – the iconic Nurburgring Combined Nordschleife + GP circuit and two exclusive vehicles from Pagani – the Zonda Revolucion and Huayra BC.","Copyright:"],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/sc6qpq.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/sc6qpq.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/sc6qpp.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/sc6qpp.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/sc6qpo.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/sc6qpo.jpg"}],"summary":"※The items offered in this pack can be purchased as a single item. Refunds will not be offered for duplicate purchase."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Uncertain of his sister's fate, a boy enters Limbo.","Limbo is an award-winning indie adventure, critically acclaimed for its captivating puzzle design and immersive sound and visuals. Its dark, misty spaces and haunting narrative will stay with you forever.","What the press said:","\"Limbo is as close to perfect at what it does as a game can get.\"","Destructoid – 10/10","\"The game is a masterpiece.\"","Giant Bomb – 5/5","\"Limbo is genius. Freaky, weird genius. Disturbing, uncomfortable genius.\"","The Escapist – 5/5","\"Dark, disturbing, yet eerily beautiful, Limbo is a world that deserves to be explored.\"","Joystiq – 5/5","Winner of more than 100 awards, including:"],"shots":[{"url":"https://image.api.playstation.com/vulcan/ap/rnd/202512/1113/3a88a56902e349a0a0546cb3ef770ba0e2275fd64e9bc047.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/vulcan/ap/rnd/202512/1113/3a88a56902e349a0a0546cb3ef770ba0e2275fd64e9bc047.jpg?w=600&thumb=false"},{"url":"https://image.api.playstation.com/vulcan/ap/rnd/202512/1113/e2014a44af01f9cc352dc088a3907453490d3faa973cd0bf.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/vulcan/ap/rnd/202512/1113/e2014a44af01f9cc352dc088a3907453490d3faa973cd0bf.jpg?w=600&thumb=false"},{"url":"https://image.api.playstation.com/vulcan/ap/rnd/202512/1113/72b1382997df8ddcc0818814a31bcdfef42f79b72e4cfaf9.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/vulcan/ap/rnd/202512/1113/72b1382997df8ddcc0818814a31bcdfef42f79b72e4cfaf9.jpg?w=600&thumb=false"}],"summary":"Limbo is an award-winning indie adventure, critically acclaimed for its captivating puzzle design and immersive sound and visuals. Its dark, misty spaces and haunting narrative will stay with you forever."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Stealth Inc 2 is a puzzle platformer where you play the role of a clone escaping a sinister and high-tech testing facility.","Stealth Inc 2 tests both your brain and your reflexes over 60 varied levels linked together in a sprawling overworld.","Death is never more than a few moments away, but one of the few advantages of being a clone is that death isn’t all that permanent. With no loading screens and no lives to worry about, players are encouraged to use their inevitable demise as a learning tool as they navigate lasers, homicidal robots and terrifying bosses in the ultimate hostile work environment.","Explore the expansive PTi facility, including six distinct areas littered with tests to complete and secrets to collect.","Solve puzzles with help from six gadgets that are unlocked as you play, allowing you to do everything from teleporting across entire levels to hacking robots that patrol the facility.","Video output in Full HD 1080p requires 1080p native display.","1 player","370MB minimum save size","DUALSHOCK®4","1080p HD Video Output"],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/yonmrwntcn7hzsbw5snm.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/yonmrwntcn7hzsbw5snm.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/ubqvsbhf167iylg0idq7.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/ubqvsbhf167iylg0idq7.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/vblgcepnb03uw1fgxwbs.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/vblgcepnb03uw1fgxwbs.jpg"}],"summary":"Stealth Inc 2 is a puzzle platformer where you play the role of a clone escaping a sinister and high-tech testing facility."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Skullgirls 2nd Encore is a beautiful, fast-paced, and critically acclaimed 2D fighting game that puts players in control of fierce warriors in an extraordinary Dark Deco world. Each of the 14 wildly original characters features unique gameplay mechanics and plenty of personality.","Skullgirls is the perfect fighting game for casual and competitive fighting game fans alike. Includes fully voiced story mode, gorgeous animation, and a soundtrack by Michiru Yamane.","Offline multiplayer (2 players)","Uses DUALSHOCK 4 vibration function","Software subject to license (us.playstation.com/softwarelicense).","PS Vita: One time license fee entitles play on up to 3 PlayStation® Vita systems activated by this account."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/ygiecnd09ptnhdmc2k17.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/ygiecnd09ptnhdmc2k17.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/r4td7ywh1claxgzrg6qw.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/r4td7ywh1claxgzrg6qw.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/kwwnvt0gwtr45vxhej2g.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/kwwnvt0gwtr45vxhej2g.jpg"}],"summary":"Skullgirls 2nd Encore is a beautiful, fast-paced, and critically acclaimed 2D fighting game that puts players in control of fierce warriors in an extraordinary Dark Deco world."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Teslagrad is a 2D puzzle platformer with action elements, where magnetism and other electromagnetic powers are the key to discovering the secrets kept in the long abandoned Tesla Tower. Gain new abilities to explore a non-linear world with more than 100 beautiful hand-drawn environments, in a steampunk-inspired vision of old Europe. You play as a young boy who suddenly finds himself embroiled in a long-forgotten conspiracy, involving the despotic king who has ruled the nation with an iron fist for several years. Jump into an outstanding adventure told through voiceless storytelling. Armed with ancient Teslamancer technology and your own ingenuity and creativity, your path lies through the decrepit Tesla Tower and beyond.","1 player","56MB minimum save size","1080p HD Video Output"],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/ynm9vmcrdnu96nf9pqh9.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/ynm9vmcrdnu96nf9pqh9.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/q8nl89kpgrutz4koccuc.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/q8nl89kpgrutz4koccuc.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/f040x5bj6yctwqvu2ob3.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/f040x5bj6yctwqvu2ob3.jpg"}],"summary":"Teslagrad is a 2D puzzle platformer with action elements, where magnetism and other electromagnetic powers are the key to discovering the secrets kept in the long abandoned Tesla Tower."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["PAYDAY is an action-packed, four-player co-op shooter where you rob banks and get paid.","The Crimewave edition includes an enhanced graphic engine. Up to four friends co-operate on the hits and as the crew progresses the jobs become bigger, better and more rewarding. Along with earning more money and becoming a legendary criminal Crime does pay – use your funds to customize your character with new skillsets that change the way you play and kit them out with their own guns and gear. Rebuilt visuals bring heisting into 1080p resolution. See every bank note fly and Feel every bullet blast past your head in full HD .","Uses DUALSHOCK 4 vibration function","Offline single player","One-time licence fee to download to multiple PS4 systems. Sign in to PlayStation is not required to use this on your primary PS4, but is required for use on other PS4 systems.","See Health Warnings for important health information before using this product."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/dh7om5ojsb5q3eavu7cd.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/dh7om5ojsb5q3eavu7cd.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/cxtmzlmqpewuisksmr9v.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/cxtmzlmqpewuisksmr9v.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/cob7ev11n7cyt9kuepya.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/cob7ev11n7cyt9kuepya.jpg"}],"summary":"PAYDAY is an action-packed, four-player co-op shooter where you rob banks and get paid."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Toto Temple Deluxe is a fast-paced, local-multiplayer king-of-the-hill style game in which players must steal an egg-laying goat from their friends and try to keep it on their own head for as long as possible. You know, normal stuff.","Infinitely dash in any direction to swiftly move around and powerfully headbutt the goat carrier to steal its four-legged booty. Escape your jealous opponents and protect the goat by blocking their attacks with a well-timed shield pop! You’ll 'get their goat', guaranteed.","And don’t worry if you’re friendless. Bots will play with you whenever you want and for as long as you want. They never complain. They also never open up your fridge and ask if they can eat that pizza slice you got left from last night. Bots are awesome. Oh, and you can change their difficulty level too, because they will probably kick your astonishing little bottom.","1-4 players","250MB minimum save size","DUALSHOCK®4","1080p HD Video Output"],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/mzm2qqd8wonmhzwnxfby.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/mzm2qqd8wonmhzwnxfby.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/ezzqnpyabxasb8ggv9rz.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/ezzqnpyabxasb8ggv9rz.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/txhqvbkwjn2lwkjxeatv.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/txhqvbkwjn2lwkjxeatv.jpg"}],"summary":"Toto Temple Deluxe is a fast-paced, local-multiplayer king-of-the-hill style game in which players must steal an egg-laying goat from their friends and try to keep it on their own head for as long as possible."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Overwatch is an always-on and ever-evolving free-to-play, team-based hero shooter game set in an optimistic future, where every match is the ultimate 5v5 or 6v6 battlefield brawl featuring new heroes and maps, different ways to play, and unique cosmetics! Lead the charge, ambush your enemies, or aid your allies as one of Overwatch’s 40+ distinct heroes. Team up with friends, take them into battle across 25+ futuristic maps inspired by real-world locations, and master multiple unique game modes.","Reign of Talon - Season 5: A Grim Doctrine","Sink your teeth into a haunting new season as Doctrine escapes Grimsvotn, Halloween mayhem rises from the grave, and the Reign of Talon reaches its finale!","Something wicked this way comes... the wait is over! Doctrine emerges from the frozen depths of Grimsvotn and into the Support roster, bringing a deadly new philosophy of life, death, and everything worth taking in between. Follow his trail of destruction into the volcanic prison where Doomfist set him free on the first new Escort map since Overwatch 2 launched. As his escape unfolds, the Reign of Talon reaches its thrilling conclusion, years in the making.","Then raise some hell this Halloween with Mystery Madness: Graveyard Games, where every match is a fresh experiment in mayhem. The shadows hold even more surprises, as Sombra returns with a whole new bag of tricks as a Support alongside a reworked Roadhog. Resurrect Battle Passes past with Unvaulted Passes, embrace Mythic Wuyang's otherworldly power, and turn everything all the way up with Lucio's first Mythic Weapon, complete with our coolest custom audio and effects yet.","Beware. The final chapter is here.","Uses DUALSHOCK 4 vibration function","Optional In-game purchases","Online play required","Software subject to license (us.playstation.com/softwarelicense)."],"shots":[],"summary":"Overwatch is an always-on and ever-evolving free-to-play, team-based hero shooter game set in an optimistic future, where every match is the ultimate 5v5 or 6v6 battlefield brawl featuring new heroes and maps, different…"}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["TRANSFORMERS: Fall of Cybertron transports you to the final days of the planet Cybertron where you will experience the darkest hours of the apocalyptic war between the Autobots and Decepticons. Embark on an adrenaline-fueled journey through a wide range of missions and massive environments designed around each character's unique abilities.","Game includes three DLC packs! You get the Multiplayer Havoc Pack, DINOBOT Destructor Pack and Massive Fury Pack with game purchase!","Copyright:"],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/qyvf2qmsk8yhwoewjgac.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/qyvf2qmsk8yhwoewjgac.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/msbn4rqzgoth0ewhp2ah.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/msbn4rqzgoth0ewhp2ah.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/gqx38n1ieu2hqxudzjia.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/gqx38n1ieu2hqxudzjia.jpg"}],"summary":"TRANSFORMERS: Fall of Cybertron transports you to the final days of the planet Cybertron where you will experience the darkest hours of the apocalyptic war between the Autobots and Decepticons."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Adventure Time: Finn & Jake Investigations is an upcoming action adventure video game developed by Vicious Cycle Software under license from Cartoon Network Interactive. This is the fourth game based on the animated television series Adventure Time following The Secret of the Nameless Kingdom, and the first action adventure title in the series presented in full 3D graphics.","In this game, players can check out \"Land of Ooo locales, talk to characters, sharpen their creative puzzle-solving skills, defeat bad guys and just have fun.\" Loosely based on the TV show's sixth season, the game features \"a focus on exploring, investigating, and puzzle-solving. Thanks to the discovery of an assignment printing machine called the 'tickertype,' Finn and Jake decide to become detectives like Joshua and Margaret (Finn and Jake's parents). Finn's sword will see a bit of action too, allowing players to fill the Tree House treasure room full of enemy drops."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/vjpeiaioq0rftr5q2q9r.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/vjpeiaioq0rftr5q2q9r.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/scppqs.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/scppqs.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/scppqv.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/scppqv.jpg"}],"summary":"Adventure Time: Finn & Jake Investigations is an upcoming action adventure video game developed by Vicious Cycle Software under license from Cartoon Network Interactive."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["※This item is also offered in a pack. Refunds will not be offered for duplicate purchase.","FINISH THE FIGHT","EA SPORTS™ UFC® 2 innovates with stunning character likeness and animation, adds an all new Knockout Physics System and authentic gameplay features, and invites all fighters to step back into the Octagon® to experience the thrill of finishing the fight.","Conditions and restrictions apply. See http://www.easports.com/ufc/game-and-offer-disclaimers.","Copyright:"],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/j9djp2am9w8unvxihnhl.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/j9djp2am9w8unvxihnhl.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/vfmmnaxo18hmgvkp4tjv.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/vfmmnaxo18hmgvkp4tjv.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/abc6bagedzvuqfys9x1k.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/abc6bagedzvuqfys9x1k.jpg"}],"summary":"※This item is also offered in a pack. Refunds will not be offered for duplicate purchase."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Broken Age is a timeless coming-of-age story of barfing trees and talking spoons. Vella Tartine and Shay Volta are two teenagers in strangely similar situations, but radically different worlds. The player can freely switch between their stories, helping them take control of their own lives, and dealing with the unexpected adventures that follow.","Key Features:","- Pointing","- Clicking","- Original soundtrack, composed by Peter McConnell, recorded by the Melbourne Symphony Orchestra","- All-star voice cast, including Elijah Wood, Jack Black, Jennifer Hale, Masasa Moyo, Wil Wheaton, and Pendleton Ward","- Dialog Trees!","- Some jokes. Unless you don't think they're funny, in which case we totally weren't trying to be funny","- A whole bunch of awesome PUZZLES","- This one really hard puzzle that you won't get but you'll look it up online and not tell anybody","- All your hopes and dreams","Additional hardware required for Interconnectivity."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/b3b8t4jyznebwr0mgame.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/b3b8t4jyznebwr0mgame.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/s7feana4jbq5dmrodoe9.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/s7feana4jbq5dmrodoe9.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/vrnzmbwzsd2hbbjsmg8e.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/vrnzmbwzsd2hbbjsmg8e.jpg"}],"summary":"Broken Age is a timeless coming-of-age story of barfing trees and talking spoons. Vella Tartine and Shay Volta are two teenagers in strangely similar situations, but radically different worlds."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Batman: Arkham City sends players soaring into Arkham City - a heavily fortified sprawling district in the heart of Gotham City. Batman Arkham City introduces a brand-new story that draws together an all-star cast of classic characters and murderous villains from the Batman universe.","Offline single player","Uses DUALSHOCK 4 vibration function","Software subject to license (us.playstation.com/softwarelicense)."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/ldvklsva2j5klvopvsmf.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/ldvklsva2j5klvopvsmf.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/ggc6pihcjvcrhiytujdb.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/ggc6pihcjvcrhiytujdb.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/icqqd9frm67e47d7zb7p.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/icqqd9frm67e47d7zb7p.jpg"}],"summary":"Batman: Arkham City sends players soaring into Arkham City - a heavily fortified sprawling district in the heart of Gotham City."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Dying Light: The Following - Enhanced Edition takes parkour-fueled zombie survival to a whole new level. Enjoy the definitive Dying Light experience with the brand-new Legend system, improved visuals, major gameplay enhancements, and more. This package comes with all the available bonus content, including Be the Zombie, Cuisine & Cargo, Ultimate Survivor Bundle, and The Bozak Horde. Last but not least, travel beyond the walls of Harran to discover a vast, dangerous new region in Dying Light: The Following – a massive story-based expansion that brings mysterious characters, deadly new weapons, unexpected quests, and fully customizable and drivable dirt buggies.","Copyright:","WARNING: THIS ARTICLE CONTAINS MATERIAL WHICH MAY OFFEND AND MAY NOT BE DISTRIBUTED, CIRCULATED, SOLD, HIRED, GIVEN, LENT, SHOWN, PLAYED OR PROJECTED TO A PERSON UNDER THE AGE OF 18 YEARS"],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/schffp.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/schffp.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/schfg8.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/schfg8.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/schffs.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/schffs.jpg"}],"summary":"Dying Light: The Following - Enhanced Edition takes parkour-fueled zombie survival to a whole new level."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Experience Twisted Metal: Black™ for PS2™ system with 1080p up-rendering and Trophies. Additional enhanced features include Shareplay, Remote Play, Activity Feeds and Second Screen support for game manuals with PS Vita or PS App.","They say the mind bends and twists in order to deal with the horrors of life… …sometimes the mind bends so much it snaps in two.","The best-selling car combat game on the PlayStation®2 is now available for PlayStation®4! In the ultimate contest of wreckage and devastation, Calypso has plucked a motley crew of contestants straight from the lunatic asylum. As the carnage unfolds, so does the horrifying tale behind each of these tortured souls. Slip into their twisted minds and come out screaming for more!","Software subject to license (us.playstation.com/softwarelicense).","This title has been converted from the original PlayStation®2 version to the PS4™ system. Consequently, there may be times where the title plays differently from the PlayStation®2 version, or where some features may not function properly. This version does not support PlayStation®2 peripherals, therefore some functionality may not be available."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/sc8cg2.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/sc8cg2.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/sc8cg3.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/sc8cg3.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/sc8cg0.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/sc8cg0.jpg"}],"summary":"Experience Twisted Metal: Black™ for PS2™ system with 1080p up-rendering and Trophies."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Destroy with Godzilla! Protect with Mothra! Fight with King Dhidorah! Rampage with all monsters!","Actions with upmost destructive special effects will further evolve with PS4™!","This is the trial version with the most destructions and special effects for all Godzilla fans. Control monsters to destroy all the streets, weapons, and other monsters.","All appearing monsters will be controllable! So will you become the God of destruction by controlling Godzilla? Or become the savior for humans by controlling Mothra?","There will be several brand new features including teaming up with humans and go on defense missions in protecting the streets!","Get in involved with the 3 greatest battles—including the fight from the silver screen of course—to experience the dream battle like never before!","You can also fight with rivals around the world from global online fights as well. So become the world's No.1 \"True Monster King\"!","Copyright:","Godzilla™, the related characters and the character design are trademarks of Toho Co., Ltd."],"shots":[],"summary":"Destroy with Godzilla! Protect with Mothra! Fight with King Dhidorah! Rampage with all monsters!"}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["The world is ending... though few believe it.","The once proud city of Ubersreik now lays in ruin at the hands of the loathsome Skaven. Few have survived their ruthless invasion.","Team up with 3 friends and work together to thin out the ratmen’s forces and drive them out of the city. Assume the role of one of five heroes, and hack, slash, smash, burn and pierce the vile Skaven using a multitude of weapons. Fight your way through the city of Ubersreik, from the top of the Magnus Tower to the bowels of the Under Empire.","Prepare for a desperate struggle and a grand last stand. Only you can stem the Vermintide.","In-game purchases optional","1 player","Network Players 2-4 - Full game requires PlayStation®Plus membership to access online multiplayer","15GB minimum save size","DUALSHOCK®4 Vibration Function","Remote Play Supported","HD Video Output 720p,1080p","A PlayStation®Move navigation controller or Wireless Controller will be required for motion control features."],"shots":[],"summary":"The once proud city of Ubersreik now lays in ruin at the hands of the loathsome Skaven. Few have survived their ruthless invasion."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["PORTAL OF POWER™ REQUIRED TO PLAY*","Kick your adventure into overdrive! The Skylanders® SuperChargers Portal Owner’s Pack includes the full video game, works with any Portal of Power from the Skylanders® series and includes Instant Spitfire and Instant Hot Streak. Expand your gameplay experience with over 40 Skylanders and vehicles to collect.","Skylands is in peril! Kaos has unleashed his most evil weapon yet – the Doomstation of Ultimate Doomstruction. With all of Skylands on the verge of collapse, a special team called the SuperChargers has been assembled to pilot an unstoppable fleet of incredible vehicles. Now you and the SuperChargers must embark on epic adventures over land, under sea, and through the sky to stop Kaos and save Skylands!","Purchasing and using the software constitutes acceptance of the Software License Agreement available at support.activision.com/license.","*Skylanders® Spyro’s Adventure portal does not support PvP or Co-op play with SWAP ForceTM Skylanders.","1-2 players","Network Players 2-4 - Full game requires PlayStation®Plus membership to access online multiplayer","DUALSHOCK®4 Vibration Function","HD Video Output 720p,1080i,1080p","One-time licence fee to download to multiple PS4 systems. Sign in to PlayStation Network is not required to use this on your primary PS4, but is required for use on other PS4 systems.","See Health Warnings for important health information before using this product."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/hsm7nbtuhfvgwoclhaqi.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/hsm7nbtuhfvgwoclhaqi.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/xvpsgsvuvmzknazafn3m.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/xvpsgsvuvmzknazafn3m.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/wh2gvgqokk650qxe0ci3.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/wh2gvgqokk650qxe0ci3.jpg"}],"summary":"Kick your adventure into overdrive! The Skylanders® SuperChargers Portal Owner’s Pack includes the full video game, works with any Portal of Power from the Skylanders® series and includes Instant Spitfire and Instant…"}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Experience the mysterious, timeless world of Toren.In this dark fantasy adventure you must guide Moonchild as she transforms from a baby to a young adult during her journey of self-discovery. As she traverses the tower that holds her captive, solve puzzles and learn how to help her defeat monsters as she struggles to discover her purpose.","This is the first adventure game from Brazilian indie developer Swordtales. Already recognized for its beautiful and unique art with several awards, the game has the backing of Brazil’s Ministry of Culture. As your journey unfolds you will discover scrolls of poetry, which reveal the story and true origins behind Toren. As the story progresses your character will age from a mere infant to grown woman creating new mechanics and challenges for each learning experience and phase of her life.","1 player","HD Video Output 720p","One-time licence fee to download to multiple PS4 systems. Sign in to PlayStation Network is not required to use this on your primary PS4, but is required for use on other PS4 systems.","See Health Warnings for important health information before using this product.","Toren ™ , Toren Game ™ , Swordtales ™ and other names and characters to the game Toren ™ 2015 Swordtales - ALCV Entertainment Digital LTD."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/mz3xjzx351uetfazfyfq.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/mz3xjzx351uetfazfyfq.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/hran6e5tzk6ip9srmphk.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/hran6e5tzk6ip9srmphk.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/xboiuxmjgmrff1rykeio.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/xboiuxmjgmrff1rykeio.jpg"}],"summary":"Experience the mysterious, timeless world of Toren.In this dark fantasy adventure you must guide Moonchild as she transforms from a baby to a young adult during her journey of self-discovery."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Experiment and have fun in the ultimate playground as Agent 47 to become the master assassin. Travel around the globe to exotic locations and eliminate your targets with everything from a katana or a sniper rifle to an exploding golf ball or some expired spaghetti sauce.","Hitman: Game of the Year Edition includes all of this brand new content:","\"Patient Zero\" campaign featuring 4 new missions","3 new Themed Escalation Contracts","3 new Outfits","3 new Weapons"],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/yqzwsto2mwuaziqp4obw.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/yqzwsto2mwuaziqp4obw.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/vfw8jsipn2jnbudoyuru.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/vfw8jsipn2jnbudoyuru.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/jquonzddosf6xkhnqmwf.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/jquonzddosf6xkhnqmwf.jpg"}],"summary":"Experiment and have fun in the ultimate playground as Agent 47 to become the master assassin."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["You are a spider on the hunt, spinning webs to trap your prey. Explore an abandoned mansion, discover hidden passages and leave the place covered in cobwebs. Unravel the story of the family who once lived at Blackbird Estate and solve puzzles left behind by a mysterious secret society. You must possess the agility and cunning of a spider to master the deep scoring system and collect all 48 trophies.","This unique adventure changes the time of day and weather to match what’s happening outside your window.. in the real world! Every level can be played in day or night, rain or shine, leading to endless challenges. To uncover the deepest secrets you will explore during thunderstorms and the full moon and even encounter the real life mystery of The Knights of the Buried Chambers.","PS4 Compatibility Notices","1 Player, HD Video Output: 720p/1080i/1080p, Cross-Save","PS Vita Compatibility Notices","PS4: One-time licence fee to download to multiple PS4 systems. Sign in to PlayStation Network is not required to use this on your primary PS4, but is required for use on other PS4 systems.","PS Vita: One-time fee for use of downloads on up to 3 activated compatible Portable Console systems.","See Health Warnings for important health information before using this product."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/vprd5oajgnsjximglhqf.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/vprd5oajgnsjximglhqf.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/uuknx3vfn0r746ltx1as.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/uuknx3vfn0r746ltx1as.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/qgo0pzop3jdafohi56uc.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/qgo0pzop3jdafohi56uc.jpg"}],"summary":"You are a spider on the hunt, spinning webs to trap your prey. Explore an abandoned mansion, discover hidden passages and leave the place covered in cobwebs."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Cosmophony is a musical shooter designed for demanding gamers seeking an original and intense gaming experience.","You must control the heart of a fallen goddess within a dying universe in order to fulfill her destiny. Your goal is to progress through a series of levels designed to be played to an exhilarating, 100% drum and bass soundtrack by DJ Salaryman (DnB Arena, RAM records).","Discover a powerful new gaming experience that is uniquely satisfying.","-Unique synesthetic design based on music","-Impressive HD graphics with psychedelic background videos","-100% DnB soundtrack created especially for the game","Note that this game is designed with more experienced gamers in mind the difficulty level, while gradual, is still very high.","PS4: One-time licence fee to download to multiple PS4 systems. Sign in to PlayStation Network is not required to use this on your primary PS4, but is required for use on other PS4 systems.","PS3: One-time fee for use of downloads on up to 2 activated PS3 systems.","PS Vita: One-time fee for use of downloads on up to 3 activated compatible Portable Console systems.","See Health Warnings for important health information before using this product."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/r2xuznbcvtfapm6jsxs9.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/r2xuznbcvtfapm6jsxs9.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/bxzsxlz3u1p4qfn31cip.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/bxzsxlz3u1p4qfn31cip.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/eylxi5da7lp6paupbm2b.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/eylxi5da7lp6paupbm2b.jpg"}],"summary":"Cosmophony is a musical shooter designed for demanding gamers seeking an original and intense gaming experience."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Ether One is a first person adventure that deals with the subject of dementia.","There are two paths in the world you can choose from. At its core is a story exploration path free from puzzles where you can unfold the story at your own pace.","There is also a deeper, more adventurous path in which you can complete complex puzzles to restore life changing events of the patient's history in order to help the validation of their life.","This product supports the following languages: English","Uses DUALSHOCK 4 vibration function","Offline single player","One-time licence fee to download to multiple PS4 systems. Sign in to PlayStation is not required to use this on your primary PS4, but is required for use on other PS4 systems.","See Health Warnings for important health information before using this product."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/gnbosmj8zqkgqfsmxgjv.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/gnbosmj8zqkgqfsmxgjv.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/boaqklpsj5derec11lbi.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/boaqklpsj5derec11lbi.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/gbepkgclnogcb2k7soqv.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/gbepkgclnogcb2k7soqv.jpg"}],"summary":"Ether One is a first person adventure that deals with the subject of dementia."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Mega Man Legacy Collection is a celebration of the 8-bit history of Capcom’s iconic Blue Bomber. Featuring faithful reproductions of the series’ origins with the original six Mega Man games, the Legacy Collection will remind long-time fans and introduce newcomers to what made Mega Man such a popular and iconic character. Mega Man Legacy Collection will feature all six games and much more.","In addition to the six Mega Man games, Mega Man Legacy Collection features new ways to experience the classic games with the Museum Mode and new Challenge Mode. Challenge Mode remixes gameplay segments from all six games, with plenty of scaling difficulty objectives for experienced players to conquer yet serving as a good starting point for new players, too. Museum Mode contains a comprehensive collection of history, high-res art and original concept pieces – a mega treat for any fan of Mega Man and video game history.","Additional hardware required for Remote Play.","Offline single player","Uses DUALSHOCK 4 vibration function","PS4 game can be controlled via PS Vita","Software subject to license (us.playstation.com/softwarelicense)."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/xlwprjw9llnwnoujrffm.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/xlwprjw9llnwnoujrffm.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/ecbsbpe8v8ibrxdj058q.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/ecbsbpe8v8ibrxdj058q.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/xfghvbzdlqwfm1xvokki.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/xfghvbzdlqwfm1xvokki.jpg"}],"summary":"Mega Man Legacy Collection is a celebration of the 8-bit history of Capcom’s iconic Blue Bomber."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Take control of a lone astronaut who sets off on a dangerous journey to rejoin his civilization, armed with only an improvised set of equipment and a relentless spirit. Without the help of his ship, Harrison will need to use the gravitational forces of planets to navigate and propel himself through space.","Set in a world rich with comedy and tragedy, LOST ORBIT is a game filled with risk, loneliness, wonder, and death.","- Explore the depths of space as a lone astronaut with an alien robot sidekick.","- A personal story: A fully narrated story delivers a deep and entertaining experience exploring death, loneliness and madness.","- Beautiful Worlds: Traverse fantastical interstellar worlds on a quest to reunite with civilization and uncover the mysteries of the disaster that left Harrison stranded.","- Fine Tuned Controls: Extremely tight controls allow for fast and twitchy gameplay across the games 65+ levels","1 player","2GB minimum save size","DUALSHOCK®4 Vibration Function","Remote Play Supported","HD Video Output 720p,1080i,1080p","One-time licence fee to download to multiple PS4 systems. Sign in to PlayStation Network is not required to use this on your primary PS4, but is required for use on other PS4 systems."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/sc6ury.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/sc6ury.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/sc6us2.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/sc6us2.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/sc6urw.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/sc6urw.jpg"}],"summary":"Take control of a lone astronaut who sets off on a dangerous journey to rejoin his civilization, armed with only an improvised set of equipment and a relentless spirit."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Set in the lush and vibrant world of the Forgotten Realms, Sword Coast Legends offers an all-new way to enjoy the time-tested magic of playing Dungeons & Dragons as a shared storytelling experience. With a deep narrative developed by a team of long-time industry veterans and a partnership with Wizards of the Coast, the single player campaign of Sword Coast Legends brings the world of Faerûn home like never before.","Sword Coast Legends also brings the roleplaying dynamic between players and Dungeon Masters to life with DM Mode, a first-of-its-kind real-time experience in which Dungeon Masters guide players through unique customizable adventures. In DM Mode, the Dungeon Master engages players and empowers them to have fun in a way that suits the party best while creating a tailored, non-adversarial 4 with 1 experience that any RPG or pen-and-paper fan will enjoy.","As of 25 July 2018, multiplayer servers for the game were taken offline and all stored player data deleted. Players owning the game on Steam will still have access to any offline content including the single player campaign."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/bvkawdhoe79yyfadj0mh.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/bvkawdhoe79yyfadj0mh.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/qztuhtq1mgpzeot4le7e.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/qztuhtq1mgpzeot4le7e.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/q3pviqlxv291cozuaufv.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/q3pviqlxv291cozuaufv.jpg"}],"summary":"Set in the lush and vibrant world of the Forgotten Realms, Sword Coast Legends offers an all-new way to enjoy the time-tested magic of playing Dungeons & Dragons as a shared storytelling experience."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["The lovable martial arts panda bear, Po, and his many friends and adversaries in the Valley of Peace will face off in the ultimate martial arts challenge ... the first-ever Kung Fu Panda: Showdown of Legendary Legends! Kung Fu Panda: Showdown of Legendary Legends will bring fans a fresh and fist-pumping way to experience DreamWorks Animation's beloved franchise with explosive, fast-as-lightning action! With a variety of challenging multiplayer levels, familiar film locations and 20 playable fan-favorite Kung Fu Panda characters, the game will appeal to gamers who like their brawler games served up with a side of laughter."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/gaajdesmvzfplgfxiwls.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/gaajdesmvzfplgfxiwls.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/phlbyfcov47gvamuxgfq.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/phlbyfcov47gvamuxgfq.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/dhqofq7dwbjgjqmicnem.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/dhqofq7dwbjgjqmicnem.jpg"}],"summary":"The lovable martial arts panda bear, Po, and his many friends and adversaries in the Valley of Peace will face off in the ultimate martial arts challenge ... the first-ever Kung Fu Panda: Showdown of Legendary Legends!"}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Machinarium is an award-winning adventure game. Explore the city of Machinarium, solve numerous puzzles and help Josef the robot to save his girlfriend Berta kidnapped by the Black Cap Brotherhood gang.","Uses DUALSHOCK 4 vibration function","Offline single player","One-time licence fee to download to multiple PS4 systems. Sign in to PlayStation is not required to use this on your primary PS4, but is required for use on other PS4 systems.","See Health Warnings for important health information before using this product."],"shots":[{"url":"https://image.api.playstation.com/vulcan/ap/rnd/202603/3009/fa3e67aacd173ad85b680c3d4bf1a7455cbeec4e8117fe9e.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/vulcan/ap/rnd/202603/3009/fa3e67aacd173ad85b680c3d4bf1a7455cbeec4e8117fe9e.jpg?w=600&thumb=false"},{"url":"https://image.api.playstation.com/vulcan/ap/rnd/202603/3009/da09cc42d4f8a5c041b00278fd882543fbd3c2ebeb37128e.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/vulcan/ap/rnd/202603/3009/da09cc42d4f8a5c041b00278fd882543fbd3c2ebeb37128e.jpg?w=600&thumb=false"},{"url":"https://image.api.playstation.com/vulcan/ap/rnd/202603/3009/7157e90d29a5999c676825908f5a3d50e27d4774e7d576a7.jpg?w=1920&thumb=false","thumb":"https://image.api.playstation.com/vulcan/ap/rnd/202603/3009/7157e90d29a5999c676825908f5a3d50e27d4774e7d576a7.jpg?w=600&thumb=false"}],"summary":"Machinarium is an award-winning adventure game. Explore the city of Machinarium, solve numerous puzzles and help Josef the robot to save his girlfriend Berta kidnapped by the Black Cap Brotherhood gang."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Form an alliance and get revenge, in the latest SRPG in the Disgaea franchise. Killia, a loner, is drawn into forming a rebel army with a group of Overlords to oppose Demon Emperor Void Dark, and prevent him from taking over all of the Netherworlds.","Offline single player","PS4 game can be controlled via PS Vita","Optional In-game purchases","Software subject to license (us.playstation.com/softwarelicense)."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/yw0bfwajlwinfgmpx3zm.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/yw0bfwajlwinfgmpx3zm.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/i0xje3ioexj5vp8dnue1.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/i0xje3ioexj5vp8dnue1.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/tjpapgfbclu3h1jispih.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/tjpapgfbclu3h1jispih.jpg"}],"summary":"Form an alliance and get revenge, in the latest SRPG in the Disgaea franchise."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Online functionality will be retired on October 31, 2020.","Become Mad Max, the lone warrior in a savage post-apocalyptic world where cars are the key to survival. In this action-packed, open world, third person action game, you must fight to stay alive in The Wasteland, using brutal on-ground and vehicular against vicious gangs of bandits. A reluctant hero with an instinct for survival, Max wants nothing more than to leave the madness behind and find solace in the storied “Plains ofm Silence.” Players are challenged with treacherous missions as they scavenge the dangerous landscape for supplies to build the ultimate combat vehicle.","Offline single player","Uses DUALSHOCK 4 vibration function","Software subject to license (us.playstation.com/softwarelicense)."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/uygckgyrfl67gs1ksjzr.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/uygckgyrfl67gs1ksjzr.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/oxgmpil9wkmjqo67jiov.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/oxgmpil9wkmjqo67jiov.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/sc986t.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/sc986t.jpg"}],"summary":"Become Mad Max, the lone warrior in a savage post-apocalyptic world where cars are the key to survival."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["REPLAY: VHS IS NOT DEAD is a platform game in which you control time in a brand new way. Control up to 5 different characters and synchronize their actions to complete each level.","Take on the role of film director and travel through several humorous movies in REPLAY: VHS IS NOT DEAD!","Each level is full of surprises and will have you racking your brains. Are you ready? Then... Silence on the set... Camera... Action!","Accessible gameplay:","In REPLAY: VHS IS NOT DEAD, you cannot lose. Don't like a scene? Cut! Take two!","Game duration:","Over 70 levels in 4 different film universes, medals, costumes, hidden keys...","Retro look:","80s-style artwork and a soundtrack worthy of the great Hollywood classics.","1 player","DUALSHOCK®4","1080p HD Video Output"],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/umhxy001wqfmpfuwxc2w.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/umhxy001wqfmpfuwxc2w.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/lzd20g3x0wuqssyeqstn.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/lzd20g3x0wuqssyeqstn.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/kfkimatzd7y0a5q63wyq.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/kfkimatzd7y0a5q63wyq.jpg"}],"summary":"REPLAY: VHS IS NOT DEAD is a platform game in which you control time in a brand new way. Control up to 5 different characters and synchronize their actions to complete each level."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Funk of Titans is a thrilling and addictive game, simple and fun to play but hard to master. You will control Perseus, the son of Zeus and protector of the legendary holy music: the Funk. Run across the ancient greek mythology, risk your life jumping over crazy platforms, collect funk vinyl, beat enemies, wear epic costumes, ride the legendary Pegasus and smash the rap, the pop and the rock of the evil Musical Titans in fierce dance battles. Only one music can survive and the Funk is the music of the gods.","Offline single player","Remote Play allows users to connect to and play games on their PlayStation®4 or PlayStation®5 using a mobile device, PC, or another PlayStation®4 or PlayStation®5.","One-time licence fee to download to multiple PS4 systems. Sign in to PlayStation is not required to use this on your primary PS4, but is required for use on other PS4 systems.","See Health Warnings for important health information before using this product."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/f06k5iyyvc0l39hzcw1a.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/f06k5iyyvc0l39hzcw1a.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/onz4f1qqchsgglbobhf1.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/onz4f1qqchsgglbobhf1.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/h25orun9icylroeynhel.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/h25orun9icylroeynhel.jpg"}],"summary":"Funk of Titans is a thrilling and addictive game, simple and fun to play but hard to master. You will control Perseus, the son of Zeus and protector of the legendary holy music: the Funk."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Unleash your inner evil! The Nightmare Princess, Velguirie, uses her kicks and spins in her own quest to revive the Devil by trapping humans. Set over 180 traps in a variety of locales, including all new modern stages!","- New stages: gym, hospital, and park!","- New Quest Mode: Discover the story of Velguirie, the Nightmare Princess","- Enemy Edit to create your own sacrifices","- All of the content of Deception IV: Blood Ties","...and more!","*Traps, abilities, and costumes acquired in Deception IV: Blood Ties can be carried over to Deception IV: The Nightmare Princess.","Additional hardware required for Remote Play.","Offline single player","Uses DUALSHOCK 4 vibration function","Remote Play allows users to connect to and play games on their PlayStation®4 or PlayStation®5 using a mobile device, PC, or another PlayStation®4 or PlayStation®5.","Software subject to license (us.playstation.com/softwarelicense)."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/aokhwxikipkkfnafueka.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/aokhwxikipkkfnafueka.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/w2woxz0aqho1gk2qajsk.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/w2woxz0aqho1gk2qajsk.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/okkf1oldgrlbpfmsn8gc.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/okkf1oldgrlbpfmsn8gc.jpg"}],"summary":"Unleash your inner evil! The Nightmare Princess, Velguirie, uses her kicks and spins in her own quest to revive the Devil by trapping humans. Set over 180 traps in a variety of locales, including all new modern stages!"}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["TAKE A PHOTO OF YOUR BODY YOU CAN WALK ON! Welcome aboard, cadet! Help Commander Cherry on his adventure and get creative with your body! You play the game using Kinect and a gamepad simultaneously. Play solo or coop with a friend! La versione scaricabile di questo gioco supporta inglese. The downloadable version of this game supports English.."],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/sci2er.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/sci2er.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/sci2es.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/sci2es.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/sci2et.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/sci2et.jpg"}],"summary":"TAKE A PHOTO OF YOUR BODY YOU CAN WALK ON! Welcome aboard, cadet! Help Commander Cherry on his adventure and get creative with your body! You play the game using Kinect and a gamepad simultaneously."}
|
||||
@@ -0,0 +1 @@
|
||||
{"about":["Super Rude Bear Resurrection is an ultra-tight, masocore platformer that anyone can beat! Every time you die, your previous corpses stack up and you can jump on them, push them around and use them as platforms or meatshields. Each death makes the game slightly easier, but it's possible to beat the whole game without dying at all!","Rude Bear is a gangsta bear from East London who's been summoned back in time to medieval England to defeat his mortal nemesis, The Wizard. Face challenges so lethal, you'll (probably) need to be resurrected thousands of times to stand any chance of winning, and defeat the fearsome Guardians of each world.","Run, jump and die your way through sprawling levels, facing fiendish challenges across seven diverse worlds, from ancient ruins to convulsing flesh dungeons.","1 player","3GB minimum save size","DUALSHOCK®4 Vibration Function","HD Video Output 720p,1080i,1080p","One-time licence fee to download to multiple PS4 systems. Sign in to PlayStation Network is not required to use this on your primary PS4, but is required for use on other PS4 systems.","See Health Warnings for important health information before using this product.","Copyright Alex Rose 2012-2017"],"shots":[{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/gs5bdrkl2b5pb9uf2vqi.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/gs5bdrkl2b5pb9uf2vqi.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/n3gedo4nme4hrr3ydfp4.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/n3gedo4nme4hrr3ydfp4.jpg"},{"url":"https://images.igdb.com/igdb/image/upload/t_1080p/bohmbweduacnvu1ykkvb.jpg","thumb":"https://images.igdb.com/igdb/image/upload/t_screenshot_med/bohmbweduacnvu1ykkvb.jpg"}],"summary":"Super Rude Bear Resurrection is an ultra-tight, masocore platformer that anyone can beat!"}
|
||||