Coder Social home page Coder Social logo

panosk92 / spartanengine Goto Github PK

View Code? Open in Web Editor NEW
2.0K 72.0 171.0 7.76 GB

A game engine with an emphasis on real-time cutting-edge solutions

Home Page: https://panoskarabelas.com

License: MIT License

HLSL 3.09% C++ 78.93% C 17.74% Lua 0.13% Batchfile 0.01% Python 0.09% Dockerfile 0.03%
game-engine bullet-physics imgui open-source cpp engine spartan taa ssr bsdf

spartanengine's People

Contributors

apostolosbouz avatar cyw94 avatar deg3x avatar dehnda avatar ignaciomgarrido avatar ikergalardi avatar jesseguerrero avatar michaelhinrichs avatar nexovec avatar nickelium avatar nickpolyder avatar panosk92 avatar panoskolyvakis avatar pattakosn avatar perkele1989 avatar vilbeyli avatar yunstore 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

spartanengine's Issues

Removing a Light component causes a crash

Bug description

While testing the engine after I implemented Data Oriented Design, I discovered a bug in which when you remove a light component from an entity the program crashes. At first I thought that I had broken something so, I cloned a fresh copy of master, compiled it and the bug was still there.

Step to reproduce

Open the engine and add a new blank enitity or a basic shape (cube, quad ...), add a new light component to it, then click the gear icon and click on the Remove option. The program immediately crashes.

Possible causes

An exception is caused in the Renderer_Passes.cpp file by a light component being nullptr. I think this is caused because when removing a light component the entity is not removed from the list of light_entities and when the renderer tries to access the component an exception is caused.

Bug

How to open an Issue

Hello!

Feel free to use the Issue tracker to submit bug reports, feature requests or suggestions.
You may ask for help or advice as well, I will be happy to help. However, please carefully read this wall of text before doing so.

Do your best to clarify your issue (you don't have to follow any strict template). By providing complete information and by minimizing ambiguity, you increase the changes of me being able to remotely help you while I also fix any potential bugs. It's a win-win.

Try to keep things organized. For example, if there is no issue which is related to what you are looking for, open a new one. Please don't hijack an existing, unrelated issue and start commenting there unless your intention is to contribute towards the resolution of that issue.

Issues which are exceptionally entitled or lazy, will be (unfortunately) ignored 😞

Thank you!

[This is a read-only pinned post to increase visibility]

cling based C++ as scripting language / hot code reload

cling based C++ as scripting language / hot code reload
Why? Able to run C++ script in runtime or compile it for max speed ( as in example https://github.com/derofim/cling-cmake )
Also: May be used to improve modules compile time

HOT code reload
possible approaches:

store app state
fix cling undo for files
https://root-forum.cern.ch/t/loading-unloading-class-as-interpreted-macro-in-cling-multiple-times/32976/2

execute cling code to change callbacks & variables
nested cling::Interpreter with multiple cling::MetaProcessor
IDK how to do it, but you can create child cling::Interpreter

Possible bug report.

In D3D11Shader.cpp file, when we use Reflect to get input layout descriptions, I found that there are two possible bugs.
image

  1. when copying paramDesc.SemanticName to elementDesc.SemanticName, actually we are dealing with copying pointer (LPCSTR), instead of string. Thus after we release reflector(ID3D11ShaderReflection*), the semanticName may change.

see:
image

I take a workaround to solve it:
image

  1. elementDesc.AlignedByteOffset is not assigned correctly because D3D11_APPEND_ALIGNED_ELEMENT is a constant. However, It seems that we have to calculate it by hand: use a variable called such as offset to record the AlignedByteOffset:

image

Editor crash on startup. No camera seems to be found.

No camera seems to be found on engine startup in Renderer::Pass_Line. Just pulled the engine recently and I am not familiar with the codebase at all. Got a PR up that seems to solve the issue for me but this seems more like a patch and the issue might lie deeper.

PR: #58

Reproduce

  • Clone the repo
  • Generate Visual Stuido solution.
  • Build Project
  • Run Editor

image

	Spartan_d3d11_debug.exe!Spartan::IComponent::GetTransform() Line 98	C++
 	Spartan_d3d11_debug.exe!Spartan::Renderer::Pass_Lines(Spartan::RHI_CommandList * cmd_list, Spartan::RHI_Texture * tex_out) Line 1868	C++
 	Spartan_d3d11_debug.exe!Spartan::Renderer::Pass_Main(Spartan::RHI_CommandList * cmd_list) Line 170	C++
 	Spartan_d3d11_debug.exe!Spartan::Renderer::OnTick(double delta_time) Line 403	C++
 	Spartan_d3d11_debug.exe!Spartan::Context::OnTick(Spartan::TickType tick_group, double delta_time) Line 129	C++
 	Spartan_d3d11_debug.exe!Spartan::Engine::Tick() Line 91	C++
 	Spartan_d3d11_debug.exe!Editor::Tick() Line 241	C++
 	Spartan_d3d11_debug.exe!WinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, char * lpCmdLine, int nCmdShow) Line 31	C++

System

OS: Windows 11
CPU: AMD Ryzen 7 5800X, 3801 Mhz
GPU: NVIDIA GeForce RTX 3080

Shadow Issue

Capture

[I think the picture speaks for itself]
This is the shadow problem I was speaking about
In case of cube it is ok but in case of sphere this is the problem

Amazing

Hi, Friend, I am a new leaner in game programming, I am interested in game engine. I need a Guru to assist me in mastering all the skills.

Bloom

The bloom post processing effect doesn't look much realistic. Please look after this matter.

[Qusetion] Cascade

Hello, I'm a student who is analyzing your wonderful code.
First, sorry for my bad english.
I'm looking at the code and implementing.
I've got a question from the bottom code.

Light.cpp, Lines : 347

                float split_distance = splits[cascade_index];
                for (uint32_t i = 0; i < 4; i++)
                {
                    Vector3 distance        = frustum_corners[i + 4] - frustum_corners[i];
                    frustum_corners[i + 4]  = frustum_corners[i] + (distance * split_distance);
                    frustum_corners[i]      = frustum_corners[i] + (distance * last_split_distance);
                }
                last_split_distance = splits[cascade_index];

I saw this code is for view frustum corners figuring out center from cascade splits.

Shouldn't this distance vector3 be normalized for using direction vector?
Because split_distance is just distance, not a distance ratio.

Finally, I always deeply appreciate your sharing of your AMAZING AMAZING code!!

[Fixed] Speckeld Cascaded Shadows

Hello! I'm a student who is analyzing your beautiful code.
Firstly, sorry to my bad English.
Secondly, I'm sorry if you don't like the random commit at my disposal.
If you don't like it, I'll just put it on the issue category.

I find out speckled cascaded shadow when using original z, not reverse z.
It is a problem caused by the perception of the front face as the back face.
so I added front counter clock wise variable to D3D11_RASTERIZER_DESC.
and if you use original z, front counter clock wise variable is true. otherwise false.

Ah! and i don't know about vulkan things... so i can't update source about vulkan :(

[Problem 1]
Problem

[Problem 2]
Problem2

[Fixed]
fixed

If i find another problem, so fix it, i upload again.

P.S. I deeply appreciate your sharing of your AMESOME CODE !!

Linux port questions

Hi! Want to try to port the engine to Linux but I have several questions:

  • How do shaders get compiled into spirv? Does the engine use dxcompiler? If that's the case linux builds should use a different approach.

  • Using a different sound library would be a pain to implement? As far as I've seen FMod is a proprietary library so having it working on Linux reliably can be a pain in the but.

Vulkan Validation Error

Using RTX3060M
getting this on the master branch

Vulkan: Validation Error: [ SYNC-HAZARD-READ_AFTER_WRITE ] Object 0: handle = 0xe150c50000000097, name = rt_ssr, type = VK_OBJECT_TYPE_IMAGE_VIEW; | MessageID = 0x4cb75b2d | vkCmdDrawIndexed: Hazard READ_AFTER_WRITE for VkImageView 0xe150c50000000097[rt_ssr], in VkCommandBuffer 0x1c57e2a8d70[cmd_list], and VkPipeline 0x1faae500000001ca[Pass_Light_ImageBased_Opaque], VkDescriptorSet 0x3d7c1e0000000254[CS:null-VS:ImGui.hlsl-PS:ImGui.hlsl], type: VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, imageLayout: VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, binding #231, index 0. Access info (usage: SYNC_FRAGMENT_SHADER_SHADER_STORAGE_READ, prior_usage: SYNC_COMPUTE_SHADER_SHADER_STORAGE_WRITE, write_barriers: 0, command: vkCmdDispatch, seq_no: 27, reset_no: 2887).

Spartan_vulkan_debug_AWJrIVkVIt

Atmospheric scattering

One of the feature of realistic real-time rendering is Atmospheric scattering.

This is what I have got while going through the Unreal Engine Source code.
Unreal engine uses this technique to Add a kind of volumetric rendering.

Here the link to the project (Directx).

Changing the FOV

Sometimes when the slider of the FOV of the camera of camera is changed the Position of the camera leads to NaN.

!!!! Please look after the issue !!!!!

Editor Render Settings are bogus / viewport metrics not reliably visible

The render switches in the editor have some sort of tangled dependency chain.

Turning on sharpen activates the whole pipe except FXAA, tonemap or bloom seem to be required for the viewport to even update, etc.

Most importantly, the viewport/render metrics info isn't visible without basically everything turned on.

Lastly the metrics and the profiler output have a mismatch. Although the profiler says things are swimming along nicely, it's actually only doing around 40fps (that's the entire post-stack active [remember, the checkboxes are lying, only FXAA is off] on an Intel HD4000 - not surprising), so there's so unprofiled regions laying about.

image


Good job so far though, in general everything's much faster than the last time I tried it out.

Building the editor?

Sorry if this is an ignorant question. How do I build the editor? I see the folder, but in the VS project generation it only builds a solution for the runtime. I am asking this cause I was unable to figure it out and wanted to clear things up for others who may have the same issue as I.

Possible PhysX?

Since this engine is in it's infancy, I thought it might be a good time to question the reasoning behind the use of bullet, considering the performance degradation (although minuet with recent updates). Getting gameworks access is far from complicated, as even I got access... Please don't take this as a suggestion, it is more of a question!

EDIT:
Licensing is another thing... Although I'm pretty sure that if you made a system like the Unreal Engine has (have a bat file that grabs all needed dependencies from the respective company sites themselves), you could maintain the MIT license? I'm not sure... I ain't a lawyer :D

Documentation

For a game engine like this, there can be a bit of documentation regarding the use of API to make it easier to use for first time developers wanting to try it out.

Editor run on mac

if you finished on Vulkan , will you consider to build the editor on mac ?

OpenGL support

Please add the opengl support after the vulkan API. Opengl is cross- platfrom thus it will be helpful to non-windows devs though there is vulkan

Editor crashes when there is a light source and no camera in the scene

Editor Crashes when there is a light source and a there is no camera in the scene

Reproduce Issue

There are different ways to reproduce this issue:

First

  • Open editor in the default scene.
  • Remove camera from the scene.

Result:

  • Editor Crashes.

Expected behavior:

  • Editor keeps running with a some kind of default viewport camera that cannot be removed.

Second

  • Go to World -> New in the menu bar
  • Editor Crashes.

Result:

  • Editor Crashes.

Expected behavior:

  • Creates a new level with default entities (Environment, Directional Light and Camera).

image

 Spartan_d3d11_debug.exe!Spartan::IComponent::GetTransform() Line 98	C++
 Spartan_d3d11_debug.exe!Spartan::Renderer::Pass_Icons(Spartan::RHI_CommandList * cmd_list, Spartan::RHI_Texture * tex_out) Line 1980	C++
 Spartan_d3d11_debug.exe!Spartan::Renderer::Pass_Main(Spartan::RHI_CommandList * cmd_list) Line 172	C++
 Spartan_d3d11_debug.exe!Spartan::Renderer::OnTick(double delta_time) Line 403	C++
 Spartan_d3d11_debug.exe!Spartan::Context::OnTick(Spartan::TickType tick_group, double delta_time) Line 129	C++
 Spartan_d3d11_debug.exe!Spartan::Engine::Tick() Line 91	C++
 Spartan_d3d11_debug.exe!Editor::Tick() Line 241	C++
 Spartan_d3d11_debug.exe!WinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, char * lpCmdLine, int nCmdShow) Line 31	C++

System

OS: Windows 11
CPU: AMD Ryzen 7 5800X, 3801 Mhz
GPU: NVIDIA GeForce RTX 3080

Data Oriented Design

Hello, I recently discovered this awesome repository and I have been looking at the code for some time now. I am really fasinated by the architecture of the code and I have been wanting to contribute for some time. Having studied Data Oriented Design for some time now and looking at your entity class I was wondering if i could swap out that std::vectorof Components with ComponentManager classes which use an entity id to lookup components. In this way you can store components linearly in memory and also have functions like: GetAllTransformComponets(). I have impemented this design in my own engine/render with great results but mine is tiny compared to yours. Thanks for reading!

TLDR I am looking (with your permission) to introduce some data oriented design in this already awesome engine.

P.S(Μήπως είσαι από την ελλάδα?) :)

Multi-Language Scripting API

I know this engine is set to support C# scripting soon, but I have an idea that could potentially enable the engine to support a multitude of programming languages while only maintaining one. You may have heard of a programming language called "Haxe". Well, not many seem to know that it's compiler has an interesting feature that allows it to trans-pile to multiple different languages, including C#, C++, lua, java, etc! It might not be perfect, but Haxe, including it's compiler, is open-source... It's just an idea to consider!

If you wish to read up on the language and it's compiler, they have a manual:
https://haxe.org/manual/compiler-usage.html

Thanks for your time,
erherhh4herh.

Scripting

This has some promising features already, and seems to be going in an interesting direction. But my main concern pertains to the scripting within the engine. Are there any other languages supported than C++? If not, do you plan to support other languages? Please and thank you for any answers!

Constant Buffer Violation

Hello, I recently came across your engine project and I immediately became interested. So i read through the system hierarchy and I cant explain how mind opening this is. This is really inspiring and i look forward to go down this path! Your engine structure and design is top notch!

So as everyone else would, I began to play around with the engine and decided to add an uniform variable called "white_balance" to the Framebuffer like so:

Renderer.h

struct FrameBuffer
{
    Math::Matrix view;
    Math::Matrix projection;
    Math::Matrix projection_ortho;
    Math::Matrix view_projection;
    Math::Matrix view_projection_inv;
    Math::Matrix view_projection_ortho;
    Math::Matrix view_projection_unjittered;

    ...

    float ssr_enabled;
    float shadow_resolution;
    float ssao_scale;
    float padding;

    float white_balance;
};

And of course to access the uniform variable, I had to create a matching byte count in the shader:

Common_Buffer.hlsl

cbuffer FrameBuffer : register(b0)
{
	matrix g_view;
	matrix g_projection;
	matrix g_projectionOrtho;
	matrix g_viewProjection;
	matrix g_viewProjectionInv;
	matrix g_viewProjectionOrtho;
	matrix g_viewProjectionUnjittered;

        ...
	
	float g_ssr_enabled;
	float g_shadow_resolution;
	float g_ssao_scale;
	float g_padding;

	float g_white_balance;
};

As a test only, I assigned a default value of 6500 directly in the UpdateFramebuffer(); funktion:

Renderer.cpp

...

    m_buffer_frame_cpu.shadow_resolution            = static_cast<float>(m_resolution_shadow);
    m_buffer_frame_cpu.ssao_scale                   = m_options[Option_Value_Ssao_Scale];
    m_buffer_frame_cpu.padding                      = 0.0f;
    m_buffer_frame_cpu.white_balance		    = 6500.0f;

    // Update
    *buffer = m_buffer_frame_cpu;

    // Unmap
    return m_buffer_frame_gpu->Unmap();

So now I reckon the shaders should be able to access g_white_balance from the Framebuffer. Unfortunately i got this :(

image

I've tried to debug this issue to its core, from RHI to Renderer, but got no luck. Could be breathtaking if you could educate, not only me but others as well, about this situation. 👍

editor.exe can not run successfully!

I lover this engine very much!Thanks for your sharing your code!

OS: WINDOW7+IDE: VS2017
I compiler this engine, but while I run editor.exe, it is prompted that xinput1_4.dll is missing,I had downloaded xinput1_4.dll from internet,but editor show as below:

360162007137110090

Linux support

Issue to point out some issues I noticed while trying to compile the engine. Will use this in order to track the progress and I'll go adding more tasks when I encounter more problems.

  • Get the engine compiling
    • Prepare build scripts
    • Fix compiler warnings and errors
  • Link the engine
    • Prepare docker image
      • dxcompiler
      • assimp
      • fmod
      • freeimage
      • freetype
      • bullet
      • SDL2
      • compressonator
      • FSR2
      • LinearMath
      • spirv-cross
      • Open Image Denoiser
    • Fix linking errors and warnings
  • Setup github workflows so that linux builds never break.

Vulkan build freezes during editor startup

OS: Windows 10 20H2
GPU: NVIDIA GeForce GTX 1080 (driver version 456.71)

I installed both the MSVC 2022 redistributable and the Vulkan SDK and rebooted. When starting the 1e13e23 Vulkan build on https://github.com/PanosK92/SpartanEngine/releases, I get the following error:

image

The Direct3D 12 build starts, but it exits immediately after. log.txt only contains:

Info: Spartan::Threading::Threading: 7 threads have been created
Info: Spartan::Renderer::SetOption: Enabled TAA since FSR 2.0 does it.
Info: Spartan::Renderer::SetOption: Enabled FSR 2.0 since it's used for TAA.
Info: Spartan::RHI_Device::RegisterPhysicalDevice: NVIDIA GeForce GTX 1080 (8079 MB)
Info: Spartan::RHI_Device::RegisterPhysicalDevice: Microsoft Basic Render Driver (0 MB)
Info: Spartan::Timer::SetFpsLimit: Set to 59.95 FPS
Info: Spartan::Timer::SetFpsLimit: Set to 99.95 FPS
Info: Spartan::Timer::SetFpsLimit: Set to 119.88 FPS
Info: Spartan::Timer::SetFpsLimit: Set to 120.00 FPS
Info: Spartan::Timer::SetFpsLimit: Set to 143.91 FPS
Info: Spartan::RHI_Device::SetPrimaryPhysicalDevice: NVIDIA GeForce GTX 1080 (8079 MB)
Info: Spartan::RHI_Device::RHI_Device: DirectX 12.0

PS: I did get Spartan's Vulkan build to run on Linux via WINE (on the same machine). While it displayed something on screen, it constantly caused the GPU to hang whenever the window was resized.

Client's script compilation

How do game engines like Unreal Engine compile client written cpp code? I have seen while working on unreal engine that when I press the play button it compiles the CPP code that I have written. How does it does so and then links the code to the game?

Bug: closing shader editor crashes the engine

When closing the shader editor the entire engine crashes.

Useful information

  • Windows 11
  • DirectX 11

Steps to reproduce

  1. Open the editor
  2. Open the shader editor
  3. Close the shader editor

Inverse Kinematics

Inverse kinematics will add more realism to the physics engine. Please also add this feature to your engine road-map.

TAA velocity sample pos is no current pixel pos.

Hi, PanosK92.

on temporal_antialiasing.hlsl line#396. the pos_screen has [-1,-1] offset with center pixel, and u use pos_screen sample velocity at line#339.

i guess u want to sample current pixel's velocity, so why no just use thread_id? and pos_screen != thread_id, or there are some deeper reason i don't know?

This project feel to be AWESOME!!! But..

I found this only today and i fell that is AWESOME, really man you are a god! A new engine with the best license ever existed (MIT) and with the Unity UI!!!!
But... I have windows 7 i can't start this, sadly.....
Can you do a port to windows 7 too? Please man really i want to use this awesome engine!!
PS. a .txt with a building tutorial should be helpful for programmer that want to understand how an engine is made like me.
Thanks anyway for this fantastic project!!!!

Sorry for my english i'm studying for improve it.

Log being spammed with Spartan::RHI_CommandList::Gpu_GetMemoryUsed: Failed to get adapter memory info, Unknown error code

Hi,

When I start the editor the log is being spammed every second with this message:

Spartan::RHI_CommandList::Gpu_GetMemoryUsed: Failed to get adapter memory info, Unknown error code

Note: I am using the VS1019 D3D11 solution, latest checkout.
Anyway, the error comes from file SpartanEngine\Runtime\RHI\D3D11\D3D11_CommandList.cpp line 737.

It's because my GPU does not seem to support this call.

To fix we could do either tree things.

  1. Skip the method if same call previously had an error. (e.g add a boolean variable and set this when failed, then just check if boolean was set before calling the method)
  2. Check for gpu features beforehand and not do the call at all (I don't know if this is possible for D11)
  3. Add a timestamp check to only skip the log error.
    This allows the error to only be shown if it occured at different points in time.

Pseudocode

if (FAILED(result))
{
    if (now > lastErrortimestamp + 1000)
    {
        LOG_ERROR("Failed to get adapter memory info, %s", d3d11_utility::dxgi_error_to_string(result));
    }
    
    lastErrortimestamp = now;
    return 0;
...

note: This last option could also be implement globally by changing the LOG_error macro to use a dictionary (error,timestamp).

C# scripting

In the road-map you have told that you are going to implement the C# scripting language for programming, What are you plannings for that? I mean that what is the compiler or the technique you are going to use?

[As you have told I have opened a new issue]
[Yes, I am pretty young currently in Class 9 but I like game development and I am making my own game engine, I have been using Unity and Unreal engine since Class 3, now I want to use my own game engine for game development I have went through many articles but I really need help from a real example]

Link error on compiling

I have just pulled the latest and attempted to compile although i ended up with a link error. i followed all the instructions on the compile page

assimp.lib(IFCUtil.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_8

[Question] Textures??

While reading this article, I have found that during build unity puts all the textures to an optimized binary file.

Now I am developing my own engine (heavily inspired by yours). There I am working on Texture loading. I already have Asynchronous Texture loading which reduced the loading time down to 50%.

But every time the texture is load stb_image or FreeImage does some post-processing and pre-processing this increases the loading time a lot in case of big textures like 8k Textures. So I was thinking how can I write the texture to a binary format so that once loaded from the second time it loads from the binary and doesn't take much time?

Now, honestly, I am stuck here since I have googled but didn't find any answer. My only question is how do they do it? Also, I would like to know how will you implement it to your own engine?

Bug: resizing editor breaks framebuffer

Spartan Editor opens up maximized. Trying to create a smaller window breaks the editor as shown in the next image:

image

The console throws an error: Spartan::RHI_SwapChain::Resize: Failed to resize swapchain buffers, DXGI_ERROR_INVALID_CALL

Useful information

  • Windows 11
  • DirectX 11

Steps to reproduce

  1. Open spartan (should open maximized)
  2. Make a smaller window with the window controls

Error in Building Project

Hi Guru,

I have run the .bat file to create the .sln. But I could not open it with VS2017, could only open it with VS2015. May I know what is the reason?

When I built the project in VS2015, a bulk of error were displayed as following. I am using Window 7 and DirectX June(2010) environment.

Severity Code Description Project File Line Suppression State
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Audio\Audio.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\mathhelper.h 32
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Audio\Audio.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\vector3.h 31
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Audio\Audio.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\quaternion.h 29
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Audio\Audio.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\vector4.h 30
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Audio\Audio.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\matrix.h 31
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Audio\AudioClip.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\mathhelper.h 32
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Audio\AudioClip.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\vector3.h 31
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Audio\AudioClip.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\quaternion.h 29
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Audio\AudioClip.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\vector4.h 30
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Audio\AudioClip.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\matrix.h 31
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Core\Settings.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\vector2.h 30
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Core\Settings.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\vector4.h 30
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Audio\Audio.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\vector2.h 30
Error C2039 'byte': is not a member of 'std' (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\imageimporter.h 83
Error C2065 'byte': undeclared identifier (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\imageimporter.h 83
Error C2923 'std::vector': 'byte' is not a valid template type argument for parameter '_Ty' (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\imageimporter.h 83
Error C3203 'allocator': unspecialized class template can't be used as a template argument for template parameter '_Alloc', expected a real type (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\imageimporter.h 83
Error C2039 'byte': is not a member of 'std' (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\imageimporter.h 87
Error C2065 'byte': undeclared identifier (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\imageimporter.h 87
Error C2923 'std::vector': 'byte' is not a valid template type argument for parameter '_Ty' (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\imageimporter.h 87
Error C3203 'allocator': unspecialized class template can't be used as a template argument for template parameter '_Alloc', expected a real type (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\imageimporter.h 87
Error C2039 'byte': is not a member of 'std' (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\imageimporter.h 88
Error C2065 'byte': undeclared identifier (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\imageimporter.h 88
Error C2923 'std::vector': 'byte' is not a valid template type argument for parameter '_Ty' (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\imageimporter.h 88
Error C3203 'allocator': unspecialized class template can't be used as a template argument for template parameter '_Alloc', expected a real type (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\imageimporter.h 88
Error C2039 'byte': is not a member of 'std' (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\imageimporter.h 90
Error C2065 'byte': undeclared identifier (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\imageimporter.h 90
Error C2923 'std::vector': 'byte' is not a valid template type argument for parameter '_Ty' (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\imageimporter.h 90
Error C3203 'allocator': unspecialized class template can't be used as a template argument for template parameter '_Alloc', expected a real type (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\imageimporter.h 90
Error C2039 'byte': is not a member of 'std' (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\fontimporter.h 59
Error C2065 'byte': undeclared identifier (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\fontimporter.h 59
Error C2923 'std::vector': 'byte' is not a valid template type argument for parameter '_Ty' (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\fontimporter.h 59
Error C3203 'allocator': unspecialized class template can't be used as a template argument for template parameter '_Alloc', expected a real type (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\fontimporter.h 59
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\mathhelper.h 32
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\vector3.h 31
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\vector2.h 30
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\vector4.h 30
Error C2039 'byte': is not a member of 'std' (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 91
Error C2065 'byte': undeclared identifier (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 91
Error C2923 'std::vector': 'byte' is not a valid template type argument for parameter '_Ty' (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 91
Error C3203 'allocator': unspecialized class template can't be used as a template argument for template parameter '_Alloc', expected a real type (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 91
Error C3203 'vector': unspecialized class template can't be used as a template argument for template parameter '_Ty', expected a real type (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 91
Error C2039 'byte': is not a member of 'std' (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 92
Error C2065 'byte': undeclared identifier (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 92
Error C2923 'std::vector': 'byte' is not a valid template type argument for parameter '_Ty' (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 92
Error C3203 'allocator': unspecialized class template can't be used as a template argument for template parameter '_Alloc', expected a real type (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 92
Error C3203 'vector': unspecialized class template can't be used as a template argument for template parameter '_Ty', expected a real type (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 92
Error C2039 'byte': is not a member of 'std' (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 100
Error C2065 'byte': undeclared identifier (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 100
Error C2923 'std::vector': 'byte' is not a valid template type argument for parameter '_Ty' (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 100
Error C3203 'allocator': unspecialized class template can't be used as a template argument for template parameter '_Alloc', expected a real type (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 100
Error C3203 'vector': unspecialized class template can't be used as a template argument for template parameter '_Ty', expected a real type (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 100
Error C2039 'byte': is not a member of 'std' (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 110
Error C2065 'byte': undeclared identifier (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 110
Error C2923 'std::vector': 'byte' is not a valid template type argument for parameter '_Ty' (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 110
Error C3203 'allocator': unspecialized class template can't be used as a template argument for template parameter '_Alloc', expected a real type (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 110
Error C2039 'byte': is not a member of 'std' (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 137
Error C2065 'byte': undeclared identifier (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 137
Error C2923 'std::vector': 'byte' is not a valid template type argument for parameter '_Ty' (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 137
Error C3203 'allocator': unspecialized class template can't be used as a template argument for template parameter '_Alloc', expected a real type (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 137
Error C3203 'vector': unspecialized class template can't be used as a template argument for template parameter '_Ty', expected a real type (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 137
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Core\Variant.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\vector2.h 30
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Core\Variant.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\mathhelper.h 32
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Core\Variant.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\vector3.h 31
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Core\Variant.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\vector4.h 30
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Core\Variant.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\quaternion.h 29
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Core\Variant.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\matrix.h 31
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file EventSystem\EventSystem.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\vector2.h 30
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file EventSystem\EventSystem.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\mathhelper.h 32
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file EventSystem\EventSystem.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\vector3.h 31
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file EventSystem\EventSystem.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\vector4.h 30
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file EventSystem\EventSystem.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\quaternion.h 29
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file EventSystem\EventSystem.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\matrix.h 31
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\vector4.h 30
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\quaternion.h 29
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Core\Engine.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\matrix.h 31
Error C2039 'byte': is not a member of 'std' (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\imageimporter.h 83
Error C2065 'byte': undeclared identifier (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\imageimporter.h 83
Error C2923 'std::vector': 'byte' is not a valid template type argument for parameter '_Ty' (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\imageimporter.h 83
Error C3203 'allocator': unspecialized class template can't be used as a template argument for template parameter '_Alloc', expected a real type (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\imageimporter.h 83
Error C2039 'byte': is not a member of 'std' (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\imageimporter.h 87
Error C2065 'byte': undeclared identifier (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\imageimporter.h 87
Error C2923 'std::vector': 'byte' is not a valid template type argument for parameter '_Ty' (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\imageimporter.h 87
Error C3203 'allocator': unspecialized class template can't be used as a template argument for template parameter '_Alloc', expected a real type (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\imageimporter.h 87
Error C2039 'byte': is not a member of 'std' (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\imageimporter.h 88
Error C2065 'byte': undeclared identifier (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\imageimporter.h 88
Error C2923 'std::vector': 'byte' is not a valid template type argument for parameter '_Ty' (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\imageimporter.h 88
Error C3203 'allocator': unspecialized class template can't be used as a template argument for template parameter '_Alloc', expected a real type (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\imageimporter.h 88
Error C2039 'byte': is not a member of 'std' (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\imageimporter.h 90
Error C2065 'byte': undeclared identifier (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\imageimporter.h 90
Error C2923 'std::vector': 'byte' is not a valid template type argument for parameter '_Ty' (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\imageimporter.h 90
Error C3203 'allocator': unspecialized class template can't be used as a template argument for template parameter '_Alloc', expected a real type (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\imageimporter.h 90
Error C2039 'byte': is not a member of 'std' (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\fontimporter.h 59
Error C2065 'byte': undeclared identifier (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\fontimporter.h 59
Error C2923 'std::vector': 'byte' is not a valid template type argument for parameter '_Ty' (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\fontimporter.h 59
Error C3203 'allocator': unspecialized class template can't be used as a template argument for template parameter '_Alloc', expected a real type (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\resource\import\fontimporter.h 59
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\mathhelper.h 32
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\vector3.h 31
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\vector2.h 30
Error C2039 'byte': is not a member of 'std' (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 91
Error C2065 'byte': undeclared identifier (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 91
Error C2923 'std::vector': 'byte' is not a valid template type argument for parameter '_Ty' (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 91
Error C3203 'allocator': unspecialized class template can't be used as a template argument for template parameter '_Alloc', expected a real type (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 91
Error C3203 'vector': unspecialized class template can't be used as a template argument for template parameter '_Ty', expected a real type (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 91
Error C2039 'byte': is not a member of 'std' (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 92
Error C2065 'byte': undeclared identifier (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 92
Error C2923 'std::vector': 'byte' is not a valid template type argument for parameter '_Ty' (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 92
Error C3203 'allocator': unspecialized class template can't be used as a template argument for template parameter '_Alloc', expected a real type (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 92
Error C3203 'vector': unspecialized class template can't be used as a template argument for template parameter '_Ty', expected a real type (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 92
Error C2039 'byte': is not a member of 'std' (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 100
Error C2065 'byte': undeclared identifier (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 100
Error C2923 'std::vector': 'byte' is not a valid template type argument for parameter '_Ty' (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 100
Error C3203 'allocator': unspecialized class template can't be used as a template argument for template parameter '_Alloc', expected a real type (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 100
Error C3203 'vector': unspecialized class template can't be used as a template argument for template parameter '_Ty', expected a real type (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 100
Error C2039 'byte': is not a member of 'std' (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 110
Error C2065 'byte': undeclared identifier (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 110
Error C2923 'std::vector': 'byte' is not a valid template type argument for parameter '_Ty' (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 110
Error C3203 'allocator': unspecialized class template can't be used as a template argument for template parameter '_Alloc', expected a real type (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 110
Error C2039 'byte': is not a member of 'std' (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 137
Error C2065 'byte': undeclared identifier (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 137
Error C2923 'std::vector': 'byte' is not a valid template type argument for parameter '_Ty' (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 137
Error C3203 'allocator': unspecialized class template can't be used as a template argument for template parameter '_Alloc', expected a real type (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 137
Error C3203 'vector': unspecialized class template can't be used as a template argument for template parameter '_Ty', expected a real type (compiling source file Font\Font.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\texture.h 137
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Graphics\Animation.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\mathhelper.h 32
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Graphics\Animation.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\vector3.h 31
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Graphics\Animation.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\quaternion.h 29
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Graphics\Cascade.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\mathhelper.h 32
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Graphics\Cascade.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\vector3.h 31
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Graphics\Animation.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\vector4.h 30
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Graphics\Cascade.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\quaternion.h 29
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Graphics\Animation.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\matrix.h 31
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Graphics\Cascade.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\vector4.h 30
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Graphics\Cascade.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\matrix.h 31
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Graphics\Cascade.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\vector2.h 30
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Graphics\Cascade.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\ray.h 29
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Graphics\D3D11\D3D11ConstantBuffer.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\vector4.h 30
Error C2039 'byte': is not a member of 'std' Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\font\font.cpp 75
Error C2664 'bool Directus::FontImporter::LoadFont(const std::string &,int,std::vector &,unsigned int &,unsigned int &,std::map<unsigned int,Directus::Glyph,std::less<_Kty>,std::allocator<std::pair<const _Kty,_Ty>>> &)': cannot convert argument 3 from 'std::vector<byte,std::allocator<_Ty>>' to 'std::vector &' Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\font\font.cpp 78
Error C2664 'bool Directus::Texture::CreateShaderResource(void)': cannot convert argument 4 from 'std::vector<byte,std::allocator<_Ty>>' to 'const std::vector &' Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\font\font.cpp 94
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Graphics\D3D11\D3D11GraphicsDevice.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\vector4.h 30
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Graphics\D3D11\D3D11IndexBuffer.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\vector4.h 30
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Graphics\D3D11\D3D11InputLayout.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\vector4.h 30
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Graphics\D3D11\D3D11RenderTexture.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\mathhelper.h 32
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Graphics\D3D11\D3D11RenderTexture.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\vector3.h 31
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Graphics\D3D11\D3D11RenderTexture.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\quaternion.h 29
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Graphics\D3D11\D3D11RenderTexture.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\vector4.h 30
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Graphics\D3D11\D3D11RenderTexture.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\matrix.h 31
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Graphics\D3D11\D3D11Sampler.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\vector4.h 30
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Graphics\D3D11\D3D11Shader.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\vector4.h 30
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Graphics\D3D11\D3D11Texture.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\vector4.h 30
Error C2429 language feature 'nested-namespace-definition' requires compiler flag '/std:c++latest' (compiling source file Graphics\D3D11\D3D11VertexBuffer.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\math\vector4.h 30
Error C2039 'byte': is not a member of 'std' (compiling source file Graphics\D3D11\D3D11Texture.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\d3d11\d3d11texture.h 38
Error C2039 'byte': is not a member of 'std' (compiling source file Graphics\D3D11\D3D11Texture.cpp) Runtime c:\users\admin\desktop\directus3d game engine\directus3d-master\directus3d-master\runtime\graphics\d3d11\d3d11texture.h 41

(Suggestion) Use CMake or other cross-platform build system

The engine uses Visual Studio 2019 project files. I suggest use a cross-platform build system like CMake.
Rationales:

  • Future non-Windows support. Visual Studio is Windows-only solution (even VS for Mac does not support C++). CMake is cross-platform and usually easy to configure.
  • VS 2019 (and 2017) can work with CMake project files out of the box, no extensions needed (although you have to enable CMake support in the installer). The *.sln files are heavily non-portable between different VS versions, and it can be a real pain to convert a solution from version to version. On the other hand, CMake files are usually portable between versions, since the build system maintains backward compatibility. (Even then, if you still feel uncomfortable when working with CMake project files, it can generate *.sln files to be opened with your Visual Studio version.)
  • Most of the dependencies already use CMake, so it will be easy to connect them to a CMake project.

The only (well, the only one I've heard) disadvantage of CMake over SLN files is that it's considered by some people as a "non-enterprise" format that is not used by "serious" and "professional" game developers. I don't work in gamedev (although I'm a non-game software developer), so I cannot say if it's true or not.

Triggers

Triggers are a very important feature for every game engine, they helps us to make more complex game logic. Please add the trigger system in your game engine's road-map.

[Question]Asset Build Pipeline

Spartan is progressing a lot. But one of the most important features I have seen in every game engine is an asset build pipeline. Whenever I would distribute the game made with the engine the game assets like textures, shaders, scripts all need to be built into some custom engine format so that the user can't change them. So how do engines like Unity and Unreal Engine build the assets to a custom engine format so that once distributed the users cannot change shader or textures?

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.