diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..7894f821 --- /dev/null +++ b/.github/workflows/build.yml @@ -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/* diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..410060ce --- /dev/null +++ b/.gitignore @@ -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/ diff --git a/BUILD_STATUS.md b/BUILD_STATUS.md new file mode 100644 index 00000000..bb37709b --- /dev/null +++ b/BUILD_STATUS.md @@ -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. diff --git a/README.md b/README.md index c0e55109..ef6bf026 100644 --- a/README.md +++ b/README.md @@ -1 +1,103 @@ -# AeThex-Engine-Core \ No newline at end of file +# 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 \ No newline at end of file diff --git a/docs/AI_MODULE_ARCHITECTURE.md b/docs/AI_MODULE_ARCHITECTURE.md new file mode 100644 index 00000000..3feba4cc --- /dev/null +++ b/docs/AI_MODULE_ARCHITECTURE.md @@ -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 &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 pending_requests; + +public: + // Async API calls + String send_completion_request(const String &prompt, const Callable &callback); + String send_chat_request(const Vector &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 &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() + ); + 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) diff --git a/docs/BUILDING_WINDOWS.md b/docs/BUILDING_WINDOWS.md new file mode 100644 index 00000000..7e4d3e3e --- /dev/null +++ b/docs/BUILDING_WINDOWS.md @@ -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. diff --git a/docs/CHANGES_COMPLETED.md b/docs/CHANGES_COMPLETED.md new file mode 100644 index 00000000..6dfe8d52 --- /dev/null +++ b/docs/CHANGES_COMPLETED.md @@ -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! diff --git a/docs/CLOUD_SERVICES_ARCHITECTURE.md b/docs/CLOUD_SERVICES_ARCHITECTURE.md new file mode 100644 index 00000000..da7c059d --- /dev/null +++ b/docs/CLOUD_SERVICES_ARCHITECTURE.md @@ -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 diff --git a/docs/CUSTOMIZATION_PLAN.md b/docs/CUSTOMIZATION_PLAN.md new file mode 100644 index 00000000..033f228b --- /dev/null +++ b/docs/CUSTOMIZATION_PLAN.md @@ -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! πŸš€ diff --git a/docs/GETTING_STARTED.md b/docs/GETTING_STARTED.md new file mode 100644 index 00000000..b3a2e89e --- /dev/null +++ b/docs/GETTING_STARTED.md @@ -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! πŸ’ͺ diff --git a/docs/QUICK_WINS.md b/docs/QUICK_WINS.md new file mode 100644 index 00000000..67226a47 --- /dev/null +++ b/docs/QUICK_WINS.md @@ -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! πŸš€ diff --git a/docs/WELCOME_SCREEN_PLAN.md b/docs/WELCOME_SCREEN_PLAN.md new file mode 100644 index 00000000..08a788ce --- /dev/null +++ b/docs/WELCOME_SCREEN_PLAN.md @@ -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. diff --git a/engine b/engine new file mode 160000 index 00000000..a3e84cc2 --- /dev/null +++ b/engine @@ -0,0 +1 @@ +Subproject commit a3e84cc2af14aa4cffbefd8e13492e59567a64e3