modified: README.md
This commit is contained in:
parent
729673932c
commit
574e21796e
13 changed files with 2400 additions and 1 deletions
106
.github/workflows/build.yml
vendored
Normal file
106
.github/workflows/build.yml
vendored
Normal file
|
|
@ -0,0 +1,106 @@
|
||||||
|
name: Build AeThex Engine
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [main]
|
||||||
|
pull_request:
|
||||||
|
branches: [main]
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-windows:
|
||||||
|
runs-on: windows-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
submodules: recursive
|
||||||
|
|
||||||
|
- name: Set up Python
|
||||||
|
uses: actions/setup-python@v5
|
||||||
|
with:
|
||||||
|
python-version: '3.11'
|
||||||
|
|
||||||
|
- name: Install SCons
|
||||||
|
run: pip install scons
|
||||||
|
|
||||||
|
- name: Setup MSVC
|
||||||
|
uses: microsoft/setup-msbuild@v2
|
||||||
|
|
||||||
|
- name: Build AeThex Engine (Windows)
|
||||||
|
run: |
|
||||||
|
cd engine
|
||||||
|
scons platform=windows target=editor -j2
|
||||||
|
|
||||||
|
- name: Upload Windows Build
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: aethex-windows-editor
|
||||||
|
path: engine/bin/aethex.windows.editor.x86_64.exe
|
||||||
|
|
||||||
|
build-linux:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
submodules: recursive
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y build-essential scons pkg-config \
|
||||||
|
libx11-dev libxcursor-dev libxinerama-dev libgl1-mesa-dev \
|
||||||
|
libglu-dev libasound2-dev libpulse-dev libudev-dev \
|
||||||
|
libxi-dev libxrandr-dev yasm
|
||||||
|
|
||||||
|
- name: Build AeThex Engine (Linux)
|
||||||
|
run: |
|
||||||
|
cd engine
|
||||||
|
scons platform=linuxbsd target=editor -j2
|
||||||
|
|
||||||
|
- name: Upload Linux Build
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: aethex-linux-editor
|
||||||
|
path: engine/bin/godot.linuxbsd.editor.x86_64
|
||||||
|
|
||||||
|
build-macos:
|
||||||
|
runs-on: macos-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
submodules: recursive
|
||||||
|
|
||||||
|
- name: Set up Python
|
||||||
|
uses: actions/setup-python@v5
|
||||||
|
with:
|
||||||
|
python-version: '3.11'
|
||||||
|
|
||||||
|
- name: Install SCons
|
||||||
|
run: pip install scons
|
||||||
|
|
||||||
|
- name: Build AeThex Engine (macOS)
|
||||||
|
run: |
|
||||||
|
cd engine
|
||||||
|
scons platform=macos target=editor -j2
|
||||||
|
|
||||||
|
- name: Upload macOS Build
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: aethex-macos-editor
|
||||||
|
path: engine/bin/godot.macos.editor.universal
|
||||||
|
|
||||||
|
create-release:
|
||||||
|
needs: [build-windows, build-linux, build-macos]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: github.ref == 'refs/heads/main'
|
||||||
|
steps:
|
||||||
|
- uses: actions/download-artifact@v4
|
||||||
|
|
||||||
|
- name: Create Release
|
||||||
|
uses: softprops/action-gh-release@v1
|
||||||
|
if: startsWith(github.ref, 'refs/tags/')
|
||||||
|
with:
|
||||||
|
files: |
|
||||||
|
aethex-windows-editor/*
|
||||||
|
aethex-linux-editor/*
|
||||||
|
aethex-macos-editor/*
|
||||||
29
.gitignore
vendored
Normal file
29
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
# Build artifacts
|
||||||
|
engine/bin/
|
||||||
|
engine/.scons_cache/
|
||||||
|
engine/.sconsign*.dblite
|
||||||
|
engine/platform/android/java/.gradle/
|
||||||
|
engine/platform/android/java/build/
|
||||||
|
engine/platform/android/java/lib/build/
|
||||||
|
|
||||||
|
# IDE files
|
||||||
|
.vscode/
|
||||||
|
.idea/
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
*~
|
||||||
|
|
||||||
|
# OS files
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
|
|
||||||
|
# Logs
|
||||||
|
*.log
|
||||||
|
|
||||||
|
# Custom tools build
|
||||||
|
tools/build/
|
||||||
|
tools/dist/
|
||||||
|
|
||||||
|
# Temporary files
|
||||||
|
*.tmp
|
||||||
|
temp/
|
||||||
158
BUILD_STATUS.md
Normal file
158
BUILD_STATUS.md
Normal file
|
|
@ -0,0 +1,158 @@
|
||||||
|
# 🔨 AeThex Engine Build Status
|
||||||
|
|
||||||
|
## Current Build Information
|
||||||
|
|
||||||
|
**Started:** $(date)
|
||||||
|
**Platform:** Linux (x86_64)
|
||||||
|
**Target:** Editor build with AI module
|
||||||
|
**CPU Cores:** 2
|
||||||
|
**Expected Time:** 15-30 minutes
|
||||||
|
|
||||||
|
## Build Command
|
||||||
|
```bash
|
||||||
|
cd /workspaces/AeThex-Engine-Core/engine
|
||||||
|
scons platform=linuxbsd target=editor module_aethex_ai_enabled=yes -j2
|
||||||
|
```
|
||||||
|
|
||||||
|
## What's Being Compiled
|
||||||
|
|
||||||
|
### Core Components
|
||||||
|
- ✅ Godot Engine Core (C++)
|
||||||
|
- ✅ Rendering System (GLES3, Vulkan)
|
||||||
|
- ✅ Editor GUI
|
||||||
|
- ✅ Physics Engine
|
||||||
|
- ✅ Audio System
|
||||||
|
- ✅ Networking Stack
|
||||||
|
|
||||||
|
### AeThex Customizations
|
||||||
|
- 🎨 Brand Colors (Cyan + Purple)
|
||||||
|
- 🏷️ Engine Name (AeThex Engine)
|
||||||
|
- 📝 Copyright (AeThex Labs)
|
||||||
|
- 🖼️ Custom Logos (Hexagon design)
|
||||||
|
- 📋 Custom Menu (AeThex menu)
|
||||||
|
- 🤖 **AI Module** (NEW!)
|
||||||
|
|
||||||
|
### AI Module Files Being Compiled
|
||||||
|
```
|
||||||
|
modules/aethex_ai/
|
||||||
|
├── register_types.cpp - Module registration
|
||||||
|
├── ai_assistant.cpp - Main AI singleton
|
||||||
|
├── ai_code_completion.cpp - Code completion helper
|
||||||
|
└── api/ai_api_client.cpp - Claude API HTTP client
|
||||||
|
```
|
||||||
|
|
||||||
|
## After Build Completes
|
||||||
|
|
||||||
|
### 1. Locate the Binary
|
||||||
|
The compiled editor will be at:
|
||||||
|
```
|
||||||
|
/workspaces/AeThex-Engine-Core/engine/bin/aethex.linuxbsd.editor.x86_64
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Run the Editor
|
||||||
|
```bash
|
||||||
|
cd /workspaces/AeThex-Engine-Core/engine
|
||||||
|
./bin/aethex.linuxbsd.editor.x86_64
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Configure AI Features
|
||||||
|
In Editor Settings:
|
||||||
|
- Add your Claude API key
|
||||||
|
- Enable AI Assistant
|
||||||
|
- Test code completion
|
||||||
|
|
||||||
|
### 4. Verify Branding
|
||||||
|
Check for:
|
||||||
|
- [ ] "AeThex Engine" title
|
||||||
|
- [ ] Cyan/purple theme
|
||||||
|
- [ ] Custom hexagon logo
|
||||||
|
- [ ] AeThex menu (between Editor and Help)
|
||||||
|
- [ ] About dialog shows "AeThex Labs"
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### If Build Fails
|
||||||
|
1. Check `build.log` for errors
|
||||||
|
2. Install missing dependencies:
|
||||||
|
```bash
|
||||||
|
sudo apt-get install -y build-essential scons pkg-config \
|
||||||
|
libx11-dev libxcursor-dev libxinerama-dev libgl1-mesa-dev \
|
||||||
|
libglu-dev libasound2-dev libpulse-dev libudev-dev \
|
||||||
|
libxi-dev libxrandr-dev yasm
|
||||||
|
```
|
||||||
|
3. Clean and rebuild:
|
||||||
|
```bash
|
||||||
|
scons --clean
|
||||||
|
scons platform=linuxbsd target=editor -j2
|
||||||
|
```
|
||||||
|
|
||||||
|
### If Editor Crashes
|
||||||
|
- Check GPU driver support (Vulkan/OpenGL)
|
||||||
|
- Try software rendering: `./bin/aethex.* --rendering-driver opengl3`
|
||||||
|
|
||||||
|
### If AI Module Doesn't Work
|
||||||
|
- Ensure Claude API key is set
|
||||||
|
- Check network connectivity to api.anthropic.com
|
||||||
|
- Review AIAssistant logs in console
|
||||||
|
|
||||||
|
## Module Status
|
||||||
|
|
||||||
|
### ✅ Completed
|
||||||
|
- Core engine files modified
|
||||||
|
- AI module structure created
|
||||||
|
- API client implementation
|
||||||
|
- Module registration system
|
||||||
|
- Build configuration
|
||||||
|
|
||||||
|
### ⏳ Pending
|
||||||
|
- UI panel implementation
|
||||||
|
- Editor plugin integration
|
||||||
|
- Async API calls
|
||||||
|
- Settings UI for API key
|
||||||
|
- Documentation in editor
|
||||||
|
|
||||||
|
## File Modifications Summary
|
||||||
|
|
||||||
|
### Engine Core
|
||||||
|
- `version.py` - Changed name to "AeThex Engine"
|
||||||
|
- `editor/gui/editor_about.cpp` - Added AeThex copyright
|
||||||
|
- `editor/themes/editor_color_map.cpp` - Applied brand colors
|
||||||
|
- `editor/themes/editor_theme_manager.cpp` - Set default theme
|
||||||
|
- `editor/editor_node.h/cpp` - Added AeThex menu
|
||||||
|
|
||||||
|
### Branding Assets
|
||||||
|
- `icon.svg` - Hexagon with "A"
|
||||||
|
- `logo.svg` - Full wordmark
|
||||||
|
- `icon_outlined.svg` - Outlined version
|
||||||
|
- `logo_outlined.svg` - Outlined wordmark
|
||||||
|
|
||||||
|
### AI Module (NEW!)
|
||||||
|
- `modules/aethex_ai/register_types.h/cpp`
|
||||||
|
- `modules/aethex_ai/ai_assistant.h/cpp`
|
||||||
|
- `modules/aethex_ai/ai_code_completion.h/cpp`
|
||||||
|
- `modules/aethex_ai/api/ai_api_client.h/cpp`
|
||||||
|
- `modules/aethex_ai/config.py`
|
||||||
|
- `modules/aethex_ai/SCsub`
|
||||||
|
- `modules/aethex_ai/README.md`
|
||||||
|
|
||||||
|
## Build Log Location
|
||||||
|
Real-time build output: `/workspaces/AeThex-Engine-Core/engine/build.log`
|
||||||
|
|
||||||
|
Monitor with:
|
||||||
|
```bash
|
||||||
|
tail -f /workspaces/AeThex-Engine-Core/engine/build.log
|
||||||
|
```
|
||||||
|
|
||||||
|
## Next Development Phase
|
||||||
|
|
||||||
|
Once build completes and testing is done:
|
||||||
|
1. Implement AI panel UI
|
||||||
|
2. Add editor integration
|
||||||
|
3. Create welcome screen
|
||||||
|
4. Design professional logos
|
||||||
|
5. Implement cloud services
|
||||||
|
6. Public release preparation
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Note:** This is a full engine build from source. First-time builds take longer due to compilation of all engine components and third-party libraries.
|
||||||
104
README.md
104
README.md
|
|
@ -1 +1,103 @@
|
||||||
# AeThex-Engine-Core
|
# AeThex Engine Core
|
||||||
|
|
||||||
|
A next-generation game engine built on Godot, enhanced with AI-native features, cloud services, and modern developer tools.
|
||||||
|
|
||||||
|
## 🚀 Quick Start
|
||||||
|
|
||||||
|
### Prerequisites
|
||||||
|
```bash
|
||||||
|
# Install build dependencies (Ubuntu/Debian)
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install build-essential scons pkg-config libx11-dev libxcursor-dev \
|
||||||
|
libxinerama-dev libgl1-mesa-dev libglu-dev libasound2-dev libpulse-dev \
|
||||||
|
libudev-dev libxi-dev libxrandr-dev
|
||||||
|
```
|
||||||
|
|
||||||
|
### Build the Engine
|
||||||
|
```bash
|
||||||
|
cd engine
|
||||||
|
scons platform=linuxbsd target=editor -j4
|
||||||
|
```
|
||||||
|
|
||||||
|
### Run the Editor
|
||||||
|
```bash
|
||||||
|
./engine/bin/godot.linuxbsd.editor.x86_64
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📁 Project Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
AeThex-Engine-Core/
|
||||||
|
├── engine/ # Core game engine (Godot fork)
|
||||||
|
├── tools/ # Custom development tools
|
||||||
|
├── services/ # Cloud services and APIs
|
||||||
|
├── docs/ # Documentation
|
||||||
|
└── examples/ # Sample projects
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🎯 Roadmap
|
||||||
|
|
||||||
|
### Phase 1: Foundation (Current)
|
||||||
|
- [x] Fork Godot Engine
|
||||||
|
- [ ] Build and test base engine
|
||||||
|
- [ ] Set up CI/CD pipeline
|
||||||
|
- [ ] Create initial documentation
|
||||||
|
|
||||||
|
### Phase 2: Customization
|
||||||
|
- [ ] Rebrand UI/UX
|
||||||
|
- [ ] Add AI-powered code assistant
|
||||||
|
- [ ] Implement cloud save system
|
||||||
|
- [ ] Create asset marketplace integration
|
||||||
|
|
||||||
|
### Phase 3: Unique Features
|
||||||
|
- [ ] AI asset generation tools
|
||||||
|
- [ ] Collaborative editing
|
||||||
|
- [ ] One-click multiplayer backend
|
||||||
|
- [ ] Advanced analytics dashboard
|
||||||
|
|
||||||
|
## 🛠️ Development
|
||||||
|
|
||||||
|
### Building for Different Platforms
|
||||||
|
```bash
|
||||||
|
# Linux
|
||||||
|
scons platform=linuxbsd target=editor
|
||||||
|
|
||||||
|
# Windows (cross-compile)
|
||||||
|
scons platform=windows target=editor
|
||||||
|
|
||||||
|
# Web
|
||||||
|
scons platform=web target=template_release
|
||||||
|
```
|
||||||
|
|
||||||
|
### Running Tests
|
||||||
|
```bash
|
||||||
|
cd engine
|
||||||
|
scons tests=yes
|
||||||
|
./bin/godot.linuxbsd.editor.x86_64 --test
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📚 Documentation
|
||||||
|
|
||||||
|
- [Godot Official Docs](https://docs.godotengine.org/) - Base engine documentation
|
||||||
|
- [Build Instructions](./docs/building.md) - Detailed build guide
|
||||||
|
- [Contributing Guide](./docs/CONTRIBUTING.md) - How to contribute
|
||||||
|
|
||||||
|
## 🤝 Contributing
|
||||||
|
|
||||||
|
We welcome contributions! Please see [CONTRIBUTING.md](./docs/CONTRIBUTING.md) for guidelines.
|
||||||
|
|
||||||
|
## 📄 License
|
||||||
|
|
||||||
|
AeThex Engine Core is based on Godot Engine, licensed under the MIT License.
|
||||||
|
See [LICENSE.txt](./engine/LICENSE.txt) for details.
|
||||||
|
|
||||||
|
## 🌟 What Makes AeThex Different?
|
||||||
|
|
||||||
|
- **AI-Native**: Built-in AI assistance for coding, debugging, and asset creation
|
||||||
|
- **Cloud-First**: Integrated multiplayer backend and cloud services
|
||||||
|
- **Modern DX**: Enhanced developer experience with better tools
|
||||||
|
- **Community-Driven**: Open source with active community involvement
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Status**: 🏗️ Early Development | **Version**: 0.1.0-alpha
|
||||||
425
docs/AI_MODULE_ARCHITECTURE.md
Normal file
425
docs/AI_MODULE_ARCHITECTURE.md
Normal file
|
|
@ -0,0 +1,425 @@
|
||||||
|
# AeThex Engine - AI Assistant Module Architecture
|
||||||
|
|
||||||
|
## Vision
|
||||||
|
An AI-powered coding assistant built directly into the AeThex Engine editor, providing
|
||||||
|
realtime code completion, bug detection, documentation generation, and intelligent suggestions.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Core Features
|
||||||
|
|
||||||
|
### 1. Smart Code Completion
|
||||||
|
- Context-aware GDScript suggestions
|
||||||
|
- Function parameter hints with AI explanations
|
||||||
|
- Auto-completion that understands your project
|
||||||
|
- Natural language to code generation
|
||||||
|
|
||||||
|
### 2. Intelligent Error Detection
|
||||||
|
- Real-time bug detection
|
||||||
|
- AI-powered fix suggestions
|
||||||
|
- Performance optimization hints
|
||||||
|
- Security vulnerability scanning
|
||||||
|
|
||||||
|
### 3. Documentation AI
|
||||||
|
- Auto-generate function documentation
|
||||||
|
- Explain complex code blocks
|
||||||
|
- Generate tutorials from your code
|
||||||
|
- API reference creator
|
||||||
|
|
||||||
|
### 4. Asset Intelligence
|
||||||
|
- Texture optimization suggestions
|
||||||
|
- Mesh LOD recommendations
|
||||||
|
- Shader performance analysis
|
||||||
|
- Asset naming conventions
|
||||||
|
|
||||||
|
### 5. Natural Language Commands
|
||||||
|
- "Create a player controller"
|
||||||
|
- "Add jump physics to this character"
|
||||||
|
- "Generate a main menu UI"
|
||||||
|
- "Debug why my player isn't moving"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Technical Architecture
|
||||||
|
|
||||||
|
### Module Structure
|
||||||
|
```
|
||||||
|
engine/modules/aethex_ai/
|
||||||
|
├── SCsub # Build configuration
|
||||||
|
├── config.py # Module setup
|
||||||
|
├── register_types.h/cpp # Godot module registration
|
||||||
|
├── ai_assistant.h/cpp # Main AI assistant class
|
||||||
|
├── ai_code_completion.h/cpp # Code completion engine
|
||||||
|
├── ai_error_analyzer.h/cpp # Error detection & fixes
|
||||||
|
├── ai_doc_generator.h/cpp # Documentation generation
|
||||||
|
├── ai_asset_optimizer.h/cpp # Asset optimization
|
||||||
|
├── api/
|
||||||
|
│ ├── ai_api_client.h/cpp # API communication
|
||||||
|
│ ├── claude_client.h/cpp # Claude API integration
|
||||||
|
│ ├── rate_limiter.h/cpp # API rate limiting
|
||||||
|
│ └── cache_manager.h/cpp # Response caching
|
||||||
|
├── ui/
|
||||||
|
│ ├── ai_panel.h/cpp # Main AI panel UI
|
||||||
|
│ ├── ai_chat_widget.h/cpp # Chat interface
|
||||||
|
│ └── ai_suggestions_panel.h/cpp # Suggestions display
|
||||||
|
└── tests/
|
||||||
|
└── test_ai_assistant.h # Unit tests
|
||||||
|
```
|
||||||
|
|
||||||
|
### Core Classes
|
||||||
|
|
||||||
|
#### 1. AIAssistant (Singleton)
|
||||||
|
```cpp
|
||||||
|
class AIAssistant : public Object {
|
||||||
|
GDCLASS(AIAssistant, Object);
|
||||||
|
|
||||||
|
private:
|
||||||
|
static AIAssistant *singleton;
|
||||||
|
AIAPIClient *api_client;
|
||||||
|
CacheManager *cache;
|
||||||
|
RateLimiter *rate_limiter;
|
||||||
|
|
||||||
|
public:
|
||||||
|
// Code assistance
|
||||||
|
String get_code_completion(const String &context, const Vector<String> &recent_code);
|
||||||
|
String explain_code(const String &code_block);
|
||||||
|
String fix_error(const String &error_message, const String &code_context);
|
||||||
|
|
||||||
|
// Documentation
|
||||||
|
String generate_function_docs(const String &function_signature);
|
||||||
|
String generate_class_docs(const String &class_code);
|
||||||
|
|
||||||
|
// Natural language
|
||||||
|
String natural_language_to_code(const String &description, const String &context);
|
||||||
|
|
||||||
|
// Asset optimization
|
||||||
|
Dictionary analyze_asset(const String &asset_path);
|
||||||
|
String suggest_optimization(const String &asset_path);
|
||||||
|
|
||||||
|
static AIAssistant *get_singleton();
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 2. AIAPIClient
|
||||||
|
```cpp
|
||||||
|
class AIAPIClient : public RefCounted {
|
||||||
|
GDCLASS(AIAPIClient, RefCounted);
|
||||||
|
|
||||||
|
private:
|
||||||
|
String api_key;
|
||||||
|
String api_endpoint;
|
||||||
|
HTTPClient *http_client;
|
||||||
|
|
||||||
|
struct PendingRequest {
|
||||||
|
Callable callback;
|
||||||
|
String request_id;
|
||||||
|
uint64_t timestamp;
|
||||||
|
};
|
||||||
|
|
||||||
|
HashMap<String, PendingRequest> pending_requests;
|
||||||
|
|
||||||
|
public:
|
||||||
|
// Async API calls
|
||||||
|
String send_completion_request(const String &prompt, const Callable &callback);
|
||||||
|
String send_chat_request(const Vector<String> &messages, const Callable &callback);
|
||||||
|
|
||||||
|
// Sync API calls (with timeout)
|
||||||
|
String send_completion_sync(const String &prompt, float timeout = 10.0);
|
||||||
|
|
||||||
|
// Configuration
|
||||||
|
void set_api_key(const String &p_key);
|
||||||
|
void set_endpoint(const String &p_endpoint);
|
||||||
|
|
||||||
|
Error initialize();
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 3. AICodeCompletion (Editor Plugin)
|
||||||
|
```cpp
|
||||||
|
class AICodeCompletion : public EditorPlugin {
|
||||||
|
GDCLASS(AICodeCompletion, EditorPlugin);
|
||||||
|
|
||||||
|
private:
|
||||||
|
CodeEdit *current_editor;
|
||||||
|
PopupMenu *suggestion_popup;
|
||||||
|
Timer *completion_timer;
|
||||||
|
String current_context;
|
||||||
|
|
||||||
|
void _on_text_changed();
|
||||||
|
void _on_completion_timer_timeout();
|
||||||
|
void _show_ai_suggestions(const Vector<String> &suggestions);
|
||||||
|
|
||||||
|
public:
|
||||||
|
virtual String get_name() const override { return "AICodeCompletion"; }
|
||||||
|
virtual void edit(Object *p_object) override;
|
||||||
|
virtual bool handles(Object *p_object) const override;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 4. AIPanel (Editor Dock)
|
||||||
|
```cpp
|
||||||
|
class AIPanel : public VBoxContainer {
|
||||||
|
GDCLASS(AIPanel, VBoxContainer);
|
||||||
|
|
||||||
|
private:
|
||||||
|
TabContainer *tab_container;
|
||||||
|
|
||||||
|
// Tabs
|
||||||
|
Control *chat_tab;
|
||||||
|
Control *suggestions_tab;
|
||||||
|
Control *docs_tab;
|
||||||
|
|
||||||
|
// Chat interface
|
||||||
|
RichTextLabel *chat_history;
|
||||||
|
LineEdit *chat_input;
|
||||||
|
Button *send_button;
|
||||||
|
|
||||||
|
// Suggestions
|
||||||
|
Tree *suggestions_tree;
|
||||||
|
Button *apply_suggestion_button;
|
||||||
|
|
||||||
|
void _on_send_chat();
|
||||||
|
void _on_apply_suggestion();
|
||||||
|
void _update_suggestions();
|
||||||
|
|
||||||
|
public:
|
||||||
|
void add_chat_message(const String &message, bool is_user);
|
||||||
|
void show_suggestion(const String &title, const String &description, const String &code);
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## API Integration
|
||||||
|
|
||||||
|
### Claude API (Anthropic)
|
||||||
|
**Endpoint:** `https://api.anthropic.com/v1/messages`
|
||||||
|
|
||||||
|
**Request Format:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"model": "claude-3-5-sonnet-20241022",
|
||||||
|
"max_tokens": 1024,
|
||||||
|
"messages": [
|
||||||
|
{
|
||||||
|
"role": "user",
|
||||||
|
"content": "Generate a GDScript player controller with WASD movement"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"system": "You are an expert game developer assistant for the AeThex Engine..."
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Rate Limiting
|
||||||
|
- Free tier: 10 requests/minute
|
||||||
|
- Pro tier: 100 requests/minute
|
||||||
|
- Cache responses for 1 hour
|
||||||
|
- Queue requests when rate limited
|
||||||
|
|
||||||
|
### Error Handling
|
||||||
|
```cpp
|
||||||
|
enum APIErrorCode {
|
||||||
|
API_ERROR_NONE,
|
||||||
|
API_ERROR_NETWORK,
|
||||||
|
API_ERROR_AUTH,
|
||||||
|
API_ERROR_RATE_LIMIT,
|
||||||
|
API_ERROR_TIMEOUT,
|
||||||
|
API_ERROR_INVALID_RESPONSE
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## User Interface
|
||||||
|
|
||||||
|
### 1. AI Panel (Dock)
|
||||||
|
- Bottom dock by default
|
||||||
|
- Resizable, collapsible
|
||||||
|
- Three tabs: Chat, Suggestions, Docs
|
||||||
|
|
||||||
|
### 2. Inline Suggestions
|
||||||
|
- Ghost text in code editor
|
||||||
|
- Accept with Tab, reject with Esc
|
||||||
|
- Multiple suggestions with Alt+N
|
||||||
|
|
||||||
|
### 3. Context Menu Integration
|
||||||
|
- Right-click → "Ask AI about this"
|
||||||
|
- Right-click → "Generate docs"
|
||||||
|
- Right-click → "Fix this error"
|
||||||
|
|
||||||
|
### 4. Command Palette
|
||||||
|
- Ctrl+Shift+A → AI Command Palette
|
||||||
|
- Type natural language commands
|
||||||
|
- See AI-powered results instantly
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Configuration & Settings
|
||||||
|
|
||||||
|
### Editor Settings
|
||||||
|
```cpp
|
||||||
|
// In editor_settings.cpp
|
||||||
|
EDITOR_SETTING(Variant::STRING, PROPERTY_HINT_NONE,
|
||||||
|
"ai/api_key", "", "")
|
||||||
|
EDITOR_SETTING(Variant::BOOL, PROPERTY_HINT_NONE,
|
||||||
|
"ai/enable_code_completion", true, "")
|
||||||
|
EDITOR_SETTING(Variant::BOOL, PROPERTY_HINT_NONE,
|
||||||
|
"ai/enable_error_detection", true, "")
|
||||||
|
EDITOR_SETTING(Variant::INT, PROPERTY_HINT_RANGE,
|
||||||
|
"ai/suggestion_delay_ms", 500, "100,2000,10")
|
||||||
|
EDITOR_SETTING(Variant::BOOL, PROPERTY_HINT_NONE,
|
||||||
|
"ai/cache_responses", true, "")
|
||||||
|
```
|
||||||
|
|
||||||
|
### User Preferences
|
||||||
|
- API key (encrypted storage)
|
||||||
|
- Enable/disable features
|
||||||
|
- Suggestion delay
|
||||||
|
- Privacy settings (opt-in telemetry)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Privacy & Security
|
||||||
|
|
||||||
|
### Data Handling
|
||||||
|
- **Never** send full project code
|
||||||
|
- Only send relevant context (20 lines max)
|
||||||
|
- Strip sensitive data (passwords, keys)
|
||||||
|
- User explicitly opts-in
|
||||||
|
|
||||||
|
### API Key Storage
|
||||||
|
```cpp
|
||||||
|
// Encrypted storage using EditorSettings
|
||||||
|
String encrypted_key = EditorSettings::get_singleton()
|
||||||
|
->get_setting("ai/api_key_encrypted");
|
||||||
|
String api_key = Crypto::decrypt_aes256(encrypted_key, machine_id);
|
||||||
|
```
|
||||||
|
|
||||||
|
### Usage Tracking (Opt-in Only)
|
||||||
|
- Number of requests
|
||||||
|
- Popular features
|
||||||
|
- Error rates
|
||||||
|
- Anonymous metrics only
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Implementation Phases
|
||||||
|
|
||||||
|
### Phase 1: Foundation (Week 1-2)
|
||||||
|
- [ ] Module structure & registration
|
||||||
|
- [ ] API client implementation
|
||||||
|
- [ ] Basic UI panel
|
||||||
|
- [ ] Settings integration
|
||||||
|
- [ ] Simple code completion
|
||||||
|
|
||||||
|
### Phase 2: Core Features (Week 3-4)
|
||||||
|
- [ ] Enhanced code completion
|
||||||
|
- [ ] Error detection & fixes
|
||||||
|
- [ ] Documentation generation
|
||||||
|
- [ ] Chat interface
|
||||||
|
|
||||||
|
### Phase 3: Advanced Features (Week 5-8)
|
||||||
|
- [ ] Natural language commands
|
||||||
|
- [ ] Asset optimization
|
||||||
|
- [ ] Performance analysis
|
||||||
|
- [ ] Multi-file context
|
||||||
|
|
||||||
|
### Phase 4: Polish & Optimization (Week 9-12)
|
||||||
|
- [ ] Response caching
|
||||||
|
- [ ] Rate limiting
|
||||||
|
- [ ] Error handling
|
||||||
|
- [ ] User testing & feedback
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Testing Strategy
|
||||||
|
|
||||||
|
### Unit Tests
|
||||||
|
```cpp
|
||||||
|
// test_ai_assistant.h
|
||||||
|
TEST_CASE("[AIAssistant] Code completion") {
|
||||||
|
AIAssistant *ai = AIAssistant::get_singleton();
|
||||||
|
String result = ai->get_code_completion(
|
||||||
|
"func _ready():\n\t",
|
||||||
|
Vector<String>()
|
||||||
|
);
|
||||||
|
CHECK(result.contains("extends"));
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Integration Tests
|
||||||
|
- Test with real API (sandboxed)
|
||||||
|
- Mock API for CI/CD
|
||||||
|
- Rate limiting behavior
|
||||||
|
- Error recovery
|
||||||
|
|
||||||
|
### User Acceptance Testing
|
||||||
|
- Beta testers from community
|
||||||
|
- Collect feedback
|
||||||
|
- Iterate quickly
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Metrics & Success Criteria
|
||||||
|
|
||||||
|
### Technical Metrics
|
||||||
|
- Response time < 2 seconds
|
||||||
|
- Cache hit rate > 60%
|
||||||
|
- Error rate < 1%
|
||||||
|
- API cost < $0.01/user/day
|
||||||
|
|
||||||
|
### User Metrics
|
||||||
|
- Daily active users
|
||||||
|
- Feature usage rates
|
||||||
|
- User satisfaction (surveys)
|
||||||
|
- Productivity improvement
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Future Enhancements
|
||||||
|
|
||||||
|
### Advanced AI Features
|
||||||
|
- Multi-language support (C#, C++)
|
||||||
|
- Voice commands
|
||||||
|
- Visual scripting AI
|
||||||
|
- Game design suggestions
|
||||||
|
|
||||||
|
### Model Improvements
|
||||||
|
- Fine-tuned models on game dev code
|
||||||
|
- Local AI models (privacy-first)
|
||||||
|
- Specialized models for different tasks
|
||||||
|
|
||||||
|
### Ecosystem Integration
|
||||||
|
- AI-generated assets
|
||||||
|
- Procedural content generation
|
||||||
|
- Game balancing suggestions
|
||||||
|
- Playtesting AI
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Getting Started (Developer)
|
||||||
|
|
||||||
|
### 1. Get API Key
|
||||||
|
```bash
|
||||||
|
# Sign up at https://console.anthropic.com
|
||||||
|
# Create API key
|
||||||
|
# Add to AeThex settings
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Enable Module
|
||||||
|
```bash
|
||||||
|
# Build with AI module
|
||||||
|
scons modules=aethex_ai
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Test in Editor
|
||||||
|
```
|
||||||
|
Editor → Settings → AI Assistant
|
||||||
|
Enter API key
|
||||||
|
Enable code completion
|
||||||
|
Test with simple script
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Next Steps:** Implement Phase 1 foundation (API client + basic UI)
|
||||||
118
docs/BUILDING_WINDOWS.md
Normal file
118
docs/BUILDING_WINDOWS.md
Normal file
|
|
@ -0,0 +1,118 @@
|
||||||
|
# Building AeThex Engine on Windows
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
1. **Python 3.6+**
|
||||||
|
- Download from [python.org](https://www.python.org/downloads/)
|
||||||
|
- Make sure to check "Add to PATH" during installation
|
||||||
|
|
||||||
|
2. **SCons Build Tool**
|
||||||
|
```powershell
|
||||||
|
pip install scons
|
||||||
|
```
|
||||||
|
|
||||||
|
3. **Visual Studio 2022 Community** (Free)
|
||||||
|
- Download from [visualstudio.microsoft.com](https://visualstudio.microsoft.com/downloads/)
|
||||||
|
- Install "Desktop development with C++" workload
|
||||||
|
- Includes MSVC compiler and Windows SDK
|
||||||
|
|
||||||
|
**OR**
|
||||||
|
|
||||||
|
**MinGW-w64** (Alternative)
|
||||||
|
- Download from [winlibs.com](https://winlibs.com/)
|
||||||
|
- Extract and add `bin` folder to PATH
|
||||||
|
|
||||||
|
## Build Steps
|
||||||
|
|
||||||
|
### Using PowerShell or Command Prompt:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
# Clone repository (if not already done)
|
||||||
|
git clone https://github.com/AeThex-LABS/AeThex-Engine-Core
|
||||||
|
cd AeThex-Engine-Core\engine
|
||||||
|
|
||||||
|
# Build with MSVC (recommended)
|
||||||
|
scons platform=windows target=editor -j4
|
||||||
|
|
||||||
|
# OR build with MinGW
|
||||||
|
scons platform=windows target=editor use_mingw=yes -j4
|
||||||
|
```
|
||||||
|
|
||||||
|
### Build Time
|
||||||
|
- **First build**: 30-60 minutes
|
||||||
|
- **CPU cores**: Use `-j4` or `-j8` based on your CPU
|
||||||
|
- **RAM**: Recommend 8GB+ available
|
||||||
|
|
||||||
|
## Build Output
|
||||||
|
|
||||||
|
The executable will be created at:
|
||||||
|
```
|
||||||
|
engine\bin\aethex.windows.editor.x86_64.exe
|
||||||
|
```
|
||||||
|
|
||||||
|
Or rename after build:
|
||||||
|
```powershell
|
||||||
|
cd engine\bin
|
||||||
|
ren godot.windows.editor.x86_64.exe aethex.windows.editor.x86_64.exe
|
||||||
|
```
|
||||||
|
|
||||||
|
## Running the Engine
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
cd engine\bin
|
||||||
|
.\aethex.windows.editor.x86_64.exe
|
||||||
|
```
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Error: "MSVC not found"
|
||||||
|
- Make sure Visual Studio 2022 is installed with C++ workload
|
||||||
|
- Restart terminal after installation
|
||||||
|
- Try running from "Developer Command Prompt for VS 2022"
|
||||||
|
|
||||||
|
### Error: "scons: command not found"
|
||||||
|
- Ensure Python is in PATH
|
||||||
|
- Run: `pip install --upgrade scons`
|
||||||
|
- Restart terminal
|
||||||
|
|
||||||
|
### Error: "Out of memory"
|
||||||
|
- Reduce parallel jobs: use `-j2` instead of `-j4`
|
||||||
|
- Close other applications
|
||||||
|
- Increase virtual memory in Windows settings
|
||||||
|
|
||||||
|
### Build too slow?
|
||||||
|
- Use more CPU cores: `-j8` (match your CPU count)
|
||||||
|
- Use SSD for faster compilation
|
||||||
|
- Build in Release mode is faster than Debug
|
||||||
|
|
||||||
|
## Windows-Specific Features
|
||||||
|
|
||||||
|
AeThex Engine on Windows includes:
|
||||||
|
- Native Windows UI integration
|
||||||
|
- DirectX 12 / Vulkan rendering
|
||||||
|
- Xbox controller support out-of-the-box
|
||||||
|
- Windows-native file dialogs
|
||||||
|
- Steam integration ready
|
||||||
|
|
||||||
|
## Cross-Platform Development
|
||||||
|
|
||||||
|
You can develop on Windows and export to:
|
||||||
|
- Windows (native)
|
||||||
|
- Linux
|
||||||
|
- macOS
|
||||||
|
- Android
|
||||||
|
- iOS
|
||||||
|
- Web (HTML5)
|
||||||
|
- Consoles (with licenses)
|
||||||
|
|
||||||
|
## Next Steps
|
||||||
|
|
||||||
|
After building:
|
||||||
|
1. Launch the editor
|
||||||
|
2. Create a test project
|
||||||
|
3. Configure AI features (add Claude API key)
|
||||||
|
4. Start developing!
|
||||||
|
|
||||||
|
## GitHub Actions Alternative
|
||||||
|
|
||||||
|
Don't want to build locally? Push to GitHub and let CI/CD build for you automatically! Check `.github/workflows/build.yml` for the automated build pipeline.
|
||||||
142
docs/CHANGES_COMPLETED.md
Normal file
142
docs/CHANGES_COMPLETED.md
Normal file
|
|
@ -0,0 +1,142 @@
|
||||||
|
# Quick Wins Completed! ✅
|
||||||
|
|
||||||
|
## Changes Made (February 23, 2026)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### ✅ Change 1: Engine Name & Identity
|
||||||
|
**File:** `engine/version.py`
|
||||||
|
|
||||||
|
**Changed:**
|
||||||
|
- `short_name` → "aethex"
|
||||||
|
- `name` → "AeThex Engine"
|
||||||
|
- `website` → Your GitHub repo
|
||||||
|
|
||||||
|
**Result:** All version strings, window titles, and references now say "AeThex Engine"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### ✅ Change 2: About Dialog
|
||||||
|
**File:** `engine/editor/gui/editor_about.cpp`
|
||||||
|
|
||||||
|
**Added:**
|
||||||
|
```
|
||||||
|
© 2026-present AeThex Labs
|
||||||
|
Powered by Godot Engine (MIT License)
|
||||||
|
|
||||||
|
© 2014-present Godot Engine contributors
|
||||||
|
© 2007-2014 Juan Linietsky, Ariel Manzur
|
||||||
|
```
|
||||||
|
|
||||||
|
**Result:** Proper AeThex branding with legal attribution to Godot
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### ✅ Change 3: Theme Preparation
|
||||||
|
**File:** `engine/editor/themes/editor_color_map.cpp`
|
||||||
|
|
||||||
|
**Added:** Comment markers for future color customization
|
||||||
|
- Identified primary brand color location: `#478cbf` (Godot Blue)
|
||||||
|
- Marked for future AeThex color scheme
|
||||||
|
|
||||||
|
**Next Step:** Choose your brand colors and update the hex codes
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### ✅ Change 4: Placeholder Logos
|
||||||
|
**Files Created:**
|
||||||
|
- `engine/icon.svg` - Hexagon with "A^E" symbol
|
||||||
|
- `engine/logo.svg` - Full "AeThex Engine" wordmark
|
||||||
|
- `engine/icon_outlined.svg` - Outlined version
|
||||||
|
- `engine/logo_outlined.svg` - Outlined wordmark
|
||||||
|
|
||||||
|
**Original Godot logos backed up to:** `engine/.original_godot_assets/`
|
||||||
|
|
||||||
|
**Design:** Blue hexagon with "A" and superscript "E", gradient fill
|
||||||
|
- **Note:** These are placeholders! Improve them with proper design later.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### ⏭️ Change 5: Splash Screen
|
||||||
|
**Status:** Deferred
|
||||||
|
|
||||||
|
**Reason:** Splash screens are project-specific (in exported games), not editor-level.
|
||||||
|
The editor uses the logo files we already replaced.
|
||||||
|
|
||||||
|
**If needed later:** Modify `engine/editor/export/` for custom export splash screens
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
**Files Modified:** 4
|
||||||
|
**Logos Created:** 4
|
||||||
|
**Build Required:** Yes (to see changes in action)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## What You'll See When You Build:
|
||||||
|
|
||||||
|
1. **Window Title:** "AeThex Engine" instead of "Godot Engine"
|
||||||
|
2. **About Dialog:** Your copyright with Godot attribution
|
||||||
|
3. **Icons:** Blue hexagon "A^E" logo (placeholder)
|
||||||
|
4. **Binary Name:** `aethex.linuxbsd.editor.x86_64`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Next Steps:
|
||||||
|
|
||||||
|
### Option A: Build & Test (See Your Changes!)
|
||||||
|
```bash
|
||||||
|
cd /workspaces/AeThex-Engine-Core/engine
|
||||||
|
sudo apt-get update && sudo apt-get install -y build-essential scons pkg-config \
|
||||||
|
libx11-dev libxcursor-dev libxinerama-dev libgl1-mesa-dev libglu-dev \
|
||||||
|
libasound2-dev libpulse-dev libudev-dev libxi-dev libxrandr-dev
|
||||||
|
scons platform=linuxbsd target=editor -j4
|
||||||
|
./bin/aethex.linuxbsd.editor.x86_64
|
||||||
|
```
|
||||||
|
|
||||||
|
### Option B: Commit Your Changes
|
||||||
|
```bash
|
||||||
|
cd /workspaces/AeThex-Engine-Core
|
||||||
|
git add .
|
||||||
|
git commit -m "Initial AeThex branding: name, logos, and about dialog"
|
||||||
|
git push origin main
|
||||||
|
```
|
||||||
|
|
||||||
|
### Option C: Improve the Logos
|
||||||
|
- Use AI (DALL-E, Midjourney) to generate better graphics
|
||||||
|
- Hire a designer on Fiverr
|
||||||
|
- Use Figma/Inkscape to refine the hexagon concept
|
||||||
|
- Just improve them over time!
|
||||||
|
|
||||||
|
### Option D: Continue Customizing
|
||||||
|
- Choose brand colors (replace #478cbf throughout)
|
||||||
|
- Add custom menu items
|
||||||
|
- Implement first unique feature (AI assistant?)
|
||||||
|
- Create welcome screen
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Your Progress: 🎯
|
||||||
|
|
||||||
|
**Phase 1: Basic Branding** (Current)
|
||||||
|
- [✅] Engine name changed
|
||||||
|
- [✅] Logos created (placeholder)
|
||||||
|
- [✅] About dialog updated
|
||||||
|
- [✅] Version strings updated
|
||||||
|
- [⬜] Build & test
|
||||||
|
- [⬜] Custom colors (marked for future)
|
||||||
|
|
||||||
|
**Phase 2: Deep Customization** (Next)
|
||||||
|
- [ ] Professional logos
|
||||||
|
- [ ] Custom theme colors
|
||||||
|
- [ ] Welcome screen
|
||||||
|
- [ ] First unique feature
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**You've officially started the AeThex Engine!** 🚀
|
||||||
|
|
||||||
|
The foundation is set. Now you can build it and see your changes, or continue
|
||||||
|
customizing before the first build. Either way, you're on your way!
|
||||||
505
docs/CLOUD_SERVICES_ARCHITECTURE.md
Normal file
505
docs/CLOUD_SERVICES_ARCHITECTURE.md
Normal file
|
|
@ -0,0 +1,505 @@
|
||||||
|
# AeThex Engine - Cloud Services Architecture
|
||||||
|
|
||||||
|
## Vision
|
||||||
|
Cloud-first game engine infrastructure providing authentication, multiplayer backend,
|
||||||
|
cloud saves, analytics, and asset delivery - making online games trivial to build.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Core Services
|
||||||
|
|
||||||
|
### 1. Authentication & User Management
|
||||||
|
- Email/password, OAuth (Google, GitHub, Discord)
|
||||||
|
- User profiles and preferences
|
||||||
|
- Team/organization management
|
||||||
|
- Permission systems
|
||||||
|
|
||||||
|
### 2. Cloud Saves & Sync
|
||||||
|
- Automatic save game cloud sync
|
||||||
|
- Cross-platform save compatibility
|
||||||
|
- Conflict resolution
|
||||||
|
- Version history
|
||||||
|
|
||||||
|
### 3. Multiplayer Backend
|
||||||
|
- Matchmaking service
|
||||||
|
- Real-time relay servers
|
||||||
|
- P2P connection facilitation
|
||||||
|
- Voice/text chat infrastructure
|
||||||
|
|
||||||
|
### 4. Analytics & Telemetry
|
||||||
|
- Player behavior tracking
|
||||||
|
- Performance metrics
|
||||||
|
- Crash reporting
|
||||||
|
- A/B testing framework
|
||||||
|
|
||||||
|
### 5. Asset Delivery Network (CDN)
|
||||||
|
- DLC/update distribution
|
||||||
|
- Asset streaming
|
||||||
|
- Version management
|
||||||
|
- Bandwidth optimization
|
||||||
|
|
||||||
|
### 6. Leaderboards & Achievements
|
||||||
|
- Global/friend leaderboards
|
||||||
|
- Achievement system
|
||||||
|
- Player statistics
|
||||||
|
- Social features
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## System Architecture
|
||||||
|
|
||||||
|
### High-Level Overview
|
||||||
|
```
|
||||||
|
┌─────────────────────────────────────────────────────┐
|
||||||
|
│ AeThex Game (Client) │
|
||||||
|
│ ┌──────────────────────────────────────────────┐ │
|
||||||
|
│ │ AeThex Cloud SDK (GDScript/C++) │ │
|
||||||
|
│ │ • Auth • Saves • Multiplayer • Analytics │ │
|
||||||
|
│ └──────────────────────────────────────────────┘ │
|
||||||
|
│ ↓ HTTPS/WebSocket ↓ │
|
||||||
|
└─────────────────────────────────────────────────────┘
|
||||||
|
↓
|
||||||
|
┌─────────────────────────────────────────────────────┐
|
||||||
|
│ API Gateway (Load Balancer) │
|
||||||
|
│ • Rate Limiting • Authentication │
|
||||||
|
│ • Request Routing • SSL Termination │
|
||||||
|
└─────────────────────────────────────────────────────┘
|
||||||
|
↓
|
||||||
|
┌──────────────┬──────────────┬──────────────┬─────────┐
|
||||||
|
│ Auth │ Saves │ Multiplayer │Analytics│
|
||||||
|
│ Service │ Service │ Service │ Service │
|
||||||
|
│ │ │ │ │
|
||||||
|
│ Node.js │ Go/Rust │ C++/Rust │ Python │
|
||||||
|
│ PostgreSQL │ S3/Object │ WebSocket │ ClickH.│
|
||||||
|
└──────────────┴──────────────┴──────────────┴─────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Module Structure (Engine Side)
|
||||||
|
|
||||||
|
```
|
||||||
|
engine/modules/aethex_cloud/
|
||||||
|
├── SCsub
|
||||||
|
├── config.py
|
||||||
|
├── register_types.h/cpp
|
||||||
|
├── aethex_cloud.h/cpp # Main singleton
|
||||||
|
├── auth/
|
||||||
|
│ ├── auth_manager.h/cpp # Authentication
|
||||||
|
│ ├── user_profile.h/cpp # User data
|
||||||
|
│ └── session_manager.h/cpp # Session handling
|
||||||
|
├── saves/
|
||||||
|
│ ├── cloud_save_manager.h/cpp # Save sync
|
||||||
|
│ ├── save_conflict_resolver.h/cpp
|
||||||
|
│ └── save_metadata.h/cpp
|
||||||
|
├── multiplayer/
|
||||||
|
│ ├── matchmaking.h/cpp # Matchmaking
|
||||||
|
│ ├── relay_client.h/cpp # Relay connection
|
||||||
|
│ ├── voice_chat.h/cpp # Voice integration
|
||||||
|
│ └── room_manager.h/cpp # Room/lobby system
|
||||||
|
├── analytics/
|
||||||
|
│ ├── analytics_manager.h/cpp # Event tracking
|
||||||
|
│ ├── crash_reporter.h/cpp # Crash reports
|
||||||
|
│ └── performance_tracker.h/cpp # Performance
|
||||||
|
├── cdn/
|
||||||
|
│ ├── asset_downloader.h/cpp # Asset loading
|
||||||
|
│ ├── dlc_manager.h/cpp # DLC handling
|
||||||
|
│ └── update_checker.h/cpp # Updates
|
||||||
|
├── social/
|
||||||
|
│ ├── leaderboard.h/cpp # Leaderboards
|
||||||
|
│ ├── achievements.h/cpp # Achievements
|
||||||
|
│ └── friends_list.h/cpp # Social features
|
||||||
|
├── api/
|
||||||
|
│ ├── http_client.h/cpp # HTTP requests
|
||||||
|
│ ├── websocket_client.h/cpp # WebSocket
|
||||||
|
│ └── api_request.h/cpp # Request builder
|
||||||
|
└── ui/
|
||||||
|
├── auth_dialog.h/cpp # Login UI
|
||||||
|
├── cloud_panel.h/cpp # Cloud dashboard
|
||||||
|
└── analytics_viewer.h/cpp # Analytics view
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Backend Services
|
||||||
|
|
||||||
|
### Tech Stack Recommendation
|
||||||
|
|
||||||
|
#### Authentication Service
|
||||||
|
**Technology:** Node.js + Express + PostgreSQL
|
||||||
|
**Responsibilities:**
|
||||||
|
- User registration/login
|
||||||
|
- JWT token generation
|
||||||
|
- OAuth integration
|
||||||
|
- Password reset
|
||||||
|
- Email verification
|
||||||
|
|
||||||
|
**API Endpoints:**
|
||||||
|
```
|
||||||
|
POST /api/v1/auth/register
|
||||||
|
POST /api/v1/auth/login
|
||||||
|
POST /api/v1/auth/refresh
|
||||||
|
POST /api/v1/auth/logout
|
||||||
|
GET /api/v1/auth/profile
|
||||||
|
PUT /api/v1/auth/profile
|
||||||
|
POST /api/v1/auth/oauth/google
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Cloud Save Service
|
||||||
|
**Technology:** Go/Rust + S3/MinIO
|
||||||
|
**Responsibilities:**
|
||||||
|
- Store save game data
|
||||||
|
- Version management
|
||||||
|
- Conflict resolution
|
||||||
|
- Compression
|
||||||
|
|
||||||
|
**API Endpoints:**
|
||||||
|
```
|
||||||
|
GET /api/v1/saves/:user_id
|
||||||
|
POST /api/v1/saves/:user_id
|
||||||
|
GET /api/v1/saves/:user_id/:save_id
|
||||||
|
DELETE /api/v1/saves/:user_id/:save_id
|
||||||
|
GET /api/v1/saves/:user_id/history
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Multiplayer Service
|
||||||
|
**Technology:** C++/Rust + WebSocket/UDP
|
||||||
|
**Responsibilities:**
|
||||||
|
- Real-time relay
|
||||||
|
- Matchmaking
|
||||||
|
- Room management
|
||||||
|
- Voice chat (WebRTC)
|
||||||
|
|
||||||
|
**WebSocket Events:**
|
||||||
|
```
|
||||||
|
// Client → Server
|
||||||
|
join_room
|
||||||
|
leave_room
|
||||||
|
send_message
|
||||||
|
player_state_update
|
||||||
|
|
||||||
|
// Server → Client
|
||||||
|
room_joined
|
||||||
|
room_left
|
||||||
|
player_joined
|
||||||
|
player_left
|
||||||
|
state_update
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Analytics Service
|
||||||
|
**Technology:** Python/Go + ClickHouse/TimescaleDB
|
||||||
|
**Responsibilities:**
|
||||||
|
- Event ingestion
|
||||||
|
- Real-time analytics
|
||||||
|
- Crash report storage
|
||||||
|
- Query API
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Client SDK (GDScript API)
|
||||||
|
|
||||||
|
### Authentication
|
||||||
|
```gdscript
|
||||||
|
# Singleton: AeThexCloud
|
||||||
|
|
||||||
|
# Login
|
||||||
|
var result = await AeThexCloud.auth.login_email("user@example.com", "password")
|
||||||
|
if result.success:
|
||||||
|
print("Logged in as: ", result.user.username)
|
||||||
|
|
||||||
|
# OAuth Login
|
||||||
|
AeThexCloud.auth.login_oauth("google")
|
||||||
|
|
||||||
|
# Get current user
|
||||||
|
var user = AeThexCloud.auth.get_current_user()
|
||||||
|
print(user.email, user.username, user.avatar_url)
|
||||||
|
|
||||||
|
# Logout
|
||||||
|
AeThexCloud.auth.logout()
|
||||||
|
```
|
||||||
|
|
||||||
|
### Cloud Saves
|
||||||
|
```gdscript
|
||||||
|
# Save game to cloud
|
||||||
|
var save_data = {
|
||||||
|
"level": 5,
|
||||||
|
"health": 100,
|
||||||
|
"inventory": ["sword", "shield"],
|
||||||
|
"position": Vector3(10, 0, 20)
|
||||||
|
}
|
||||||
|
|
||||||
|
var result = await AeThexCloud.saves.save("slot1", save_data)
|
||||||
|
if result.success:
|
||||||
|
print("Game saved to cloud")
|
||||||
|
|
||||||
|
# Load from cloud
|
||||||
|
var loaded = await AeThexCloud.saves.load("slot1")
|
||||||
|
if loaded.success:
|
||||||
|
var data = loaded.data
|
||||||
|
player.level = data.level
|
||||||
|
player.health = data.health
|
||||||
|
|
||||||
|
# List all saves
|
||||||
|
var saves_list = await AeThexCloud.saves.list()
|
||||||
|
for save in saves_list:
|
||||||
|
print(save.name, save.timestamp, save.size)
|
||||||
|
|
||||||
|
# Auto-sync (background)
|
||||||
|
AeThexCloud.saves.enable_auto_sync(true)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Multiplayer
|
||||||
|
```gdscript
|
||||||
|
# Join matchmaking
|
||||||
|
AeThexCloud.multiplayer.matchmaking.join_queue({
|
||||||
|
"mode": "deathmatch",
|
||||||
|
"region": "us-east",
|
||||||
|
"skill_range": [1000, 1500]
|
||||||
|
})
|
||||||
|
|
||||||
|
# Handle match found
|
||||||
|
AeThexCloud.multiplayer.matchmaking.match_found.connect(func(match_info):
|
||||||
|
print("Match found! Joining room: ", match_info.room_id)
|
||||||
|
AeThexCloud.multiplayer.join_room(match_info.room_id)
|
||||||
|
)
|
||||||
|
|
||||||
|
# Send player state
|
||||||
|
AeThexCloud.multiplayer.send_state({
|
||||||
|
"position": player.position,
|
||||||
|
"rotation": player.rotation,
|
||||||
|
"health": player.health
|
||||||
|
})
|
||||||
|
|
||||||
|
# Receive other players' state
|
||||||
|
AeThexCloud.multiplayer.player_state_received.connect(func(player_id, state):
|
||||||
|
var other_player = get_node("Player_" + str(player_id))
|
||||||
|
other_player.position = state.position
|
||||||
|
other_player.rotation = state.rotation
|
||||||
|
)
|
||||||
|
|
||||||
|
# Voice chat
|
||||||
|
AeThexCloud.multiplayer.voice.enable(true)
|
||||||
|
AeThexCloud.multiplayer.voice.mute_player(player_id, true)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Analytics
|
||||||
|
```gdscript
|
||||||
|
# Track events
|
||||||
|
AeThexCloud.analytics.track_event("level_completed", {
|
||||||
|
"level": 5,
|
||||||
|
"time": 120.5,
|
||||||
|
"deaths": 3
|
||||||
|
})
|
||||||
|
|
||||||
|
# Track custom metrics
|
||||||
|
AeThexCloud.analytics.track_metric("fps", Engine.get_frames_per_second())
|
||||||
|
|
||||||
|
# Track screen view
|
||||||
|
AeThexCloud.analytics.track_screen("main_menu")
|
||||||
|
|
||||||
|
# User properties
|
||||||
|
AeThexCloud.analytics.set_user_property("vip_status", true)
|
||||||
|
|
||||||
|
# Crash reporting (automatic)
|
||||||
|
AeThexCloud.analytics.enable_crash_reporting(true)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Leaderboards
|
||||||
|
```gdscript
|
||||||
|
# Submit score
|
||||||
|
AeThexCloud.social.leaderboards.submit_score("high_scores", 1000)
|
||||||
|
|
||||||
|
# Get leaderboard
|
||||||
|
var leaderboard = await AeThexCloud.social.leaderboards.get("high_scores", {
|
||||||
|
"range": "global", # or "friends"
|
||||||
|
"limit": 10
|
||||||
|
})
|
||||||
|
|
||||||
|
for entry in leaderboard:
|
||||||
|
print(entry.rank, entry.username, entry.score)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Achievements
|
||||||
|
```gdscript
|
||||||
|
# Unlock achievement
|
||||||
|
AeThexCloud.social.achievements.unlock("first_kill")
|
||||||
|
|
||||||
|
# Track progress
|
||||||
|
AeThexCloud.social.achievements.set_progress("kill_100_enemies", 45)
|
||||||
|
|
||||||
|
# Get all achievements
|
||||||
|
var achievements = await AeThexCloud.social.achievements.get_all()
|
||||||
|
for ach in achievements:
|
||||||
|
print(ach.name, ach.unlocked, ach.progress)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Security & Privacy
|
||||||
|
|
||||||
|
### Authentication
|
||||||
|
- JWT tokens with short expiry (15 min)
|
||||||
|
- Refresh tokens (30 days)
|
||||||
|
- Secure password hashing (bcrypt/argon2)
|
||||||
|
- Rate limiting on auth endpoints
|
||||||
|
- CAPTCHA for registration
|
||||||
|
|
||||||
|
### Data Encryption
|
||||||
|
- TLS 1.3 for all communications
|
||||||
|
- At-rest encryption for save data
|
||||||
|
- End-to-end encryption for voice chat
|
||||||
|
- Encrypted credentials storage
|
||||||
|
|
||||||
|
### Privacy
|
||||||
|
- GDPR compliant
|
||||||
|
- COPPA compliant (for kids' games)
|
||||||
|
- Opt-in analytics only
|
||||||
|
- Data deletion on request
|
||||||
|
- Privacy policy integration
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Pricing Model
|
||||||
|
|
||||||
|
### Free Tier
|
||||||
|
- 5,000 monthly active users
|
||||||
|
- 1 GB cloud saves per user
|
||||||
|
- 100 GB CDN bandwidth
|
||||||
|
- Basic analytics
|
||||||
|
- Community support
|
||||||
|
|
||||||
|
### Pro Tier ($99/month)
|
||||||
|
- 50,000 MAU
|
||||||
|
- 5 GB cloud saves per user
|
||||||
|
- 1 TB CDN bandwidth
|
||||||
|
- Advanced analytics
|
||||||
|
- Priority support
|
||||||
|
- Custom branding
|
||||||
|
|
||||||
|
### Enterprise (Custom)
|
||||||
|
- Unlimited MAU
|
||||||
|
- Custom storage
|
||||||
|
- Dedicated servers
|
||||||
|
- 24/7 support
|
||||||
|
- SLA guarantees
|
||||||
|
- White-label options
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Implementation Phases
|
||||||
|
|
||||||
|
### Phase 1: Foundation (Month 1-2)
|
||||||
|
- [ ] Basic auth service
|
||||||
|
- [ ] Simple cloud saves
|
||||||
|
- [ ] API client in engine
|
||||||
|
- [ ] UI dialogs
|
||||||
|
|
||||||
|
### Phase 2: Multiplayer (Month 3-4)
|
||||||
|
- [ ] Matchmaking service
|
||||||
|
- [ ] Relay servers
|
||||||
|
- [ ] Room management
|
||||||
|
- [ ] Basic voice chat
|
||||||
|
|
||||||
|
### Phase 3: Analytics (Month 5-6)
|
||||||
|
- [ ] Event tracking
|
||||||
|
- [ ] Crash reporting
|
||||||
|
- [ ] Dashboard UI
|
||||||
|
- [ ] Query system
|
||||||
|
|
||||||
|
### Phase 4: Social (Month 7-8)
|
||||||
|
- [ ] Leaderboards
|
||||||
|
- [ ] Achievements
|
||||||
|
- [ ] Friends system
|
||||||
|
- [ ] Social sharing
|
||||||
|
|
||||||
|
### Phase 5: CDN & DLC (Month 9-12)
|
||||||
|
- [ ] Asset delivery
|
||||||
|
- [ ] DLC management
|
||||||
|
- [ ] Update system
|
||||||
|
- [ ] Version control
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Deployment
|
||||||
|
|
||||||
|
### Infrastructure (Kubernetes)
|
||||||
|
```yaml
|
||||||
|
# Simplified deployment structure
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: aethex-auth-service
|
||||||
|
spec:
|
||||||
|
replicas: 3
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: aethex-auth
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: aethex-auth
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: auth
|
||||||
|
image: aethex/auth-service:latest
|
||||||
|
ports:
|
||||||
|
- containerPort: 8080
|
||||||
|
env:
|
||||||
|
- name: DATABASE_URL
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: db-credentials
|
||||||
|
key: url
|
||||||
|
```
|
||||||
|
|
||||||
|
### Monitoring
|
||||||
|
- Prometheus + Grafana
|
||||||
|
- Error tracking (Sentry)
|
||||||
|
- Log aggregation (ELK/Loki)
|
||||||
|
- Uptime monitoring
|
||||||
|
- Cost tracking
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Migration Path
|
||||||
|
|
||||||
|
### For Developers
|
||||||
|
1. Install AeThex Cloud module
|
||||||
|
2. Sign up for cloud account
|
||||||
|
3. Get API keys
|
||||||
|
4. Add cloud SDK to project
|
||||||
|
5. Implement auth/saves/multiplayer
|
||||||
|
6. Test thoroughly
|
||||||
|
7. Deploy games with cloud features
|
||||||
|
|
||||||
|
### For Players
|
||||||
|
1. Create AeThex account (optional)
|
||||||
|
2. Cloud saves work automatically
|
||||||
|
3. Multiplayer just works
|
||||||
|
4. Cross-platform progress
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Competitive Advantages
|
||||||
|
|
||||||
|
**vs. Custom Backend:**
|
||||||
|
- Zero infrastructure management
|
||||||
|
- Built-in best practices
|
||||||
|
- Automatic scaling
|
||||||
|
- Cost-effective
|
||||||
|
|
||||||
|
**vs. PlayFab/GameSparks:**
|
||||||
|
- Engine-integrated (not third-party)
|
||||||
|
- Open-source friendly
|
||||||
|
- More affordable
|
||||||
|
- Better DX for AeThex users
|
||||||
|
|
||||||
|
**vs. Epic Online Services:**
|
||||||
|
- Language-agnostic
|
||||||
|
- No platform lock-in
|
||||||
|
- More flexible pricing
|
||||||
|
- Indie-friendly
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Next Steps:** Build auth service MVP + basic cloud saves
|
||||||
385
docs/CUSTOMIZATION_PLAN.md
Normal file
385
docs/CUSTOMIZATION_PLAN.md
Normal file
|
|
@ -0,0 +1,385 @@
|
||||||
|
# AeThex Engine Customization Plan
|
||||||
|
|
||||||
|
## 🎯 Mission: Transform Godot → AeThex
|
||||||
|
|
||||||
|
This document outlines all changes needed to rebrand and customize the engine.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Phase 1: Basic Branding (Quick Wins - 1-2 hours)
|
||||||
|
|
||||||
|
### 1.1 Engine Identity (`engine/version.py`)
|
||||||
|
**Current:**
|
||||||
|
```python
|
||||||
|
short_name = "godot"
|
||||||
|
name = "Godot Engine"
|
||||||
|
website = "https://godotengine.org"
|
||||||
|
```
|
||||||
|
|
||||||
|
**Change to:**
|
||||||
|
```python
|
||||||
|
short_name = "aethex"
|
||||||
|
name = "AeThex Engine"
|
||||||
|
website = "https://aethex.io" # or your domain
|
||||||
|
```
|
||||||
|
|
||||||
|
**Impact:** Changes all version strings, window titles, splash screens
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 1.2 Visual Branding (Logo & Icons)
|
||||||
|
**Files to replace:**
|
||||||
|
```
|
||||||
|
engine/icon.svg → AeThex editor icon
|
||||||
|
engine/icon.png → PNG version
|
||||||
|
engine/logo.svg → Main logo
|
||||||
|
engine/logo.png → PNG version
|
||||||
|
engine/icon_outlined.svg → Outlined variant
|
||||||
|
engine/logo_outlined.svg → Outlined logo variant
|
||||||
|
```
|
||||||
|
|
||||||
|
**Required:** Create AeThex logos in SVG format (scalable)
|
||||||
|
**Tool:** Use Inkscape, Figma, or AI generation
|
||||||
|
|
||||||
|
**Specs:**
|
||||||
|
- Icon: 256x256px, simple, recognizable
|
||||||
|
- Logo: Horizontal layout, clean typography
|
||||||
|
- Colors: Choose brand palette (2-3 colors)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 1.3 About Dialog (`engine/editor/gui/editor_about.cpp`)
|
||||||
|
|
||||||
|
**Line 57-59, Change:**
|
||||||
|
```cpp
|
||||||
|
String(U"© 2014-present ") + TTR("Godot Engine contributors") + ".\n" +
|
||||||
|
String(U"© 2007-2014 Juan Linietsky, Ariel Manzur.\n")
|
||||||
|
```
|
||||||
|
|
||||||
|
**To:**
|
||||||
|
```cpp
|
||||||
|
String(U"© 2026-present AeThex Labs.\n") +
|
||||||
|
String(U"Powered by Godot Engine (MIT License)\n") +
|
||||||
|
String(U"© 2014-present Godot Engine contributors.\n")
|
||||||
|
```
|
||||||
|
|
||||||
|
**Why:** Legal requirement - acknowledge Godot's MIT license
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 1.4 Splash Screen (`engine/editor/splash.cpp` - if exists)
|
||||||
|
- Replace splash image with AeThex branding
|
||||||
|
- Update loading text
|
||||||
|
- Customize colors
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Phase 2: Deep Customization (Week 1-2)
|
||||||
|
|
||||||
|
### 2.1 User Interface Theme
|
||||||
|
|
||||||
|
**Files to modify:**
|
||||||
|
```
|
||||||
|
engine/editor/themes/editor_theme_manager.cpp
|
||||||
|
engine/editor/editor_themes.cpp
|
||||||
|
```
|
||||||
|
|
||||||
|
**Changes:**
|
||||||
|
- Custom color scheme (brand colors)
|
||||||
|
- Font changes (if desired)
|
||||||
|
- Icon theme (replace Godot icons with AeThex icons)
|
||||||
|
- Corner radius, borders, shadows
|
||||||
|
|
||||||
|
**Strategy:** Create "AeThex Theme" as default
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2.2 Default Settings
|
||||||
|
|
||||||
|
**File:** `engine/editor/editor_settings.cpp`
|
||||||
|
|
||||||
|
**Custom defaults:**
|
||||||
|
```cpp
|
||||||
|
// Add AeThex default settings
|
||||||
|
EDITOR_SETTING(Variant::STRING, PROPERTY_HINT_NONE, "network/cloud_api_url",
|
||||||
|
"https://api.aethex.io", "")
|
||||||
|
EDITOR_SETTING(Variant::BOOL, PROPERTY_HINT_NONE, "aethex/enable_ai_assist",
|
||||||
|
true, "")
|
||||||
|
EDITOR_SETTING(Variant::STRING, PROPERTY_HINT_NONE, "aethex/theme",
|
||||||
|
"aethex_dark", "")
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2.3 Welcome Screen
|
||||||
|
|
||||||
|
**File:** `engine/editor/project_manager.cpp`
|
||||||
|
|
||||||
|
**Add:**
|
||||||
|
- AeThex getting started content
|
||||||
|
- Links to AeThex docs/tutorials
|
||||||
|
- Featured templates
|
||||||
|
- "Create with AI" button (future)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2.4 Menu Items
|
||||||
|
|
||||||
|
**File:** `engine/editor/editor_node.cpp`
|
||||||
|
|
||||||
|
**Add custom menus:**
|
||||||
|
```
|
||||||
|
Menu Bar → "AeThex"
|
||||||
|
├─ Cloud Services
|
||||||
|
├─ AI Assistant
|
||||||
|
├─ Marketplace
|
||||||
|
├─ Documentation
|
||||||
|
└─ Community
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Phase 3: Unique Features (Month 1-3)
|
||||||
|
|
||||||
|
### 3.1 AI Integration Module
|
||||||
|
|
||||||
|
**Create:** `engine/modules/aethex_ai/`
|
||||||
|
|
||||||
|
**Features:**
|
||||||
|
- Code completion via Claude API
|
||||||
|
- Asset generation
|
||||||
|
- Bug detection
|
||||||
|
- Documentation generation
|
||||||
|
|
||||||
|
**Files:**
|
||||||
|
```
|
||||||
|
modules/aethex_ai/
|
||||||
|
├─ SCsub
|
||||||
|
├─ config.py
|
||||||
|
├─ register_types.h/cpp
|
||||||
|
├─ ai_assistant.h/cpp
|
||||||
|
└─ ai_api_client.h/cpp
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 3.2 Cloud Services Module
|
||||||
|
|
||||||
|
**Create:** `engine/modules/aethex_cloud/`
|
||||||
|
|
||||||
|
**Features:**
|
||||||
|
- User authentication
|
||||||
|
- Cloud saves
|
||||||
|
- Multiplayer backend
|
||||||
|
- Analytics
|
||||||
|
- Asset delivery
|
||||||
|
|
||||||
|
**Backend:** Separate service (Rust/Go/Node.js)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 3.3 Enhanced Asset Pipeline
|
||||||
|
|
||||||
|
**Modify:** `engine/editor/import/`
|
||||||
|
|
||||||
|
**Add:**
|
||||||
|
- AI-powered texture optimization
|
||||||
|
- Automatic LOD generation
|
||||||
|
- Smart compression
|
||||||
|
- Asset tagging and search
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 3.4 Collaborative Editing
|
||||||
|
|
||||||
|
**Create:** `engine/modules/aethex_collab/`
|
||||||
|
|
||||||
|
**Features:**
|
||||||
|
- Real-time scene editing (multiple users)
|
||||||
|
- Change tracking
|
||||||
|
- Conflict resolution
|
||||||
|
- Chat/voice integration
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Phase 4: Platform & Export (Month 3-6)
|
||||||
|
|
||||||
|
### 4.1 Custom Export Templates
|
||||||
|
|
||||||
|
**Modify:** `engine/platform/*/export/`
|
||||||
|
|
||||||
|
**Add:**
|
||||||
|
- AeThex branding in exported games
|
||||||
|
- Analytics SDK integration
|
||||||
|
- Crash reporting
|
||||||
|
- Auto-update system
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 4.2 Web Export Enhancements
|
||||||
|
|
||||||
|
**Target:** Progressive Web Apps (PWA)
|
||||||
|
- Service worker integration
|
||||||
|
- Offline support
|
||||||
|
- App manifest
|
||||||
|
- Install prompts
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Phase 5: Ecosystem (Month 6-12)
|
||||||
|
|
||||||
|
### 5.1 Asset Marketplace Integration
|
||||||
|
- Browse and download from editor
|
||||||
|
- One-click import
|
||||||
|
- License management
|
||||||
|
- Revenue sharing system
|
||||||
|
|
||||||
|
### 5.2 Template Library
|
||||||
|
- Game templates (RPG, Platformer, FPS)
|
||||||
|
- UI kits
|
||||||
|
- Shader packs
|
||||||
|
- Tool presets
|
||||||
|
|
||||||
|
### 5.3 Plugin System Extensions
|
||||||
|
- Enhanced plugin API
|
||||||
|
- Plugin marketplace
|
||||||
|
- Auto-updates for plugins
|
||||||
|
- Sandboxed execution
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Code Search & Replace Guide
|
||||||
|
|
||||||
|
### Global Text Replacements (Be Careful!)
|
||||||
|
|
||||||
|
**After testing, use find/replace:**
|
||||||
|
```bash
|
||||||
|
# Find all "Godot" references (case sensitive)
|
||||||
|
grep -r "Godot" engine/ --include="*.cpp" --include="*.h" | wc -l
|
||||||
|
|
||||||
|
# Don't blindly replace - many are in licenses/comments!
|
||||||
|
```
|
||||||
|
|
||||||
|
**Safe to replace:**
|
||||||
|
- UI strings (after TTR() translation markers)
|
||||||
|
- Window titles
|
||||||
|
- Default project names
|
||||||
|
- Documentation links
|
||||||
|
|
||||||
|
**DON'T replace:**
|
||||||
|
- License text
|
||||||
|
- Third-party library references
|
||||||
|
- Code identifiers (class names, etc.)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Testing Strategy
|
||||||
|
|
||||||
|
### After Each Phase:
|
||||||
|
1. **Compile test** - Does it build?
|
||||||
|
2. **Smoke test** - Does editor launch?
|
||||||
|
3. **Feature test** - Does functionality work?
|
||||||
|
4. **Visual test** - Does branding look right?
|
||||||
|
5. **Regression test** - Did we break anything?
|
||||||
|
|
||||||
|
### Test Projects:
|
||||||
|
- 2D platformer
|
||||||
|
- 3D first-person
|
||||||
|
- UI-heavy application
|
||||||
|
- Multiplayer game
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Rebranding Checklist
|
||||||
|
|
||||||
|
- [ ] `version.py` - Engine name and version
|
||||||
|
- [ ] Logo files (SVG + PNG)
|
||||||
|
- [ ] About dialog copyright
|
||||||
|
- [ ] Splash screen
|
||||||
|
- [ ] Editor theme colors
|
||||||
|
- [ ] Default project templates
|
||||||
|
- [ ] Documentation URLs
|
||||||
|
- [ ] Community links
|
||||||
|
- [ ] Export templates branding
|
||||||
|
- [ ] Installer/package names
|
||||||
|
- [ ] Binary names (godot → aethex)
|
||||||
|
- [ ] GitHub repo links
|
||||||
|
- [ ] Bug report URLs
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Legal Considerations
|
||||||
|
|
||||||
|
### Must Keep:
|
||||||
|
✅ Godot MIT license in source files
|
||||||
|
✅ Attribution to original authors
|
||||||
|
✅ Third-party library licenses
|
||||||
|
✅ "Powered by Godot Engine" mention
|
||||||
|
|
||||||
|
### You Can Add:
|
||||||
|
✅ Your own copyright for modifications
|
||||||
|
✅ Additional licenses for your code
|
||||||
|
✅ Trademark for "AeThex" name
|
||||||
|
✅ Proprietary extensions (closed-source)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Build Configuration
|
||||||
|
|
||||||
|
### Custom Build Flags
|
||||||
|
**Add to:** `engine/SConstruct`
|
||||||
|
|
||||||
|
```python
|
||||||
|
# AeThex-specific build options
|
||||||
|
opts.Add(BoolVariable("aethex_cloud", "Enable AeThex Cloud features", True))
|
||||||
|
opts.Add(BoolVariable("aethex_ai", "Enable AI Assistant", True))
|
||||||
|
opts.Add(BoolVariable("aethex_telemetry", "Enable telemetry", False))
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Documentation to Update
|
||||||
|
|
||||||
|
1. **README.md** - Project description
|
||||||
|
2. **CONTRIBUTING.md** - Contribution guidelines
|
||||||
|
3. **Building docs** - Custom build instructions
|
||||||
|
4. **API docs** - AeThex-specific APIs
|
||||||
|
5. **Tutorials** - Getting started guides
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Priority Order (Solo Developer)
|
||||||
|
|
||||||
|
### Week 1: Foundation ⭐⭐⭐
|
||||||
|
- [ ] Change version.py
|
||||||
|
- [ ] Create basic logo (even temporary)
|
||||||
|
- [ ] Update about dialog
|
||||||
|
- [ ] Test build
|
||||||
|
|
||||||
|
### Week 2-3: Make it Yours ⭐⭐
|
||||||
|
- [ ] Custom theme/colors
|
||||||
|
- [ ] Update all branding text
|
||||||
|
- [ ] Polish UI
|
||||||
|
- [ ] First unique feature (pick easiest)
|
||||||
|
|
||||||
|
### Month 2-3: First Unique Value ⭐
|
||||||
|
- [ ] AI assistant OR cloud sync (pick one)
|
||||||
|
- [ ] Enhanced export
|
||||||
|
- [ ] Better onboarding
|
||||||
|
|
||||||
|
### Month 4-6: Ecosystem
|
||||||
|
- [ ] Plugin marketplace
|
||||||
|
- [ ] Templates
|
||||||
|
- [ ] Documentation site
|
||||||
|
- [ ] Community tools
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Next Steps
|
||||||
|
|
||||||
|
1. **Review this plan** - What excites you most?
|
||||||
|
2. **Choose Phase 1 task** - Start with version.py?
|
||||||
|
3. **Create AeThex logo** - Use AI to generate?
|
||||||
|
4. **Make first edit** - Change the engine name!
|
||||||
|
|
||||||
|
Ready to start making changes? Tell me which task to tackle first! 🚀
|
||||||
91
docs/GETTING_STARTED.md
Normal file
91
docs/GETTING_STARTED.md
Normal file
|
|
@ -0,0 +1,91 @@
|
||||||
|
# Getting Started with AeThex Engine
|
||||||
|
|
||||||
|
## Your Journey Starts Here 🚀
|
||||||
|
|
||||||
|
Don't worry if this feels overwhelming - we'll take it step by step!
|
||||||
|
|
||||||
|
## What You Have Right Now
|
||||||
|
|
||||||
|
✅ Godot Engine source code (in the `engine/` folder)
|
||||||
|
✅ Project structure set up
|
||||||
|
✅ This awesome documentation
|
||||||
|
|
||||||
|
## What You Need to Do Next
|
||||||
|
|
||||||
|
### Step 1: Install Build Tools (5 minutes)
|
||||||
|
|
||||||
|
Run this command to install everything you need:
|
||||||
|
```bash
|
||||||
|
sudo apt-get update && sudo apt-get install -y \
|
||||||
|
build-essential scons pkg-config libx11-dev libxcursor-dev \
|
||||||
|
libxinerama-dev libgl1-mesa-dev libglu-dev libasound2-dev \
|
||||||
|
libpulse-dev libudev-dev libxi-dev libxrandr-dev
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 2: Build Your First Engine (15-30 minutes)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd /workspaces/AeThex-Engine-Core/engine
|
||||||
|
scons platform=linuxbsd target=editor -j4
|
||||||
|
```
|
||||||
|
|
||||||
|
This will compile the engine. Grab a coffee ☕ - it takes a while the first time!
|
||||||
|
|
||||||
|
### Step 3: Run It!
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./bin/godot.linuxbsd.editor.x86_64
|
||||||
|
```
|
||||||
|
|
||||||
|
🎉 **Congratulations!** You just built a game engine from source!
|
||||||
|
|
||||||
|
## Common Issues & Solutions
|
||||||
|
|
||||||
|
### "scons: command not found"
|
||||||
|
→ Run the install command from Step 1
|
||||||
|
|
||||||
|
### Build fails with "missing header"
|
||||||
|
→ Make sure all dependencies are installed (Step 1)
|
||||||
|
|
||||||
|
### Build takes forever
|
||||||
|
→ That's normal for the first build! Subsequent builds are much faster
|
||||||
|
|
||||||
|
### I'm stuck!
|
||||||
|
→ Ask Claude (me!) for help - just describe what's happening
|
||||||
|
|
||||||
|
## What's Next?
|
||||||
|
|
||||||
|
Once you have the engine built:
|
||||||
|
1. **Explore** - Click around, see how it works
|
||||||
|
2. **Customize** - Start changing colors, text, features
|
||||||
|
3. **Learn** - Check out Godot tutorials to understand the codebase
|
||||||
|
4. **Build** - Add your first unique AeThex feature!
|
||||||
|
|
||||||
|
## Pro Tips
|
||||||
|
|
||||||
|
- Use `-j4` or `-j8` flag to compile faster (parallel jobs)
|
||||||
|
- The engine remembers what's compiled - rebuilds are quick!
|
||||||
|
- Change one small thing at a time
|
||||||
|
- Test frequently
|
||||||
|
- Ask Claude for help anytime
|
||||||
|
|
||||||
|
## Your First Customization Ideas
|
||||||
|
|
||||||
|
**Easy:**
|
||||||
|
- Change the splash screen logo
|
||||||
|
- Modify the default project name
|
||||||
|
- Add a custom color theme
|
||||||
|
|
||||||
|
**Medium:**
|
||||||
|
- Add a new menu item
|
||||||
|
- Create a custom export template
|
||||||
|
- Build a new tool window
|
||||||
|
|
||||||
|
**Advanced:**
|
||||||
|
- Integrate an AI API
|
||||||
|
- Add cloud save functionality
|
||||||
|
- Create a new node type
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Remember:** Every expert was once a beginner. You've got this! 💪
|
||||||
105
docs/QUICK_WINS.md
Normal file
105
docs/QUICK_WINS.md
Normal file
|
|
@ -0,0 +1,105 @@
|
||||||
|
# Quick Wins - Start Here! 🎯
|
||||||
|
|
||||||
|
## Your First 5 Changes (30 minutes each)
|
||||||
|
|
||||||
|
These are simple edits that make immediate, visible impact.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1️⃣ Change the Engine Name (5 minutes)
|
||||||
|
|
||||||
|
**File:** `engine/version.py`
|
||||||
|
|
||||||
|
**Before:**
|
||||||
|
```python
|
||||||
|
short_name = "godot"
|
||||||
|
name = "Godot Engine"
|
||||||
|
```
|
||||||
|
|
||||||
|
**After:**
|
||||||
|
```python
|
||||||
|
short_name = "aethex"
|
||||||
|
name = "AeThex Engine"
|
||||||
|
```
|
||||||
|
|
||||||
|
**Result:** Every window, dialog, and title will say "AeThex Engine"
|
||||||
|
|
||||||
|
**Command:**
|
||||||
|
```bash
|
||||||
|
# I can make this change for you right now!
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2️⃣ Update the Website Link (2 minutes)
|
||||||
|
|
||||||
|
**Same file:** `engine/version.py`
|
||||||
|
|
||||||
|
**Change:**
|
||||||
|
```python
|
||||||
|
website = "https://godotengine.org"
|
||||||
|
```
|
||||||
|
|
||||||
|
**To:**
|
||||||
|
```python
|
||||||
|
website = "https://aethex.io" # or your domain
|
||||||
|
```
|
||||||
|
|
||||||
|
**Result:** Help → Visit Website will go to your site
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3️⃣ Update the About Dialog (10 minutes)
|
||||||
|
|
||||||
|
**File:** `engine/editor/gui/editor_about.cpp`
|
||||||
|
|
||||||
|
**Line ~57, Add your credit:**
|
||||||
|
```cpp
|
||||||
|
_about_text_label->set_text(
|
||||||
|
String(U"© 2026-present AeThex Labs\n") +
|
||||||
|
String(U"Powered by Godot Engine (MIT)\n\n") +
|
||||||
|
String(U"© 2014-present ") + TTR("Godot Engine contributors") + ".\n" +
|
||||||
|
String(U"© 2007-2014 Juan Linietsky, Ariel Manzur.\n"));
|
||||||
|
```
|
||||||
|
|
||||||
|
**Result:** Help → About shows AeThex branding
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4️⃣ Change Default Theme Color (20 minutes)
|
||||||
|
|
||||||
|
**File:** `engine/editor/themes/editor_theme_manager.cpp`
|
||||||
|
|
||||||
|
**Find the accent color definition and customize:**
|
||||||
|
- Search for "accent_color"
|
||||||
|
- Change RGB values to your brand color
|
||||||
|
- Rebuild and see your color throughout the editor!
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5️⃣ Create Placeholder Logos (30 minutes)
|
||||||
|
|
||||||
|
**Files to create:**
|
||||||
|
- `engine/icon.svg` - Simple AeThex icon
|
||||||
|
- `engine/logo.svg` - AeThex wordmark
|
||||||
|
|
||||||
|
**Quick method:**
|
||||||
|
1. Use AI image generator (DALL-E, Midjourney)
|
||||||
|
2. Or use Figma/Inkscape
|
||||||
|
3. Or just edit existing logos with text
|
||||||
|
|
||||||
|
**Temporary is OK!** Evolve it over time.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Try It Without Building
|
||||||
|
|
||||||
|
You can make these changes and commit them without building!
|
||||||
|
Later when you build, you'll see all your branding.
|
||||||
|
|
||||||
|
**Want me to make these changes right now?** Say:
|
||||||
|
- "Change version.py"
|
||||||
|
- "Update about dialog"
|
||||||
|
- "Make all quick wins"
|
||||||
|
|
||||||
|
Let's get AeThex branded! 🚀
|
||||||
232
docs/WELCOME_SCREEN_PLAN.md
Normal file
232
docs/WELCOME_SCREEN_PLAN.md
Normal file
|
|
@ -0,0 +1,232 @@
|
||||||
|
# Custom Welcome Screen Implementation Plan
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
The AeThex Engine welcome screen will provide a modern, branded onboarding experience
|
||||||
|
that highlights AeThex's unique features and helps users get started quickly.
|
||||||
|
|
||||||
|
## Files to Modify
|
||||||
|
|
||||||
|
### Primary Files:
|
||||||
|
- `engine/editor/project_manager/project_manager.cpp` - Main project manager
|
||||||
|
- `engine/editor/project_manager/project_manager.h` - Header file
|
||||||
|
|
||||||
|
### customization Points:
|
||||||
|
|
||||||
|
## 1. Branding Elements
|
||||||
|
|
||||||
|
### Window Title (Already Done via version.py)
|
||||||
|
The project manager will now show "AeThex Engine - Project Manager"
|
||||||
|
|
||||||
|
### Welcome Panel
|
||||||
|
**Location:** Create new panel in project_manager.cpp
|
||||||
|
|
||||||
|
**Content:**
|
||||||
|
```
|
||||||
|
┌─────────────────────────────────────────┐
|
||||||
|
│ [AeThex Logo] AeThex Engine │
|
||||||
|
│ │
|
||||||
|
│ Next-Generation Game Engine │
|
||||||
|
│ • AI-Powered Development │
|
||||||
|
│ • Cloud-First Architecture │
|
||||||
|
│ • Modern Developer Tools │
|
||||||
|
│ │
|
||||||
|
│ [New Project] [Open Project] │
|
||||||
|
│ [Import Project] │
|
||||||
|
│ │
|
||||||
|
│ Quick Start: │
|
||||||
|
│ • First Game Tutorial → │
|
||||||
|
│ • Documentation → │
|
||||||
|
│ • Sample Projects → │
|
||||||
|
└─────────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
## 2. Custom Features Panel
|
||||||
|
|
||||||
|
### Getting Started Section
|
||||||
|
- Interactive tutorial launcher
|
||||||
|
- Video tutorials embedded/linked
|
||||||
|
- Sample project templates
|
||||||
|
- Community showcases
|
||||||
|
|
||||||
|
### What's New Section
|
||||||
|
- Latest AeThex features
|
||||||
|
- Update notifications
|
||||||
|
- Blog/news feed integration
|
||||||
|
|
||||||
|
### Resource Links
|
||||||
|
- Documentation (searchable)
|
||||||
|
- Discord Community
|
||||||
|
- Asset Marketplace (future)
|
||||||
|
- GitHub Repository
|
||||||
|
|
||||||
|
## 3. Visual Customizations
|
||||||
|
|
||||||
|
### Color Theme
|
||||||
|
Apply AeThex cyan/purple gradient:
|
||||||
|
```cpp
|
||||||
|
// In _update_theme()
|
||||||
|
Color aethex_primary = Color(0.0, 0.851, 1.0); // #00D9FF
|
||||||
|
Color aethex_secondary = Color(0.545, 0.361, 0.965); // #8B5CF6
|
||||||
|
Color aethex_dark = Color(0.118, 0.118, 0.180); // #1E1E2E
|
||||||
|
```
|
||||||
|
|
||||||
|
### Custom Panels
|
||||||
|
- Rounded corners with glow effect
|
||||||
|
- Gradient backgrounds
|
||||||
|
- Smooth animations
|
||||||
|
- Modern card-based layout
|
||||||
|
|
||||||
|
## 4. Implementation Steps
|
||||||
|
|
||||||
|
### Step 1: Add Welcome Panel Widget
|
||||||
|
```cpp
|
||||||
|
// In ProjectManager class
|
||||||
|
Control *welcome_panel = nullptr;
|
||||||
|
|
||||||
|
void _create_welcome_panel() {
|
||||||
|
welcome_panel = memnew(PanelContainer);
|
||||||
|
// Add logo, text, buttons
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 2: Add Quick Links
|
||||||
|
```cpp
|
||||||
|
LinkButton *docs_link = memnew(LinkButton);
|
||||||
|
docs_link->set_text("Documentation");
|
||||||
|
docs_link->connect("pressed", callable_mp(this, &ProjectManager::_open_docs));
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 3: Add Template Selector
|
||||||
|
```cpp
|
||||||
|
OptionButton *template_selector = memnew(OptionButton);
|
||||||
|
template_selector->add_item("2D Platformer Starter");
|
||||||
|
template_selector->add_item("3D First-Person Template");
|
||||||
|
template_selector->add_item("UI/Menu Template");
|
||||||
|
// etc.
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 4: Recent Projects Enhancement
|
||||||
|
- Add project screenshots/thumbnails
|
||||||
|
- Show project stats (last modified, file size)
|
||||||
|
- Quick actions (Run, Edit, Remove)
|
||||||
|
- Tag system for organization
|
||||||
|
|
||||||
|
## 5. Advanced Features (Future)
|
||||||
|
|
||||||
|
### Cloud Integration
|
||||||
|
- Sign in with AeThex account
|
||||||
|
- Sync projects across devices
|
||||||
|
- Cloud-based collaboration
|
||||||
|
- Remote project management
|
||||||
|
|
||||||
|
### AI Assistant Welcome
|
||||||
|
- "What would you like to create today?"
|
||||||
|
- AI-powered project setup
|
||||||
|
- Smart template recommendation
|
||||||
|
- Code generation quick start
|
||||||
|
|
||||||
|
### Analytics & Insights
|
||||||
|
- Usage statistics (optional opt-in)
|
||||||
|
- Performance recommendations
|
||||||
|
- Community trends
|
||||||
|
- Popular assets/tools
|
||||||
|
|
||||||
|
## 6. Code Structure
|
||||||
|
|
||||||
|
### New File: `engine/editor/project_manager/aethex_welcome_panel.h`
|
||||||
|
```cpp
|
||||||
|
class AeThexWelcomePanel : public PanelContainer {
|
||||||
|
GDCLASS(AeThexWelcomePanel, PanelContainer);
|
||||||
|
|
||||||
|
private:
|
||||||
|
VBoxContainer *main_container;
|
||||||
|
TextureRect *logo_display;
|
||||||
|
RichTextLabel *welcome_text;
|
||||||
|
HBoxContainer *quick_actions;
|
||||||
|
|
||||||
|
void _on_new_project();
|
||||||
|
void _on_quick_tutorial();
|
||||||
|
void _on_open_docs();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
static void _bind_methods();
|
||||||
|
|
||||||
|
public:
|
||||||
|
void update_theme();
|
||||||
|
AeThexWelcomePanel();
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
### New File: `engine/editor/project_manager/aethex_welcome_panel.cpp`
|
||||||
|
Implementation of the welcome panel with all AeThex branding and quick actions.
|
||||||
|
|
||||||
|
## 7. Testing Checklist
|
||||||
|
|
||||||
|
- [ ] Logo displays correctly
|
||||||
|
- [ ] All links open correctly
|
||||||
|
- [ ] Theme matches AeThex colors
|
||||||
|
- [ ] Buttons are responsive
|
||||||
|
- [ ] Keyboard navigation works
|
||||||
|
- [ ] Scales properly on different resolutions
|
||||||
|
- [ ] Translations work (TTR macros)
|
||||||
|
- [ ] Animation performance is smooth
|
||||||
|
|
||||||
|
## 8. Future Enhancements
|
||||||
|
|
||||||
|
### Phase 1 (Month 1-2)
|
||||||
|
- Basic branding and layout
|
||||||
|
- Quick links functional
|
||||||
|
- Custom color theme
|
||||||
|
|
||||||
|
### Phase 2 (Month 3-4)
|
||||||
|
- Template system
|
||||||
|
- Interactive tutorials
|
||||||
|
- Project thumbnails
|
||||||
|
|
||||||
|
### Phase 3 (Month 5-6)
|
||||||
|
- Cloud integration
|
||||||
|
- AI assistant preview
|
||||||
|
- Analytics dashboard
|
||||||
|
|
||||||
|
### Phase 4 (Month 6+)
|
||||||
|
- Full feature parity with vision
|
||||||
|
- Community showcase
|
||||||
|
- Marketplace integration
|
||||||
|
|
||||||
|
## Implementation Priority
|
||||||
|
|
||||||
|
**High Priority (Do First):**
|
||||||
|
1. ✅ Window title and branding (Done via version.py)
|
||||||
|
2. Custom welcome message
|
||||||
|
3. AeThex-styled buttons and panels
|
||||||
|
4. Quick link buttons
|
||||||
|
|
||||||
|
**Medium Priority (Do Soon):**
|
||||||
|
1. Template project system
|
||||||
|
2. Getting started tutorial
|
||||||
|
3. News/updates panel
|
||||||
|
4. Enhanced recent projects view
|
||||||
|
|
||||||
|
**Low Priority (Do Later):**
|
||||||
|
1. Cloud integration UI
|
||||||
|
2. AI assistant interface
|
||||||
|
3. Analytics dashboard
|
||||||
|
4. Community features
|
||||||
|
|
||||||
|
## Current Status
|
||||||
|
|
||||||
|
**Completed:**
|
||||||
|
- Engine name branding
|
||||||
|
- Logo files
|
||||||
|
- Color scheme defined
|
||||||
|
|
||||||
|
**Next Steps:**
|
||||||
|
- Create `aethex_welcome_panel.h/cpp`
|
||||||
|
- Integrate into `project_manager.cpp`
|
||||||
|
- Add custom styling
|
||||||
|
- Test and refine
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Note:** The welcome screen is a complex UI component. Start with simple text/button
|
||||||
|
customizations, then gradually add more sophisticated features as the project matures.
|
||||||
1
engine
Submodule
1
engine
Submodule
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit a3e84cc2af14aa4cffbefd8e13492e59567a64e3
|
||||||
Loading…
Reference in a new issue