Skip to content

stride3d/stride

Repository files navigation

The stride logo, a geometrical 'S' in the form of a cube

Join the chat at https://discord.gg/f6aerfE All Contributors Financial sponsors License Contributor Covenant

Welcome to the Stride Game Engine

Stride is an open-source C# game engine designed for realistic rendering and VR. Highly modular, it aims to give game makers more flexibility in their development. Stride comes with an editor, Game Studio, which allows you to create and manage the content of your games or applications visually and intuitively. To learn more about Stride, visit stride3d.net.

Stride Editor

This README is intended for users who want to build the Stride engine from source or contribute to its development. If your goal is to create games using Stride, we recommend visiting the Get started with Stride guide. There, you'll find detailed instructions on downloading, installing, and getting started with game development in Stride.

🀝 Contributing

For questions and general discussions, please join our Discord server or participate in GitHub Discussions.

To report bugs or propose features, please use the Issues section on GitHub.

We welcome code contributions via pull requests. Issues tagged with good first issue are great starting points for code contributions.

You can help us translate Stride; check out our Localization Guide.

Earn Money by Contributing

If you are a developer with solid experience in C#, rendering techniques, or game development, we want to hire you! We have allocated funds from supporters on Open Collective and can pay for work on certain projects. More information is available here.

πŸ—ΊοΈ Roadmap

Our Roadmap communicates upcoming changes to the Stride engine.

πŸ› οΈ Building from Source

Prerequisites

  1. Latest Git with Large File Support selected during setup. For convenience, you might also use a Git UI client like GitExtensions.
  2. .NET 8.0 SDK
    • Run dotnet --info in a console or PowerShell window to see which versions you have installed.
  3. Visual Studio 2022 (the Community edition is free) with the following workloads:
    • .NET desktop development with .NET Framework 4.7.2 targeting pack (should be enabled by default)
    • Desktop development with C++ with:
      • Windows 11 SDK (10.0.22621.0) or a later version (should be enabled by default)
      • MSVC v143 - VS2022 C++ x64/x86 build tools (Latest) (should be enabled by default)
      • C++/CLI support for v143 build tools (Latest) (not enabled by default)
    • Optional (to target iOS/Android): .NET Multi-platform App UI development and the Android SDK setup individual component (enabled by default). Then, in Visual Studio, go to Tools > Android > Android SDK Manager and install NDK (version 20.1+) from the Tools tab.
    • Optional (to build the VSIX package): Visual Studio extension development

Note

The installation of Visual Studio with the required components may require up to 14 GB of disk space, depending on your system and selected components.

Warning

If this is your first time installing the .NET SDK, you might need to restart your system after the installation so that the system can recognize the new environment variables.

Build Stride

  1. Clone the repository using a Git UI client or from the command line:
    git lfs clone https://github.com/stride3d/stride.git
  2. Open the solution:
    • Open <StrideDir>\build\Stride.sln with Visual Studio 2022.
    • Build the Stride.GameStudio project in the 60-Editor solution folder (it should be the default startup project) or run it directly from Visual Studio's toolbar.
    • Optionally, open and build Stride.Android.sln, Stride.iOS.sln, etc.

Warning

Do NOT use GitHub -> Code -> Download ZIP option, as this won't include the LFS files.

Build Stride without Visual Studio

  1. Install Visual Studio Build Tools with the same prerequisites listed above.
  2. Add MSBuild to your system's PATH:
    • Add MSBuild's directory to your PATH environment variable (e.g., C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin).
  3. Clone the repository:
    git lfs clone https://github.com/stride3d/stride.git
    
  4. Build using the command line:
    • Navigate to the /build directory in the command prompt and run:
    msbuild /t:Restore Stride.sln
    
    • Then run:
    compile.bat
    

If Building Fails

  • Some errors for test projects are normal, GameStudio will start anyway.
  • The Visual Studio extension might fail to build if you are missing the Visual Studio SDK, but Game Studio will start anyway.
  • If you skipped any of the Prerequisites thinking you already have the latest version, please update to the latest to be sure.
  • Visual Studio might have issues building properly if an older version is present alongside 2022. If you want to keep those versions, ensure they are up to date and that you are building Stride using Visual Studio 2022.
  • Your system's PATH should not contain older versions of MSBuild (e.g., ...\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin should be removed).
  • Some changes might require a system reboot. Try that if you haven't yet, for example, if you see these errors:
    • Could not find a compatible version of MSBuild.
    • Path to dotnet executable is not set.
  • Ensure that Git, Git LFS, and Visual Studio can access the internet.
  • Close Visual Studio, clear the NuGet cache (dotnet nuget locals all --clear), delete the hidden .vs folder inside \build and the files inside bin\packages, kill any msbuild and other Visual Studio processes, then build the whole solution and run GameStudio.

Warning

Test solutions might fail, but this should not prevent you from building Stride.GameStudio.

Contribution Guidelines

Please check our Contributing Guidelines.

πŸ”¬ Build Status

Branch master
Windows D3D11
Windows D3D12
Windows Vulkan
Windows OpenGL
Windows OpenGL ES
iOS
Android
Linux Vulkan
Linux OpenGL
Tests Windows Simple
Tests Windows D3D11

πŸ“– Stride Documentation Landscape

The Stride documentation is organized across different locations. Here's how it's structured:

  1. Stride Game Engine - The main repository for Stride.
    • Contributing to Stride - A guide for developers interested in contributing to or developing the Stride engine.
  2. Stride Website - The official site showcasing Stride, featuring:
  3. Stride Docs - The official documentation, including:
  4. Stride Community Toolkit - A set of C# helpers and extensions to enhance your experience with the Stride game engine.

🌐 .NET Foundation

This project is supported by the .NET Foundation.

πŸ›‘οΈ License

Stride is covered by the MIT License unless stated otherwise (i.e. for some files that are copied from other projects). You can find the list of third-party projects here. Contributors need to sign the following Contribution License Agreement.

✨ Contributors

Thanks to all these wonderful people who have contributed to Stride!

xen2
xen2

πŸ’»
Eideren
Eideren

πŸ’»
Jorn Theunissen
Jorn Theunissen

πŸ“–
Tebjan Halm
Tebjan Halm

πŸ’»
Elias Holzer
Elias Holzer

πŸ’»
Johan Gustafsson
Johan Gustafsson

πŸ’»
Youness KAFIA
Youness KAFIA

πŸ’»
Marian Dziubiak
Marian Dziubiak

πŸ’»
AmbulantRex
AmbulantRex

πŸ’»
Basewq
Basewq

πŸ’»
Jarmo
Jarmo

πŸ’»
Antonio Junaković
Antonio Junaković

πŸ’»
Nicolas Musset
Nicolas Musset

πŸ’»
Novaleaf
Novaleaf

πŸ’»
salahchafai
salahchafai

🎨
Mehar
Mehar

πŸ’»
Vaclav Elias
Vaclav Elias

πŸ’»
EternalTamago
EternalTamago

πŸ’»
WhyPenguins
WhyPenguins

πŸ’»
Aunnop Kattiyanet
Aunnop Kattiyanet

πŸ’»
Anon
Anon

🎨
D3ZAX
D3ZAX

πŸ’»
Phr00t
Phr00t

πŸ’»
sebl
sebl

πŸ’»
Artromskiy
Artromskiy

πŸ’»
Jean-François Pustay
Jean-François Pustay

πŸ’»
Daniel Miller
Daniel Miller

πŸ’»
joreg
joreg

πŸ’»
James Rinker
James Rinker

πŸ’»
Tristan McPherson
Tristan McPherson

πŸ’»
Eric
Eric

πŸ’»
Sebastian Gregor
Sebastian Gregor

πŸ’»
insomnyawolf
insomnyawolf

πŸ’»
Doprez
Doprez

πŸ’»
Jakub Ławreszuk
Jakub Ławreszuk

πŸ’»
Mario Guerra
Mario Guerra

πŸ’»
tamamutu
tamamutu

πŸ’»
IXLLEGACYIXL
IXLLEGACYIXL

πŸ’»
arturo
arturo

πŸ’»
Chia-Hsiang Cheng
Chia-Hsiang Cheng

πŸ’»
Nicolae Tugui
Nicolae Tugui

πŸ’»
Mattias Cibien
Mattias Cibien

πŸ’»
Oleg Ageev
Oleg Ageev

πŸ’»
SeleDreams
SeleDreams

πŸ’»
Alexandre Castro
Alexandre Castro

πŸ’»
SVNMLR
SVNMLR

🎨
Jeromy Walsh
Jeromy Walsh

πŸ’»
Parham Gholami
Parham Gholami

🎨
adrsch
adrsch

πŸ’»
Alexander Schill
Alexander Schill

πŸ’»
froce
froce

πŸ’»
Anthony Marmont
Anthony Marmont

πŸ’»
MaximilianEmel
MaximilianEmel

πŸ’»
Schossi
Schossi

πŸ’»
Dagan Hartmann
Dagan Hartmann

πŸ’»

This project follows the all-contributors specification. Contributions of any kind welcome!