Overview#
Star Wars: The Old Republic was one of the most ambitious MMO projects ever undertaken—a fully voiced, story-driven online game set in the Star Wars universe. At launch, it served millions of concurrent players across distributed server infrastructure.
Platform: PC
Role: Software Engineer III
Studio: Electronic Arts — BioWare
Peak Subscribers: 1.7 million
My Contributions#
Client Physics & Collision Systems#
Bug Fixes & Optimization:
- Fixed client collision bugs with heightmap terrain
- Built collision visualization tools for debugging
- Resolved movement bugs causing characters to clip into collision geometry
- Fixed camera bugs causing it to fall through terrain
- Fixed NPC death animation bug where corpses would fall through collision
Client Rendering & Graphics#
Shader & Rendering Work:
- Developed color-ramped fog shader system
- Built UI tools for fog configuration
- Optimized VRAM manager to avoid unnecessary asset iteration overhead
- Water node depth map generation
Visual Effects:
- Fixed FX bugs and performance issues
- Conducted FX system performance analysis
- Developed time-per-FX metrics system for profiling individual effects
- Built automaton-based EPP/ability appearance/FX profiler generating CSV reports
Client Performance & Optimization#
Major Performance Work:
- Ported underperforming script systems to C++ for both client and server
- Implemented dynamic character LOD system
- Built client animation throttling system
- Investigated and fixed hitches (e.g., Kynapse navigation middleware hitches)
- Created distributed client performance/settings capture system on live servers
- Built metrics budgets display system
Server Architecture & Performance#
Distributed Systems:
- Legacy system groundwork: stored procedures, database cache, world-to-area-server communication, persistence layer
- Galaxy Map server backend (TDD involved)
- Galaxy Map multiple area load refactor
- Region refactor: converted from linear/polling to event-based architecture, convex polygon regions (TDD involved)
- Ported
/whocommand from script to C++ for performance - Server performance optimization for high player density scenarios
- Ability delay metrics and fixes
AI Systems#
NPC Behavior & Optimization:
- Fixed critical AI bug: NPCs not hibernating due to reference counting issue
- Implemented AI metrics tracking NPCs active per behavior type
- General AI debugging and optimization
Metrics & Profiling Infrastructure#
Instrumentation & Analysis:
- Comprehensive metrics instrumentation across client and server
- Time-per-FX metrics system
- Ability delay metrics
- Metrics logging framework
- Built Automated Profile Capture (APC) system for systematic performance analysis
- Distributed client performance/settings capture on live production servers
Load Testing & Bot Infrastructure#
Bot Farm & Test Systems:
- Built headless client bot farm for large-scale load testing
- Developed load test bot features and improvements
- Fixed critical bot service issues
- Created realistic player behavior simulation
Memory Management & Debugging#
Memory Systems:
- VRAM manager optimization—eliminated unnecessary iteration through asset instances
- Memory leak tracing and investigation
- Memory monitor report diffing tools for leak detection
Technical Stack#
| Component | Technology |
|---|---|
| Client Engine | C++, RAD Granny3D |
| Server Logic | HeroScript (custom language) |
| Tools | C# |
| Server Platform | Linux |
Scale & Impact#
SWTOR represented a massive engineering challenge:
- Millions of players across global server infrastructure
- Fully voiced story content requiring extensive tooling
- Real-time combat with networked state synchronization
- Persistent world with complex economic and social systems
Working on this scale taught me how to think about systems that must be reliable, performant, and maintainable under extreme load.
Skills Demonstrated#
C++ CSharp Distributed Systems Client-Server Architecture Linux Load Testing Performance Profiling