42 Commits

Author SHA1 Message Date
339ae38b38 Simplify shaders, enable coloring of primitives 2016-11-12 01:17:30 +11:00
332888f3b5 Switch mem allocation to custom memory block
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.
2016-09-24 14:43:59 +10:00
7cb13b3cf8 Add additional entity struct data
Attempting to add child weapon data to an entity has revealed the need for an
entity origin to which children start transformations from. Worth exploring
scene graphs in the future.
2016-09-15 03:20:13 +10:00
4c38abc672 Integrate sfx audio into battle 2016-09-01 02:18:43 +10:00
5cccd3ebe8 Switch audio to hash table implementation 2016-08-31 19:59:56 +10:00
f6943e5efb Const asset and entity functions, minor clean up 2016-08-31 16:40:41 +10:00
e9db7b0570 Convert subtextures to use hash tables
Also clean up and add some block comments to aid code separation mainly in
AssetManager.
2016-08-30 18:42:37 +10:00
8b0f2f93e3 Use better generic hashtable implement. for assets 2016-08-30 14:19:18 +10:00
c93e6ca37c Pull out xml loading to assetmanager code 2016-08-30 00:11:00 +10:00
1d09bdfa20 Draft implementation of hash tabled textures 2016-08-27 04:15:13 +10:00
7ca42f781a Start merging hash table access into assets
Basic implementation with many pre-existing features disabled untill all
parts of the system that interact with the assets transitions over.
2016-08-25 02:06:32 +10:00
b43754986f Load sprite sheet into new atlas structure 2016-08-24 18:31:26 +10:00
90068d2c64 Add string length in pixel func, add button label 2016-08-19 00:25:43 +10:00
e90b31de55 Separate UI code into own file 2016-08-17 18:04:51 +10:00
190822c1f6 Add entity attack audio cue 2016-07-28 22:17:32 +10:00
85becdfd6c Merge the game to dengine, reduce header coupling
Until engine architecture can clearly be separated from the game, i.e.
notion of entity storage belonging to game and concept of entity belonging
to engine, worlds/scenes belonging to game or engine- the project will
only refer to Dengine.
2016-07-28 15:19:23 +10:00
ac775b39c2 Add error checking to Audio API 2016-07-28 13:11:30 +10:00
84a0f755ea Abstract audio playback into own file 2016-07-27 01:34:26 +10:00
71faaa78c4 Add openal-soft dependency, update opengl macro 2016-07-24 22:19:25 +10:00
fd94eb5afd Mobs battle with hero, engine architect. changes
Mobs battle in real-time with the hero when in range. Start encapsulating
logic into entityStateSwitch() to organise entity properties changing
between different states.

Introduce basic concept of memory management in MemoryArena. Begin passing
around a memory object to track memory usage and eventually delegate
memory allocations through. Remove the old memory tracker in the debug
object and incorporate into engine primarily.

Add a debug console for logging information and events to the screen in
a console-like fashion. Debug is now initialised after the game, this is
so that you can pass the game's memory arena and font file to the debug
services. Debug services now properly initialise debug element positions
from this information and not through the update routine.
2016-07-19 21:19:26 +10:00
403999b566 Change Animation names, stop input parse on attack 2016-07-19 13:32:31 +10:00
b8b76cecd3 Switch entity anims to use references to assets 2016-07-19 03:47:32 +10:00
7971b10b74 Remove int v2 type, change V2i to cast i32 to f32
Mixing and matching V2 int and float types in the code creates too much
necessary work when an integer implementation has to interact with float
implementation. Let V2i create the cast for us and use floats for all
vector operations since they are mostly mathematic.
2016-07-17 23:45:59 +10:00
d0b4c99787 Create empty texture idea, change function scopes
Some functions which should not be exposed in the API have been switched
to INTERNAL scope. We have a notion of an empty texture in World Traveller
that we can pass in situations where we just want to render a solid
colour with no associated texture.

The alternative to this was creating a separate shader for rendering
primitives but would require at some point to expose the AssetManager to
the renderer or the user on behalf has to manually switch shaders before
rendering (non-intuitive).
2016-07-16 17:15:03 +10:00
86b4d1e206 Add distance to battle range metric in pixels 2016-07-16 02:34:44 +10:00
12fbc1000e Basic framework for scaling text, unimplemented 2016-07-15 18:34:23 +10:00
0551f05e73 Rotate around entity center, update math notation
Change #define math functions to uppercase for consistency
2016-07-14 23:15:42 +10:00
b1875077b7 Additional debug string rendering infrastructure
Separate notion of rendering a static string, i.e. for debug display that
is absolutely positioned, and rendering of a regular string that moves
with the game camera.
2016-07-12 18:11:31 +10:00
d82afe49d0 Add memory allocation tracking data to debug state 2016-07-09 21:42:36 +10:00
1f364f7024 Update debug data architecture and methods 2016-07-09 20:46:04 +10:00
c9fc34aee1 Move rendering of tiles into rendering of entities
Downgraded background rendering to each tile individually (no batching)
temporarily such that we can render all entities in one function.
2016-07-08 16:09:18 +10:00
46629a489a Add debug rendering, fix misaligned pos render bug
Rendering using a non-default quad specifies normalised coordinates
relative to the frame buffer size. Hence each render of these frames
should origin from (0,0) any other value is invalid.
2016-07-08 02:45:37 +10:00
a04c43681d Removed rounding in glyphs per row overestimating 2016-07-07 22:44:22 +10:00
13a2152bf6 Correctly align text rendering to baseline 2016-07-07 22:30:06 +10:00
5ef54e16be Improved string rendering with text advance metric 2016-06-30 00:14:07 +10:00
d8ee46611f Renderer calculates NDC coordinates from screen coords 2016-06-29 20:44:35 +10:00
fa83daac60 Text rendering to screen, assetmanager merged to gamestate 2016-06-29 18:23:51 +10:00
ef112fa4cb Flip font texture vertically on atlas creation 2016-06-29 14:04:35 +10:00
e03d3fd14a Rudimentary font rasterisation at runtime with STB 2016-06-29 03:17:03 +10:00
76d6dfcf2f Change notation for dengine headers 2016-06-28 16:00:03 +10:00
e638724c75 Add tile grid and atlas concept to game 2016-06-25 21:23:15 +10:00
753d700ca6 Complete port over to C, replace glm math lib 2016-06-18 19:12:09 +10:00