mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-22 23:30:14 +00:00
Initial commit: wowee native WoW 3.3.5a client
This commit is contained in:
commit
ce6cb8f38e
147 changed files with 32347 additions and 0 deletions
619
docs/server-setup.md
Normal file
619
docs/server-setup.md
Normal file
|
|
@ -0,0 +1,619 @@
|
|||
# Local Server Setup Guide
|
||||
|
||||
**Date**: 2026-01-27
|
||||
**Purpose**: Testing wowee with a local WoW 3.3.5a server
|
||||
**Status**: Ready for testing
|
||||
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
The wowee client is pre-configured to connect to a local WoW 3.3.5a private server. This guide explains how to set up and test with popular server emulators like TrinityCore or AzerothCore.
|
||||
|
||||
## Default Configuration
|
||||
|
||||
The authentication screen comes with local server defaults:
|
||||
|
||||
| Setting | Default Value | Description |
|
||||
|---------|---------------|-------------|
|
||||
| **Hostname** | 127.0.0.1 | Localhost (your machine) |
|
||||
| **Port** | 3724 | Standard auth server port |
|
||||
| **Username** | (empty) | Your account username |
|
||||
| **Password** | (empty) | Your account password |
|
||||
|
||||
These values can be changed in the UI before connecting.
|
||||
|
||||
## Server Requirements
|
||||
|
||||
You need a WoW 3.3.5a (Wrath of the Lich King) server emulator running on your local machine or network.
|
||||
|
||||
### Supported Server Emulators
|
||||
|
||||
**Recommended:**
|
||||
- **TrinityCore 3.3.5a** - Most stable and feature-complete
|
||||
- GitHub: https://github.com/TrinityCore/TrinityCore (3.3.5 branch)
|
||||
- Documentation: https://trinitycore.info/
|
||||
|
||||
- **AzerothCore** - Active community, good documentation
|
||||
- GitHub: https://github.com/azerothcore/azerothcore-wotlk
|
||||
- Documentation: https://www.azerothcore.org/wiki/
|
||||
|
||||
- **MaNGOS WotLK** - Classic emulator, stable
|
||||
- GitHub: https://github.com/cmangos/mangos-wotlk
|
||||
- Documentation: https://github.com/cmangos/mangos-wotlk/wiki
|
||||
|
||||
## Quick Setup (TrinityCore)
|
||||
|
||||
### 1. Install Prerequisites
|
||||
|
||||
**Ubuntu/Debian:**
|
||||
```bash
|
||||
sudo apt-get update
|
||||
sudo apt-get install git cmake make gcc g++ libssl-dev \
|
||||
libmysqlclient-dev libreadline-dev zlib1g-dev libbz2-dev \
|
||||
libboost-all-dev mysql-server
|
||||
```
|
||||
|
||||
**macOS:**
|
||||
```bash
|
||||
brew install cmake boost openssl readline mysql
|
||||
```
|
||||
|
||||
### 2. Download TrinityCore
|
||||
|
||||
```bash
|
||||
cd ~/
|
||||
git clone -b 3.3.5 https://github.com/TrinityCore/TrinityCore.git
|
||||
cd TrinityCore
|
||||
```
|
||||
|
||||
### 3. Compile Server
|
||||
|
||||
```bash
|
||||
mkdir build && cd build
|
||||
cmake ../ -DCMAKE_INSTALL_PREFIX=$HOME/trinitycore-server
|
||||
make -j$(nproc)
|
||||
make install
|
||||
```
|
||||
|
||||
**Compilation time:** ~30-60 minutes depending on your system.
|
||||
|
||||
### 4. Setup Database
|
||||
|
||||
```bash
|
||||
# Create MySQL databases
|
||||
mysql -u root -p
|
||||
|
||||
CREATE DATABASE world;
|
||||
CREATE DATABASE characters;
|
||||
CREATE DATABASE auth;
|
||||
CREATE USER 'trinity'@'localhost' IDENTIFIED BY 'trinity';
|
||||
GRANT ALL PRIVILEGES ON world.* TO 'trinity'@'localhost';
|
||||
GRANT ALL PRIVILEGES ON characters.* TO 'trinity'@'localhost';
|
||||
GRANT ALL PRIVILEGES ON auth.* TO 'trinity'@'localhost';
|
||||
FLUSH PRIVILEGES;
|
||||
EXIT;
|
||||
|
||||
# Import base database
|
||||
cd ~/TrinityCore
|
||||
mysql -u trinity -ptrinity auth < sql/base/auth_database.sql
|
||||
mysql -u trinity -ptrinity characters < sql/base/characters_database.sql
|
||||
mysql -u trinity -ptrinity world < sql/base/world_database.sql
|
||||
|
||||
# Download world database (TDB)
|
||||
wget https://github.com/TrinityCore/TrinityCore/releases/download/TDB335.23041/TDB_full_world_335.23041_2023_04_11.sql
|
||||
mysql -u trinity -ptrinity world < TDB_full_world_335.23041_2023_04_11.sql
|
||||
```
|
||||
|
||||
### 5. Configure Server
|
||||
|
||||
```bash
|
||||
cd ~/trinitycore-server/etc/
|
||||
|
||||
# Copy configuration templates
|
||||
cp authserver.conf.dist authserver.conf
|
||||
cp worldserver.conf.dist worldserver.conf
|
||||
|
||||
# Edit authserver.conf
|
||||
nano authserver.conf
|
||||
```
|
||||
|
||||
**Key settings in `authserver.conf`:**
|
||||
```ini
|
||||
LoginDatabaseInfo = "127.0.0.1;3306;trinity;trinity;auth"
|
||||
RealmServerPort = 3724
|
||||
BindIP = "127.0.0.1"
|
||||
```
|
||||
|
||||
**Key settings in `worldserver.conf`:**
|
||||
```ini
|
||||
LoginDatabaseInfo = "127.0.0.1;3306;trinity;trinity;auth"
|
||||
WorldDatabaseInfo = "127.0.0.1;3306;trinity;trinity;world"
|
||||
CharacterDatabaseInfo = "127.0.0.1;3306;trinity;trinity;characters"
|
||||
|
||||
DataDir = "/path/to/your/WoW-3.3.5a/Data" # Your WoW client data directory
|
||||
```
|
||||
|
||||
### 6. Create Account
|
||||
|
||||
```bash
|
||||
cd ~/trinitycore-server/bin/
|
||||
|
||||
# Start authserver first
|
||||
./authserver
|
||||
|
||||
# In another terminal, start worldserver
|
||||
./worldserver
|
||||
|
||||
# Wait for worldserver to fully load, then in worldserver console:
|
||||
account create testuser testpass
|
||||
account set gmlevel testuser 3 -1
|
||||
```
|
||||
|
||||
### 7. Setup Realm
|
||||
|
||||
In the worldserver console:
|
||||
```
|
||||
realm add "Local Test Realm" 127.0.0.1:8085 0 1
|
||||
```
|
||||
|
||||
Or directly in database:
|
||||
```sql
|
||||
mysql -u trinity -ptrinity auth
|
||||
|
||||
INSERT INTO realmlist (name, address, port, icon, realmflags, timezone, allowedSecurityLevel)
|
||||
VALUES ('Local Test Realm', '127.0.0.1', 8085, 1, 0, 1, 0);
|
||||
```
|
||||
|
||||
## Running the Server
|
||||
|
||||
### Start Services
|
||||
|
||||
**Terminal 1 - Auth Server:**
|
||||
```bash
|
||||
cd ~/trinitycore-server/bin/
|
||||
./authserver
|
||||
```
|
||||
|
||||
**Terminal 2 - World Server:**
|
||||
```bash
|
||||
cd ~/trinitycore-server/bin/
|
||||
./worldserver
|
||||
```
|
||||
|
||||
### Server Console Commands
|
||||
|
||||
**Useful commands in worldserver console:**
|
||||
|
||||
```bash
|
||||
# Create account
|
||||
account create username password
|
||||
|
||||
# Set GM level (0=player, 1=moderator, 2=GM, 3=admin)
|
||||
account set gmlevel username 3 -1
|
||||
|
||||
# Teleport character
|
||||
.tele ironforge
|
||||
.tele stormwind
|
||||
|
||||
# Get server info
|
||||
server info
|
||||
server set motd Welcome to Test Server!
|
||||
|
||||
# List online players
|
||||
account onlinelist
|
||||
|
||||
# Shutdown server
|
||||
server shutdown 10 # Shutdown in 10 seconds
|
||||
```
|
||||
|
||||
## Connecting with Wowee-Native
|
||||
|
||||
### 1. Start the Client
|
||||
|
||||
```bash
|
||||
cd /home/k/Desktop/wowee/wowee
|
||||
./build/bin/wowee
|
||||
```
|
||||
|
||||
### 2. Login Screen
|
||||
|
||||
You'll see the authentication screen with default values:
|
||||
- **Hostname:** 127.0.0.1 (already set)
|
||||
- **Port:** 3724 (already set)
|
||||
- **Username:** (enter your account username)
|
||||
- **Password:** (enter your account password)
|
||||
|
||||
### 3. Connect
|
||||
|
||||
1. Enter your credentials (e.g., `testuser` / `testpass`)
|
||||
2. Click **Connect**
|
||||
3. You should see "Authentication successful!"
|
||||
4. Select your realm from the realm list
|
||||
5. Create or select a character
|
||||
6. Enter the world!
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Connection Refused
|
||||
|
||||
**Problem:** Cannot connect to auth server
|
||||
|
||||
**Solutions:**
|
||||
```bash
|
||||
# Check if authserver is running
|
||||
ps aux | grep authserver
|
||||
|
||||
# Check if port is listening
|
||||
netstat -an | grep 3724
|
||||
sudo lsof -i :3724
|
||||
|
||||
# Check firewall
|
||||
sudo ufw allow 3724
|
||||
sudo ufw status
|
||||
|
||||
# Verify MySQL is running
|
||||
sudo systemctl status mysql
|
||||
```
|
||||
|
||||
### Authentication Failed
|
||||
|
||||
**Problem:** "Authentication failed" error
|
||||
|
||||
**Solutions:**
|
||||
```bash
|
||||
# Verify account exists
|
||||
mysql -u trinity -ptrinity auth
|
||||
SELECT * FROM account WHERE username='testuser';
|
||||
|
||||
# Reset password
|
||||
# In worldserver console:
|
||||
account set password testuser newpass newpass
|
||||
|
||||
# Check auth server logs
|
||||
tail -f ~/trinitycore-server/logs/Auth.log
|
||||
```
|
||||
|
||||
### Realm List Empty
|
||||
|
||||
**Problem:** No realms showing after login
|
||||
|
||||
**Solutions:**
|
||||
```bash
|
||||
# Check realm configuration in database
|
||||
mysql -u trinity -ptrinity auth
|
||||
SELECT * FROM realmlist;
|
||||
|
||||
# Verify world server is running
|
||||
ps aux | grep worldserver
|
||||
|
||||
# Check world server port
|
||||
netstat -an | grep 8085
|
||||
|
||||
# Update realmlist address
|
||||
UPDATE realmlist SET address='127.0.0.1' WHERE id=1;
|
||||
```
|
||||
|
||||
### Cannot Enter World
|
||||
|
||||
**Problem:** Stuck at character selection or disconnect when entering world
|
||||
|
||||
**Solutions:**
|
||||
```bash
|
||||
# Check worldserver logs
|
||||
tail -f ~/trinitycore-server/logs/Server.log
|
||||
|
||||
# Verify Data directory in worldserver.conf
|
||||
DataDir = "/path/to/WoW-3.3.5a/Data"
|
||||
|
||||
# Ensure maps are extracted
|
||||
cd ~/WoW-3.3.5a/
|
||||
ls -la maps/ # Should have .map files
|
||||
|
||||
# Extract maps if needed (from TrinityCore tools)
|
||||
cd ~/trinitycore-server/bin/
|
||||
./mapextractor
|
||||
./vmap4extractor
|
||||
./vmap4assembler
|
||||
./mmaps_generator
|
||||
```
|
||||
|
||||
## Network Configuration
|
||||
|
||||
### Local Network Testing
|
||||
|
||||
To test from another machine on your network:
|
||||
|
||||
**1. Find your local IP:**
|
||||
```bash
|
||||
ip addr show | grep inet
|
||||
# Or
|
||||
ifconfig | grep inet
|
||||
```
|
||||
|
||||
**2. Update server configuration:**
|
||||
|
||||
Edit `authserver.conf`:
|
||||
```ini
|
||||
BindIP = "0.0.0.0" # Listen on all interfaces
|
||||
```
|
||||
|
||||
Edit database:
|
||||
```sql
|
||||
mysql -u trinity -ptrinity auth
|
||||
UPDATE realmlist SET address='192.168.1.100' WHERE id=1; # Your local IP
|
||||
```
|
||||
|
||||
**3. Configure firewall:**
|
||||
```bash
|
||||
sudo ufw allow 3724 # Auth server
|
||||
sudo ufw allow 8085 # World server
|
||||
```
|
||||
|
||||
**4. In wowee:**
|
||||
- Change hostname to your server's local IP (e.g., 192.168.1.100)
|
||||
- Keep port as 3724
|
||||
- Connect
|
||||
|
||||
### Remote Server Testing
|
||||
|
||||
For testing with a remote server (VPS, dedicated server):
|
||||
|
||||
**Client configuration:**
|
||||
- **Hostname:** server.example.com or remote IP
|
||||
- **Port:** 3724 (or custom port)
|
||||
|
||||
**Server configuration:**
|
||||
```ini
|
||||
# authserver.conf
|
||||
BindIP = "0.0.0.0"
|
||||
|
||||
# Database
|
||||
UPDATE realmlist SET address='your.server.ip' WHERE id=1;
|
||||
```
|
||||
|
||||
## WoW Data Files
|
||||
|
||||
The client needs access to WoW 3.3.5a data files for terrain, models, and textures.
|
||||
|
||||
### Setting WOW_DATA_PATH
|
||||
|
||||
```bash
|
||||
# Linux/Mac
|
||||
export WOW_DATA_PATH="/path/to/WoW-3.3.5a/Data"
|
||||
|
||||
# Or add to ~/.bashrc
|
||||
echo 'export WOW_DATA_PATH="/path/to/WoW-3.3.5a/Data"' >> ~/.bashrc
|
||||
source ~/.bashrc
|
||||
|
||||
# Run client
|
||||
cd /home/k/Desktop/wowee/wowee
|
||||
./build/bin/wowee
|
||||
```
|
||||
|
||||
### Data Directory Structure
|
||||
|
||||
Your WoW Data directory should contain:
|
||||
```
|
||||
Data/
|
||||
├── common.MPQ
|
||||
├── common-2.MPQ
|
||||
├── expansion.MPQ
|
||||
├── lichking.MPQ
|
||||
├── patch.MPQ
|
||||
├── patch-2.MPQ
|
||||
├── patch-3.MPQ
|
||||
└── enUS/ (or your locale)
|
||||
├── locale-enUS.MPQ
|
||||
└── patch-enUS-3.MPQ
|
||||
```
|
||||
|
||||
## Testing Features
|
||||
|
||||
### In-Game Testing
|
||||
|
||||
Once connected and in-world, test client features:
|
||||
|
||||
**Camera Controls:**
|
||||
- **WASD** - Move camera
|
||||
- **Mouse** - Look around
|
||||
- **Shift** - Move faster
|
||||
|
||||
**Rendering Features:**
|
||||
- **F1** - Toggle performance HUD
|
||||
- **F2** - Wireframe mode
|
||||
- **F8** - Toggle water rendering
|
||||
- **F9** - Toggle time progression
|
||||
- **F10** - Toggle sun/moon
|
||||
- **F11** - Toggle stars
|
||||
- **F12** - Toggle fog
|
||||
- **+/-** - Change time of day
|
||||
|
||||
**Effects:**
|
||||
- **C** - Toggle clouds
|
||||
- **L** - Toggle lens flare
|
||||
- **W** - Cycle weather (rain/snow)
|
||||
- **M** - Toggle moon phases
|
||||
|
||||
**Character/Buildings:**
|
||||
- **K** - Spawn test character
|
||||
- **O** - Spawn test WMO building
|
||||
- **Shift+O** - Load real WMO from MPQ (if WOW_DATA_PATH set)
|
||||
- **P** - Clear all WMOs
|
||||
|
||||
### Performance Monitoring
|
||||
|
||||
Press **F1** to show/hide the performance HUD which displays:
|
||||
- **FPS** - Frames per second (color-coded: green=60+, yellow=30-60, red=<30)
|
||||
- **Frame time** - Milliseconds per frame
|
||||
- **Renderer stats** - Draw calls, triangles
|
||||
- **WMO stats** - Building models and instances
|
||||
- **Camera position** - X, Y, Z coordinates
|
||||
|
||||
## Server Administration
|
||||
|
||||
### GM Commands (in worldserver console or in-game)
|
||||
|
||||
**Character Management:**
|
||||
```
|
||||
.character level 80 # Set level to 80
|
||||
.character rename # Flag character for rename
|
||||
.character customize # Flag for appearance change
|
||||
.levelup 80 # Increase level by 80
|
||||
```
|
||||
|
||||
**Item/Gold:**
|
||||
```
|
||||
.additem 25 10 # Add 10 of item ID 25
|
||||
.modify money 1000000 # Add 10 gold (in copper)
|
||||
.lookup item sword # Find item IDs
|
||||
```
|
||||
|
||||
**Teleportation:**
|
||||
```
|
||||
.tele stormwind # Teleport to Stormwind
|
||||
.tele ironforge # Teleport to Ironforge
|
||||
.gps # Show current position
|
||||
```
|
||||
|
||||
**World Management:**
|
||||
```
|
||||
.server set motd Welcome! # Set message of the day
|
||||
.announce Message # Server-wide announcement
|
||||
.server shutdown 60 # Shutdown in 60 seconds
|
||||
```
|
||||
|
||||
## Performance Tips
|
||||
|
||||
### Server Optimization
|
||||
|
||||
**worldserver.conf settings for testing:**
|
||||
```ini
|
||||
# Faster respawn times for testing
|
||||
Corpse.Decay.NORMAL = 30
|
||||
Corpse.Decay.RARE = 60
|
||||
Corpse.Decay.ELITE = 60
|
||||
|
||||
# Faster leveling for testing
|
||||
Rate.XP.Kill = 2
|
||||
Rate.XP.Quest = 2
|
||||
|
||||
# More gold for testing
|
||||
Rate.Drop.Money = 2
|
||||
|
||||
# Instant flight paths (testing)
|
||||
Rate.Creature.Normal.Damage = 1
|
||||
Rate.Player.Haste = 1
|
||||
```
|
||||
|
||||
### Client Performance
|
||||
|
||||
- Keep performance HUD (F1) enabled to monitor FPS
|
||||
- Disable heavy effects if FPS drops:
|
||||
- Weather (W key to None)
|
||||
- Clouds (C key to disable)
|
||||
- Lens flare (L key to disable)
|
||||
|
||||
## Security Notes
|
||||
|
||||
⚠️ **For Local Testing Only**
|
||||
|
||||
This setup is for **local development and testing** purposes:
|
||||
- Default passwords are insecure
|
||||
- No SSL/TLS encryption
|
||||
- MySQL permissions are permissive
|
||||
- Ports are open without authentication
|
||||
|
||||
**Do not expose these settings to the internet without proper security configuration.**
|
||||
|
||||
## Additional Resources
|
||||
|
||||
### Server Emulators
|
||||
- **TrinityCore**: https://trinitycore.info/
|
||||
- **AzerothCore**: https://www.azerothcore.org/
|
||||
- **MaNGOS**: https://getmangos.eu/
|
||||
|
||||
### Database Tools
|
||||
- **Keira3** - Visual database editor: https://github.com/azerothcore/Keira3
|
||||
- **HeidiSQL** - MySQL client: https://www.heidisql.com/
|
||||
|
||||
### WoW Development
|
||||
- **WoWDev Wiki**: https://wowdev.wiki/
|
||||
- **TrinityCore Forum**: https://community.trinitycore.org/
|
||||
- **AzerothCore Discord**: https://discord.gg/azerothcore
|
||||
|
||||
### Map/DBC Tools
|
||||
- **WoW Blender Studio**: https://github.com/Marlamin/WoW-Blender-Studio
|
||||
- **WDBXEditor**: https://github.com/WowDevTools/WDBXEditor
|
||||
|
||||
## Example Testing Session
|
||||
|
||||
### Complete Workflow
|
||||
|
||||
1. **Start Server:**
|
||||
```bash
|
||||
# Terminal 1
|
||||
cd ~/trinitycore-server/bin && ./authserver
|
||||
|
||||
# Terminal 2
|
||||
cd ~/trinitycore-server/bin && ./worldserver
|
||||
```
|
||||
|
||||
2. **Create Test Account (in worldserver console):**
|
||||
```
|
||||
account create demo demopass
|
||||
account set gmlevel demo 3 -1
|
||||
```
|
||||
|
||||
3. **Start Client:**
|
||||
```bash
|
||||
cd /home/k/Desktop/wowee/wowee
|
||||
export WOW_DATA_PATH="/path/to/WoW-3.3.5a/Data"
|
||||
./build/bin/wowee
|
||||
```
|
||||
|
||||
4. **Connect:**
|
||||
- Username: `demo`
|
||||
- Password: `demopass`
|
||||
- Click Connect
|
||||
|
||||
5. **Test Features:**
|
||||
- Create a character
|
||||
- Enter world
|
||||
- Test rendering (F1-F12, C, L, W, M keys)
|
||||
- Spawn objects (K, O, Shift+O, P keys)
|
||||
- Test movement (WASD, mouse)
|
||||
|
||||
6. **Stop Server (worldserver console):**
|
||||
```
|
||||
server shutdown 10
|
||||
```
|
||||
|
||||
## Troubleshooting Checklist
|
||||
|
||||
- [ ] MySQL server running
|
||||
- [ ] Databases created and populated
|
||||
- [ ] authserver running and listening on port 3724
|
||||
- [ ] worldserver running and listening on port 8085
|
||||
- [ ] Realmlist configured with correct address
|
||||
- [ ] Account created with proper credentials
|
||||
- [ ] Firewall allows ports 3724 and 8085
|
||||
- [ ] WOW_DATA_PATH set correctly (if using MPQ assets)
|
||||
- [ ] Client can resolve hostname (127.0.0.1 for localhost)
|
||||
|
||||
## Next Steps
|
||||
|
||||
Once you have a working local server connection:
|
||||
1. Test network protocol implementation
|
||||
2. Validate packet handling
|
||||
3. Test character creation and login
|
||||
4. Verify world entry and movement
|
||||
5. Test rendering with real terrain data (requires WOW_DATA_PATH)
|
||||
6. Profile performance with actual game data
|
||||
|
||||
---
|
||||
|
||||
**Status**: Ready for local server testing
|
||||
**Last Updated**: 2026-01-27
|
||||
**Client Version**: 1.0.3
|
||||
**Server Compatibility**: WoW 3.3.5a (12340)
|
||||
Loading…
Add table
Add a link
Reference in a new issue