Vishv is a game engine made on DirectX 11 in C++ 17. The engine uses Enity Component System to make easy data driven games.
This is the first Demo Project made using the ECS it spawns a sample area with a ground and 2 walls, also it spawns 2 Enemy Zombie who roam around until the player is detected and then chase and attack the player. Systems being used are:
- AI for Enemy
- Path finding A star
- Steering Behaviours
- Finite State Machine
- Graphics
- Model Animation
- Model rendering
- Physics
- Collision Detection
This is the final demo project that is there to test and show animation system for Vishv, it supports adding animations and blending between them the demo showcases import of model, textures, skeleton, animations and skining shader writen for it.
here the blending slider can be used to change between different animations
These instructions will help you in developing your own components in your projects
auto objectHandle = mGameWorld.Create(std::filesystem::path(), std::move("Object Name"));
objectHandle.Get()->AddComponent<Components::TransformComponent>();
*note
The engine will support prefabs and create will add components using that
This is an example component
In Header
Class HealthComponent : public Vishv::Compoents::Component
{
public:
META_CLASS_DECLARE
uint32_t mHealth;
};
In Cpp
META_DERIVED_BEGIN(HealthComponent, Vishv::Components::Component)
META_FIELD_BEGIN
META_FIELD(mHealth, "Health")
META_FIELD_END
META_CLASS_END
- DirectX 11 - Graphic library used as base
- DirectXTK - Library used for textures and sound
- Dear ImGui - GUI Library used
- AssImp - Library used to import 3D Assets
- PhysX - External Physics Library that is still being integrated
- RapidJSON - Library being used for files
- Mixamo - For 3D Assets
- Bhavil Gupta - Initial work - InFaNsO
This project is licensed under the MIT License - see the LICENSE.md file for details
- Peter Chan who has guided and mentored me throughout the way while making this engine
- My inspiration Unity 3D