Skip to content

Latest commit

 

History

History
238 lines (198 loc) · 15.5 KB

File metadata and controls

238 lines (198 loc) · 15.5 KB

Proprietary Tech Elimination - Quick Reference Chart

Legend:

  • ✅ Eliminated (open source)
  • ⚠️ Wrapped (hybrid)
  • 🔄 In progress
  • 📋 Planned
  • 🟢 Low priority

The Journey: 2003 → 2026+

┌─────────────────────────────────────────────────────────────────────────────┐
│                                                                               │
│  ORIGINAL GAME (2003)                                                        │
│  ┌──────────────────────┐  ┌──────────────────────┐  ┌──────────────────┐   │
│  │  DirectX 8 (MSFT)    │  │  Miles Sound (RAD)   │  │  Bink Video      │   │
│  │  ✗ Proprietary       │  │  ✗ Proprietary       │  │  ✗ Proprietary   │   │
│  │  ✗ Windows only      │  │  ✗ Windows only      │  │  ✗ Windows only  │   │
│  │  ✗ Black box         │  │  ✗ Black box         │  │  ✗ Black box     │   │
│  └──────────────────────┘  └──────────────────────┘  └──────────────────┘   │
│                                                                               │
└─────────────────────────────────────────────────────────────────────────────┘

                                    ↓ (Phase 1-2)

┌─────────────────────────────────────────────────────────────────────────────┐
│                                                                               │
│  PHASE 2 (CURRENT - 80% LIBERATION)                                          │
│                                                                               │
│  ┌──────────────────────┐  ┌──────────────────────┐  ┌──────────────────┐   │
│  │  Vulkan + DXVK ✅    │  │  OpenAL ✅           │  │  FFmpeg ✅       │   │
│  │  Wrapped, open       │  │  Open source         │  │  Open source     │   │
│  │  Cross-platform      │  │  Cross-platform      │  │  Cross-platform  │   │
│  │  DirectX→Vulkan      │  │  3D audio support    │  │  Video fallback  │   │
│  └──────────────────────┘  └──────────────────────┘  └──────────────────┘   │
│                                                                               │
│  REMAINING PROPRIETARY:                                                      │
│  └─ DirectX 8 (Windows only, acceptable interim)                             │
│  └─ BuildTools (VC6, being replaced with CMake)                             │
│                                                                               │
└─────────────────────────────────────────────────────────────────────────────┘

                                    ↓ (Phase 4)

┌─────────────────────────────────────────────────────────────────────────────┐
│                                                                               │
│  PHASE 4 (STRATEGIC UNIFICATION - 95% LIBERATION)                            │
│                                                                               │
│  ┌──────────────────────────────────────────────────────────────────────┐   │
│  │           SDL3 Unified Ecosystem (audio + graphics)  ✅              │   │
│  │                                                                       │   │
│  │  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐                  │   │
│  │  │ SDL3 Video  │  │ SDL3 Audio  │  │ Vulkan GPU  │                  │   │
│  │  │ (rendering) │  │ (music+sfx) │  │ (rendering) │                  │   │
│  │  └─────────────┘  └─────────────┘  └─────────────┘                  │   │
│  │                         +                                            │   │
│  │  ┌──────────────────────────────────────────────────────────────┐   │   │
│  │  │              FFmpeg (video codec library)                    │   │   │
│  │  └──────────────────────────────────────────────────────────────┘   │   │
│  └──────────────────────────────────────────────────────────────────────┘   │
│                                                                               │
│  RESULT: Unified, auditable core (3 open-source libs total)                  │
│          100% community-maintainable                                        │
│          Full Linux + Windows parity                                         │
│                                                                               │
└─────────────────────────────────────────────────────────────────────────────┘

                                    ↓ (Phase 5+, optional)

┌─────────────────────────────────────────────────────────────────────────────┐
│                                                                               │
│  PHASE 5 (COMPLETE LIBERATION - 100%, UNIFIED SDL3 ECOSYSTEM)                │
│                                                                               │
│  ┌──────────────────────────────────────────────────────────────────────┐   │
│  │                   SDL3 UNIFIED ECOSYSTEM ✅                          │   │
│  │                                                                       │   │
│  │  ┌─────────────┐  ┌─────────────┐  ┌──────────────┐               │   │
│  │  │ SDL3 Video  │  │ SDL3 Audio  │  │ SDL3 GPU API │               │   │
│  │  │ (rendering) │  │ (music+sfx) │  │ (multi      │               │   │
│  │  │             │  │             │  │  backend)   │               │   │
│  │  └─────────────┘  └─────────────┘  └──────────────┘               │   │
│  │                         +                                           │   │
│  │  ┌──────────────────────────────────────────────────────────────┐   │   │
│  │  │     FFmpeg (video codec library - standalone)               │   │   │
│  │  └──────────────────────────────────────────────────────────────┘   │   │
│  │                                                                       │   │
│  │  Backend Support (choose at runtime):                                │   │
│  │  ├─ Linux: Vulkan (RADV/AMDVLK/NVIDIA)                             │   │
│  │  ├─ macOS: Metal (native)                                          │   │
│  │  ├─ Windows: DirectX 12 (SDL3) + Vulkan                            │   │
│  │  └─ Alternative: OpenGL (fallback)                                 │   │
│  └──────────────────────────────────────────────────────────────────────┘   │
│                                                                               │
│  STRATEGIC VICTORY:                                                          │
│  • 100% open source core (3 libs)                                           │
│  • Fully unified SDL3 (graphics + audio + input)                            │
│  • Multi-platform support (Windows + Linux + macOS)                         │
│  • Community-maintained indefinitely                                        │
│  • Zero proprietary tech anywhere                                           │
│  • Futureproof (add Metal/GL backends easily)                               │
│                                                                               │
└─────────────────────────────────────────────────────────────────────────────┘

Dependency Elimination Timeline

Current Tech Stack (Phase 2)

System Windows Build Linux Build Proprietary? Status
Rendering DirectX 8 DXVK+Vulkan ⚠️ D3D wrapper Wrapped
Audio Miles* OpenAL ✅ None Migrated
Video Bink* FFmpeg ✅ None (Bink optional) Migrated
Input Win32 API SDL3 ✅ None Migrated
Windowing Win32 API SDL3 ✅ None Migrated
Build Tools VC6/MSVC CMake/GCC ✅ CMake open Modernized

Result: ~80% proprietary tech eliminated ✅


Target Tech Stack (Phase 4-5, UNIFIED SDL3 ECOSYSTEM)

System Build Technology Proprietary? Benefit
Rendering All SDL3 GPU API (multi-backend) ✅ Open Vulkan/Metal/DX12/GL support
Audio All SDL3 Audio ✅ Open Unified with graphics
Video All FFmpeg ✅ Open Universal codec support
Input All SDL3 ✅ Open Cross-platform
Windowing All SDL3 ✅ Open Cross-platform
Build Tools All CMake ✅ Open Cross-platform

Result: 100% open source core, fully SDL3-based, zero proprietary tech ✅


Dependency Elimination Timeline

Phase 2 Tech Stack (Current)

System Windows Build Linux Build Proprietary? Status
Rendering DirectX 8 DXVK+Vulkan ⚠️ D3D wrapper Wrapped
Audio Miles* OpenAL ✅ None Migrated
Video Bink* FFmpeg ✅ None (Bink optional) Migrated
Input Win32 API SDL3 ✅ None Migrated
Windowing Win32 API SDL3 ✅ None Migrated
Build Tools VC6/MSVC CMake/GCC ✅ CMake open Modernized

Result: ~80% proprietary tech eliminated ✅

Phase 4 Tech Stack (Audio Unified)

System Windows Build Linux Build Proprietary? Status
Rendering DirectX 8 DXVK+Vulkan ⚠️ D3D wrapper As-is (interim)
Audio SDL3 Audio SDL3 Audio ✅ Unified Migrated ✅
Video FFmpeg FFmpeg ✅ Unified Migrated ✅
Input SDL3 SDL3 ✅ Unified Migrated ✅
Windowing SDL3 SDL3 ✅ Unified Migrated ✅
Build Tools CMake CMake ✅ Unified Modernized ✅

Result: ~90% proprietary tech eliminated, SDL3 ecosystem mostly unified ✅

Miles Sound System (Phase 2 ✅ → Phase 4 🔄)
    Current: OpenAL (working)
    Planned: SDL3 Audio (unification, Phase 4)
    Win Impact: Builds fine with OpenAL on Windows

Bink Video (Phase 3 📋)
    Current: FFmpeg fallback (non-blocking)
    Planned: Full FFmpeg (Phase 4, optional)
    Win Impact: Can skip intros or use FFmpeg

🟡 Important (Quality/Experience)

DirectX 8 (Phase 1 → Phase 5+ optional)
    Current: DXVK wrapper (works, open!)
    Planned: Native Vulkan rewrite (large effort, Phase 5+)
    Win Impact: Acceptable as-is (wrapped in DXVK)

GameSpy (Phase 5+ optional)
    Current: Disabled (broken, defunct)
    Planned: Custom solution or shelved
    Win Impact: Not blocking (never worked anyway)

🟢 Nice-to-have (Tools/Workflow)

MaxSDK (Phase 5+ optional)
    Current: Optional (VC6 builds only)
    Planned: Blender SDK integration
    Win Impact: Not blocking (artists already use exported assets)

VC6 Build System (Phase 0 ✅)
    Current: Replaced with CMake ✅
    Impact: Users can choose VC6 or CMake

Monthly Progress Tracker

Date Phase Milestone Status
2026-02 Phase 0 Architecture analysis complete ✅ Done
2026-02 Phase 1 DXVK graphics foundation 🔄 In progress
2026-03 Phase 1 Graphics smoke tests 📋 Target
2026-03 Phase 2 OpenAL audio implementation 📋 Target
2026-04 Phase 2 Audio + graphics integration 📋 Target
2026-05 Phase 3 FFmpeg video spike 📋 Target
2026-06 Phase 3 Video+Audio sync working 📋 Target
2026-06 Phase 4 SDL3 Audio decision 📋 Target
2026-07 Phase 4 Polish & hardening 📋 Target
2026-08 Phase 5 macOS port (if planned) 📋 Target
2026-09 Phase 5 Long-term arch decisions 📋 Target
2026-10+ Phase 5+ Full open source target 🎯 Long-term

How to Use This Chart

  1. Current State: Look at "Phase 2" table to see what's been eliminated
  2. Next Goal: See "Phase 4" table for near-term target
  3. Long-term Vision: "Phase 5+" shows ultimate goal (100% open)
  4. Decision Points: Red X marks mean "Make a decision here"

Document: Quick visual reference for proprietary tech elimination
Updated: 2026-02-13
Related: Proprietary Tech Roadmap (detailed version)