Update readme.md with demo and revised milestones

This commit is contained in:
Doyle 2016-11-30 22:58:09 +11:00 committed by GitHub
parent 2fc3a0a941
commit 386e94db91

View File

@ -1,41 +1,31 @@
# Dengine # 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. 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.
![Asteroids Demo](extern/_assets/20161130_dengine_asteroids_low_q.gif)
## Milestones ## Milestones
Milestones/features/capabilities that have been added to the engine. Features/research that has been implemented at one point in the making of the engine.
### "Handmade" API - Asset Management (load data into intermediate formats)
- Custom Standard Library: (improved as is required) (e.g. strlen, atoi, itoa) - Audio API from OpenAL
- Custom Math Library: (improved as is required) - Basic 2D Game Mathematics/Physics (Vector, Trig, Explicit Euler)
- Custom String Library - Collision Detection (Single Axis Theorem, Minkowski Sum/Diff, AABB)
- Custom Memory Allocator: alloc memory from preallocated blocks - Debug Services & Displays
- Custom XML Parser: for reading game data config - Entity Component Systems
- IMGUI Systems
### Rendering - Input Parsing
- Animation playback: from spritesheets - Push-Buffer Memory Systems
- Batched rendering: minimise draw calls grouped on texture & color modulation - Small Size Array Optimisations
- Generate on runtime bitmap font sheet from font file - Standard Library Replacements (e.g. atoi, strlen, itoa, string)
- Rendering sprites: through GLEW and GLFW to OpenGL programmable pipeline - Texture Atlas Support, Runtime Font Packing
- Rendering rects and text - OpenGL 2D Rendering Pipeline & Batching Render Calls
### Other
- Audio API: through OpenAL and STB Vorbis for audio functionality
- Audio streaming
- Asset loading system using hashtables
- Collision using AABB
- Debug services/display
- Input parsing, delayed, raw read
- IMGUI style GUI: Buttons, textfields, scroll bars
- Moveable windows
- Primitive entity system
- Primitive battle system
## Building ## 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. Dengine is currently being developed using Visual Studio 2015. You can build the project by executing the **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.](http://kcat.strangesoft.net/openal.html) Additionally, an OpenAL-Soft DLL is required which can be downloaded from the Window pre-built binaries of [OpenAL here.](http://kcat.strangesoft.net/openal.html)
NOTE: Assets are not included in the repository. NOTE: Assets are not included in the repository. This only excludes audio as game assets are rendered with vertexes.
## Dependencies ## Dependencies
- [GLEW](http://glew.sourceforge.net/): Cross platform OpenGL wrapper. - [GLEW](http://glew.sourceforge.net/): Cross platform OpenGL wrapper.