Cross-platform 3D Game Library for C++ and Python.
This project contains two frameworks, 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++ and supports full multi-threaded, 64-bits environments.
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.)
- 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
- 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 7.0 or later. (for OpenGL ES 3.0)
Android 4.3 or later(Not yet, I'm working)- JNI birdge required (I'll merge project as soon as possible.)
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 2015 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.
- Deferred Rendering System.
- Game Physics & Collision Library
- Useful Game Libraries
- Extensible UI
- Scene Editor
- Download prebuilt library for your platform.
- Win32 i386
- Win32 x64
- Mac OS X (Universal)
- Apple iOS (Universal)
- Extract into PyDK/Python/
example for OSX: PyDK/Python/OSX/libpython3.5.a
- Build!
- Or you can build from sources on GitHub
With this python module, you can write your codes with your favorite editors and system installed python.
Extract file into your Python site-packages dir.
- Mac OS X (outdated)
- Windows i386 (outdated)
- Windows x64 (outdated)
- 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)