GithubHelp home page GithubHelp logo

division / vulkan-engine Goto Github PK

View Code? Open in Web Editor NEW
26.0 4.0 7.0 148.59 MB

My current hobby project - game engine with Vulkan renderer

CMake 0.52% C++ 72.13% HLSL 0.43% C 26.00% Objective-C 0.76% Python 0.16% HTML 0.01% Batchfile 0.01%
vulkan fbx-exporter fbx ecs engine render gamedev game-development

vulkan-engine's Introduction

Demo videos:

Top down shooter Compute shader Particle system
YOUTUBE LINK Top Down Shooter YOUTUBE LINK Compute YOUTUBE LINK Particle system

How to build

This repository contains submodules. Make sure to download them after cloning:
git submodule update --init --recursive

The easies way to build is to use Visual Studio (open cmake)
Requires Vulkan SDK

How to run demo projects:

Follow these steps:

  • Make sure all the executables are built (ProjectManager.exe in particular)
  • Add the following line to the vulkan-engine\bin\create_symlink.bat:
    mklink /D %~dp0\assets %~dp0\..\assets\assets.cache
    This step is optional but must be done to avoid running ProjectManager.exe as administrator.
  • Execute the batch file vulkan-engine\bin\create_symlink.bat. It should create two symlinks in the vulkan-engine\bin folder: shaders and assets. Asset may not work yet, it's fine.
  • Run ProjectManager project. If you skipped the editing of the .bat file the ProjectManager must be run as an administrator in order to create the symlink.
  • In the ProjectManager select Project -> Open and select vulkan-engine\assets\assets
  • Select Assets -> Export pending assets to trigger the asset build.

It should produce vulkan-engine\assets\assets.cache folder with engine-readable assets in it.

Check the assets symlink - it should be pointing to vulkan-engine\assets\assets.cache folder.
And the shaders symlink must be pointing to vulkan-engine\engine\shaders.

Now demo projects should run without errors

Engine roadmap:

High priority

  • Add GPU particles to the Top Down Shooter demo
  • Instancing
  • GPU Culling
  • Bindless textures

Backlog

  • Proper deletion of entities loaded from resource
  • export default materials from fbx (with texture paths)
  • physics rendering interpolation
  • Fix logging, log from multiple threads
  • Fix and migrate lighting, decals, shadowmaps to ECS
  • Handles for all engine resources
  • Use pipelines directly
  • Shader reloading
  • Multithreaded rendering
  • GUI library integration
  • Finalize top down shooter demo

Completed

  • Bitonic sort for particles
  • Attractors for GPU Particle demo
  • Basic Top Down Shooter demo
  • bloom
  • Refactored resource and constants binding
  • bone attachments
  • fix deadlock: resource loading exception during main thread resolve()
  • properly handle missing textures
  • properly export animations in fbx exporter
  • asset database and UI
  • export textures
  • DDS loading
  • optimize tiled lighting or implement clustered
  • Image based lighting support
  • additional parameters for resource handles (e.g. texture srgb)
  • HLSL includes must be included in hash
  • FBX mesh export
  • fix normal mapping
  • New skinning animation system
  • Proper alignment of ECS components
  • Action puzzle demo
  • Add support for singleton components (store in EntityManager by pointer)
  • Material resource
  • Multithreading, job system
  • Async resource loading
  • Fix release build settings in cmake
  • lambda API for ECS
  • PhysX integration
  • Rendering of MultiMesh
  • Extract assets into a private repo
  • FBX physics mesh export
  • GameObject file format

vulkan-engine's People

Contributors

division 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

Watchers

 avatar  avatar  avatar  avatar

vulkan-engine's Issues

How to avoid assets missing warnings?

Hi, @Division. I compiled your engine project which works fine. But there are some warnings about assets not found when I launch demo projects.
For top-down-shooter, mannequin.mesh and MannequinSkeleton.skel are missed.
For action_puzzle, ibl_brdf_lut.dds, grass_diffuse.dds are missed.

Do I need to do some asset build steps to get these missing assets? Or where can I download them? Thanks!

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.