diff --git a/docs/ARCHITECTURE_OVERVIEW.md b/docs/ARCHITECTURE_OVERVIEW.md index 87fe2c69..df19a4b4 100644 --- a/docs/ARCHITECTURE_OVERVIEW.md +++ b/docs/ARCHITECTURE_OVERVIEW.md @@ -8,23 +8,39 @@ Complete technical architecture of the AeThex Engine ecosystem. AeThex is a complete game development platform consisting of three core components: -``` -┌────────────────────────────────────────────────────────────────┐ -│ AeThex Platform │ -├────────────────────────────────────────────────────────────────┤ -│ │ -│ ┌─────────────────┐ ┌──────────────┐ ┌──────────────────┐ │ -│ │ AeThex Engine │ │ Studio IDE │ │ Cloud Services │ │ -│ │ │ │ │ │ │ │ -│ │ • Game Runtime │ │ • Browser │ │ • Auth │ │ -│ │ • Editor │ │ • Collab │ │ • Multiplayer │ │ -│ │ • Cloud SDK │ │ • Live View │ │ • Saves │ │ -│ │ • AI Module │ │ • Assets │ │ • Analytics │ │ -│ └─────────────────┘ └──────────────┘ └──────────────────┘ │ -│ ↕ ↕ ↕ │ -│ C++/GDScript TypeScript/React Node.js/Go │ -│ │ -└────────────────────────────────────────────────────────────────┘ +```mermaid +graph TB + subgraph Platform["⚡ AeThex Platform"] + subgraph Engine["AeThex Engine
(C++/GDScript)"] + E1[Game Runtime] + E2[Editor] + E3[Cloud SDK] + E4[AI Module] + end + + subgraph Studio["Studio IDE
(TypeScript/React)"] + S1[Browser-Based] + S2[Collaboration] + S3[Live Preview] + S4[Asset Manager] + end + + subgraph Cloud["Cloud Services
(Node.js/Go)"] + C1[Authentication] + C2[Multiplayer] + C3[Cloud Saves] + C4[Analytics] + end + end + + Engine <-->|WebSocket/HTTP| Studio + Engine <-->|REST API| Cloud + Studio <-->|API Gateway| Cloud + + style Engine fill:#00ffff22,stroke:#00ffff,stroke-width:2px + style Studio fill:#ff00ff22,stroke:#ff00ff,stroke-width:2px + style Cloud fill:#00ffff22,stroke:#00ffff,stroke-width:2px + style Platform fill:#00000000,stroke:#ffffff,stroke-width:1px ``` --- @@ -33,21 +49,46 @@ AeThex is a complete game development platform consisting of three core componen Based on Godot Engine 4.3-stable with AeThex-specific modules. +> [!NOTE] +> The engine core is written in C++ with GDScript as the primary scripting language. All cloud and AI features are accessible via simple GDScript APIs. + ### Architecture Layers +```mermaid +graph TD + subgraph Layer4["Application Layer"] + Game[Game Code
GDScript/C#/C++] + end + + subgraph Layer3["SDK Layer"] + SDK[AeThex Cloud SDK
GDScript APIs] + end + + subgraph Layer2["Module Layer"] + M1[aethex_cloud] + M2[aethex_ai] + M3[aethex_studio] + M4[aethex_analytics] + end + + subgraph Layer1["Engine Layer"] + E1[Rendering] + E2[Physics] + E3[Audio] + E4[Networking] + E5[Scripting] + E6[Scene System] + end + + Game --> SDK + SDK --> M1 & M2 & M3 & M4 + M1 & M2 & M3 & M4 --> E1 & E2 & E3 & E4 & E5 & E6 + + style Layer4 fill:#00ffff22,stroke:#00ffff + style Layer3 fill:#ff00ff22,stroke:#ff00ff + style Layer2 fill:#00ffff22,stroke:#00ffff + style Layer1 fill:#ff00ff22,stroke:#ff00ff ``` -┌────────────────────────────────────────────┐ -│ Game Code (GDScript/C#) │ ← Developer's game -├────────────────────────────────────────────┤ -│ AeThex Cloud SDK (GDScript) │ ← Cloud API -├────────────────────────────────────────────┤ -│ AeThex Modules (C++) │ ← Cloud/AI/Studio -│ • aethex_cloud • aethex_ai │ -│ • aethex_studio • aethex_analytics │ -├────────────────────────────────────────────┤ -│ Godot Core Engine (C++) │ ← Game engine -│ • Rendering • Physics • Audio │ -│ • Networking • Scripting • Scene System │ ├────────────────────────────────────────────┤ │ Platform Layer (OS-specific) │ ← Windows/Linux/Mac └────────────────────────────────────────────┘ diff --git a/docs/EXPORTING_GAMES.md b/docs/EXPORTING_GAMES.md index e19545b4..2b8da359 100644 --- a/docs/EXPORTING_GAMES.md +++ b/docs/EXPORTING_GAMES.md @@ -2,6 +2,9 @@ This guide covers exporting your AeThex game to all supported platforms: Windows, Linux, macOS, Web (HTML5), and Android. +> [!TIP] +> Start with web exports for quick testing and distribution. Windows and Linux exports are easiest for desktop games. + --- ## Overview @@ -13,10 +16,42 @@ AeThex supports exporting to: Each platform has specific requirements and optimization considerations. +```mermaid +graph TD + Game[🎮 Your Game] --> Export{Export Target} + + Export -->|Desktop| Windows[🖥️ Windows] + Export -->|Desktop| Linux[🐧 Linux] + Export -->|Desktop| Mac[🍎 macOS] + Export -->|Web| HTML5[🌐 HTML5] + Export -->|Mobile| Android[📱 Android] + + Windows --> Steam[Steam] + Windows --> Itch[itch.io] + Linux --> Steam + Linux --> Itch + Mac --> AppStore[App Store] + HTML5 --> Web[Web Hosting] + Android --> PlayStore[Google Play] + + style Game fill:#00ffff22,stroke:#00ffff + style Windows fill:#ff00ff22,stroke:#ff00ff + style Linux fill:#00ffff22,stroke:#00ffff + style Mac fill:#ff00ff22,stroke:#ff00ff + style HTML5 fill:#00ffff22,stroke:#00ffff + style Android fill:#ff00ff22,stroke:#ff00ff +``` + +> [!NOTE] +> Each platform requires specific export templates. Download them from the editor or the AeThex website. + --- ## Before Exporting +> [!WARNING] +> Always test your game in release mode before exporting. Some bugs only appear in release builds due to optimizations and different code paths. + ### 1. Test Your Game Always test thoroughly before exporting: diff --git a/docs/GAME_DEVELOPMENT.md b/docs/GAME_DEVELOPMENT.md index 7504eb63..9320824d 100644 --- a/docs/GAME_DEVELOPMENT.md +++ b/docs/GAME_DEVELOPMENT.md @@ -2,6 +2,9 @@ This guide covers the core game development concepts and systems in AeThex Engine. +> [!TIP] +> New to game development? Start with the Scene System and Node Hierarchy sections. These are the foundation of everything in AeThex. + ## Scene System ### What is a Scene? @@ -13,6 +16,22 @@ A **scene** is a collection of nodes organized in a tree structure. Scenes are t - Items - Prefabs/templates +```mermaid +graph TD + Scene[🎬 Scene File
.tscn] --> Root[Root Node] + Root --> Child1[Child Node 1] + Root --> Child2[Child Node 2] + Root --> Child3[Child Node 3] + Child2 --> GrandChild1[Grandchild 1] + Child2 --> GrandChild2[Grandchild 2] + + style Scene fill:#00ffff22,stroke:#00ffff + style Root fill:#ff00ff22,stroke:#ff00ff +``` + +> [!NOTE] +> Scenes can be nested inside other scenes. This allows you to create reusable components and maintain a clean project structure. + ### Working with Scenes **Creating Scenes:** @@ -37,6 +56,9 @@ var packed_scene = load("res://levels/next_level.tscn") get_tree().change_scene_to_packed(packed_scene) ``` +> [!WARNING] +> Always use `change_scene_to_file()` or `change_scene_to_packed()` to switch scenes. Manually removing and adding root nodes can cause issues with signal connections and autoloads. + **Scene Lifecycle:** - `_enter_tree()` - Called when node enters the scene tree - `_ready()` - Called when node and children are ready @@ -121,6 +143,33 @@ get_tree().call_group("enemies", "take_damage", 10) **Signals** are AeThex's implementation of the observer pattern. They allow nodes to communicate without tight coupling. +```mermaid +sequenceDiagram + participant Player + participant Enemy + participant UI + + Player->>Player: take_damage(10) + Player->>Player: emit_signal("health_changed", 90) + Player->>UI: health_changed(90) + UI->>UI: update_health_bar(90) + + Note over Player,UI: Signals enable loose coupling + + Player->>Player: health reaches 0 + Player->>Player: emit_signal("player_died") + Player->>UI: player_died + Player->>Enemy: player_died + UI->>UI: show_game_over() + Enemy->>Enemy: celebrate() + + style Player fill:#00ffff22,stroke:#00ffff + style UI fill:#ff00ff22,stroke:#ff00ff +``` + +> [!TIP] +> Signals are perfect for situations where you want multiple systems to react to an event without creating dependencies between them. + ### Built-in Signals **Common Node Signals:** @@ -133,6 +182,9 @@ get_tree().call_group("enemies", "take_damage", 10) - `Area2D.body_exited(body)` - Another body left the area - `Button.pressed()` - Button was clicked +> [!NOTE] +> Most built-in nodes come with useful signals. Check the documentation for each node type to see what signals are available. + ### Creating Custom Signals ```gdscript diff --git a/docs/_coverpage.md b/docs/_coverpage.md new file mode 100644 index 00000000..574a9b72 --- /dev/null +++ b/docs/_coverpage.md @@ -0,0 +1,103 @@ + + + + +

+ The cloud-first game engine that makes
+ multiplayer, cloud saves, and AI features trivial. +

+ +
+ + ☁️ Cloud-Native + + + 🎮 Game-Ready + + + 🤖 AI-Powered + + + 🚀 Open Source + +
+ +[🚀 Get Started](GETTING_STARTED.md) +[📚 Documentation](README.md) +[💻 GitHub](https://github.com/AeThex-LABS/AeThex-Engine-Core) + + + diff --git a/docs/index.html b/docs/index.html index 308279c9..8e5c551e 100644 --- a/docs/index.html +++ b/docs/index.html @@ -14,49 +14,180 @@ + + + -
Loading...
+
Loading AeThex Documentation...
+ + + + + + + + + + + + + + + + + + + + + + @@ -64,5 +195,26 @@ + + + + + + + + + + diff --git a/docs/tutorials/AI_ASSISTANT_TUTORIAL.md b/docs/tutorials/AI_ASSISTANT_TUTORIAL.md index 2110a4ce..fb382c7d 100644 --- a/docs/tutorials/AI_ASSISTANT_TUTORIAL.md +++ b/docs/tutorials/AI_ASSISTANT_TUTORIAL.md @@ -2,6 +2,9 @@ Learn how to integrate AeThex's AI assistant into your game to provide contextual help and coding assistance to players. +> [!TIP] +> The AI Assistant can understand your game's context, player actions, and current state to provide relevant and helpful responses. + --- ## What You'll Build @@ -16,6 +19,19 @@ A game with an in-game AI assistant that can: **Difficulty:** Beginner **Prerequisites:** Basic GDScript knowledge +```mermaid +graph LR + Player[👤 Player] -->|Asks Question| UI[Chat UI] + UI -->|Send Message| AI[⚡ AI Service] + AI -->|Context| Game[Game State] + AI -->|Generate| Response[AI Response] + Response -->|Display| UI + + style Player fill:#00ffff22,stroke:#00ffff + style AI fill:#ff00ff22,stroke:#ff00ff + style Game fill:#00ffff22,stroke:#00ffff +``` + --- ## Prerequisites @@ -24,12 +40,18 @@ A game with an in-game AI assistant that can: - AeThex Cloud connection set up - Basic understanding of UI systems +> [!WARNING] +> AI features require an active AeThex Cloud connection. Make sure you're authenticated before using AI services. + --- ## Step 1: Connect to AI Service First, ensure you're connected to AeThex Cloud with AI services enabled. +> [!NOTE] +> AeThex Cloud handles all AI infrastructure, rate limiting, and caching automatically. + ```gdscript # main.gd extends Node diff --git a/docs/tutorials/ANALYTICS_TUTORIAL.md b/docs/tutorials/ANALYTICS_TUTORIAL.md index c9ec3f75..e4efa340 100644 --- a/docs/tutorials/ANALYTICS_TUTORIAL.md +++ b/docs/tutorials/ANALYTICS_TUTORIAL.md @@ -2,6 +2,9 @@ Learn how to track player behavior, measure engagement, and make data-driven decisions with AeThex Analytics. +> [!TIP] +> Analytics is your window into player behavior. Use it to understand what players love, what confuses them, and where they get stuck. + --- ## What You'll Build @@ -17,6 +20,23 @@ A complete analytics system that tracks: **Difficulty:** Beginner **Prerequisites:** Basic GDScript knowledge +```mermaid +graph LR + Game[🎮 Game Events] -->|Track| SDK[AeThex SDK] + SDK -->|Batch| Cloud[☁️ Cloud] + Cloud -->|Process| Pipeline[Data Pipeline] + Pipeline -->|Store| DB[(Database)] + DB -->|Query| Dashboard[📊 Dashboard] + Dashboard -->|Insights| You[👤 You] + + Events[Events
• level_complete
• item_collected
• player_died] + Properties[User Props
• level
• skill
• device] + + style Game fill:#00ffff22,stroke:#00ffff + style Cloud fill:#ff00ff22,stroke:#ff00ff + style Dashboard fill:#00ffff22,stroke:#00ffff +``` + --- ## Why Use Analytics? @@ -28,12 +48,18 @@ Analytics helps you: - **Fix bugs faster** - Get crash reports automatically - **Make data-driven decisions** - Know what features to build +> [!NOTE] +> AeThex Analytics automatically batches events to minimize network usage and battery drain. No need to worry about performance impact. + --- ## Step 1: Connect to Analytics First, connect to AeThex Cloud and initialize analytics: +> [!WARNING] +> Don't track personally identifiable information (PII) like email addresses or real names in analytics events. Use anonymous user IDs instead. + ```gdscript # main.gd extends Node diff --git a/docs/tutorials/AUTH_TUTORIAL.md b/docs/tutorials/AUTH_TUTORIAL.md index 0f46c1ff..9ec54ea3 100644 --- a/docs/tutorials/AUTH_TUTORIAL.md +++ b/docs/tutorials/AUTH_TUTORIAL.md @@ -2,6 +2,9 @@ Learn how to add user authentication to your AeThex game with email/password, OAuth, and guest login support. +> [!TIP] +> Authentication is the foundation for cloud saves, multiplayer, and social features. Start here to unlock all AeThex Cloud capabilities. + --- ## What You'll Build @@ -17,6 +20,43 @@ A complete authentication system with: **Difficulty:** Beginner **Prerequisites:** Basic GDScript knowledge +```mermaid +flowchart TD + Start[Game Launch] --> Check{Has Session?} + Check -->|Yes| Welcome[Welcome Back!] + Check -->|No| Login[Show Login Screen] + + Login --> Choice{Auth Method?} + + Choice -->|Email/Password| EmailAuth[Email Login] + Choice -->|OAuth| OAuthFlow[OAuth Flow] + Choice -->|Guest| GuestAuth[Guest Account] + + EmailAuth --> Validate{Valid?} + Validate -->|No| Error1[Show Error] + Error1 --> Login + Validate -->|Yes| Auth[Authenticate] + + OAuthFlow --> Provider[Select Provider] + Provider --> Browser[Open Browser] + Browser --> Auth + + GuestAuth --> Auth + + Auth --> Success{Success?} + Success -->|No| Error2[Show Error] + Error2 --> Login + Success -->|Yes| SaveSession[Save Session] + SaveSession --> Welcome + + Welcome --> MainMenu[Main Menu] + + style Start fill:#00ffff22,stroke:#00ffff + style Welcome fill:#00ff0022,stroke:#00ff00 + style Auth fill:#ff00ff22,stroke:#ff00ff + style MainMenu fill:#00ffff22,stroke:#00ffff +``` + --- ## Why Add Authentication? @@ -28,12 +68,18 @@ Authentication enables: - **Analytics** - Track user behavior - **Monetization** - In-app purchases, subscriptions +> [!WARNING] +> Never store passwords in plaintext. AeThex Cloud handles all password hashing and security automatically. + --- ## Step 1: Connect to AeThex Cloud First, ensure cloud services are connected: +> [!NOTE] +> Session tokens are stored securely and persist across game sessions. Users stay logged in automatically. + ```gdscript # main.gd extends Node