326 lines
19 KiB
PHP
326 lines
19 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
$discordUrl = trim((string)website_config('discord_url', ''));
|
|
$customProjectUrl = website_custom_project_url();
|
|
$pricing = website_config('pricing', []);
|
|
$platform = website_config('platform', []);
|
|
$standardSlotStart = (float)($pricing['standard_slot_start'] ?? 0.50);
|
|
$legacyMonthlyStart = (float)($pricing['legacy_monthly_start'] ?? 4.00);
|
|
$standardMinSlots = (int)($pricing['standard_min_slots'] ?? 16);
|
|
$pricingDisclaimer = trim((string)($pricing['disclaimer'] ?? ''));
|
|
$customWorkNote = trim((string)($pricing['custom_work_note'] ?? ''));
|
|
$fixedCapNote = trim((string)($pricing['fixed_cap_note'] ?? ''));
|
|
$platformSummary = trim((string)($platform['summary'] ?? ''));
|
|
$platformCapacityNote = trim((string)($platform['capacity_note'] ?? ''));
|
|
$platformExampleCpu = (int)($platform['example_host_cpu_cores'] ?? 32);
|
|
$platformExampleRam = (int)($platform['example_host_ram_gb'] ?? 128);
|
|
$platformExampleStorage = trim((string)($platform['example_host_storage'] ?? '2 TB SSD storage'));
|
|
$platformBackupNote = trim((string)($platform['daily_backups_note'] ?? ''));
|
|
?>
|
|
<section class="hero">
|
|
<div class="container hero-layout">
|
|
<div>
|
|
<div class="eyebrow">Game hosting backed by developers</div>
|
|
<h1>Game Hosting Backed by Developers</h1>
|
|
<p>Launch a standard server for a modern or legacy game, or work with the team behind Runlevel Systems to customize mods, scripts, integrations, automation, and server workflows around your community.</p>
|
|
<div class="hero-actions">
|
|
<a class="button button-primary" href="<?= website_escape(website_url('serverlist.php')) ?>">View Game Servers</a>
|
|
<a class="button button-secondary" href="<?= website_escape($customProjectUrl) ?>">Discuss a Custom Server</a>
|
|
<a class="button button-ghost" href="<?= website_escape(panel_url()) ?>">Open Control Panel</a>
|
|
</div>
|
|
<div class="hero-points">
|
|
<div class="hero-point">
|
|
<strong>Fair starting prices</strong>
|
|
<span class="muted">Standard servers start at $<?= website_escape(number_format($standardSlotStart, 2)) ?> per slot, while selected lightweight legacy servers can start around $<?= website_escape(number_format($legacyMonthlyStart, 2)) ?> per month.</span>
|
|
</div>
|
|
<div class="hero-point">
|
|
<strong>Never-oversold capacity</strong>
|
|
<span class="muted"><?= website_escape($platformCapacityNote !== '' ? $platformCapacityNote : 'Host systems are actively monitored so customers are not crowded onto overloaded nodes.') ?></span>
|
|
</div>
|
|
<div class="hero-point">
|
|
<strong>Real engineering help</strong>
|
|
<span class="muted">Developers, software engineers, game developers, and infrastructure specialists are available when a server needs more than a restart button.</span>
|
|
</div>
|
|
<div class="hero-point">
|
|
<strong>Legacy games welcome</strong>
|
|
<span class="muted">We still host classic and community-maintained multiplayer games that larger providers often overlook, including older Windows and Linux dedicated servers.</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="hero-visual">
|
|
<img src="<?= website_escape(website_asset('images/banner.png')) ?>" alt="Gameservers.World supported games collage">
|
|
<div class="hero-visual-card">
|
|
<strong>More than hosting</strong>
|
|
<p>Gameservers.World hosts the server. Runlevel Systems provides the development, integration, and infrastructure expertise behind it, including custom workflows when a community needs more than a stock setup.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="section">
|
|
<div class="container">
|
|
<div class="summary-grid">
|
|
<article class="summary-card">
|
|
<h3>Legacy Games Welcome</h3>
|
|
<p>Older multiplayer communities should not have to disappear because larger hosts stopped supporting their game. Selected legacy servers can start around $<?= website_escape(number_format($legacyMonthlyStart, 2)) ?> per month.</p>
|
|
<ul class="list-clean">
|
|
<li>Classic FPS and older multiplayer titles</li>
|
|
<li>Small private communities and fixed-cap servers</li>
|
|
<li>Older Windows and Linux server software</li>
|
|
<li>Mod, configuration, and migration help</li>
|
|
</ul>
|
|
<div class="card-actions">
|
|
<a class="button button-primary" href="<?= website_escape(website_url('serverlist.php')) ?>">Browse Game Servers</a>
|
|
<a class="button button-secondary" href="<?= website_escape($customProjectUrl) ?>">Ask About an Older Game</a>
|
|
</div>
|
|
</article>
|
|
<article class="summary-card">
|
|
<h3>Straightforward Starting Prices</h3>
|
|
<p>Standard game servers start at $<?= website_escape(number_format($standardSlotStart, 2)) ?> per slot, and most standard plans use a <?= website_escape((string)$standardMinSlots) ?>-slot minimum.</p>
|
|
<p><?= website_escape($fixedCapNote) ?></p>
|
|
<p><?= website_escape($pricingDisclaimer) ?></p>
|
|
<p><?= website_escape($customWorkNote) ?></p>
|
|
</article>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="section">
|
|
<div class="container">
|
|
<div class="section-heading">
|
|
<div class="kicker">More than hosting</div>
|
|
<h2>Gameservers.World can host a standard server or help build something more specific.</h2>
|
|
<p>Some customers want a clean server with good support and full access. Others need custom scripts, mod workflows, database connections, Discord integrations, migration help, or tools built around a long-running community. Both use cases belong here.</p>
|
|
</div>
|
|
<div class="feature-grid">
|
|
<article class="feature-card">
|
|
<h3>Developer-backed hosting</h3>
|
|
<p>Runlevel Systems brings development and engineering experience behind the hosting service, not just sales copy and a billing page.</p>
|
|
</article>
|
|
<article class="feature-card">
|
|
<h3>Custom server builds</h3>
|
|
<p>Individual servers can be configured around startup parameters, file layouts, admin tooling, automation, legacy game quirks, or game-specific operational requirements.</p>
|
|
</article>
|
|
<article class="feature-card">
|
|
<h3>Mod and Workshop integration</h3>
|
|
<p>Supported games can use GSP content workflows, dedicated Workshop support, and hands-on help with mod setup or compatibility issues.</p>
|
|
</article>
|
|
<article class="feature-card">
|
|
<h3>Infrastructure expertise</h3>
|
|
<p>Linux, Windows Server, databases, networking, logs, backups, monitoring, and deployment are part of the same practical support surface.</p>
|
|
</article>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="section">
|
|
<div class="container">
|
|
<div class="section-heading">
|
|
<div class="kicker">What we can build</div>
|
|
<h2>Custom work can extend the server beyond the control panel.</h2>
|
|
<p>Tell us what you want your server to do. We will review the game, its tools, and the technical limits, then help design a practical solution. Not every request is possible, but unusual requests do not get dismissed out of hand.</p>
|
|
</div>
|
|
<div class="feature-grid">
|
|
<article class="feature-card">
|
|
<h3>Server scripts and automation</h3>
|
|
<p>Startup and update automation, scheduled workflows, restart logic, migration helpers, and practical server-side tooling.</p>
|
|
</article>
|
|
<article class="feature-card">
|
|
<h3>Mods, maps, and content</h3>
|
|
<p>Mod configuration, Workshop collections, custom maps, custom content packaging, and community-specific content workflows.</p>
|
|
</article>
|
|
<article class="feature-card">
|
|
<h3>Integrations and data</h3>
|
|
<p>APIs, web dashboards, Discord integrations, external applications, databases, launchers, and admin utilities.</p>
|
|
</article>
|
|
<article class="feature-card">
|
|
<h3>GSP extensions</h3>
|
|
<p>Custom GSP modules, game-specific fixes, monitoring workflows, and operational improvements when a project needs more than the default panel path.</p>
|
|
</article>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="section">
|
|
<div class="container">
|
|
<div class="section-heading">
|
|
<div class="kicker">Hosting platform</div>
|
|
<h2>Stable hosting without overcrowded nodes.</h2>
|
|
<p><?= website_escape($platformSummary !== '' ? $platformSummary : 'Hosted on modern server hardware with SSD storage, high-bandwidth connectivity, and actively monitored CPU and memory capacity.') ?></p>
|
|
</div>
|
|
<div class="summary-grid">
|
|
<article class="summary-card">
|
|
<h3>Real server access</h3>
|
|
<p>Edit files and configurations, adjust startup parameters, manage supported server content, review logs, and run updates or scheduled tasks through GSP.</p>
|
|
</article>
|
|
<article class="summary-card">
|
|
<h3>Platform note</h3>
|
|
<p>Example host: <?= website_escape((string)$platformExampleCpu) ?> CPU cores, <?= website_escape((string)$platformExampleRam) ?> GB RAM, and <?= website_escape($platformExampleStorage) ?>. <?= website_escape($platformBackupNote) ?></p>
|
|
</article>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="section">
|
|
<div class="container">
|
|
<div class="section-heading">
|
|
<div class="kicker">Modding and game development support</div>
|
|
<h2>Support for current, older, and community-maintained games.</h2>
|
|
<p>Some communities need help with abandoned dedicated-server software, badly documented mod stacks, or workflows that mix game servers, websites, databases, and custom scripts. That is where developer-backed hosting matters.</p>
|
|
</div>
|
|
<div class="summary-grid">
|
|
<article class="summary-card">
|
|
<h3>What we understand</h3>
|
|
<p>Game development, mod development, PHP, Perl, C#, Unity, Linux, Windows Server, networking, databases, SteamCMD, Steam Workshop, dedicated-server software, automation, deployment, and troubleshooting.</p>
|
|
</article>
|
|
<article class="summary-card">
|
|
<h3>How we approach unusual requests</h3>
|
|
<p>We host standard servers every day, but we also help revive older multiplayer titles, evaluate unsupported configurations, and scope custom work when a community needs something more specific.</p>
|
|
</article>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="section">
|
|
<div class="container">
|
|
<div class="section-heading">
|
|
<div class="kicker">Supported games and locations</div>
|
|
<h2>Live catalog where available, honest fallback where it is not.</h2>
|
|
<p>Available games and live catalog prices come from the active service catalog when configuration is available. Public starting-price guidance stays concise so the site does not invent fake availability or publish stale game lists just to fill space.</p>
|
|
</div>
|
|
<?php if (!empty($services)): ?>
|
|
<div class="service-grid">
|
|
<?php foreach ($services as $service): ?>
|
|
<?php
|
|
$serviceName = trim((string)($service['cfg_game_name'] ?? $service['service_name'] ?? 'Game Server'));
|
|
$price = (float)($service['price_monthly'] ?? 0);
|
|
$orderUrl = billing_url('order.php?service_id=' . rawurlencode((string)$service['service_id']));
|
|
?>
|
|
<article class="service-card">
|
|
<img src="<?= website_escape(website_service_image_url((string)($service['img_url'] ?? ''))) ?>" alt="<?= website_escape($serviceName) ?>">
|
|
<header>
|
|
<h3><?= website_escape($serviceName) ?></h3>
|
|
<div class="service-price"><?= $price > 0 ? '$' . number_format($price, 2) . ' / month' : 'Contact for pricing' ?></div>
|
|
</header>
|
|
<p><?= website_escape(trim((string)($service['description'] ?? 'Virtual private hosting with full configuration access, real support, and optional customization help.')) ?: 'Virtual private hosting with full configuration access, real support, and optional customization help.') ?></p>
|
|
<div class="card-actions">
|
|
<a class="button button-primary" href="<?= website_escape($orderUrl) ?>">Order</a>
|
|
<a class="button button-ghost" href="<?= website_escape(website_url('serverlist.php')) ?>">Catalog</a>
|
|
</div>
|
|
</article>
|
|
<?php endforeach; ?>
|
|
</div>
|
|
<?php else: ?>
|
|
<div class="empty-state">
|
|
<h3>Current game catalog unavailable</h3>
|
|
<p><?= website_escape((string)website_config('admin_notice')) ?></p>
|
|
<div class="card-actions">
|
|
<a class="button button-secondary" href="<?= website_escape(website_url('support.php')) ?>">Contact Support</a>
|
|
<a class="button button-ghost" href="<?= website_escape(website_url('docs.php')) ?>">Read Documentation</a>
|
|
</div>
|
|
</div>
|
|
<?php endif; ?>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="section">
|
|
<div class="container">
|
|
<div class="section-heading">
|
|
<div class="kicker">Real support</div>
|
|
<h2>Talk to people who understand what is under the hood.</h2>
|
|
<p>Support is not limited to “restart it and send a ticket.” Customers can get help with setup, configuration, mods, Workshop, performance troubleshooting, automation questions, and practical recovery from bad changes.</p>
|
|
</div>
|
|
<div class="summary-grid">
|
|
<article class="summary-card">
|
|
<h3>Ordinary hosting is available</h3>
|
|
<p>Order a standard server, use the panel, and get practical support without being forced into a custom project. Most standard plans start with a <?= website_escape((string)$standardMinSlots) ?>-slot baseline, while some smaller or fixed-cap games differ.</p>
|
|
</article>
|
|
<article class="summary-card">
|
|
<h3>Custom help is available too</h3>
|
|
<p>If you need scripts, integrations, workflow changes, or development help, we can scope that separately and quote it before work begins.</p>
|
|
</article>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="section">
|
|
<div class="container">
|
|
<div class="panel-preview">
|
|
<div class="panel-preview-shell">
|
|
<img src="<?= website_escape(website_asset('images/dark.jpg')) ?>" alt="GSP control panel preview background">
|
|
</div>
|
|
<div class="panel-preview-stats">
|
|
<div class="section-heading">
|
|
<h2>GSP control panel</h2>
|
|
<p>Start, stop, and restart servers. Edit files and configurations. Review logs. Install supported content. Manage Workshop workflows where the game allows it. Schedule tasks, run updates, work with backups, and monitor server state from one place.</p>
|
|
</div>
|
|
<div class="summary-card">
|
|
<h3>Built by the same team</h3>
|
|
<p>GSP itself is developed and customized by the same engineering team, which means new workflows or modules can be evaluated when a project calls for them.</p>
|
|
</div>
|
|
<div class="stack-actions">
|
|
<a class="button button-primary" href="<?= website_escape(panel_url()) ?>">Open Control Panel</a>
|
|
<a class="button button-secondary" href="<?= website_escape(website_url('docs.php')) ?>">Read Documentation</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="section">
|
|
<div class="container">
|
|
<div class="section-heading">
|
|
<div class="kicker">How custom work operates</div>
|
|
<h2>Simple process, scoped before work begins.</h2>
|
|
<p>Custom coding and integration work is quoted separately, but the goal is practical, reasonable pricing rather than inflated enterprise consulting rates. No custom work starts without agreement on scope and cost.</p>
|
|
</div>
|
|
<div class="flow-grid">
|
|
<article class="flow-step">
|
|
<span class="flow-step-number">1</span>
|
|
<h3>Tell us what you want</h3>
|
|
<p>Explain the server, the game, the community, and what you want it to do differently.</p>
|
|
</article>
|
|
<article class="flow-step">
|
|
<span class="flow-step-number">2</span>
|
|
<h3>We evaluate the limits</h3>
|
|
<p>We review the game, its tools, the operating requirements, and what is practical to build or integrate.</p>
|
|
</article>
|
|
<article class="flow-step">
|
|
<span class="flow-step-number">3</span>
|
|
<h3>We scope and price it</h3>
|
|
<p>Custom coding, integration, or engineering work is discussed up front before any build work begins.</p>
|
|
</article>
|
|
<article class="flow-step">
|
|
<span class="flow-step-number">4</span>
|
|
<h3>We build and deploy</h3>
|
|
<p>Once approved, we implement, test, and help deploy the agreed changes.</p>
|
|
</article>
|
|
<article class="flow-step">
|
|
<span class="flow-step-number">5</span>
|
|
<h3>We maintain if needed</h3>
|
|
<p>Ongoing help can be discussed for communities that need support beyond the initial delivery.</p>
|
|
</article>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="cta-band">
|
|
<div class="container">
|
|
<div class="cta-panel">
|
|
<div>
|
|
<h2>Have an idea for your server?</h2>
|
|
<p>Whether you need ordinary hosting, a legacy multiplayer server, a complicated mod setup, or something that has never been packaged into a hosting panel before, tell us what you are trying to build.</p>
|
|
</div>
|
|
<div class="stack-actions">
|
|
<a class="button button-primary" href="<?= website_escape(website_url('serverlist.php')) ?>">View Game Servers</a>
|
|
<a class="button button-secondary" href="<?= website_escape($customProjectUrl) ?>">Request Custom Development</a>
|
|
<a class="button button-ghost" href="<?= website_escape(website_url('support.php')) ?>">Contact Support</a>
|
|
<?php if ($discordUrl !== ''): ?>
|
|
<a class="button button-ghost" href="<?= website_escape($discordUrl) ?>" target="_blank" rel="noopener noreferrer">Discord</a>
|
|
<?php endif; ?>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|