Important
This project is no longer under active development or maintenance.
For a more improved Vulkan library, please refer to the following repositories.
- For C++ FTVoxelEngine
- For Swift, Cross-platform SwiftVVD
Game Library for C++ and Python
This project contains two modules, DK and PyDK.
DK is core library for C++ and PyDK is Python bindings for DK.
A Lightweighted cross-platform Game Library.
This is low level game library written with C++.
You can use Python-script to improve productivity.
DK library has following contents with two frameworks layer.
- C++ Metaprograms (Type Libraries, etc.)
- Data Collections (Array, Map, Tuples, etc.)
- Object Management (SmartPointers, WeakRef, 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
- 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.)
- OpenGL Context Interface (OpenGL/OpenGL ES)
- 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.)
- Windows Vista or later.
- Mac OS X 10.9 or later.
- iOS 3.3 or later.
Android 2.3 or later(Not yet, I'm working)- JNI birdge required (I'll merge project as soon as possible.)
- You can see old version of JNI Bridge codes at https://github.com/tiff2766/DKTools_Legacy/tree/master/Extras/Android
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 inDKFramework/Private
- Visual Studio 2013 for Windows
- Xcode6 for Mac, iOS
- C++11 compiler
Python bindings for DK. (Python 3.4 or later).
You can build PyDK with or without python interpreter embedded.
- Download prebuilt library for your platform.
- Win32 i386: python3.4.2_Win32.zip
- Win32 x64: python3.4.2_Win32_x64.zip
- Mac OS X (Universal): python3.4.2_OSX.zip
- Apple iOS (Universal): python3.4.2_iOS.zip
- Extract into PyDK/Python/
example for OSX: PyDK/Python/OSX/libpython3.4.a - Build!
Extract file into your Python site-packages dir.
- Mac OS X
- Windows i386
- Windows x64
- It is strongly recommend to use dk module together. You can download dk module in this project.
Scripts/dk
- OpenAL-soft-1.15.1
- This is LGPL licensed, configured to build dynamic-library.
- Win32, Android only.
- Mac OS X, iOS use Apple's OpenAL framework.
- BulletPhysics-2.82 (svn rev: 2719)
- CxImage-7.02
- FreeType-2.5.3
- bzip2-1.0.6
- jpeg-9
- libFLAC-1.2.1
- libogg-1.3.1
- libpng-1.5.10
- libtiff-4.0.3
- libvorbis-1.3.3
- libxml2-2.9.0
- sqlite-3.7.15.2
- zlib-1.2.7
Hongtae Kim, (tiff2766@gmail.com)