Skip to content

OpenSkyrim

Rust Engine License: MIT License: Apache 2.0 CI Status Platforms

An open-source engine reimplementation for The Elder Scrolls V: Skyrim (Special Edition) built in Rust using the Bevy Engine.

Inspired by projects like OpenMW, OpenSkyrim modernizes Bethesda game files (.esm, .bsa, .nif, .dds, .pex) into ultra-fast, GPU-native formats (glTF 2.0, KTX2 Basis, libSQL / SQLite3, Luau) to deliver 60+ FPS high-performance gameplay without loading screens.


✨ Features & Architecture Highlights

  • 🚀 Zero Loading Screens: Interior and exterior city transitions load 100% seamlessly in real time using libSQL spatial R-Tree indexing and rkyv zero-copy memory mapping.
  • ⚡ High-FPS Vercidium Rendering: Batched instanced indirect draw calls (DrawMeshInstancedIndirect) reduce 5,000+ individual draw calls to under 100 per frame.
  • 📜 Luau Scripting Engine (mlua): Replaces single-threaded Papyrus with sandboxed, JIT-compiled Luau scripts. Includes async HTTP networking for live web APIs (e.g. real-world weather sync mods).
  • 📱 Cross-Platform (Desktop & Mobile): Native support for Windows, Linux, macOS (Apple Silicon), and Android (ARM64 / POCO F5).
  • 🎨 Modern UI (Bevy 0.19 bsn!): Transpiles obsolete Flash (.gfx) menus into hardware-accelerated declarative Bevy UI node trees.
  • 🎮 Integrated Mod Manager: Built-in launcher with drag-and-drop archive installation and priority-weighted .esp/.esl plugin load orders.

🏗️ Workspace Crate Architecture

OpenSkyrim is organized into a modular 3-crate Cargo workspace:

OpenSkyrim/
├── Cargo.toml                  # Workspace Root Manifest
├── crates/
│   ├── launcher/    # GUI Setup Wizard & Built-in Mod Manager
│   ├── converter/   # Converter Pipeline (.nif ➔ .glb, .dds ➔ KTX2, .esm ➔ libSQL)
│   └── engine/      # Bevy Game Engine Binary (Render, Physics, Luau, Audio)
Crate Responsibilities
launcher First-run setup wizard, game path detection, built-in mod manager UI, triggers converter progress bar, and launches the engine.
converter Heavy offline asset converter (mesh-tools, basis-universal, ddsfile, nom binary parsers).
engine Lightweight, hyper-fast game binary (Bevy 0.19+, wgpu, libsql, mlua Luau JIT).

🗺️ Project Roadmap

OpenSkyrim is being built systematically across 5 core phases. Explore the full roadmap specs in docs/roadmap/.


🚀 Quick Start (Development Setup)

Prerequisites

  • Rust (2024 Edition)
  • CMake & Ninja / GCC (for native libSQL / SQLite compilation)

Building & Running

  1. Clone the repository:

    git clone https://github.com/your-username/OpenSkyrim.git
    cd OpenSkyrim
  2. Check workspace compilation:

    cargo check --workspace
  3. Run the Launcher App:

    cargo run -p launcher

📚 Technical Specifications (docs/specs/)

For detailed technical specifications, format breakdowns, and architectural guidelines, explore the docs/specs/ directory:


🤝 Contributing

We welcome community contributions! Whether you're fixing bugs in asset converters, enhancing Bevy rendering pipelines, or writing documentation, check out our guidelines before submitting a PR:

  • 📖 CONTRIBUTING.md — Guide on development workflow, code style (cargo fmt/clippy), and PR guidelines.
  • 🐛 Issue Tracker — Search existing issues or report a new bug using our template.

⚖️ Legal Disclaimer & License

Licensing

OpenSkyrim is dual-licensed under either of the following licenses at your option:

Legal Disclaimer

OpenSkyrim is an independent open-source game engine reimplementation. It does not contain any copyrighted game assets, artwork, 3D models, audio, or game data from Bethesda Softworks LLC or ZeniMax Media Inc. Users must supply their own legally owned copy of The Elder Scrolls V: Skyrim to extract game data.

About

Skyrim made with Bevy

Topics

Resources

Code of conduct

Contributing

Stars

210 stars

Watchers

10 watching

Forks

Releases

Packages

Used by

Contributors

Languages