High-Performance Asheron's Call Server with OpenMP Acceleration
PyrealACE combines the rock-solid protocol compatibility of ACE with OpenMP-accelerated game logic from PyrealEngine for maximum performance.
| Feature | ACE_Original | PyrealEngine-AC | PyrealACE |
|---|---|---|---|
| Client Compatible | Yes | No | Yes |
| OpenMP Acceleration | No | Yes | Yes |
| Parallel AI Updates | No | Yes | Yes |
| Parallel Physics | No | Yes | Yes |
| Parallel Spell Effects | No | Yes | Yes |
| Production Ready | Yes | No | Yes |
PyrealACE = ACE Protocol + PyrealEngine Performance
PyrealACE Server
├────────────────────────────────────────────────────────────┤
│ PROTOCOL LAYER (C# - Protected, 426 files) │
│ • From ACE_Original - 100% client compatible │
│ • CRC32 checksums, standard AC protocol │
├────────────────────────────────────────────────────────────┤
│ NATIVE LAYER (C++ OpenMP, ~9,700 lines) │
│ • AI/Pathfinding - parallel agent updates │
│ • Physics - parallel collision detection │
│ • Combat - optimized damage calculations │
│ • Magic - parallel DoT/HoT processing │
│ • Loot - batch parallel generation │
│ • World - parallel landblock management │
└────────────────────────────────────────────────────────────┘
NEWCONTENT NEWCONTENT NEWCONTENT NEWCONTENT NEWCONTENT NEWCONTENT NEWCONTENT NEWCONTENT NEWCONTENT
- .NET 8.0 SDK
- CMake 3.20+
- C++20 compiler with OpenMP support:
- Windows: Visual Studio 2022 or Clang/LLVM 17+
- Linux: GCC 12+ or Clang 17+
- MySQL/MariaDB
cd Native
mkdir build && cd build
# Windows (Visual Studio)
cmake .. -G "Visual Studio 17 2022" -A x64
cmake --build . --config Release
# Windows (Clang - recommended for best OpenMP)
cmake .. -G Ninja -DCMAKE_CXX_COMPILER=clang++
cmake --build . --config Release
# Linux
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)cd Source
dotnet build -c Releasecd Source/ACE.Server/bin/Release/net8.0
./ACE.ServerPyrealACE/
├── Source/ # C# Server (from ACE_Original)
│ ├── ACE.Server/
│ │ ├── Network/ # PROTECTED - Do not modify!
│ │ ├── Native/ # P/Invoke bridges
│ │ ├── Managers/ # Safe to integrate native calls
│ │ └── WorldObjects/ # Safe to integrate native calls
│ ├── ACE.Common/
│ ├── ACE.Database/
│ ├── ACE.DatLoader/
│ └── ACE.Entity/
├── Native/ # C++ OpenMP Modules
│ ├── pyreal_ai/ # AI & Pathfinding
│ ├── pyreal_combat/ # Combat calculations
│ ├── pyreal_physics/ # Physics & collision
│ ├── pyreal_magic/ # Spell system
│ ├── pyreal_loot/ # Loot generation
│ ├── pyreal_skills/ # Skill calculations
│ ├── pyreal_world/ # World/landblock management
│ ├── pyreal_database/ # Weenie cache
│ ├── exports/ # C API for P/Invoke
│ └── CMakeLists.txt # Build configuration
├── Database/ # SQL scripts
├── PROTECTED_PROTOCOL.md # READ THIS FIRST!
└── README.md
CRITICAL: The Source/ACE.Server/Network/ directory contains 426 files that
define the Asheron's Call network protocol. These files MUST NOT be modified
to maintain client compatibility.
See PROTECTED_PROTOCOL.md for details.
The native OpenMP modules are integrated via P/Invoke:
// In WorldManager.cs or similar game logic
using ACE.Server.Native;
private void UpdateGameTick(float deltaTime)
{
// OpenMP-accelerated updates
NativeAI.UpdateAgents(deltaTime);
NativePhysics.Update(deltaTime);
NativeMagic.UpdateEffects(deltaTime);
NativeWorld.Update(deltaTime);
}This project is for educational and non-commercial purposes only.
- Asheron's Call was a registered trademark of Turbine, Inc. and WB Games Inc.
- PyrealACE is not associated with Turbine, Inc. or WB Games Inc.
- ACE Team - Original ACE emulator (protocol layer)
- PyrealEngine Contributors - OpenMP-accelerated game logic
- Asheron's Call Community - Continued support and testing
GNU Affero General Public License v3.0 - See LICENSE
| Metric | ACE (Original) | PyrealACE |
|---|---|---|
| Max Concurrent Players | ~200 | 5,000+ |
| World Heartbeat | 200ms (5 Hz) | 30ms (33.3 Hz) |
| Update Frequency | 5 updates/sec | 33.3 updates/sec (6.6x faster) |
| Player Input Latency | 200ms response time | 30ms response time |
| Fine-Grained Control | Standard | 6x smoother player interaction |
| Metric | ACE (Single-threaded) | PyrealACE (OpenMP) |
|---|---|---|
| AI updates/tick | ~1,000 | 10,000+ (10x) |
| Physics bodies/tick | ~500 | 5,000+ (10x) |
| Spell effects/tick | ~200 | 2,000+ (10x) |
| Pathfinding queries/sec | ~100 | 1,000+ (10x) |
| Loot generation/sec | ~50 | 500+ (10x) |
| Combat calculations/sec | ~1,000 | 10,000+ (10x) |
The 6.6x faster update rate enables:
- Smoother movement - Position updates every 30ms instead of 200ms
- Responsive combat - Hit detection and damage in 30ms instead of 200ms
- Fluid spellcasting - Instant visual feedback for player actions
- Better PvP - Reduced input lag for competitive gameplay
- Scalability - More compute budget per update with parallel processing
High-Performance Asheron's Call Server with OpenMP Acceleration
PyrealACE combines the rock-solid protocol compatibility of ACE with OpenMP-accelerated game logic from PyrealEngine for maximum performance.
| Feature | ACE_Original | PyrealEngine-AC | PyrealACE |
|---|---|---|---|
| Client Compatible | Yes | No | Yes |
| OpenMP Acceleration | No | Yes | Yes |
| Parallel AI Updates | No | Yes | Yes |
| Parallel Physics | No | Yes | Yes |
| Parallel Spell Effects | No | Yes | Yes |
| Production Ready | Yes | No | Yes |
PyrealACE = ACE Protocol + PyrealEngine Performance
PyrealACE Server
├────────────────────────────────────────────────────────────┤
│ PROTOCOL LAYER (C# - Protected, 426 files) │
│ • From ACE_Original - 100% client compatible │
│ • CRC32 checksums, standard AC protocol │
├────────────────────────────────────────────────────────────┤
│ NATIVE LAYER (C++ OpenMP, ~9,700 lines) │
│ • AI/Pathfinding - parallel agent updates │
│ • Physics - parallel collision detection │
│ • Combat - optimized damage calculations │
│ • Magic - parallel DoT/HoT processing │
│ • Loot - batch parallel generation │
│ • World - parallel landblock management │
└────────────────────────────────────────────────────────────┘
NEWCONTENT NEWCONTENT NEWCONTENT NEWCONTENT NEWCONTENT NEWCONTENT NEWCONTENT NEWCONTENT NEWCONTENT
- .NET 8.0 SDK
- CMake 3.20+
- C++20 compiler with OpenMP support:
- Windows: Visual Studio 2022 or Clang/LLVM 17+
- Linux: GCC 12+ or Clang 17+
- MySQL/MariaDB
cd Native
mkdir build && cd build
# Windows (Visual Studio)
cmake .. -G "Visual Studio 17 2022" -A x64
cmake --build . --config Release
# Windows (Clang - recommended for best OpenMP)
cmake .. -G Ninja -DCMAKE_CXX_COMPILER=clang++
cmake --build . --config Release
# Linux
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)cd Source
dotnet build -c Releasecd Source/ACE.Server/bin/Release/net8.0
./ACE.ServerPyrealACE/
├── Source/ # C# Server (from ACE_Original)
│ ├── ACE.Server/
│ │ ├── Network/ # PROTECTED - Do not modify!
│ │ ├── Native/ # P/Invoke bridges
│ │ ├── Managers/ # Safe to integrate native calls
│ │ └── WorldObjects/ # Safe to integrate native calls
│ ├── ACE.Common/
│ ├── ACE.Database/
│ ├── ACE.DatLoader/
│ └── ACE.Entity/
├── Native/ # C++ OpenMP Modules
│ ├── pyreal_ai/ # AI & Pathfinding
│ ├── pyreal_combat/ # Combat calculations
│ ├── pyreal_physics/ # Physics & collision
│ ├── pyreal_magic/ # Spell system
│ ├── pyreal_loot/ # Loot generation
│ ├── pyreal_skills/ # Skill calculations
│ ├── pyreal_world/ # World/landblock management
│ ├── pyreal_database/ # Weenie cache
│ ├── exports/ # C API for P/Invoke
│ └── CMakeLists.txt # Build configuration
├── Database/ # SQL scripts
├── PROTECTED_PROTOCOL.md # READ THIS FIRST!
└── README.md
CRITICAL: The Source/ACE.Server/Network/ directory contains 426 files that
define the Asheron's Call network protocol. These files MUST NOT be modified
to maintain client compatibility.
See PROTECTED_PROTOCOL.md for details.
The native OpenMP modules are integrated via P/Invoke:
// In WorldManager.cs or similar game logic
using ACE.Server.Native;
private void UpdateGameTick(float deltaTime)
{
// OpenMP-accelerated updates
NativeAI.UpdateAgents(deltaTime);
NativePhysics.Update(deltaTime);
NativeMagic.UpdateEffects(deltaTime);
NativeWorld.Update(deltaTime);
}This project is for educational and non-commercial purposes only.
- Asheron's Call was a registered trademark of Turbine, Inc. and WB Games Inc.
- PyrealACE is not associated with Turbine, Inc. or WB Games Inc.
- ACE Team - Original ACE emulator (protocol layer)
- PyrealEngine Contributors - OpenMP-accelerated game logic
- Asheron's Call Community - Continued support and testing
GNU Affero General Public License v3.0 - See LICENSE