Giter VIP home page Giter VIP logo

stride3d / stride Goto Github PK

View Code? Open in Web Editor NEW
6.2K 187.0 901.0 33.22 MB

Stride Game Engine (formerly Xenko)

Home Page: https://stride3d.net

License: MIT License

Batchfile 0.04% PowerShell 0.01% C# 90.46% C 0.64% Shell 0.01% Mathematica 0.01% HLSL 0.56% C++ 3.19% HTML 0.08% JavaScript 0.07% GLSL 0.01% Objective-C 0.01% Python 0.07% Assembly 4.27% Lex 0.02% CSS 0.01% Rich Text Format 0.09% Less 0.50%
gamedev game-development game-engine csharp direct3d vulkan multi-platform stride xenko

stride's Introduction

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

Welcome to the Stride source code repository!

Stride is an open-source C# game engine for realistic rendering and VR. The engine is highly modular and aims at giving game makers more flexibility in their development. Stride comes with an editor that allows you to create and manage the content of your games or applications visually and intuitively.

Stride Editor

To learn more about Stride, visit stride3d.net.

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 OpenCollective and can pay for work on certain projects. More info about this here.

License and governance

.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.

Code of conduct

Stride being a .NET Foundation project, it has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community. For more information see the .NET Foundation Code of Conduct.

Documentation

Find explanations and information about Stride:

Community

Ask for help or report issues:

Building from source

Prerequisites

  1. Latest Git with Large File Support selected in the setup on the components dialog and for convenience a git UI client like GitExtensions.
  2. DotNet SDK 8.0
    • Run dotnet --info in a console or powershell window to see which versions you have installed
  3. Visual Studio 2022 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 10 SDK (10.0.18362.0) or 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-paltform App UI development and 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 Tools tab.
    • Optional (to build VSIX package): Visual Studio extension development
  4. FBX SDK 2019.0 VS2015

Build Stride

  1. Clone the repo with a git UI or open a command prompt, point it to a directory and clone Stride to it: git lfs clone https://github.com/stride3d/stride.git
    • Do NOT use GitHub -> Code -> Download ZIP, this won't include the lfs files.
  2. Open <StrideDir>\build\Stride.sln with Visual Studio 2022 and build Stride.GameStudio in the 60-Editor solution folder (it should be the default startup project) or run it from VS's toolbar.
    • Optionally, open and build Stride.Android.sln, Stride.iOS.sln, etc.

Build Stride without Visual Studio

  1. Install Visual Studio Build Tools with the same prerequisites listed above
  2. Add MSBuild's directory to your system's PATH (ex: C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin)
  3. Clone the repo with a git UI or open a command prompt, point it to a directory and clone Stride to it: git lfs clone https://github.com/stride3d/stride.git
  4. Navigate to /Build with the command prompt, input msbuild /t:Restore Stride.sln then compile.bat

If building failed:

  • 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 GameStudio will start anyway.
  • If you skipped one of the Prerequisites thinking that you already have the latest version, update to the latest anyway just to be sure.
  • Visual Studio might have issues properly building if an anterior version is present alongside 2022. If you want to keep those version make sure that they are up to date and that you are building Stride through VS 2022.
  • Your system's PATH should not contain older versions of MSBuild (ex: ...\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.
  • Make sure that Git, Git LFS and Visual Studio can access the internet.
  • Close VS, clear the nuget cache (in your cmd dotnet nuget locals all --clear), delete the hidden .vs folder inside \build and the files inside bin\packages, kill any msbuild and other vs processes, build the whole solution then build and run GameStudio.

Do note that test solutions might fail but it 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

Contributors ✨

Thanks goes to these wonderful people (emoji key):

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!

stride's People

Contributors

aggror avatar allcontributors[bot] avatar ambulantrex avatar arturoc avatar azeno avatar basewq avatar cstdbool avatar dfkeenan avatar doprez avatar eideren avatar ericwj avatar eternaltamago avatar ethereal77 avatar froce avatar gitfool avatar ixllegacyixl avatar jasonswearingen avatar jklawreszuk avatar johang88 avatar jrinker03 avatar kryptos-fr avatar makotech222 avatar manio143 avatar scorp-121 avatar shinkitsunemaru avatar tebjan avatar vaclavelias avatar whypenguins avatar xen2 avatar xwellingtonx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

stride's Issues

Improve Build System Epic

Right now we build Xenko as a single package.
Ideally we should move on to do something more in line with what NuGet expects:

  • One NuGet package per dll
  • Use "runtimes" for platforms and graphics API
  • Games would move from referencing huge Xenko to referencing Xenko.Engine and Xenko.Physics for example.

Other area of improvements:

  • Compiling with PackageReference against a local development version (we currently use this "redirect" concept but it's not great). This might need some improvements/discussion with NuGet team.
  • Simplify target files
  • Review up to date check
  • Possibly cross compile multiple platforms from a single solution (TargetFrameworks)

Use cases:

  • Create solution from VS & add Xenko from NuGet package manager, then open it with Game Studio
  • Use only specific part of Xenko from any Visual Studio project
  • Create nuget packages from your code/assets and publish them on nuget so that anybody can use them easily
  • People can customize small part of Xenko and only publish the modified part in their own streams.
  • Much faster to update (i.e. no need for everybody to redownload sample if we update only a specific part of the engine)

Can't create project

this is the debug:
Verbose: Loading Assets from Package [Xenko.xkpkg]
Verbose: Loading Assets from Package [MyGame2.xkpkg]
Verbose: Generating MyGame2.Game...
Verbose: Generating MyGame2.Windows...
Error: An exception occurred while generating the template.. Microsoft.Build.Exceptions.InvalidProjectFileException: El SDK "Microsoft.NET.Sdk" especificado no se pudo encontrar. C:\Users\usuario\Documents\Xenko Projects\MyGame2\MyGame2\MyGame2.Game\MyGame2.Game.csproj
en Microsoft.Build.Shared.ProjectErrorUtilities.ThrowInvalidProject(String errorSubCategoryResourceName, IElementLocation elementLocation, String resourceName, Object[] args)
en Microsoft.Build.Evaluation.Evaluator4.ExpandAndLoadImportsFromUnescapedImportExpressionConditioned(String directoryOfImportingFile, ProjectImportElement importElement, List1& projects, Boolean throwOnFileNotExistsError)
en Microsoft.Build.Evaluation.Evaluator4.ExpandAndLoadImports(String directoryOfImportingFile, ProjectImportElement importElement) en Microsoft.Build.Evaluation.Evaluator4.EvaluateImportElement(String directoryOfImportingFile, ProjectImportElement importElement)
en Microsoft.Build.Evaluation.Evaluator4.PerformDepthFirstPass(ProjectRootElement currentProjectOrImport) en Microsoft.Build.Evaluation.Evaluator4.Evaluate(ILoggingService loggingService, BuildEventContext buildEventContext)
en Microsoft.Build.Evaluation.Project.Reevaluate(ILoggingService loggingServiceForEvaluation, ProjectLoadSettings loadSettings)
en Microsoft.Build.Evaluation.Project.ReevaluateIfNecessary(ILoggingService loggingServiceForEvaluation, ProjectLoadSettings loadSettings)
en Microsoft.Build.Evaluation.Project.ReevaluateIfNecessary(EvaluationContext evaluationContext)
en Microsoft.Build.Evaluation.Project.Initialize(IDictionary2 globalProperties, String toolsVersion, String subToolsetVersion, ProjectLoadSettings loadSettings, EvaluationContext evaluationContext) en Microsoft.Build.Evaluation.Project..ctor(String projectFile, IDictionary2 globalProperties, String toolsVersion, String subToolsetVersion, ProjectCollection projectCollection, ProjectLoadSettings loadSettings, EvaluationContext evaluationContext)
en Microsoft.Build.Evaluation.ProjectCollection.LoadProject(String fileName, IDictionary2 globalProperties, String toolsVersion) en Xenko.Core.Assets.VSProjectHelper.LoadProject(String fullProjectLocation, String configuration, String platform, Dictionary2 extraProperties)
en Xenko.Core.Assets.Package.FindAssetsInProject(String projectFullPath, String& nameSpace)
en Xenko.Core.Assets.Package.FindAssetsInProject(ICollection1 list, Package package) en Xenko.Core.Assets.Package.ListAssetFiles(ILogger log, Package package, Boolean listAssetsInMsbuild, Nullable1 cancelToken)
en Xenko.Core.Assets.Package.LoadTemporaryAssets(ILogger log, List1 assetFiles, Nullable1 cancelToken, Boolean listAssetsInMsbuild, Func2 filterFunc) en Xenko.Assets.Presentation.Templates.NewGameTemplateGenerator.Generate(SessionTemplateGeneratorParameters parameters) en Xenko.Core.Assets.Editor.Components.TemplateDescriptions.SessionTemplateGenerator.Run(SessionTemplateGeneratorParameters parameters) en Xenko.Core.Assets.Editor.Components.TemplateDescriptions.TemplateGeneratorHelper.<>c__DisplayClass0_01.b__0()

I need Visual Studio? Documentation says that it's optional. I installed .net sdk

Plans on Updating your privacy policy?

A lot of this seems dated and I have concerns about the data collected section now that this is open source. It's misformated on the website, but you guys can check it out below. It talks about "not comparing stored voice recordings?" How would Xenko even know if there were voice recordings or do you guys record our voices? I'm not entirely sure or if there was a translation issue.

Xenko Privacy Policy Xenko (“We” or “Us”) has created this privacy policy (“Privacy Policy”) to explain and summarize how we collect, retain, use and protect Your personally identifiable information (“User Information”) when You use Xenko’s software (the “Software”) and any associated services (the “Services”). By using the Software or the Services, you agree to this Privacy Policy. IF YOU DO NOT AGREE TO THIS PRIVACY POLICY, PLEASE DO NOT DOWNLOAD THE SOFTWARE, AND DO NOT USE THE SOFTWARE OR THE SERVICES.

Information Collected and How it is Used Xenko collects and uses information for the Software and the Services as follows.

  • Information that is collected
  1. Xenko collects and uses information you provide to us or that we learn from your use of the Software or the Services as described in this Privacy Policy.

  2. E-mail addresses are collected to identify the user and prevent the unauthorized use.

  • Service use information
  1. Cookies Cookies are used to provide better services through understanding the number of visits and the form of use of the Software and the Services to improve the Software and the Services, and for the convenience of the users, including to provide content storage and for the security including the maintenance and protection of the sessions. Users may opt out of allowing cookies. If cookies are rejected, part of the Services, including the services that require login, cannot be used.

  2. Log Xenko may observe your activities, preferences, and transactional data (such as your IP address, location information, device) relating to your use of the Services. While we may collect or log this information, we generally do not identify you or match this information with your other personal information or stored voice recordings or text data. We may use this collected or logged information on an aggregated basis to diagnose technical problems, to analyze the user environment, to improve the Services, or to prevent illicit acts that impede normal service. Xenko, or its authorized service providers may use “cookies” and other technologies to analyze usage conditions and improve services, and may also collect and use technical data and information about your device and the system and application software incorporated on the device.

  3. Device information Information about the device used may be obtained (OS, individual identification information of the device, computer name, etc.). This information may be used to provide better services and prevent illicit acts that impede the customer identification and normal operation of the Software or the Services.

Purpose for Use of User’s Information Xenko shall use the User Information for the following purposes.

  • Enhance use of the Software and the Services by the users

  • Address customer support issues

  • Respond to customer inquiries

  • Announce information about the Services, or providing advertising or marketing information of third parties

  • Identify users when they make inquiries

  • Bill processing related to use of paid Services

  • Prevent unauthorized use

  • Inform You of important notices in relation to the Software or the Services as required, in Xenko’s sole discretion

  • Evaluate the effectiveness of the Software or the Services

  • Measure and analyze the conditions under which you use the Software and the Services

  • Investigate and respond to malfunctions or other problems concerning the Software and the Services

  • To improve the Software and the Services

  • To tabulate and analyze statistics for the purposes of developing new software and services and marketing activities. ## Provision of information to third parties Xenko shall not provide User Information to third parties, except as follows:

  • As expressly stated in this Privacy Policy * The User provides consent or, in the case of a minor, the minor’s parent or guardian provides consent.

  • As required by law or court order

  • If the User has violated the Terms of Use and if User Information needs to be disclosed to protect the rights, assets and services of Xenko or third parties

  • To protect the life, physical safety or assets of a person

  • To improve the public health or sound development of children

  • As required by governmental agencies, local governments or those entrusted by the said agencies or governments to enforce laws and regulations. Xenko may be required to disclose User Information if it: (a) believes it is reasonably necessary to comply with legal process (such as a court order, subpoena, search warrant, etc.) or other legal requirements of any governmental authority; (b) would potentially mitigate our liability in an actual or potential lawsuit; (c) is otherwise necessary to protect our rights or property; or (d) is necessary protect the interest of other users of the Software or the Services.

  • In the event of a merger, company split, transfer of businesses, of if Xenko should ever file for bankruptcy, or if Xenko decides to buy, sell or reorganize some part or all of its business, and Xenko is required to disclose User Information to prospective or actual purchasers, or to receive information from sellers. It is Xenko’s practice to seek appropriate protection for information disclosed or received in these types of transactions.

Joint use of information Xenko may work with some authorized service providers to provide certain services, such as technical and customer support. Where practical, Xenko will require these service providers to safeguard User Information. To the extent it is necessary for these service providers to complete their contractual obligations to Xenko, these third parties may have access to or process User Information. Xenko generally limits service providers’ use of User Information to the purpose for which it was shared. Xenko may sometimes permit our authorized service providers to have access to aggregate statistics about our customers, sales, traffic patterns, usage and related information.

Collection of User Information from Minor and other Children Under Age 13 The Software or the Service is not intended for nor directed to children under the age of 13, and children under the age of 13 are prohibited from downloading, accessing or using the Software and the Service. We do not knowingly collect, use or retain personal information from children under the age of 13. If we discover that we have inadvertently collected personal information from children under the age of 13, we will take all reasonable measures to delete any records of such personal information that comes to our attention.

Disclosure, correction or deletion of information Users may request the purpose of use, disclosure, correction, addition, deletion, suspension of use, elimination or suspension of provision to a third party in relation to the User Information, if required by law. In the event You make such a request, Xenko may need to terminate Your user of the Software and the Service. Please send Your request by mail to the following address in writing enclosed with the document certifying the identification of the user (a copy of a driver’s license, passport, etc.). The request shall be handled as required by applicable laws and regulations after the details of the request are confirmed. Please understand that Xenko may retain Your information in our files, however, to resolve disputes, enforce the Terms of Use, and due to technical and legal requirements and constraints related to the security, integrity and operation of the Software and the Services.

  • Details of the request (confirmation, correction, deletion, etc. Please specify the details of correction in case of correction). (Contact address) User Information Management Office Silicon Studio Corporation NR Building, 1-21-3 Ebisu, Shibuya-ku, Tokyo 150-0013 (Fee) 800 yen per application Please enclose a postage stamp for 800 yen.

Change of Privacy Policy You understand that Xenko may update this Privacy Policy from time to time. We reserve the right to make changes at any time. If we make material changes to this Privacy Policy, we will notify you through the Software or the web page that provided the Software to You(the “Site”) along with information on accessing the updated Privacy Policy. If such a change takes place, the revised Privacy Policy will be published at the Software or the Site. Your continued use of the Software and the Services will signify your acceptance of the changes of our Privacy Policy.

Security Although Xenko uses reasonable measures to protect User Information, there is no guarantee that such information may not be accessed, disclosed, altered or destroyed by breach of our firewalls and secure server software. If Xenko learns of a security systems breach we may attempt to notify You electronically so that You can take appropriate protective steps. By using the Software or the Services, or providing personal information to us, You agree that we can communicate with You electronically regarding security, privacy and administrative issues relating to your use of the Software and the Services. Depending on where You live, You may have a legal right to receive notice of a security breach in writing. To receive free written notice of a security breach (or to withdraw Your consent from receiving electronic notice) You should notify us at the email address specified in the Help section of the Software.

Disputes Any disputes arising out of our related to this Privacy Policy shall be handled pursuant to the Xenko License Agreement.

Do Not Track Signals and Third Party Networks The Software is downloaded and provision of the Software and the Services are not impacted by browser settings, and therefore cannot respond to or recognize “do not track” settings on browsers. Third party ad networks do not gather information from the Software or the Services.

Inquiries for User Information Please contact the following for inquiries in relation to the User Information:

  • legal (at) xenko.com Effective date: June 17, 2018

LOD: Add a LOD script

Idea is to allow users to have LOD with a small custom script, while a better system is being designed.
Starting point for such a script: #37 (comment)

It could either be an asset template or a component in the Engine class (first option is maybe better so that it is not hardcoded in engine and user can customize/extend it).

Probably need to adjust how to find current camera, and ideally gamestudio should automatically fill the ModelComponent to the one contained in the Entity this script is added to.

Storyboards Epic

Have an animation editor to easily create cut-scene or animate properties.

TODO: Had some specs in the past, need to find them for future reference.

Re-purpose `DebugTextSystem` to be a general debug system.

Hi,

I think the DebugTextSystem should be renamed to DebugSystem and a bunch more features be added. Such as:

  • DrawLine
  • DrawCube
  • DrawSphere
  • etc.

These methods should take size/position in world coordinates and a color. I am not sure if they should also have a duration and depthTest options like Unity does.

The ScriptComponent.DebugText property should also be renamed to Debug.

Cheers,
dfkeenan

Error when I installed and tried to launch project

Sorry I am completely new to this engine (and 3D development in general) but after I installed version 3.0.0.1 I received this error:

An error occurred while installing version 3.0.0.1. Value cannot be null. Parameter name: path1 at System.IO.Path.Combine(String path1, String path2) at Xenko.Core.Packages.NugetStore.OnPackageInstalled(Object sender, PackageOperationEventArgs args) at Xenko.Core.Packages.NugetStore.d79.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Xenko.LauncherApp.ViewModels.PackageVersionViewModel.<>cDisplayClass550.<b_0>d.MoveNext()

And then when I launched a project it said it couldn't find Microsoft.Net.Sdk

This is probably something very simple and I'm just lost. (Plus I've worked 63hrs this week so my mind isn't functioning at it's best.)

Game csproj gets regenerated on build, removes project and nuget references

This is on a project upgraded from 2.1 to 3.0. The upgrade looks like it worked as expected, but when I build (from VS 2017) the build seems to remove a project reference as well as a nuget package reference I've added.

In the old system it did sometimes regenerate the .game csproj file, but it seems like it's always regenerating the .csproj file now?

Is there a way to keep the nuget package reference and the project reference when the project is regenerated? I don't see anywhere in the editor where I can do this but I figure I might just be missing something obvious.

Build Output:

1>------ Build started: Project: Carrier.Game, Configuration: Debug Any CPU ------
1>Patch for assembly [Carrier.Game, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]
1>Carrier.Game -> C:\code\Carrier\Carrier\Carrier.Game\bin\Debug\net461\Carrier.Game.dll
2>------ Build started: Project: Carrier.Windows, Configuration: Debug Any CPU ------
2>Patch for assembly [Carrier.Windows, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]
2>Carrier.Windows -> C:\code\Carrier\Carrier\Bin\Windows\Debug\Carrier.Windows.exe
2>info 0.000s: [AssetCompiler] BuildEngine arguments: --disable-auto-compile --project-configuration Debug --platform=Windows --profile=Windows --project-configuration=Debug --output-path=C:\code\Carrier\Carrier\Bin\Windows\Debug\data --build-path=C:\code\Carrier\Carrier\Carrier.Windows\..\Cache\data --package-file=C:\code\Carrier\Carrier\Carrier.Windows\..\Carrier.xkpkg --log-pipe=
2>info 0.000s: [AssetCompiler] Starting builder.
2>info 4.301s: [AssetCompiler] Upgrading package [Carrier] to use [Xenko] from version [2.1.0.2] to [3.0.0.1] will be required
2>C:\code\Carrier\Carrier\Assets\Shared\MainScene.xkscene(308,45): warning 4.301s: [AssetCompiler] Could not deserialize object of type !Player.TeleportController,Carrier.Game; replacing it with an object implementing IUnloadable:
2>(Lin: 307, Col: 44, Chr: 14855) - (Lin: 308, Col: 12, Chr: 14908): Unable to resolve tag [!Player.TeleportController,Carrier.Game] to type from tag resolution or registered assemblies
2>EXEC : warning 4.797s: [AssetCompiler] C:\Users\username\.nuget\packages\xenko\3.0.0.1\Bin\Windows\log\shader_MSAAResolverEffect_594cd4b9fc188401a2cd000bb1f8f78d.hlsl(274,45-75): warning X3203: signed/unsigned mismatch, unsigned assumed
2>
2>EXEC : warning 4.798s: [AssetCompiler] C:\Users\username\.nuget\packages\xenko\3.0.0.1\Bin\Windows\log\shader_MSAAResolverEffect_594cd4b9fc188401a2cd000bb1f8f78d.hlsl(274,45-75): warning X3203: signed/unsigned mismatch, unsigned assumed
2>
2>EXEC : warning 4.798s: [AssetCompiler] C:\Users\username\.nuget\packages\xenko\3.0.0.1\Bin\Windows\log\shader_MSAAResolverEffect_594cd4b9fc188401a2cd000bb1f8f78d.hlsl(274,45-75): warning X3203: signed/unsigned mismatch, unsigned assumed
2>
2>EXEC : warning 4.798s: [AssetCompiler] C:\Users\username\.nuget\packages\xenko\3.0.0.1\Bin\Windows\log\shader_MSAAResolverEffect_594cd4b9fc188401a2cd000bb1f8f78d.hlsl(274,45-75): warning X3203: signed/unsigned mismatch, unsigned assumed
2>
2>info 4.810s: [AssetCompiler] Build finished in 973 steps. Command results: 0 succeeded, 973 up-to-date, 0 failed, 0 not triggered due to previous failure.
2>info 4.810s: [AssetCompiler] Build is successful.
2>info 4.833s: [AssetCompiler] Generate bundles: Scan assets and their dependencies...
2>info 4.833s: [AssetCompiler] Generate bundles: Assign assets to bundles...
2>info 5.066s: [AssetCompiler] Generate bundles: Compress and save bundles to HDD...
2>info 5.077s: [AssetCompiler] Generate bundles: Done
2>RunTime 00:00:05.42
2>Done building project "Carrier.Windows.csproj".
========== Build: 2 succeeded, 0 failed, 1 up-to-date, 0 skipped ==========

csproj diff

image

GameStudio: when creating a new game/samples, detection code for platforms is broken

When creating a new game/samples or updating platforms, the wizard says the required components are not installed for iOS, Android and UWP, even if the appropriate programs/modules are installed.
This is because the detection code is pretty outdated and needs to be updated.

XenkoConfig.cs contains the code:
https://github.com/xenko3d/xenko/blob/0669deabfe65a04f80041433420f0ace0ad5ca9a/sources/engine/Xenko.Assets/XenkoConfig.cs#L97

Be able to connect Events in Game studio.

Hi,

It would be great if you could subscribe to Events from with in Game Studio, rather than the current method (at least by example) of have (static) EventKeys subscribed to in code.

cheers,
dfkeenan

Make Teamcity partly public, and allow testing on PR

Right now there is a private Teamcity instance.
I plan to open it up (read-only) with its config stored on a github so that anybody can create a similar instance.
Also, it would be good to be able to test PR with maybe a simple trigger message in the PR like "Test this PR please".
Note: rationale for doing it on demand rather than automatically is to avoid security risks, since some scripts/code are executed during the build.

EffectCompile Error: XenkoForwardShadingEffect.ShadowMapCaster and XenkoForwardShadingEffect.ShadowMapCaster are both writing bytecode at the same time

I don't think this is a new issue with v3 as I had a problem in v2 that could only be solved with the same solution. I am just getting much more information in v3 to report.

I am moving over a flowing water demo to v3 that I was going to share with the forums but I get the attached asset shader errors.txt when the build is run. The only way to get past it is to kill the process Xenko.Core.Assets.CompilerApp_ExecServer.exe.

In v2 I had an error with no other details, but killing the old equivalent SiliconStudie-named exe was the solution. It does not always happen, but once it does, it will happen every time and even re-starting my PC does not seem to fix it. Then randomly it will stop for a while. Almost seems like it's running two compilers once I do something it does not like>?

The shader being compiled is ScriptedWaterShader.txt (with extension changes to .txt for GitHub, it's .xksl in my project).

Terrain System

Hello,
Would it be possible to get a terrain system in Xenko?

This has been on the road map for a while and It would be great if we had this in the engine. This would be useful for large scale open world games as well. :)

Simplify Xenko Packages (xkpkg): csproj references xkpkg and not the opposite.

As I was thinking about how to tackle on #12 and #13, I thought things would be much easier if we didn't have this xkpkg references + csproj PackageReference duality now that we moved to the new csproj system.

The idea would be to move away from 1 xkpkg = multiple csproj and instead going to 1 xkpkg = 1 csproj (or 1 xkpkg = 0 csproj in case of assets-only packages), to fit better with the approach taken by the new csproj system and nuget.
Then PackageReference/ProjectReference would take over the role of dependencies.

Likely the .xkpkg would be side-by-side with the .csproj file.

Benefits:

  • Solution/csproj would become entry-points, not xkpkg (or Solution which contains a xkpkg custom reference)
  • Any kind of C# projects/solutions could be opened, much more freedom to compose project as the user want (fits better when user wants to use only specific part of Xenko, or develop plugins)
  • Solution/project states should be more easy to maintain (right now we generate .sln on save from package, which prevent any project from outside the package).
  • No superfluous duplication of Dependencies/PackageReference (which could be out of sync), Metadata package information, etc...
  • Can rely on NuGet and MSBuild evaluation/targets rather than our own dependency resolution mechanism.
  • Later it enables the way for the whole engine and user projects to become almost standard nuget packages. This should help a lot for #12 and #13.

Update to latest SharpDX

Should be easy and makes xenko engine compatible to other projects using latest SharpDX already.

VS Plugin does not install

After upgrading to Xenko v3 my visual studio plugin was not generating .cs files for shaders and threw an error when trying to open Xenko Studio so I attempted to re-install it. When trying to install it from the launcher it briefly shows an animation in the progress bar, then reverts back to the install button.

I opened up fiddler to see what it may be trying to do and notice that the package it's pinging is 404 Not Found.

Request

GET https://api.nuget.org/v3/registration3-gz-semver2/xenko.visualstudio.package/index.json HTTP/1.1
[removed other headers]

Response:

HTTP/1.1 404 Not Found
[removed other headers]

<?xml version="1.0" encoding="utf-8"?><Error><Code>BlobNotFound</Code><Message>The specified blob does not exist.
Time:2018-08-03T10:58:02.7015548Z</Message></Error>

Duplicate Shader Key Files

after upgrading from xenko 2.1 all custom shaders in visual studio 2017 have duplicate key files. at least game studio thinks so, although they are not actually present on disk. is there any order of things i can do to fix that? or how would i upgrade my project that this doesn't happen? i could reset the git repo and start the upgrade process again, but in which order should i open/upgrade/save the project files in game studio and visual studio?

EDIT: i have to add, the project was a VS 2015 solution. the errors occurred with 2017. currently trying to get the 2.1 version of the project running with VS 2017 and then i'll try another upgrade.

these are the errors:
unbenannt

then on build:
unbenannt2

Shader System Rewrite Epic

Our shader system current implementation is slow, complex and difficult to maintain.

Terminology:

  • XKSL: Xenko Shader Language

There was an underway effort to switch to something based on https://github.com/KhronosGroup/glslang and https://github.com/KhronosGroup/SPIRV-Cross :

  • We only have to work on the part that interest us (XKSL) rather than the full shader stack (HLSL to GLSL, etc...)
  • Maintenance is greatly reduced
  • Much more things supported out of the box (CS, GS, new shader models, optimizers, etc...)

The design idea is:

  • Customize glslang HLSL frontend to be able to parse XKSL to SPIRV (with some XKSL extensions)
  • Rewrite a new XKSL "mixer" that will work at SPIRV level (rather than source AST level, making things much simpler)
  • Leverage on SPIRV-Cross to output to any format we want: HLSL, GLSL, Metal, SPIR-V, etc...

So far we have a prototype for HLSL generation but there's still quite some work to do on it, and then need to add support for GLSL and others.

Create a new asset type equivalent to Unity's ScriptableObject.

Hi,

Though I have never used Unity I feel that the ScriptableObject is quite valuable. Being able to design a data object and save it with various values so scripts can share instances can really improve design time support in editor.

cheers,
dfkeenan

Switch to SharpDX.Mathematics

As i understand, SharpDX.Mathematics is the same as: https://github.com/xenko3d/xenko/tree/master/sources/core/Xenko.Core.Mathematics

it might be a good idea to switch to that nuget, as it is maintaned and has probably a few bug fixes. i personally contributed a few over there. the big advantage would be that every other project that is using sharpdx doesn't need to convert vectors all the time. this is particularly bothersome when its basically the same code behind...

Editor crash

I sent a report but can't add my email because Windows freeze the application with a crash message. How I can locate the report for paste here?

Can't build from editor but build works from visual studio

Hello, i'm sending this because i've an issue with Xenko, my pc is set to install everything on the D drive so visual studio etc all installed on the D drive, and i noticed that it probably caused an issue in xenko since i can't build from the xenko editor, i get an error related to the .NET 4.6.1 framework not found (while it works perfectly in visual studio)
that's the error i get,

[D:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(1179,5)]: Error: Les assemblys de référence pour le Framework ".NETFramework,Version=v4.6.1" sont introuvables. Pour résoudre ce problème, installez le SDK ou le Targeting Pack pour cette version de Framework, ou reciblez votre application vers une version du Framework pour laquelle le SDK ou le Targeting Pack est installé. Les assemblys seront résolus à partir du Global Assembly Cache (GAC) et seront utilisés à la place des assemblys de référence. C'est pourquoi votre assembly peut ne pas cibler correctement le Framework souhaité.
it's in french since my pc is french, but i can translate quickly, it means that
"the .net framework v4.6.1 is not found, to resolve the issue , install the SDK or the targetting pack for this framework version or retarget the application to an other version of the framework
and the assemblies will be resolved with the GAC and would be used as reference assemblies"

Crash Report server error (probably forgot to replace the crash report server)

Hello, i'm writing this because i encountered this issue while trying to submit a crash report with xenko
sans titre

I think it's caused by the fact that Xenko is no longer supported by Silicon Studio so Silicon Studio's crash report server can't be reached anymore

In the current case, xenko crashed while trying to load a model from a .blend file but i don't have the log anymore since after clicking "send" it closed the crash report window so i wasn't able to retrieve the log

Properly detect preview versions of Visual Studio

Using the new launcher to update the binary release gave me an interesting error. According to the launcher, it knows I have VS installed but thinks it's incomplete. I DO have all the VS workloads required to compile the engine, but I'm running the preview and not the standard release, which makes me think the launcher doesn't properly account for preview versions of VS.

xUnit transition Epic

Recently switched from NUnit to xUnit, but the transition is not finished yet.

Things to still do:

  • Windows embedded self-contained runner .exe (rather than having hundreds of Main )
  • iOS, Android and UWP runners (will also need ability to report results to Teamcity and work with gold images cf #15)

Gold Image Testing Epic

We used to have a central server containing gold images to have some graphics unit tests run again.

Now being opensource, this is quite impractical:

  • Difficult to setup (not good, we want people to easily run tests by themselves)
  • Would need lot of additional work (server was really rudimentary and working with file shares)
  • Security issues (if we give access to this server, who are we allowing to update gold?)
  • Hardware differences (we can't expect pixel perfect matches)
  • Since images are stored externally, it has to be versioned manually and can easily conflict in case of merges.

The idea is now to commit those images as part of the repository, thus requiring no further setup.
Tests will be allowed to have small differences (due to GPU differences).

This work is partially started but still need further work (allow small differences, make it work on all platforms, etc...)

Feature: Decals

Used extensively in games, decals will be needed at some point.

Game Studio 3.0.0.1 Android build fails on Win 8.1 -- TopDownRPG

[C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(609,2)]: Error: The "GetJavaPlatformJar" task was not given a value for the required parameter "AndroidSdkDirectory".

Visual Studio 2017 successfully builds and deploys the APK to the device.

( Runs without error but displays blank screen, we suspect the Adreno GPU on this Motorola device is responsible, but this is a separate issue)

Project updater removes assemblies and usages to namespaces other than xenko

In a game project from xenko 2.1 i was referencing some other assemblies and used their namespaces in some files. after the upgrade the project did not have the references to the assemblies anymore and the usage section of the c# files was cleared from the other namespaces. in this case it was SharpDX assemblies.

it was easy to fix by hand, so not that high priority. but annoying anyway.

Choose where install xenko

The default location is C:\Users\User\ .nuget\packages\xenko\3.0.0.1
But would be really appreciable if we can choose where install it, or if install it directly in the same directory of the launcher (like how was before if i remember correctly).
Anyway i'm reall really really glad that Xenko opted for the MIT license, i'm gonna use it every day!!!

GameStudioThumbnailService.cs Debugger diagnostics break

if (thumbnailsInProgressAndContinuation.ContainsKey(asset.Id) && System.Diagnostics.Debugger.IsAttached)
{
    // Virgile: This case should not happen, but it happened to me once and could not reproduce.
    // Please let me know if it happens to you.
    // Note: this is likely not critical and should work fine even if it happens.
    System.Diagnostics.Debugger.Break();
}

Virgile: This case should not happen,...

Anything that can go wrong, will go wrong. -- Morphy Law

Include more helper methods.

Hi,

I always felt that the Xenko engine was a bit lacking when it came some general helper methods. So I started the XenkoToolkit project but I really feel a bunch of these things should be included in-the-box. For example:

  • Find components in entity hierarchies.
  • Transforms using the Entity's Transform.
  • Transforming things between world and screen space.
  • Calculating rays for doing picking using physics ray cast.
  • Transforming Prefabs when being instantiated.

I am creating this issue more as discussion. I am not super confident in the quality of my code as they have not been thoroughly tested and my math skills are not great. There are probably also a few questionable design decisions. For example, not sure about all the overloads I did either, may have gone a bit overboard. There are quite a few shortcomings as well, i.e. a bunch of the transform extensions throw exceptions if TransformComponent.UseTRS is false (I couldn't get the math right).

There are a number of things I would do differently if they were included in the engine, i.e. put the Quaterion look at function in the Quaternion struct.

There are somethings I would almost certainly leave out like the material stuff I did. A better option would be to change the ModelComponent and related systems to handle being able to set material properties per ModelComponent.

cheers,
dfkeenan

Plugin System Epic

Xenko needs to be reorganized so that Physics, Video, SpriteStudio, etc... should become separate optional packages (referenced explicitely by games).

Also, we would like to be able to more easily create custom asset types and have a proper Game Studio integration (associated importers, editors, thumbnails, previews, etc.)

Doing this work will make Xenko much more extensible in general for people who want to add their own features externally.

It should also make the runtime leaner and better organized (i.e. Video playback currently forces to embed tens of megabytes of native DLL even if the game doesn't use it).

Part of this work is needed for #12

Script and Task improvements Epic

Various ideas this Epic covers:

  • Make our task system alloc-free (possible with recent C# version) so that people are not afraid to create thousands of scripts with await
  • Reorganize task system so that we can wait various points of engine. So far we only have Update/Draw, but I suspect many scripts wants much more control when they want to run (after physics, etc...).
    Not sure yet if we want some kind of high-level sync point graph editor, or something more programmatic.

LOD Epic

Nothing decided yet on that front.
It seems like EmptyKeys have already something, maybe he could quickly describe what he did?

Profiler Script throws null exception on startup

If the main camera of the game has a profiler script attached and it is enabled, a null exception is thrown on startup:

[Game]: Error: Unexpected exception. System.NullReferenceException:
bei Xenko.Profiling.GameProfilingSystem.Draw(GameTime gameTime)
bei Xenko.Games.GameSystemCollection.Draw(GameTime gameTime)
bei Xenko.Games.GameBase.Draw(GameTime gameTime)
bei Xenko.Games.GameBase.DrawFrame()
bei Xenko.Games.GameBase.TickInternal()

if the script is disabled, the exception does not occur.

Replace small jagged icons of Xenko editor with Visual Studio responsive icons

Currently Xenko uses Small png icons in the editor that are jagged in higher resolutions. Besides of that, for a flat development environment like Xenko Editor, it's better to use flat icons.

I suggest to use Microsoft Visual Studio Image Library 2017, because those images have both Svg and Xaml format that is ready for Xaml UI of Xenko editor, scalable and responsive to the screen. And also, these icons make developer feel like it's homeland as it is Visual Studio icons.

Spritesheets not editable from GameStudio

In version 3.0.0.1, after importing a png of a SpriteSheet, I can't open the SpriteSheet editor without manually editing the xksheet file. I tried both double-clicking the sprite, and right-clicking - edit asset.

Is this a bug, or are the docs out of date on how sprites work?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.