- JavaScript 100%
| assets | ||
| .gitattributes | ||
| index.html | ||
| README.md | ||
Mad Games Tycoon 2 — Genre Guide
A single-page, zero-dependency slider cheat sheet for Mad Games Tycoon 2.
Pick a main genre and a subgenre, and the page shows the exact Design Focus, Design Direction and Design Priority values that combination wants — plus the target groups it sells to and the list of topics that actually fit the genre. No more alt-tabbing into a Steam guide and scrolling through a 400-row table mid-development.
Everything is static: one HTML file, one stylesheet, one JavaScript bundle. No build step, no package manager, no backend, no database, no telemetry.
What it does
- Genre + subgenre picker — 21 genres (19 base game + 2 RealismMod), every valid combination the game allows.
- Design Focus — the 8 slider values for the combo: Game Length, Game Depth, Beginner Friendliness, Innovation, Story, Character Design, Level Design, Mission Design (0–10).
- Design Direction — the 3 alignment sliders: Core/Casual, Nonviolent/Explicit, Easy/Hard (0–10).
- Design Priority — the percentage split across Gameplay / Graphics / Sound / Technical (always sums to 100), taken from the main genre.
- Possible Target Group — the audiences the genre sells to: Kid, Teen, Adult, Old, All.
- Topic pickers — main topic and subtopic lists are filtered to the topics that suit the selected genre, sorted alphabetically in the active language.
- 20 languages — click a flag in the top-right corner to switch; the choice is remembered in
localStorage(latest_locale).
Selecting a genre with subgenre left at Nothing gives the solo-genre values.
Coverage
| Data | Count |
|---|---|
| Genres | 21 (IDs 0–20; 19 base + MOBA and Battle Royale from RealismMod) |
| Slider sets | 441 (21 solo + 420 genre/subgenre combinations) |
| Topics | 303, translated into all 20 languages |
| Languages | AR, CH, CT, CZ, EN, ES, FR, GE, HU, IT, JA, KO, LA, PB, PL, RO, RU, TH, TU, UA |
Genre names exist in 18 of the 20 languages; Romanian (RO) and Latin American Spanish (LA)
fall back to the English genre names. Topic names are complete in every language.
Running it
There is nothing to install and nothing to compile. You only need something that serves the directory over HTTP — a full webserver is entirely optional.
Quick start: Python's built-in server
From the repository root:
python -m http.server 8000
Then open http://localhost:8000.
On most Linux distributions and macOS the binary is python3:
python3 -m http.server 8000
Serve it to the rest of your LAN with --bind (default is all interfaces on older Python
versions, localhost-only on newer ones):
python3 -m http.server 8000 --bind 0.0.0.0
http.serveris a development server — single-threaded and not hardened. Perfect for a quick local look or a trusted LAN; put a real webserver in front of it if you expose it to the internet.
Other one-line servers
Any of these work equally well — run them from the repository root:
| Tool | Command |
|---|---|
| Node (no install) | npx serve . |
| PHP | php -S localhost:8000 |
| Ruby | ruby -run -e httpd . -p 8000 |
| BusyBox | busybox httpd -f -p 8000 |
| Caddy | caddy file-server --listen :8000 |
| darkhttpd | darkhttpd . --port 8000 |
| Docker + nginx | docker run --rm -p 8000:80 -v "$PWD:/usr/share/nginx/html:ro" nginx:alpine |
Full webserver
Point the document root at the repository and you are done — no rewrite rules, no PHP, no proxying. nginx:
server {
listen 80;
server_name mgt2.example.com;
root /srv/mgt2-genre-guide;
index index.html;
}
Apache: drop the directory into your DocumentRoot or point an Alias at it — index.html is
served by default, and no .htaccess is required.
Assets are versioned with ?id=… cache busters in index.html, so you can cache
assets/ aggressively; bump the query string whenever you change a file.
Can I just double-click index.html?
Mostly, yes. All asset paths are relative, so opening the file straight off disk via file://
loads and renders fine in Chromium-based browsers. The catch is localStorage: the language
choice is stored there, and browsers that restrict storage on file:// origins will at best
forget your language and at worst leave you with a blank page. A local server avoids the whole
question — hence python -m http.server.
Hosting under a subpath
Nothing to configure. Relative asset paths mean the page works at a domain root
(https://mgt2.example.com/) and equally under a subdirectory, including a GitHub Pages
project page at https://user.github.io/MadGamesTycoon2-GenreGuide/.
One thing worth knowing before you publish: index.html carries
<meta name="robots" content="noindex,nofollow">, so search engines are asked to skip the page.
Remove that line if you want a public deployment to be indexable.
Offline use
The app itself is fully offline-capable — genres, topics, translations and every slider value
are baked into the bundle, and nothing is fetched at runtime. The only external request is
the locale flag images, which come from flagpedia.net. Without internet access the flags
render as broken images; the language switcher still works, and everything else is unaffected.
Project layout
.
├── index.html # Page shell: mounts the app into #app
└── assets
├── css/style.css # Tailwind build (unpurged)
└── js/main.js # Minified Vue 2 bundle — app logic *and* all data
How the data is stored
There is no build source in this repository. All content lives in three JSON.parse('…') string
literals inside the minified bundle:
| Blob | Contents |
|---|---|
As |
Genres, keyed by numeric-string ID — themes (suitable topic indices), NAME <LOCALE>, TGROUP, GAMEPLAY/GRAPHIC/SOUND/CONTROL, GENRE COMB (valid subgenres) |
Ds |
Topic names per language: 20 locales × 303 index-aligned entries |
Ms |
The slider matrix — Ms[mainGenre][subGenre] = { align, focus }, where subgenre key "-1" means no subgenre |
Editing means parsing the blob, mutating it, re-serialising, and splicing it back into the
bundle at the same offset — then bumping the ?id= cache buster in index.html.
As and Ms round-trip cleanly through JSON.parse/JSON.stringify; Ds does not (BOM and
escape differences), so patch it as text rather than re-serialising it.
Changes on top of the original build
The bundle is patched directly, since no build source exists:
- Added the RealismMod genres MOBA (ID 19) and Battle Royale (ID 20), with their full slider sets.
- Fixed the locale flags — Chinese, Japanese and Korean pointed at nothing, Arabic and Latin American Spanish pointed at the wrong countries, and all of them now render at a uniform size.
- Made the bundle's
<script src>relative, so the page works under any subpath. - Fixed two crashes in the genre watcher: switching the main genre while a now-invalid subgenre
was still selected left the previous combination's numbers on screen, and Reset (or picking
the "Select Genre" placeholder) threw a
TypeError. The subgenre now falls back to Nothing, and clearing the genre clears the panels.
Credits
- Slider, target-group and topic data — FenomeN's Guide - Sliders, Release dates [ENG] [UPDATED] on the Steam Community. Every number here comes from that guide.
- Mad Games Tycoon 2 — by Eggcode. This is an unofficial fan-made reference and is not affiliated with or endorsed by the developer.
- MOBA and Battle Royale genres — added by the RealismMod.
- Flags — served by flagpedia.net.