NFGE

NFGE-Nicolas Four Game Engine

Description:

This my own C++ game engine that developed using Direct3D 11.

It has:
  • AI library: 
    • Support FSM
    • Path-finding algorithms
    • Perception module
    •  Steering Module
  • Core library: 
    • Handle window management with Win32.
    • Implemented memory management structure such as:
      • BlockAllocator & TypeAllocator
      • Handle & HandlePool
    • Implemented Macro for Meta system that can achieve run time class information retrieve(Reflection System)
  • Graphic library:
    • Implemented 3D graphic rendering pipeline that integrate post-process module
    • Support Perspective Camera & Orthographic Camera
    • Support Mesh building, sprite rendering, and text rendering
    • Support custom Geometry Shader, Vertex Shader, and Pixel Shader
    • Implemented Skeleton animation system with:
      • Animation blending
      • Partially animation
      • Animation blend tree
  • Input library:
    • Handle window management with Win32.
  • Network library:
    • Developed StreamReader and StreamWriter for retrieving and sending infromation through network.
    • Support both Tcp socket and Udp socket connection
    • Developed linkingContext and ObjectFactory to allows the game object synchronization between machines through network
  • Math library:
    • Implemented Essential data structure for 3D graphic calculation:
      • Vector2,3,4
      • Matrix33,Matrix44
      • Quaternion
      • Circle, AABB, OBB, Ray
    • Implemented useful interpolation function:
      • LinearSpline
      • QuadraticBezier
      • CubicBezier
      • CutmulRomspline
  • Physics:
    • Implemented Verlet particle physics system

Integrated External Library:

  • Assimp                          -- For 3D model importing
  • Dear Imgui                    -- For Debug UI
  • DirectXTK                    -- For graphic & audio
  • RapidJSON                   -- For loading and saving Json file

Project in NFGE:


  • Depth blur Demo:
    • Using 3D Graphic render pipeline to render 5 sphere meshes that has Diffuse, Specular, normal and displacement texture.
    • Implemented with Depth blur post-processing effect by rendering the z value of all vertices in to a Render target in the first path. In the second path bind the z value texture with the pixel shader and blend each pixel base on the z value.
  • Shadow Maping Demo:
                      
    • Using 3D Graphic render pipeline to render tank modles that has diffuse, Specular, normal texutre.
    • Implemented shadow effect post-process by rendering the pixel's z value with a orthographic light camera that has a view frustum always cover the main camera's view sight. And bind this texture and light camera's view matrix to the next render path. By recomputing the z value for each pixel in the second path. we can know should it be shadowed by comparing the z value with the z value in the first path.

Technical Support:

My Instructor: Peter Chan 


Comments

Popular posts from this blog

Physics Demo: Grass Simulation

3D Graphic Demo: YBot-Simulation(In Progress)