From 1c7b70666a4a077a7d7ef830215f714a21d76876 Mon Sep 17 00:00:00 2001 From: MrPiglr Date: Sat, 10 Jan 2026 23:30:03 +0000 Subject: [PATCH] feat: add Godot, GameMaker, GameJolt, and Itch.io integrations - Game engine integrations: Godot (GDScript/C#), GameMaker (GML) - Distribution platform integrations: GameJolt, Itch.io - Reorganized DocsIntegrations into Engines/Platforms/Distribution sections - Added routes for all 4 new integration pages - Total coverage: 10+ platforms, 2+ engines, 2+ storefronts --- client/App.tsx | 20 + client/pages/docs/DocsIntegrations.tsx | 136 ++++- client/pages/docs/integrations/GameJolt.tsx | 414 ++++++++++++++ client/pages/docs/integrations/GameMaker.tsx | 484 ++++++++++++++++ client/pages/docs/integrations/Godot.tsx | 547 ++++++++++++++++++ client/pages/docs/integrations/ItchIo.tsx | 558 +++++++++++++++++++ 6 files changed, 2156 insertions(+), 3 deletions(-) create mode 100644 client/pages/docs/integrations/GameJolt.tsx create mode 100644 client/pages/docs/integrations/GameMaker.tsx create mode 100644 client/pages/docs/integrations/Godot.tsx create mode 100644 client/pages/docs/integrations/ItchIo.tsx diff --git a/client/App.tsx b/client/App.tsx index 2e30d36d..d308b489 100644 --- a/client/App.tsx +++ b/client/App.tsx @@ -49,6 +49,10 @@ import RecRoomIntegration from "./pages/docs/integrations/RecRoom"; import SpatialIntegration from "./pages/docs/integrations/Spatial"; import DecentralandIntegration from "./pages/docs/integrations/Decentraland"; import TheSandboxIntegration from "./pages/docs/integrations/TheSandbox"; +import GodotIntegration from "./pages/docs/integrations/Godot"; +import GameMakerIntegration from "./pages/docs/integrations/GameMaker"; +import GameJoltIntegration from "./pages/docs/integrations/GameJolt"; +import ItchIoIntegration from "./pages/docs/integrations/ItchIo"; import DocsCurriculum from "./pages/docs/DocsCurriculum"; import DocsCurriculumEthos from "./pages/docs/DocsCurriculumEthos"; import EthosGuild from "./pages/community/EthosGuild"; @@ -641,6 +645,22 @@ const App = () => ( path="integrations/thesandbox" element={} /> + } + /> + } + /> + } + /> + } + /> } /> } /> diff --git a/client/pages/docs/DocsIntegrations.tsx b/client/pages/docs/DocsIntegrations.tsx index 6170ec30..adf693ff 100644 --- a/client/pages/docs/DocsIntegrations.tsx +++ b/client/pages/docs/DocsIntegrations.tsx @@ -113,16 +113,146 @@ export default function DocsIntegrations() {

- {/* Platform Integrations Showcase */} + {/* Game Engines */} +
+
+ +

+ Game Engines +

+
+

+ Integrate AeThex into your game engine of choice with native SDKs and code examples. +

+ +
+ + + + + Godot Engine + + + + + Open-source MIT-licensed engine with GDScript and C# support + +
+ GDScript + C# + Open Source +
+ +
+
+ + + + + + GameMaker + + + + + Powerful 2D engine with GML scripting for rapid game development + +
+ GML + 2D + Multi-Platform +
+ +
+
+
+
+ + {/* Distribution Platforms */} +
+
+ +

+ Distribution Platforms +

+
+

+ Publish your games on indie storefronts with AeThex backend integration for cloud saves and cross-platform features. +

+ +
+ + + + + GameJolt + + + + + Community gaming platform with 10M+ players and trophy sync + +
+ Trophies + 10M Players + Free +
+ +
+
+ + + + + + Itch.io + + + + + Indie marketplace with 500K+ games and flexible pay-what-you-want pricing + +
+ PWYW + 500K Games + HTML5 +
+ +
+
+
+
+ + {/* Platform Integrations */}

- Platform Integrations + Social VR & Metaverse Platforms

- Deploy your games and apps across multiple platforms using AeThex's unified API. + Deploy your games and apps across social VR and metaverse platforms using AeThex's unified API.

diff --git a/client/pages/docs/integrations/GameJolt.tsx b/client/pages/docs/integrations/GameJolt.tsx new file mode 100644 index 00000000..c5a1becd --- /dev/null +++ b/client/pages/docs/integrations/GameJolt.tsx @@ -0,0 +1,414 @@ +import { Badge } from "@/components/ui/badge"; +import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; +import { Button } from "@/components/ui/button"; +import { Trophy, Code2, Rocket, ExternalLink, CheckCircle2, AlertTriangle, Package } from "lucide-react"; +import { CodeBlock } from "@/components/dev-platform/ui/CodeBlock"; + +export default function GameJoltIntegration() { + return ( +
+
+ + + GameJolt Integration + +

+ Publish on GameJolt with AeThex +

+

+ Distribute your indie games on GameJolt's 10M+ player platform. Integrate AeThex APIs with + GameJolt's trophies, leaderboards, and data storage for enhanced player engagement. +

+
+ + {/* Quick Stats */} +
+ + +
10M+
+
Registered Players
+
+
+ + +
300K+
+
Published Games
+
+
+ + +
Free
+
No Publishing Fees
+
+
+
+ + {/* Features */} +
+

What You Can Build

+
+ + + + + Unified Achievement System + + + + Sync GameJolt trophies with AeThex achievements for cross-platform progression + + + + + + + + Cross-Platform Leaderboards + + + + Combine GameJolt scores with Steam, itch.io, and web players via AeThex API + + + + + + + + Player Analytics + + + + Track GameJolt player behavior and compare metrics across all distribution platforms + + + + + + + + Community Features + + + + Integrate AeThex social features with GameJolt's forums, comments, and community tools + + +
+
+ + {/* Quick Start */} +
+

+ + Quick Start Guide +

+ + + + 1. Set Up GameJolt Game + Create your game listing on GameJolt + + +
    +
  1. + 1. + Create account at gamejolt.com +
  2. +
  3. + 2. + Add your game via Dashboard → Add Game +
  4. +
  5. + 3. + Get your Game ID and Private Key from Game → Manage → Game API +
  6. +
  7. + 4. + Configure trophies and leaderboards in GameJolt dashboard +
  8. +
+
+
+ + + + 2. Install GameJolt + AeThex SDKs + Integrate both APIs for maximum functionality + + + + + + + + + 3. Sync Trophies & Achievements + Award cross-platform achievements + + + + + +
+ + {/* Leaderboard Integration */} +
+

+ + Leaderboard Integration +

+ + + + Cross-Platform Leaderboard Sync + Submit scores to both GameJolt and AeThex + + + + + +
+ + {/* Best Practices */} +
+

+ + Best Practices & Tips +

+ +
+ + + GameJolt-Specific Considerations + + +

API rate limits: GameJolt has no strict rate limits, but avoid spam

+

User authentication: Requires username + user token (auto-provided in GameJolt client)

+

Data storage: GameJolt offers 16MB per user, use for small saves

+

Web builds: GameJolt client works great for browser-based HTML5 games

+
+
+ + + + Publishing Strategy + + +

Multi-platform release: Publish on GameJolt, itch.io, and Steam simultaneously

+

Community engagement: Use GameJolt's forums and devlog features

+

Game Jams: Participate in GameJolt jams for visibility

+

AeThex analytics: Compare player behavior across all platforms

+
+
+
+
+ + {/* Resources */} +
+

+ + Resources & Examples +

+ + +
+ + {/* Next Steps */} + + +

Ready to Publish?

+

+ Distribute your indie game on GameJolt with AeThex cross-platform features. Reach 10M+ + players with unified achievements, leaderboards, and analytics. +

+ +
+
+
+ ); +} diff --git a/client/pages/docs/integrations/GameMaker.tsx b/client/pages/docs/integrations/GameMaker.tsx new file mode 100644 index 00000000..6eed7aba --- /dev/null +++ b/client/pages/docs/integrations/GameMaker.tsx @@ -0,0 +1,484 @@ +import { Badge } from "@/components/ui/badge"; +import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; +import { Button } from "@/components/ui/button"; +import { Gamepad, Code2, Rocket, ExternalLink, CheckCircle2, AlertTriangle, Package } from "lucide-react"; +import { CodeBlock } from "@/components/dev-platform/ui/CodeBlock"; + +export default function GameMakerIntegration() { + return ( +
+
+ + + GameMaker Integration + +

+ Build with GameMaker + AeThex +

+

+ Integrate AeThex APIs with GameMaker Studio 2 for 2D game development. Use GML (GameMaker Language) + for backend integration, cloud saves, leaderboards, and cross-platform publishing. +

+
+ + {/* Quick Stats */} +
+ + +
1M+
+
Active Developers
+
+
+ + +
2D Focus
+
Drag & Drop + GML
+
+
+ + +
Multi-Export
+
PC, Mobile, Console, Web
+
+
+
+ + {/* Features */} +
+

What You Can Build

+
+ + + + + Cloud Save Integration + + + + Save player progress to AeThex backend, sync across Windows, Mac, Linux, iOS, Android builds + + + + + + + + Online Leaderboards + + + + Global and friend leaderboards with daily/weekly/all-time filters via AeThex API + + + + + + + + Player Authentication + + + + Email/password login, social auth (Google, Discord), and guest accounts with AeThex Passport + + + + + + + + Analytics & Metrics + + + + Track player sessions, level completion rates, and custom events via AeThex telemetry + + +
+
+ + {/* Quick Start */} +
+

+ + Quick Start Guide +

+ + + + 1. Import AeThex Extension + Add the AeThex GML scripts to your GameMaker project + + +

+ Download the AeThex.yymps extension + package and import into GameMaker Studio 2. +

+
    +
  1. 1. Download from GitHub
  2. +
  3. 2. In GameMaker: Tools → Import Local Package
  4. +
  5. 3. Select AeThex.yymps file
  6. +
  7. 4. Import all scripts and objects
  8. +
+
+
+ + + + 2. Initialize AeThex (GML) + Set up the AeThex client in your game's create event + + + + + + + + + 3. Handle HTTP Async Responses + Process API responses in the Async HTTP event + + + + + +
+ + {/* Cloud Save System */} +
+

+ + Cloud Save Implementation +

+ + + + Save Player Data + Upload save data to AeThex cloud storage + + + + + + + + + Leaderboard Integration + Submit scores and display global rankings + + + + + +
+ + {/* Best Practices */} +
+

+ + Best Practices & Tips +

+ +
+ + + GameMaker-Specific Tips + + +

Async HTTP events: All network requests are async, handle in Async - HTTP event

+

DS maps for JSON: Use ds_map for JSON data structures, remember to destroy them

+

Global variables: Store auth tokens in global scope for cross-room access

+

Error handling: Check HTTP status codes (0 = success) before parsing responses

+
+
+ + + + Performance Tips + + +

Limit API calls: Cache leaderboard data, refresh every 30-60 seconds max

+

Local save backup: Use ini_open() for offline fallback saves

+

Batch operations: Group multiple save operations into single API call

+

Loading states: Show "Connecting..." UI during API requests

+
+
+
+
+ + {/* Resources */} +
+

+ + Resources & Examples +

+ + +
+ + {/* Next Steps */} + + +

Ready to Build?

+

+ Create 2D games with GameMaker Studio 2 and AeThex. Export to all platforms with + cloud saves, online leaderboards, and cross-platform progression. +

+ +
+
+
+ ); +} diff --git a/client/pages/docs/integrations/Godot.tsx b/client/pages/docs/integrations/Godot.tsx new file mode 100644 index 00000000..681fd534 --- /dev/null +++ b/client/pages/docs/integrations/Godot.tsx @@ -0,0 +1,547 @@ +import { Badge } from "@/components/ui/badge"; +import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; +import { Button } from "@/components/ui/button"; +import { Zap, Code2, Rocket, ExternalLink, CheckCircle2, AlertTriangle, Package } from "lucide-react"; +import { CodeBlock } from "@/components/dev-platform/ui/CodeBlock"; + +export default function GodotIntegration() { + return ( +
+
+ + + Godot Engine Integration + +

+ Build with Godot Engine + AeThex +

+

+ Integrate AeThex APIs with Godot 4's open-source game engine. Use GDScript or C# to build + cross-platform games with unified backend, authentication, leaderboards, and cloud saves. +

+
+ + {/* Quick Stats */} +
+ + +
2M+
+
Active Developers
+
+
+ + +
Open Source
+
MIT Licensed
+
+
+ + +
2D + 3D
+
Multi-Platform Export
+
+
+
+ + {/* Features */} +
+

What You Can Build

+
+ + + + + Cloud Save System + + + + Save player progress to AeThex backend, sync across PC, mobile, web, and console builds + + + + + + + + Multiplayer Backend + + + + Use AeThex REST APIs with Godot's HTTPRequest node for matchmaking, lobbies, and player data + + + + + + + + Cross-Platform Auth + + + + Link Steam, Epic, or email accounts to AeThex Passport for unified player identity + + + + + + + + Analytics & Events + + + + Track player behavior, session analytics, and custom events with AeThex telemetry API + + +
+
+ + {/* Quick Start */} +
+

+ + Quick Start Guide +

+ + + + 1. Install AeThex Godot Plugin + Add the AeThex GDScript plugin to your project + + +

+ Download from the Godot Asset Library or install manually: +

+ +
+
+ + + + 2. Initialize AeThex Client (GDScript) + Create an autoload singleton for global AeThex access + + + + +

+ Add res://scripts/AeThexManager.gd as an autoload + in Project Settings → Autoload → Name: "AeThex" +

+
+
+ + + + 3. Build Cloud Save System + Save and load player progress with one function call + + + void: + var result = await AeThex.aethex_client.users.update_data( + Global.current_user.id, + { + "level": player_data.level, + "gold": player_data.gold, + "inventory": player_data.inventory, + "position": { + "x": player_data.position.x, + "y": player_data.position.y + }, + "timestamp": Time.get_unix_time_from_system() + } + ) + + if result.success: + print("Game saved to cloud!") + else: + print("Save failed: ", result.error) + +# Load player progress from AeThex cloud +func load_game() -> Dictionary: + var result = await AeThex.aethex_client.users.get_data( + Global.current_user.id + ) + + if result.success: + print("Game loaded from cloud!") + return result.data + else: + print("Load failed, using default data") + return get_default_player_data() + +func get_default_player_data() -> Dictionary: + return { + "level": 1, + "gold": 0, + "inventory": [], + "position": {"x": 0, "y": 0} + } + +# Example: Auto-save every 5 minutes +func _ready(): + var auto_save_timer = Timer.new() + auto_save_timer.wait_time = 300.0 # 5 minutes + auto_save_timer.autostart = true + auto_save_timer.connect("timeout", self, "auto_save") + add_child(auto_save_timer) + +func auto_save(): + save_game(Global.player_data)`} + language="gdscript" + showLineNumbers={true} + /> + + +
+ + {/* C# Examples */} +
+

+ + C# Integration (Godot 4 Mono) +

+ + + + Leaderboard System (C#) + Display global leaderboards with real-time updates + + + ("/root/AeThex"); + _leaderboardList = GetNode("LeaderboardList"); + + LoadLeaderboard(); + } + + private async void LoadLeaderboard() + { + try + { + var result = await _aethex.Leaderboards.GetTopAsync("global-score", new() + { + Limit = 100, + Platform = "all" + }); + + _leaderboardList.Clear(); + + foreach (var entry in result.Entries) + { + var text = $"{entry.Rank}. {entry.Username} - {entry.Score:N0} pts"; + _leaderboardList.AddItem(text); + } + + GD.Print($"Loaded {result.Entries.Count} leaderboard entries"); + } + catch (System.Exception e) + { + GD.PrintErr($"Failed to load leaderboard: {e.Message}"); + } + } + + public async void SubmitScore(int score) + { + try + { + await _aethex.Leaderboards.UpdateScoreAsync("global-score", new() + { + UserId = GlobalData.CurrentUser.Id, + Score = score, + Metadata = new() + { + { "platform", "godot" }, + { "version", ProjectSettings.GetSetting("application/config/version").AsString() } + } + }); + + GD.Print($"Score submitted: {score}"); + LoadLeaderboard(); // Refresh + } + catch (System.Exception e) + { + GD.PrintErr($"Failed to submit score: {e.Message}"); + } + } +}`} + language="csharp" + showLineNumbers={true} + /> + + +
+ + {/* Authentication Flow */} +
+

Player Authentication

+

+ Multiple authentication methods: Email/password, Steam, Epic Games, or anonymous. +

+ + + + Email + Password Login + + + + + + + + + Steam Authentication (PC Builds) + + +

+ Link Godot games on Steam with AeThex using the GodotSteam plugin. +

+ +
+
+
+ + {/* Best Practices */} +
+

+ + Best Practices & Tips +

+ +
+ + + Godot-Specific Considerations + + +

Use await for async calls: Godot 4's await keyword makes HTTP requests clean

+

HTTPRequest node: For manual API calls, use Godot's built-in HTTPRequest

+

Export variables: Store API keys in environment variables, not in scenes

+

Signal-based flow: Connect AeThex signals for auth success/failure

+
+
+ + + + Performance Optimization + + +

Cache API responses: Store user data locally, sync periodically

+

Batch requests: Group multiple API calls when possible

+

Background threads: Use Thread or WorkerThreadPool for heavy API work

+

Offline mode: Implement local fallback when API is unreachable

+
+
+
+
+ + {/* Resources */} +
+

+ + Resources & Examples +

+ + +
+ + {/* Next Steps */} + + +

Ready to Build?

+

+ Create cross-platform games with Godot Engine and AeThex. Export to PC, mobile, web, + and console with unified cloud saves, leaderboards, and authentication. +

+ +
+
+
+ ); +} diff --git a/client/pages/docs/integrations/ItchIo.tsx b/client/pages/docs/integrations/ItchIo.tsx new file mode 100644 index 00000000..187fba4a --- /dev/null +++ b/client/pages/docs/integrations/ItchIo.tsx @@ -0,0 +1,558 @@ +import { Badge } from "@/components/ui/badge"; +import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; +import { Button } from "@/components/ui/button"; +import { Heart, Code2, Rocket, ExternalLink, CheckCircle2, AlertTriangle, Package } from "lucide-react"; +import { CodeBlock } from "@/components/dev-platform/ui/CodeBlock"; + +export default function ItchIoIntegration() { + return ( +
+
+ + + Itch.io Integration + +

+ Publish on Itch.io with AeThex +

+

+ Distribute your indie games on itch.io, the world's largest indie game marketplace. Integrate + AeThex APIs for cloud saves, achievements, analytics, and cross-platform player progression. +

+
+ + {/* Quick Stats */} +
+ + +
1M+
+
Creators
+
+
+ + +
500K+
+
Published Games
+
+
+ + +
Pay What You Want
+
Flexible Pricing
+
+
+
+ + {/* Features */} +
+

What You Can Build

+
+ + + + + Cloud Save Sync + + + + Save player progress to AeThex backend, accessible across itch.io app and browser builds + + + + + + + + Cross-Store Leaderboards + + + + Combine itch.io players with Steam, Epic, and GameJolt users in unified leaderboards + + + + + + + + Player Analytics + + + + Track itch.io player behavior, demographics, and compare with other distribution platforms + + + + + + + + Web Game Backend + + + + Perfect for HTML5/WebGL games on itch.io - use AeThex REST APIs directly from browser + + +
+
+ + {/* Quick Start */} +
+

+ + Quick Start Guide +

+ + + + 1. Publish Your Game on Itch.io + Create your game page and upload builds + + +
    +
  1. + 1. + Create account at itch.io +
  2. +
  3. + 2. + Upload your game via Dashboard → Upload new project +
  4. +
  5. + 3. + Configure pricing (free, paid, or pay-what-you-want) +
  6. +
  7. + 4. + Set up API access in your game code (no itch.io API key needed for basic features) +
  8. +
+
+
+ + + + 2. Initialize AeThex for Web Games + Perfect for HTML5/WebGL builds on itch.io + + + + +// Or via npm for bundled projects +import { AeThexClient } from '@aethex/sdk'; + +// Initialize client +const aethex = new AeThexClient({ + apiKey: 'YOUR_AETHEX_API_KEY', + environment: 'production' +}); + +// Authenticate player (email/password or guest) +async function authenticatePlayer() { + try { + // Check if user has existing session + const savedToken = localStorage.getItem('aethex_token'); + + if (savedToken) { + aethex.setAuthToken(savedToken); + console.log('Restored session'); + return; + } + + // Otherwise, create guest account + const result = await aethex.auth.createGuest({ + platform: 'itchio', + deviceId: generateDeviceId() + }); + + localStorage.setItem('aethex_token', result.token); + console.log('Guest account created:', result.userId); + + } catch (error) { + console.error('Auth failed:', error); + } +} + +function generateDeviceId() { + // Create stable device ID for itch.io app or browser + const storedId = localStorage.getItem('device_id'); + if (storedId) return storedId; + + const newId = 'itchio_' + Math.random().toString(36).substring(2); + localStorage.setItem('device_id', newId); + return newId; +} + +// Call on game start +authenticatePlayer();`} + language="javascript" + showLineNumbers={true} + /> + + + + + + 3. Implement Cloud Saves + Save player progress across sessions and devices + + + { + const state = getGameState(); + this.saveGame(state); + }, 120000); // 2 minutes + } + + showNotification(message) { + // Show in-game notification + console.log('NOTIFICATION:', message); + } +} + +// Usage +const saveManager = new SaveManager(aethex); +await saveManager.init(); + +// Load game on start +const gameState = await saveManager.loadGame(); + +// Enable auto-save +saveManager.enableAutoSave(() => ({ + level: currentLevel, + score: playerScore, + inventory: playerInventory, + progress: gameProgress +})); + +// Manual save button +document.getElementById('save-button').addEventListener('click', async () => { + await saveManager.saveGame({ + level: currentLevel, + score: playerScore, + inventory: playerInventory, + progress: gameProgress + }); +});`} + language="javascript" + showLineNumbers={true} + /> + + +
+ + {/* Itch.io App Integration */} +
+

+ + Itch.io App Integration +

+ + + + Detect Itch.io App Environment + Optimize for browser vs desktop app + + + + + + + + + Cross-Platform Leaderboard + Share scores across itch.io and other stores + + + { + const platformBadge = getPlatformBadge(entry.metadata.platform); + + container.innerHTML += \` +
+ \${index + 1} + \${entry.username} + \${platformBadge} + \${entry.score.toLocaleString()} +
+ \`; + }); +} + +function getPlatformBadge(platform) { + const badges = { + 'itchio': '🎮 itch.io', + 'steam': '🔷 Steam', + 'gamejolt': '⚡ GameJolt', + 'epic': '📦 Epic' + }; + return badges[platform] || '🌐 Web'; +}`} + language="javascript" + showLineNumbers={true} + /> +
+
+
+ + {/* Best Practices */} +
+

+ + Best Practices & Tips +

+ +
+ + + Itch.io-Specific Tips + + +

HTML5 games: Itch.io has excellent HTML5 support, perfect for WebGL/Canvas games

+

Pay-what-you-want: Offer free version with AeThex ads, paid removes ads

+

Butler CLI: Use itch.io's butler tool for automated builds and updates

+

Browser compatibility: Test in Chrome, Firefox, Safari for web builds

+
+
+ + + + Monetization Strategy + + +

Flexible pricing: Let players pay what they want ($0-$20 recommended)

+

Revenue share: Itch.io takes 0-30% (you choose), AeThex tracks sales analytics

+

Bundle sales: Participate in itch.io bundles for discoverability

+

Patreon integration: Link Patreon supporters to exclusive AeThex features

+
+
+
+
+ + {/* Resources */} +
+

+ + Resources & Examples +

+ + +
+ + {/* Next Steps */} + + +

Ready to Launch?

+

+ Publish your indie game on itch.io with AeThex backend features. Reach 500K+ games + marketplace with cloud saves, cross-platform leaderboards, and player analytics. +

+ +
+
+
+ ); +}