Giter VIP home page Giter VIP logo

asdlei99 / xcframeworkengine Goto Github PK

View Code? Open in Web Editor NEW

This project forked from abhishekp314/xcframeworkengine

0.0 1.0 0.0 146.45 MB

XCFramework is a cross platform Game engine written in C++ with DirectX12, DirectX11 and OpenGL at it's core for win32 platform. It also provides support for Xbox One and PS4.

Home Page: http://abhishekporwal314.blogspot.in/

License: Other

C++ 81.00% C 16.64% Objective-C 0.26% Batchfile 0.01% Lua 0.42% C# 0.73% GLSL 0.01% Haskell 0.01% HLSL 0.94%

xcframeworkengine's Introduction

XCFrameworkEngine

XCFramework is a cross platform Game engine written in C++ with DirectX12, DirectX11 and OpenGL(WIP) at it's core for win32 platform. It also provides support for Xbox One and PS4 but sources are not uploaded.

alt tag alt tag alt tag

Features

  • Rendering
    • Multi threaded rendering technique using render pools and deferred rendering
    • Reflection API, to fetch description of shaders and create respective layouts and slots.
    • Offline Shader tools to build the shader binaries.
    • All Mesh are Instance rendered
    • Vector Font Rendering
    • Mesh :
      • .3ds Mesh Loader - to read .3ds files created from 3D modelling tools such as 3dsMax, Maya. It parses the .3ds files and creates a XC_Mesh which is engine custom format and renders the mesh in the scene.
      • Assimp API to load the animated skinned mesh
      • Adobe FBX API to load fbx mesh formats.
  • Engine
    • Custom memory management for better book keeping and faster alloc/deallocs.
    • Custom built in Intrinsic Math Library to perform Vector Math
    • Multi threaded resource loading
    • Custom Serializer - Runtime type deduction and object construction.
    • FlatBuffer API from Google to serialize JSON objects which allows easy scripting of data such as textures, shaders and other game assets.
    • Data Oriented loading of assets such as shaders, textures, gameplay data.
    • VR support - Realtime rendering of frames from engine to a smartphone through network protocols (using socks) and provides Virtual Reality in a split screen that requires a Google Cardboard. Accelerometer inputs allows the user to move the objects in the engine. (Working with Dx11 enabled. With Dx12 to come soon.)
    • XCFramework Editor - Runtime editor allows to edit the world, create levels, manage resources. (Non functional after Dx12 implementation. Stay tuned for this!)
    • World Manager - multi threaded world architecture that includes actors such as Physics actors, Light actors, Animated actors and various other actors that this world can load into and act as a container of these actors.
    • Terrain Generation from bitmaps.
  • Networking
    • Server/Client implementation using win sock.
  • XC Physics Engine - Custom physics engine. Provides bounding 3D objects, collision detection and collision resolver.
  • AI - Integrated basic AI system to Non Playable Characters.

Dev Requirements

Windows 10 SDK 10.0.10586.0/10.0.15063.0 Directx12 supported hardware (If not, Warp will be enabled automatically by engine. But it might crash and is unstable). Directx11 supported hardware.

How to build the engine and run a 3D game?

Run "Premake5.exe vs2017 --gfxapi="dx12" " through commandline. Launch the solution and build it.

How to launch the game?

After building the solution, you can either run it or launch it without debugger connected by - Copy the Assets folder to the bin// Launch XCGame.exe

How to get data?

Not required. Its already in the repo.

TODO Integrations of my other project

  • Runtime reflection of shader changes without re-launching the engine.
  • Include Motion Tracker to track user gestures and provide input system within the engine.
  • Provide drag and drop of assets into the world and including within the package.

[Note : Builds with latest Premake5]

xcframeworkengine's People

Contributors

abhishekp314 avatar

Watchers

 avatar

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.