pace_editor
PACE - Point & Click Adventure Creator Editor
PACE is a visual editor for creating point-and-click adventure games using the PointClickEngine. It provides an intuitive interface for designing scenes, characters, hotspots, and dialog trees without requiring extensive programming knowledge.
Features
🎨 Visual Scene Editor
- Drag-and-drop scene creation
- Background image support
- Real-time preview
- Multi-layer object management
- Grid snapping and alignment tools
👥 Character Management
- Character sprite management
- Animation timeline editor
- Character positioning and scaling
- Interactive character placement
🎯 Hotspot System
- Visual hotspot creation and editing
- Multiple interaction types (look, use, talk, etc.)
- Custom action scripting
- Hotspot visualization and debugging
💬 Dialog Tree Editor
- Visual dialog tree creation
- Branching conversation support
- Conditional dialog options
- Character expression management
📁 Asset Management
- Centralized asset browser
- Import/export functionality
- Asset categorization
- Preview support for images and sounds
🏗️ Project Management
- Complete project structure
- Version control integration
- Export to playable games
- Cross-platform compilation
System Requirements
- Operating System: Windows 10+, macOS 10.15+, or Linux
- Crystal: Version 1.16.3 or higher
- Memory: 4GB RAM minimum, 8GB recommended
- Graphics: OpenGL 3.3 compatible graphics card
- Storage: 500MB free space for installation
Installation
From Source
-
Install Dependencies:
# Ubuntu/Debian sudo apt-get install libasound2-dev mesa-common-dev libx11-dev libxrandr-dev libxi-dev xorg-dev libgl1-mesa-dev libglu1-mesa-dev build-essential libluajit-5.1-dev pkg-config git cmake # macOS brew install raylib luajit pkg-config
-
Clone and Build:
git clone https://github.com/yourusername/pace_editor.git cd pace_editor shards install crystal build src/pace_editor.cr --release
-
Run PACE:
./pace_editor
For detailed installation instructions, see Installation Guide.
Quick Start
-
Create Your First Project:
pace_editor new my_first_game cd my_first_game pace_editor
-
Follow the Tutorial:
- Complete the Getting Started Guide
- Try the Beginner Tutorial
-
Explore Examples:
- Browse Example Projects
- Use project templates for quick setup
Documentation
📖 User Guides
- Installation Guide - Complete setup instructions
- Getting Started - Your first adventure game
- User Interface Guide - Complete UI reference
🎓 Tutorials
- Beginner Tutorial - "The Mysterious Library"
- Advanced Tutorial - "The Detective's Case"
🔧 API Reference
- Core API - Project and editor state management
- Editors API - Scene, character, and dialog editors
- UI Components - Interface components and widgets
📁 Examples
- Sample Projects - Complete example games
- Templates - Project templates to get started
Editor Modes
PACE operates in several distinct modes, each optimized for different aspects of game creation:
- Scene Mode - Design game scenes with backgrounds, objects, and layouts
- Character Mode - Create and animate characters with sprite management
- Hotspot Mode - Define interactive areas and behaviors
- Dialog Mode - Create branching conversations and character interactions
- Assets Mode - Manage project resources and imports
- Project Mode - Configure game settings and export options
Keyboard Shortcuts
General
Ctrl+N
- New projectCtrl+O
- Open projectCtrl+S
- Save projectCtrl+Z
- UndoCtrl+Y
- Redo
Tools
V
- Select toolM
- Move toolP
- Place toolD
- Delete tool
View
G
- Toggle gridH
- Toggle hotspot visibilitySpace+Mouse
- Pan cameraMouse Wheel
- Zoom in/out
Development
Building from Source
-
Prerequisites:
- Crystal 1.16.3+
- Raylib dependencies
- LuaJIT development libraries
-
Development Setup:
git clone https://github.com/yourusername/pace_editor.git cd pace_editor shards install
-
Run Development Version:
crystal run src/pace_editor.cr
-
Run Tests:
crystal spec
Project Structure
pace_editor/
├── src/ # Source code
│ ├── pace_editor/ # Editor modules
│ │ ├── core/ # Core functionality
│ │ ├── editors/ # Editor components
│ │ └── ui/ # User interface
│ └── pace_editor.cr # Main entry point
├── spec/ # Test files
├── documentation/ # Complete documentation
├── lib/ # Dependencies
└── shard.yml # Project configuration
Contributing
We welcome contributions to PACE! Here's how to get started:
-
Fork the Repository
git clone https://github.com/your-fork/pace_editor.git
-
Create a Feature Branch
git checkout -b my-new-feature
-
Make Your Changes
- Follow Crystal coding conventions
- Add tests for new functionality
- Update documentation as needed
-
Submit a Pull Request
git commit -am 'Add some feature' git push origin my-new-feature
Development Guidelines
- Code Style: Follow Crystal conventions
- Testing: Add specs for new features
- Documentation: Update relevant docs
- Commits: Use clear, descriptive commit messages
License
PACE is released under the MIT License. See LICENSE for details.
Support
- Documentation: Complete guides in documentation/
- Issues: Report bugs on GitHub Issues
- Community: Join our Discord server for real-time help
- Email: Contact support@pace-editor.com
Contributors
- Remy Marronnier - creator and maintainer
Acknowledgments
- Built with Crystal
- Graphics powered by Raylib
- Scripting support via LuaJIT
- Based on the PointClickEngine
pace_editor
- 0
- 0
- 0
- 0
- 2
- 13 days ago
- June 6, 2025
MIT License
Thu, 19 Jun 2025 13:04:08 GMT