mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-22 23:30:14 +00:00
Comprehensive README/status update covering 60+ commits since Feb 2026
Some checks are pending
Build / Build (arm64) (push) Waiting to run
Build / Build (x86-64) (push) Waiting to run
Build / Build (macOS arm64) (push) Waiting to run
Build / Build (windows-arm64) (push) Waiting to run
Build / Build (windows-x86-64) (push) Waiting to run
Security / CodeQL (C/C++) (push) Waiting to run
Security / Semgrep (push) Waiting to run
Security / Sanitizer Build (ASan/UBSan) (push) Waiting to run
Some checks are pending
Build / Build (arm64) (push) Waiting to run
Build / Build (x86-64) (push) Waiting to run
Build / Build (macOS arm64) (push) Waiting to run
Build / Build (windows-arm64) (push) Waiting to run
Build / Build (windows-x86-64) (push) Waiting to run
Security / CodeQL (C/C++) (push) Waiting to run
Security / Semgrep (push) Waiting to run
Security / Sanitizer Build (ASan/UBSan) (push) Waiting to run
Add instances, bank, auction house, mail, pets, party stats, map exploration, talent/spellbook revamp, chest looting, spirit healer, CI builds, performance optimizations, shadow/collision/lava fixes.
This commit is contained in:
parent
88dc1f94a6
commit
f374e19239
2 changed files with 46 additions and 22 deletions
46
README.md
46
README.md
|
|
@ -22,20 +22,23 @@ Protocol Compatible with **Vanilla (Classic) 1.12 + TBC 2.4.3 + WotLK 3.3.5a**.
|
|||
## Status & Direction (2026-03-07)
|
||||
|
||||
- **Compatibility**: **Vanilla (Classic) 1.12 + TBC 2.4.3 + WotLK 3.3.5a** are all supported via expansion profiles and per-expansion packet parsers (`src/game/packet_parsers_classic.cpp`, `src/game/packet_parsers_tbc.cpp`). All three expansions are roughly on par — no single one is significantly more complete than the others.
|
||||
- **Tested against**: AzerothCore, TrinityCore, and Mangos.
|
||||
- **Current focus**: protocol correctness across server variants, visual accuracy (M2/WMO edge cases, lava/water rendering, equipment textures), and multi-expansion coverage.
|
||||
- **Tested against**: AzerothCore, TrinityCore, Mangos, and Turtle WoW (1.17).
|
||||
- **Current focus**: instance dungeons, visual accuracy (lava/water, shadow mapping, WMO interiors), and multi-expansion coverage.
|
||||
- **Warden**: Full module execution via Unicorn Engine CPU emulation. Decrypts (RC4→RSA→zlib), parses and relocates the PE module, executes via x86 emulation with Windows API interception. Module cache at `~/.local/share/wowee/warden_cache/`.
|
||||
- **CI**: GitHub Actions builds for Linux (x86-64, ARM64), Windows (MSYS2), and macOS (ARM64). Security scans via CodeQL, Semgrep, and sanitizers.
|
||||
|
||||
## Features
|
||||
|
||||
### Rendering Engine
|
||||
- **Terrain** -- Multi-tile streaming with async loading, texture splatting (4 layers), frustum culling
|
||||
- **Terrain** -- Multi-tile streaming with async loading, texture splatting (4 layers), frustum culling, expanded load radius during taxi flights
|
||||
- **Atmosphere** -- Procedural clouds (FBM noise), lens flare with chromatic aberration, cloud/fog star occlusion
|
||||
- **Characters** -- Skeletal animation with GPU vertex skinning (256 bones), race-aware textures
|
||||
- **Buildings** -- WMO renderer with multi-material batches, frustum culling, 160-unit distance culling
|
||||
- **Water & Lava** -- Terrain and WMO water with refraction/reflection, magma/slime rendering with fbm noise flow, Beer-Lambert absorption
|
||||
- **Characters** -- Skeletal animation with GPU vertex skinning (256 bones), race-aware textures, per-instance NPC hair/skin textures
|
||||
- **Buildings** -- WMO renderer with multi-material batches, frustum culling, collision (wall/floor classification, slope sliding), interior glass transparency
|
||||
- **Instances** -- WDT parser for WMO-only dungeon maps, area trigger portals with glow/spin effects, seamless zone transitions
|
||||
- **Water & Lava** -- Terrain and WMO water with refraction/reflection, magma/slime rendering with multi-octave FBM noise flow, Beer-Lambert absorption, M2 lava waterfalls with UV scroll
|
||||
- **Particles** -- M2 particle emitters with WotLK struct parsing, billboarded glow effects, lava steam/splash effects
|
||||
- **Lighting** -- Shadow mapping with PCF, interior/exterior light modes, WMO window glass with fresnel reflections
|
||||
- **Lighting** -- Shadow mapping with PCF filtering, per-frame shadow updates, AABB-based culling, interior/exterior light modes, WMO window glass with fresnel reflections
|
||||
- **Performance** -- Binary keyframe search for animations, incremental spatial index, static doodad skip, hash-free render/shadow culling
|
||||
|
||||
### Asset Pipeline
|
||||
- Extracted loose-file **`Data/`** tree indexed by **`manifest.json`** (fast lookup + caching)
|
||||
|
|
@ -46,21 +49,27 @@ Protocol Compatible with **Vanilla (Classic) 1.12 + TBC 2.4.3 + WotLK 3.3.5a**.
|
|||
### Gameplay Systems
|
||||
- **Authentication** -- Full SRP6a implementation with RC4 header encryption
|
||||
- **Character System** -- Creation (with nonbinary gender option), selection, 3D preview, stats panel, race/class support
|
||||
- **Movement** -- WASD movement, camera orbit, spline path following, transport riding (trams, ships, zeppelins)
|
||||
- **Combat** -- Auto-attack, spell casting with cooldowns, damage calculation, death handling
|
||||
- **Targeting** -- Tab-cycling, click-to-target, faction-based hostility (using Faction.dbc)
|
||||
- **Inventory** -- 23 equipment slots, 16 backpack slots, drag-drop, auto-equip
|
||||
- **Spells** -- Spellbook with class specialty tabs, drag-drop to action bar, spell icons
|
||||
- **Movement** -- WASD movement, camera orbit, spline path following, transport riding (trams, ships, zeppelins), movement ACK responses
|
||||
- **Combat** -- Auto-attack, spell casting with cooldowns, damage calculation, death handling, spirit healer resurrection
|
||||
- **Targeting** -- Tab-cycling with hostility filtering, click-to-target, faction-based hostility (using Faction.dbc)
|
||||
- **Inventory** -- 23 equipment slots, 16 backpack slots, drag-drop, auto-equip, item tooltips with weapon damage/speed
|
||||
- **Bank** -- Full bank support for all expansions, bag slots, drag-drop, right-click deposit (non-equippable items)
|
||||
- **Spells** -- Spellbook with specialty, general, profession, mount, and companion tabs; drag-drop to action bar; item use support
|
||||
- **Talents** -- Talent tree UI with proper visuals and functionality
|
||||
- **Action Bar** -- 12 slots, drag-drop from spellbook/inventory, click-to-cast, keybindings
|
||||
- **Trainers** -- Spell trainer UI, buy spells, known/available/unavailable states
|
||||
- **Quests** -- Quest markers (! and ?) on NPCs and minimap, quest log, quest details, turn-in flow
|
||||
- **Quests** -- Quest markers (! and ?) on NPCs and minimap, quest log, quest details, turn-in flow, quest item progress tracking
|
||||
- **Auction House** -- Search with filters, pagination, sell picker with tooltips, bid/buyout
|
||||
- **Mail** -- Item attachment support for sending
|
||||
- **Vendors** -- Buy, sell, and buyback (most recent sold item), gold tracking, inventory sync
|
||||
- **Loot** -- Loot window, gold looting, item pickup
|
||||
- **Loot** -- Loot window, gold looting, item pickup, chest/gameobject looting
|
||||
- **Gossip** -- NPC interaction, dialogue options
|
||||
- **Chat** -- Tabs/channels, emotes, chat bubbles, clickable URLs, clickable item links with tooltips
|
||||
- **Party** -- Group invites, party list
|
||||
- **Party** -- Group invites, party list, out-of-range member health via SMSG_PARTY_MEMBER_STATS
|
||||
- **Pets** -- Pet tracking via SMSG_PET_SPELLS, dismiss pet button
|
||||
- **Map Exploration** -- Subzone-level fog-of-war reveal matching retail behavior
|
||||
- **Warden** -- Warden anti-cheat module execution via Unicorn Engine x86 emulation (cross-platform, no Wine)
|
||||
- **UI** -- Loading screens with progress bar, settings window, minimap with zoom/rotation/square mode, top-right minimap mute speaker, separate bag windows with compact-empty mode (aggregate view)
|
||||
- **UI** -- Loading screens with progress bar, settings window (shadow distance slider), minimap with zoom/rotation/square mode, top-right minimap mute speaker, separate bag windows with compact-empty mode (aggregate view)
|
||||
|
||||
## Building
|
||||
|
||||
|
|
@ -216,6 +225,11 @@ make -j$(nproc)
|
|||
- [Warden Quick Reference](docs/WARDEN_QUICK_REFERENCE.md) -- Warden module execution overview and testing
|
||||
- [Warden Implementation](docs/WARDEN_IMPLEMENTATION.md) -- Technical details of the implementation
|
||||
|
||||
## CI / CD
|
||||
|
||||
- GitHub Actions builds on every push: Linux (x86-64, ARM64), Windows (MSYS2), macOS (ARM64)
|
||||
- Container build via `container/build-in-container.sh` (Podman)
|
||||
|
||||
## Security
|
||||
|
||||
- GitHub Actions runs a dedicated security workflow at `.github/workflows/security.yml`.
|
||||
|
|
|
|||
|
|
@ -11,17 +11,26 @@ Wowee is a native C++ World of Warcraft client experiment focused on connecting
|
|||
Implemented (working in normal use):
|
||||
|
||||
- Auth flow: SRP6a auth + realm list + world connect with header encryption
|
||||
- Rendering: terrain, WMO/M2 rendering, water/magma/slime, sky system, particles, shadow mapping, minimap/world map, loading video playback
|
||||
- Character system: creation (including nonbinary gender), selection, 3D preview with equipment, character screen
|
||||
- Core gameplay: movement, targeting, combat, action bar, inventory/equipment, chat (tabs/channels, emotes, item links)
|
||||
- Quests: quest markers (! and ?) on NPCs/minimap, quest log with detail queries/retry, objective tracking, accept/complete flow, turn-in
|
||||
- Rendering: terrain, WMO/M2, water/magma/slime (FBM noise shaders), sky system, particles, shadow mapping, minimap/world map, loading video playback
|
||||
- Instances: WDT parser, WMO-only dungeon maps, area trigger portals with glow/spin effects, zone transitions
|
||||
- Character system: creation (including nonbinary gender), selection, 3D preview with equipment, character screen, per-instance NPC hair/skin textures
|
||||
- Core gameplay: movement (with ACK responses), targeting (hostility-filtered tab-cycle), combat, action bar, inventory/equipment, chat (tabs/channels, emotes, item links)
|
||||
- Quests: quest markers (! and ?) on NPCs/minimap, quest log with detail queries/retry, objective tracking, accept/complete flow, turn-in, quest item progress
|
||||
- Trainers: spell trainer UI, buy spells, known/available/unavailable states
|
||||
- Vendors, loot, gossip dialogs (including buyback for most recently sold item)
|
||||
- Spellbook with class tabs, drag-drop to action bar, spell icons
|
||||
- Vendors, loot (including chest/gameobject loot), gossip dialogs (including buyback for most recently sold item)
|
||||
- Bank: full bank support for all expansions, bag slots, drag-drop, right-click deposit
|
||||
- Auction house: search with filters, pagination, sell picker, bid/buyout, tooltips
|
||||
- Mail: item attachment support for sending
|
||||
- Spellbook with specialty/general/profession/mount/companion tabs, drag-drop to action bar, spell icons, item use
|
||||
- Talent tree UI with proper visuals and functionality
|
||||
- Pet tracking (SMSG_PET_SPELLS), dismiss pet button
|
||||
- Party: group invites, party list, out-of-range member health (SMSG_PARTY_MEMBER_STATS)
|
||||
- Map exploration: subzone-level fog-of-war reveal
|
||||
- Warden anti-cheat: full module execution via Unicorn Engine x86 emulation; module caching
|
||||
- Audio: ambient, movement, combat, spell, and UI sound systems
|
||||
- Bag UI: separate bag windows, open-bag indicator on bag bar, optional collapse-empty mode in aggregate bag view
|
||||
- Multi-expansion: Classic/Vanilla, TBC, WotLK, and Turtle WoW (1.17) protocol and asset variants
|
||||
- CI: GitHub Actions for Linux (x86-64, ARM64), Windows (MSYS2), macOS (ARM64); container builds via Podman
|
||||
|
||||
In progress / known gaps:
|
||||
|
||||
|
|
@ -29,6 +38,7 @@ In progress / known gaps:
|
|||
- 3D positional audio: not implemented (mono/stereo only)
|
||||
- Visual edge cases: some M2/WMO rendering gaps (character shin mesh, some particle effects)
|
||||
- Interior rendering: WMO interior shadows disabled (too dark); lava steam particles sparse
|
||||
- Water refraction: implemented but disabled by default (can cause VK_ERROR_DEVICE_LOST on some GPUs)
|
||||
|
||||
## Where To Look
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue