Git Product home page Git Product logo

small-directx-game-engine's Introduction

Small DirectX Game-Engine

This is a DirectX application with some basic Game engine features.

  • Direct3D 12.0 (Feature Level: 11.0)
  • Microsoft DirectX Graphics Infrastructure (DXGI) 1.4

Features

  • Use Warp Device by not DirectX supported device
  • Toogle fullscreen at runtime (Modify buffers, SwapChain, camera, etc.)
  • Draw triangle
  • Draw quad
  • Draw quads with depth information
  • Draw dynamic triangles (triangle, quad, pentagon, hexagon, octagon, ...)
  • Draw images
  • Draw text
  • Splash/Loading-Screen
  • Vertex/Pixel-Shader (Shader Model 5.0)
  • V-Sync
  • Draw world
    • Load mesh (.obj [Blender], Texture)
      • Optimization of vertices and indices on load
    • Load dynamic objects and meshes for level (Level-File)
    • Load mesh once for all level objects (resource optimization)
  • Camera First-Person
    • Free look
    • Movement (W,A,S,D)
    • 85° restriction
    • Quaternionen rotation (Mouse input)
  • Update with frame delta
  • Collision
    • Axis Aligned Bounding Box (AABB)
    • Object-oriented Bounding Box (OOBB)
    • Two-step collision detection (1. AABB -> 2. OOBB)
  • Exact static mesh collision
  • Frustum
    • Get Frustum from Camera
    • Frustum culling (Draw only objects in frustum)
    • Release mesh when not culled (Reload mesh if culled again)

Key-Mapping

  • W: Move forward
  • A: Move left
  • S: Move down
  • D: Move right
  • H: Show help (console)
  • I: Show current fps (console)
  • F11: Toggle fullscreen
  • ESC: Close application

Miscellaneous

  • Small Benchmark on startup

Screenshots

DXGE

Renderer

Renderer

Copyright

Models: (Barrier, Floor, Wall) by Tobias Reimann
Textures: (Bake_Barrier, Bake_Floor, Bake_Wall) by Tobias Reimann
TextureLoader by braynzarsoft.net
dxdx12.h by Microsoft Github Microsoft/DirectX-Graphics-Samples

small-directx-game-engine's People

Contributors

plenz avatar

Stargazers

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