initial commit

This commit is contained in:
robojerk 2025-12-15 16:03:37 -08:00
commit 6d27a8ed3a
17 changed files with 4440 additions and 0 deletions

103
Package.swift Normal file
View file

@ -0,0 +1,103 @@
// swift-tools-version: 6.0
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
name: "SportsBallEngine",
platforms: [
.macOS(.v14),
.linux
],
products: [
.executable(
name: "SportsBallEngine",
targets: ["SportsBallEngine"]
),
],
dependencies: [
// Add external dependencies here (e.g., GLFW/SDL bindings, Vulkan bindings)
// .package(url: "https://github.com/example/swift-vulkan.git", from: "1.0.0"),
],
targets: [
// Main executable target
.executableTarget(
name: "SportsBallEngine",
dependencies: [
"EngineCore",
"PlatformWin32",
"PlatformLinux"
]
),
// ====== PLATFORM-AGNOSTIC CORE MODULES ======
// Engine Core - Main loop and scene management
.target(
name: "EngineCore",
dependencies: [
"RendererAPI",
"PhysicsEngine",
"AssetLoader"
]
),
// Renderer API - Protocol definitions only
.target(
name: "RendererAPI",
dependencies: []
),
// Physics Engine - Sports-optimized physics simulation
.target(
name: "PhysicsEngine",
dependencies: []
),
// Asset Loader - 3D models, textures, animations
.target(
name: "AssetLoader",
dependencies: []
),
// ====== PLATFORM-SPECIFIC MODULES ======
// Windows Platform Layer
.target(
name: "PlatformWin32",
dependencies: [
"RendererAPI",
"DX12Renderer"
]
),
// Linux Platform Layer
.target(
name: "PlatformLinux",
dependencies: [
"RendererAPI",
"VulkanRenderer"
]
),
// Vulkan Renderer Implementation
.target(
name: "VulkanRenderer",
dependencies: ["RendererAPI"]
),
// DirectX 12 Renderer Implementation
.target(
name: "DX12Renderer",
dependencies: ["RendererAPI"]
),
// ====== TESTS ======
.testTarget(
name: "EngineCoreTests",
dependencies: ["EngineCore"]
),
]
)