https://github.com/hongtae/dkgl
Cross platform 3D Game & Graphics Library
https://github.com/hongtae/dkgl
3d-game-engine apple-metal cross-platform game-engine game-framework graphics-engine metal-game-engine vulkan vulkan-engine vulkan-game-engine vulkan-renderer
Last synced: 9 months ago
JSON representation
Cross platform 3D Game & Graphics Library
- Host: GitHub
- URL: https://github.com/hongtae/dkgl
- Owner: Hongtae
- License: bsd-3-clause
- Created: 2015-02-10T03:23:18.000Z (about 11 years ago)
- Default Branch: develop
- Last Pushed: 2023-04-14T02:22:13.000Z (almost 3 years ago)
- Last Synced: 2025-03-31T23:51:38.543Z (11 months ago)
- Topics: 3d-game-engine, apple-metal, cross-platform, game-engine, game-framework, graphics-engine, metal-game-engine, vulkan, vulkan-engine, vulkan-game-engine, vulkan-renderer
- Language: C
- Homepage:
- Size: 47.1 MB
- Stars: 21
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Project DKGL
Cross-platform 3D Game Library for C\++.
# DK (Core Library)
A Lightweighted cross-platform Game Library.
This is low level game library written with C\++ and supports full multi-threaded, 64-bits environments.
DKGL supports [Khronos Vulkan](https://www.khronos.org/vulkan/), [Apple Metal](https://developer.apple.com/metal/), [Microsoft DirectX 12](https://msdn.microsoft.com/en-us/library/windows/desktop/dn903821.aspx)
You can use Python-script to improve productivity.
DK library has two layers of API level.
##### DKFoundation - `Foundation Classes, Managing System Tasks.`
* C\++ Metaprograms (Type Libraries, etc.)
* Data Collections (Array, Map, Tuples, etc.)
* Memory Management (SmartPointers, WeakRef, Pool Allocators, etc.)
* Thread and Synchronize objects (Mutex, Condition, Atomics, etc.)
* Thread Pool for Asynchronous Operations
* High Resolution Timer
* Run-Loop System
* Function Interface for Operations, Invocations, Functors
* Data and Buffer objects
* Rational for High-Precision Calculation
* Unicode String (UTF-8,16,32)
* File, Directory and Stream (including File-Mapping)
* Date Time class (ISO-8601 support)
* Endianness Byte Order Utilities
* Logging Interface
* Error Handler (with Stack-Tracer)
* XMLParser (DOM, SAX)
* Hash Library (SHA1, SHA2, etc.)
* Zip Archiver, Unarchiver
##### DKFramework - `Game Framework for Application`
* Application Entry Point
* Collision Detection Utilities
* Convex Decomposition
* Physics Constraints
* Dynamics Simulator
* Node Based Scene Graph Management
* Curve Interpolation (Spline, B-Spline, Bezier, etc.)
* Data Marshalling
* Animation (able to Retargeting, Blending)
* Text Font (TTF, PS, etc.)
* 3D Audio
* Mathematics (Matrices, Vectors, Quaternion, etc.)
* Graphics / Compute Interface (Vulkan, Metal, DirectX12)
* Resource Management
* Material and Shader Management
* Window, Screen Management
* Voxel, Storage, Polygonizer Interfaces
Each framework designed for modular, cross-platform.
You can use any classes without any dependencies.
You are also able to use single project for multiple-platforms without
any modifictations that platform dependent.
You can use DK with other UI Tools also. (MFC, Cocoa, wxWidgets, etc.)
### Running platforms.
- Windows 10 or later. (DirectX12 or Vulkan Required)
- Mac OS X 10.11 or later. (Metal Required)
- iOS 9.0 or later. (Metal Required)
For other platforms including linux or android, You can implement
DK interfaces to use DK library with other GUI OSes.
> See interface header files in `DKFramework/Interface`.
> You can see implementations for other OSes in `DKFramework/Private`
## Build Environments
- Visual Studio 2019 for Windows
- Xcode7 for Mac, iOS
- C\++17 compiler
## Included External Libraries
- [OpenAL-soft-1.15.1](https://github.com/kcat/openal-soft)
- This is LGPL licensed, configured to build **dynamic-library**.
- Win32, Android only.
- Mac OS X, iOS use Apple's OpenAL framework.
- [BulletPhysics-2.82](https://github.com/bulletphysics/bullet3)
- [FreeType-2.9](https://freetype.org/)
- [bzip2-1.0.6](http://sourceware.org/bzip2/)
- [jpeg-9](https://ijg.org/)
- [libFLAC-1.2.1](https://xiph.org/flac/)
- [libogg-1.3.1](https://xiph.org/ogg/)
- [libpng-1.5.10](https://github.com/glennrp/libpng)
- [libvorbis-1.3.3](https://xiph.org/vorbis/)
- [libxml2-2.9.0](http://www.xmlsoft.org/)
- [lz4-r131](https://github.com/lz4/lz4)
- [zlib-1.2.7](https://github.com/madler/zlib)
- [Zstd-1.3.8](https://github.com/facebook/zstd)
- [LZMA-19.00](https://www.7-zip.org/sdk.html)
## Author
Hongtae Kim, (tiff2766@gmail.com)
## Liense
[BSD-3 License](http://opensource.org/licenses/BSD-3-Clause)