Doyle Thai
332888f3b5
No longer repeatedly invoke malloc for retrieving memory. Some operations still leak memory (notably audio streaming). We introduce notion of Transient and Permanent storage. Transient memory is used for data in memory that is temporarily allocated (i.e. graphics for that frame's output), and permanent as more like game state storage. We now give out pointers from a pre-allocated block of memory, so we have no allocation cost and benefits of reduced memory leaks. The transient block gets reset every frame. Any memory allocated within is cleared at no cost simply by rearranging the base pointer of the memory block. |
||
---|---|---|
data | ||
extern | ||
src | ||
.clang-format | ||
.gitattributes | ||
.gitignore | ||
Dengine.sln | ||
Dengine.vcxproj | ||
Dengine.vcxproj.filters | ||
README.md |
Dengine
Dengine is a 2d game engine developed with OpenGL and low-level libraries in C. The main goal of Dengine is to facilitate learning from many aspects of Computer Science. Alongside Dengine a game is being built which guides the development of features for the game. Dengine is inspired by Handmade Hero, with a focus on developing as many features with minimal libraries, such that it is not too time-consuming and counter-productive to do so.
Building
Dengine is currently being developed using Visual Studio 2015. You can build the project by executing the (preferred) build.bat in the src folder, or simply opening the project in Visual Studio and compiling.
Additionally, an OpenAL-Soft DLL is required which can be downloaded from the Window pre-built binaries of OpenAL here.
NOTE: Assets are not included in the repository.
Dependencies
- GLEW: Cross platform OpenGL wrapper.
- GLFW: Cross platform OpenGL Application creation.
- STB: Single file utility libraries by Sean Barrett.
- OpenAL-Soft: Software implementation of the OpenAL 3D audio API.