Next-generation visual editor for NovaECS game framework ไธไธไปฃNovaECSๆธธๆๆกๆถๅฏ่งๅ็ผ่พๅจ
- ๐จ Modern UI: Built with Ant Design and React 18, featuring a dark theme optimized for game development
- ๐๏ธ Modular Architecture: Clean separation of concerns with TypeScript for maximum maintainability
- ๐ฎ 3D Scene Editor: Integrated Three.js viewport with intuitive camera controls and gizmo manipulation
- ๐ Code Editor: Monaco Editor with full TypeScript support, IntelliSense, and syntax highlighting
- ๐ง Component Inspector: Visual component editing with real-time property updates and type-safe validation
- ๐ Asset Management: Comprehensive asset browser with drag-and-drop import and preview capabilities
- ๐ฏ ECS Integration: Seamless integration with NovaECS framework for entity-component-system development
- โก Real-time Updates: Live synchronization between editor UI and game world state
- ๐ Undo/Redo System: Complete command history with granular operation tracking
- ๐จ Customizable Layout: Draggable and resizable panels with persistent workspace configuration
- Node.js >= 16.0.0
- npm >= 7.0.0
# Clone the repository
git clone https://github.com/esengine/nova-editor.git
cd nova-editor
# Install dependencies
npm install
# Start development server
npm run dev
The editor will open at http://localhost:3000
# Development mode with hot reload
npm run dev
# Build for production
npm run build
# Run tests
npm run test
# Run tests with coverage
npm run test:coverage
# Lint code
npm run lint
# Fix linting issues
npm run lint:fix
# Format code
npm run format
# Generate documentation
npm run docs
Nova Editor
โโโ Core (ๆ ธๅฟๅฑ)
โ โโโ EditorWorld - Extended NovaECS World
โ โโโ EditorEvents - Event system integration
โ โโโ EditorStoreIntegration - State synchronization
โโโ Editor Panels (็ผ่พๅจ้ขๆฟ)
โ โโโ HierarchyPanel - Entity tree view
โ โโโ InspectorPanel - Component property editor
โ โโโ SceneViewPanel - 3D viewport
โ โโโ AssetBrowserPanel - Asset management
โโโ Render System (ๆธฒๆ็ณป็ป)
โ โโโ Three.js Integration - 3D scene rendering
โ โโโ Gizmo System - Transform manipulation
โ โโโ Debug Visualizer - Development aids
โโโ State Management (็ถๆ็ฎก็)
โ โโโ Zustand Store - Global editor state
โ โโโ Immer Integration - Immutable updates
โ โโโ Real-time Sync - ECS world synchronization
โโโ Extensions (ๆฉๅฑ็ณป็ป)
โโโ Plugin Architecture - Extensible functionality
โโโ Custom Components - User-defined components
โโโ Theme System - Customizable appearance
- React 18 - Modern React with Concurrent Features and Suspense
- TypeScript 5.5 - Type-safe development with strict mode enabled
- Vite 5 - Fast build tool with SWC for optimal performance
- Ant Design 5 - Enterprise-class UI design language with dark theme
- React DnD - Drag and drop functionality for intuitive interactions
- React Grid Layout - Draggable and resizable panel system
- Zustand - Lightweight state management with TypeScript support
- Immer - Immutable state updates with structural sharing
- Three.js - Industry-standard 3D graphics library
- React Three Fiber - React renderer for Three.js with declarative API
- React Three Drei - Useful helpers and abstractions
- Monaco Editor - VS Code editor experience in the browser
- Prism.js - Syntax highlighting for various languages
- NovaECS - High-performance Entity-Component-System framework
- Custom EditorWorld - Extended World class with editor-specific features
- Vitest - Fast unit test framework with native TypeScript support
- React Testing Library - Simple and complete testing utilities
- ESLint + Prettier - Code quality and formatting
src/
โโโ components/ # Reusable UI components
โ โโโ panels/ # Editor panel components
โโโ ecs/ # NovaECS integration
โ โโโ EditorWorld.ts # Extended World class
โ โโโ EditorEvents.ts # Event system
โ โโโ EditorStoreIntegration.ts
โโโ hooks/ # Custom React hooks
โโโ stores/ # Zustand state management
โโโ types/ # TypeScript type definitions
โโโ utils/ # Utility functions
โโโ test/ # Test utilities and setup
- HierarchyPanel - Entity tree view with search and selection
- InspectorPanel - Component property editor with type-safe inputs
- SceneViewPanel - Basic 3D viewport with Three.js integration
- EditorWorld - Extended NovaECS World with editor features
- State Management - Zustand store with Immer integration
- Real-time Sync - Bidirectional synchronization between UI and ECS
- Dark Theme - Professional dark theme optimized for development
- Gizmo System - 3D transform manipulation handles
- Asset Browser - File management and import system
- Undo/Redo - Command pattern implementation
- Plugin System - Extensible architecture for custom tools
- Physics Debug - Visual physics debugging tools
- Animation Editor - Timeline-based animation system
- Material Editor - Visual shader and material editing
- Build System - Project packaging and deployment
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Make your changes with tests
- Run quality checks:
npm run lint && npm test
- Commit your changes:
git commit -m 'Add amazing feature'
- Push to the branch:
git push origin feature/amazing-feature
- Submit a pull request
- API Documentation - Complete API reference
- User Guide - How to use the editor
- Developer Guide - How to extend the editor
- Architecture Guide - Technical architecture details
This project is licensed under the MIT License - see the LICENSE file for details.
- NovaECS - Core ECS framework
- NovaECS Math - Mathematics library
- NovaECS Physics - Physics engine
- NovaECS Render - Rendering system
- ๐จ ็ฐไปฃๅUI: ๅบไบAnt DesignๅReact 18ๆๅปบ๏ผ้็จไธบๆธธๆๅผๅไผๅ็ๆทฑ่ฒไธป้ข
- ๐๏ธ ๆจกๅๅๆถๆ: TypeScriptๅฎ็ฐ็ๆธ ๆฐๅ ณๆณจ็นๅ็ฆป๏ผ็กฎไฟๆๅคงๅฏ็ปดๆคๆง
- ๐ฎ 3Dๅบๆฏ็ผ่พๅจ: ้ๆThree.js่งๅฃ๏ผๅ ทๆ็ด่ง็็ธๆบๆงๅถๅๆไฝๆๆ
- ๐ ไปฃ็ ็ผ่พๅจ: Monaco็ผ่พๅจ๏ผๅฎๆด็TypeScriptๆฏๆใๆบ่ฝๆ็ฅๅ่ฏญๆณ้ซไบฎ
- ๐ง ็ปไปถๆฃๆฅๅจ: ๅฏ่งๅ็ปไปถ็ผ่พ๏ผๅฎๆถๅฑๆงๆดๆฐๅ็ฑปๅๅฎๅ จ้ช่ฏ
- ๐ ่ตๆบ็ฎก็: ๅ จ้ข็่ตๆบๆต่งๅจ๏ผๆฏๆๆๆฝๅฏผๅ ฅๅ้ข่งๅ่ฝ
- ๐ฏ ECS้ๆ: ไธNovaECSๆกๆถๆ ็ผ้ๆ๏ผๆฏๆๅฎไฝ-็ปไปถ-็ณป็ปๅผๅ
- โก ๅฎๆถๆดๆฐ: ็ผ่พๅจUIไธๆธธๆไธ็็ถๆ็ๅฎๆถๅๆญฅ
- ๐ ๆค้/้ๅ็ณป็ป: ๅฎๆด็ๅฝไปคๅๅฒ่ฎฐๅฝๅ็ป็ฒๅบฆๆไฝ่ท่ธช
- ๐จ ๅฏๅฎๅถๅธๅฑ: ๅฏๆๆฝๅ่ฐๆดๅคงๅฐ็้ขๆฟ๏ผๆไน ๅๅทฅไฝๅบ้ ็ฝฎ
- Node.js >= 16.0.0
- npm >= 7.0.0
# ๅ
้ไปๅบ
git clone https://github.com/esengine/nova-editor.git
cd nova-editor
# ๅฎ่ฃ
ไพ่ต
npm install
# ๅฏๅจๅผๅๆๅกๅจ
npm run dev
็ผ่พๅจๅฐๅจ http://localhost:3000
ๆๅผ
ๅฆๆๆจๅจไฝฟ็จ่ฟ็จไธญ้ๅฐ้ฎ้ข๏ผ่ฏท๏ผ
ๆ่ฐขๆๆไธบNova Editor้กน็ฎๅๅบ่ดก็ฎ็ๅผๅ่ ๅ็คพๅบๆๅใ
Built with โค๏ธ by the esengine team