From 386e94db9153db54686bc55e1e2c74db583cae89 Mon Sep 17 00:00:00 2001 From: Doyle Date: Wed, 30 Nov 2016 22:58:09 +1100 Subject: [PATCH] Update readme.md with demo and revised milestones --- README.md | 46 ++++++++++++++++++---------------------------- 1 file changed, 18 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index b503955..0a92298 100644 --- a/README.md +++ b/README.md @@ -1,41 +1,31 @@ # 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. +![Asteroids Demo](extern/_assets/20161130_dengine_asteroids_low_q.gif) + ## 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 -- Custom Standard Library: (improved as is required) (e.g. strlen, atoi, itoa) -- Custom Math Library: (improved as is required) -- Custom String Library -- Custom Memory Allocator: alloc memory from preallocated blocks -- Custom XML Parser: for reading game data config - -### Rendering -- Animation playback: from spritesheets -- Batched rendering: minimise draw calls grouped on texture & color modulation -- Generate on runtime bitmap font sheet from font file -- Rendering sprites: through GLEW and GLFW to OpenGL programmable pipeline -- Rendering rects and text - -### 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 +- Asset Management (load data into intermediate formats) +- Audio API from OpenAL +- Basic 2D Game Mathematics/Physics (Vector, Trig, Explicit Euler) +- Collision Detection (Single Axis Theorem, Minkowski Sum/Diff, AABB) +- Debug Services & Displays +- Entity Component Systems +- IMGUI Systems +- Input Parsing +- Push-Buffer Memory Systems +- Small Size Array Optimisations +- Standard Library Replacements (e.g. atoi, strlen, itoa, string) +- Texture Atlas Support, Runtime Font Packing +- OpenGL 2D Rendering Pipeline & Batching Render Calls ## 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) -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 - [GLEW](http://glew.sourceforge.net/): Cross platform OpenGL wrapper.