A 3d fps game made in OpenGL
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Shariq Shah 14992ad143 Fixed glaring bug in al_check macro 9 years ago
assets Added window to render settings to editor ui and updated nuklear version 9 years ago
build/linux Fixed glaring bug in al_check macro 9 years ago
include Added OpenAL-soft for sound playback 9 years ago
libs Added OpenAL-soft for sound playback 9 years ago
src Fixed glaring bug in al_check macro 9 years ago
.dir-locals.el Made several modifications, fixes and additions to compile and run on windows 9 years ago
.hgignore Switched from git to mercurial 9 years ago
CMakeLists.txt Added OpenAL-soft for sound playback 9 years ago
LICENSE Added LICENSE file 10 years ago
README Added window to render settings to editor ui and updated nuklear version 9 years ago
orgfile.org Fixed glaring bug in al_check macro 9 years ago

README

						   __________________

PROJECT SYMMETRY

Shariq Shah
__________________


Table of Contents
_________________

1 Project Symmetry
.. 1.1 What?
.. 1.2 Why?
.. 1.3 License
2 Things TODO
.. 2.1 DONE Input
.. 2.2 DONE Shaders
.. 2.3 DONE Geometry
.. 2.4 DONE change struct usage
.. 2.5 DONE change Array implementation
.. 2.6 DONE resolve vec-types sizes
.. 2.7 DONE Transform
.. 2.8 DONE Deltatime
.. 2.9 DONE Investigate about Exit() and at_exit() functions and whether to use them or not.
.. 2.10 DONE Fix readme markdown
.. 2.11 DONE Framebuffer and resolution independent rendering
.. 2.12 DONE A simpler build system without dependencies
.. 2.13 DONE Remove dependencies
.. 2.14 DONE Remove Kazmath dependency
.. 2.15 DONE Entity
.. 2.16 TODO Positive and negative values for input_maps and returning corresponding values when they are true
.. 2.17 DONE Find a permanent solution for build system
.. 2.18 TODO Text rendering using freetype or stb lib
.. 2.19 DONE Textures
.. 2.20 DONE Camera
.. 2.21 DONE Test render
.. 2.22 TODO Bounding Boxes
.. 2.23 TODO File extension checking for asset loading
.. 2.24 DONE Materials
.. 2.25 DONE Mesh/Model
.. 2.26 TODO Add modifiers to input maps to enable combinations for example, c-x, m-k etc
.. 2.27 DONE Heirarchical Transforms
.. 2.28 DONE Materials with textures
.. 2.29 DONE Lights!
.. 2.30 DONE Fix problems with texture units
.. 2.31 CANCELED Draw light volumes
.. 2.32 TODO Fix problems with frustrum culling
.. 2.33 TODO 2d drawing routines
.. 2.34 DONE Gui
.. 2.35 CANCELED Image based lighting?
.. 2.36 CANCELED Deferred rendering?
.. 2.37 TODO Fix mouse bugs on windows
.. 2.38 DONE Fix mousewheel bugs and gui not responding to mousewheel input
.. 2.39 TODO Ability to mark meshes for debug rendering with possibility of different color for each?
.. 2.40 TODO Setup cross compilation with mingw or stick to msvc?
.. 2.41 DONE Toggleable debug drawing for meshes
.. 2.42 TODO Interleaved vbos for meshes and changes to blender exporter accordingly
.. 2.43 TODO Enumerate and save all the uniform and attribute positions in shader when it is added and cache them in shader object?
.. 2.44 TODO Physics/Collision detection in 2d
.. 2.45 TODO Complete gui integration
.. 2.46 TODO Allow passsing base path as commandline argument?
.. 2.47 TODO Sprite sheet animations
.. 2.48 DONE Resizable framebuffers and textures
.. 2.49 DONE Support for multiple color attachments in framebuffers?
.. 2.50 TODO Multisampled textures and framebuffers
.. 2.51 DONE Better way to store and manage textures attached to framebuffers
.. 2.52 TODO Validate necessary assets at game launch
.. 2.53 TODO Variant type
.. 2.54 TODO Log and debug/stats output in gui
.. 2.55 TODO Editor
.. 2.56 TODO Event Subsystem
.. 2.57 TODO Keybindings for gui?
.. 2.58 DONE Compile and test on windows
.. 2.59 TODO Array based string type comptible with cstring(char*)
.. 2.60 DONE Fix mouse bugs
.. 2.61 DONE Fix
.. 2.62 TODO issues with opengl context showing 2.1 only
.. 2.63 TODO Improve this readme
.. 2.64 TODO ???
.. 2.65 TODO Profit!


1 Project Symmetry
==================

1.1 What?
~~~~~~~~~

A topdown 2D shooter exploring symmetry.


1.2 Why?
~~~~~~~~

- To create a platform on which i will base further projects on.
- To learn and remove as many black boxes as possible.
- Profit!?!


1.3 License
~~~~~~~~~~~

All the code in this repository is under GPLv3, see LICENSE for more
information


2 Things TODO
=============

2.1 DONE Input
~~~~~~~~~~~~~~

- State "DONE" from "TODO" [2015-07-02 Thu 01:24]
- Input maps (addition/removal)
- Adding removing keys to input maps
- Changing map na


2.2 DONE Shaders
~~~~~~~~~~~~~~~~

- State "DONE" from "TODO" [2015-07-11 Sat 17:57]
- set asset folder
- load/compile shader


2.3 DONE Geometry
~~~~~~~~~~~~~~~~~

- State "DONE" from "TODO" [2015-07-11 Sat 17:57]


2.4 DONE change struct usage
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- State "DONE" from "TODO" [2015-07-21 Tue 15:13]


2.5 DONE change Array implementation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- State "DONE" from "TODO" [2015-07-25 Sat 20:27]


2.6 DONE resolve vec-types sizes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- State "DONE" from "TODO" [2015-07-25 Sat 20:27]


2.7 DONE Transform
~~~~~~~~~~~~~~~~~~

- State "DONE" from "TODO" [2015-07-26 Sun 18:01]


2.8 DONE Deltatime
~~~~~~~~~~~~~~~~~~

- State "DONE" from "TODO" [2015-07-27 Mon 11:54]


2.9 DONE Investigate about Exit() and at_exit() functions and whether to use them or not.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- State "DONE" from "TODO" [2015-08-02 Sun 19:09]


2.10 DONE Fix readme markdown
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- State "DONE" from "TODO" [2015-12-10 Thu 16:36]


2.11 DONE Framebuffer and resolution independent rendering
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- State "DONE" from "TODO" [2016-05-27 Fri 18:02]


2.12 DONE A simpler build system without dependencies
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- State "DONE" from "TODO" [2016-05-27 Fri 14:50]


2.13 DONE Remove dependencies
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- State "DONE" from "TODO" [2017-02-26 Sun 01:46]
- glfw3
- glew


2.14 DONE Remove Kazmath dependency
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- State "DONE" from "TODO" [2015-12-10 Thu 16:36]


2.15 DONE Entity
~~~~~~~~~~~~~~~~

- State "DONE" from "TODO" [2015-09-15 Tue 12:17]


2.16 TODO Positive and negative values for input_maps and returning corresponding values when they are true
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


2.17 DONE Find a permanent solution for build system
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- State "DONE" from "TODO" [2017-03-15 Wed 00:59]


2.18 TODO Text rendering using freetype or stb lib
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


2.19 DONE Textures
~~~~~~~~~~~~~~~~~~

- State "DONE" from "TODO" [2015-10-09 Fri 18:47]


2.20 DONE Camera
~~~~~~~~~~~~~~~~

- State "DONE" from "TODO" [2015-08-19 Wed 13:30]


2.21 DONE Test render
~~~~~~~~~~~~~~~~~~~~~

- State "DONE" from "TODO" [2015-08-19 Wed 13:30]


2.22 TODO Bounding Boxes
~~~~~~~~~~~~~~~~~~~~~~~~

- Recalculated bounding boxes for rotated meshes?


2.23 TODO File extension checking for asset loading
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


2.24 DONE Materials
~~~~~~~~~~~~~~~~~~~

- State "DONE" from "TODO" [2015-10-13 Tue 19:38]


2.25 DONE Mesh/Model
~~~~~~~~~~~~~~~~~~~~

- State "DONE" from "TODO" [2015-10-13 Tue 19:38]


2.26 TODO Add modifiers to input maps to enable combinations for example, c-x, m-k etc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


2.27 DONE Heirarchical Transforms
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


2.28 DONE Materials with textures
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- State "DONE" from "TODO" [2015-10-15 Thu 21:21]


2.29 DONE Lights!
~~~~~~~~~~~~~~~~~

- State "DONE" from "TODO" [2017-03-14 Tue 00:31]


2.30 DONE Fix problems with texture units
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- State "DONE" from "TODO" [2016-05-30 Mon 00:57]


2.31 CANCELED Draw light volumes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- State "CANCELED" from "TODO" [2017-02-26 Sun 15:39]
Deferred rendering on hold for now.


2.32 TODO Fix problems with frustrum culling
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- Recalculate bounding boxes for rotated meshes?


2.33 TODO 2d drawing routines
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- Sprite batching


2.34 DONE Gui
~~~~~~~~~~~~~

- State "DONE" from "TODO" [2017-03-15 Wed 23:41]


2.35 CANCELED Image based lighting?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- State "CANCELED" from "TODO" [2017-03-14 Tue 00:31]
Not a requirement for current project


2.36 CANCELED Deferred rendering?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- State "CANCELED" from "TODO" [2017-02-26 Sun 01:49]
Sticking with forward rendering for now and focusing on tools etc.


2.37 TODO Fix mouse bugs on windows
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


2.38 DONE Fix mousewheel bugs and gui not responding to mousewheel input
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- State "DONE" from "TODO" [2017-03-19 Sun 01:31]


2.39 TODO Ability to mark meshes for debug rendering with possibility of different color for each?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


2.40 TODO Setup cross compilation with mingw or stick to msvc?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


2.41 DONE Toggleable debug drawing for meshes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- State "DONE" from "TODO" [2017-03-18 Sat 16:18]


2.42 TODO Interleaved vbos for meshes and changes to blender exporter accordingly
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


2.43 TODO Enumerate and save all the uniform and attribute positions in shader when it is added and cache them in shader object?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


2.44 TODO Physics/Collision detection in 2d
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


2.45 TODO Complete gui integration
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

x Font selection x Font atlas proper cleanup
- Decoupled event handling of gui and input if possible
- Custom rendering for gui


2.46 TODO Allow passsing base path as commandline argument?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


2.47 TODO Sprite sheet animations
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


2.48 DONE Resizable framebuffers and textures
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- State "DONE" from "TODO" [2017-03-16 Thu 22:50]


2.49 DONE Support for multiple color attachments in framebuffers?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- State "DONE" from "TODO" [2017-03-16 Thu 22:51]


2.50 TODO Multisampled textures and framebuffers
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


2.51 DONE Better way to store and manage textures attached to framebuffers
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- State "DONE" from "TODO" [2017-03-16 Thu 22:51]


2.52 TODO Validate necessary assets at game launch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


2.53 TODO Variant type
~~~~~~~~~~~~~~~~~~~~~~


2.54 TODO Log and debug/stats output in gui
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


2.55 TODO Editor
~~~~~~~~~~~~~~~~


2.56 TODO Event Subsystem
~~~~~~~~~~~~~~~~~~~~~~~~~


2.57 TODO Keybindings for gui?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


2.58 DONE Compile and test on windows
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- State "DONE" from "TODO" [2017-03-14 Tue 00:32]


2.59 TODO Array based string type comptible with cstring(char*)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


2.60 DONE Fix mouse bugs
~~~~~~~~~~~~~~~~~~~~~~~~

- State "DONE" from "TODO" [2017-03-01 Wed 00:45]


2.61 DONE Fix
~~~~~~~~~~~~~


2.62 TODO issues with opengl context showing 2.1 only
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- State "DONE" from "TODO" [2017-02-26 Sun 15:39]


2.63 TODO Improve this readme
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


2.64 TODO ???
~~~~~~~~~~~~~


2.65 TODO Profit!
~~~~~~~~~~~~~~~~~