#+AUTHOR:Shariq Shah #+EMAIL:bluerriq@gmail.com #+TITLE:Project Symmetry * Project Symmetry ** What? A topdown 2D shooter exploring symmetry. ** License All the code in this repository is under GPLv3, see LICENSE for more information ** File format specifications *** Entity // Comment, Sample entity definition in file, paremeters left out are set to defaults // Empty line at the end specifies end of entity definition entity: "Something" position: 0 0 0 scale: 1 1 1 rotation: 0 0 0 1 model: "suzanne.pamesh" material: "blinn_phong" diffuse_color: 1 0 0 1 diffuse_texture: "checkered.tga" specular: 0.55 *** Configuration Variables a.k.a cfg-vars // Comment render_width: 1024 render_height: 1024 fog_enabled: 1 fog_color: 0.5 0.2 0.2 1 // There can be comments or empty newlines in between unlike entity definitions ambient_light: 0.1 0.1 0.1 1 msaa: 1 msaa_levels: 8 *** Keybindings *** Level/Scene *** Materials *** Mesh/Geometry * Things TODO ** 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 ** DONE Shaders - State "DONE" from "TODO" [2015-07-11 Sat 17:57] - set asset folder - load/compile shader ** DONE Geometry - State "DONE" from "TODO" [2015-07-11 Sat 17:57] ** DONE change struct usage - State "DONE" from "TODO" [2015-07-21 Tue 15:13] ** DONE change Array implementation - State "DONE" from "TODO" [2015-07-25 Sat 20:27] ** DONE resolve vec-types sizes - State "DONE" from "TODO" [2015-07-25 Sat 20:27] ** DONE Transform - State "DONE" from "TODO" [2015-07-26 Sun 18:01] ** DONE Deltatime - State "DONE" from "TODO" [2015-07-27 Mon 11:54] ** 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] ** DONE Fix readme markdown - State "DONE" from "TODO" [2015-12-10 Thu 16:36] ** DONE Framebuffer and resolution independent rendering - State "DONE" from "TODO" [2016-05-27 Fri 18:02] ** DONE A simpler build system without dependencies - State "DONE" from "TODO" [2016-05-27 Fri 14:50] ** DONE Remove dependencies - State "DONE" from "TODO" [2017-02-26 Sun 01:46] - glfw3 - glew ** DONE Remove Kazmath dependency - State "DONE" from "TODO" [2015-12-10 Thu 16:36] ** DONE Entity - State "DONE" from "TODO" [2015-09-15 Tue 12:17] ** TODO Positive and negative values for input_maps and returning corresponding values when they are true ** DONE Find a permanent solution for build system - State "DONE" from "TODO" [2017-03-15 Wed 00:59] ** TODO Text rendering using freetype or stb lib ** DONE Textures - State "DONE" from "TODO" [2015-10-09 Fri 18:47] ** DONE Camera - State "DONE" from "TODO" [2015-08-19 Wed 13:30] ** DONE Test render - State "DONE" from "TODO" [2015-08-19 Wed 13:30] ** TODO Bounding Boxes - Recalculated bounding boxes for rotated meshes? ** TODO File extension checking for asset loading ** DONE Materials - State "DONE" from "TODO" [2015-10-13 Tue 19:38] ** DONE Mesh/Model - State "DONE" from "TODO" [2015-10-13 Tue 19:38] ** TODO Add modifiers to input maps to enable combinations for example, c-x, m-k etc ** TODO Only allocate hashmap bucket when required ** DONE Heirarchical Transforms ** DONE Materials with textures - State "DONE" from "TODO" [2015-10-15 Thu 21:21] ** DONE Lights! - State "DONE" from "TODO" [2017-03-14 Tue 00:31] ** DONE Fix problems with texture units - State "DONE" from "TODO" [2016-05-30 Mon 00:57] ** CANCELED Draw light volumes - State "CANCELED" from "TODO" [2017-02-26 Sun 15:39] \\ Deferred rendering on hold for now. ** DONE Fix problems with frustrum culling - State "DONE" from "TODO" [2017-03-26 Sun 01:33] ** TODO 2d drawing routines - Sprite batching ** DONE Gui - State "DONE" from "TODO" [2017-03-15 Wed 23:41] ** CANCELED Image based lighting? - State "CANCELED" from "TODO" [2017-03-14 Tue 00:31] \\ Not a requirement for current project ** CANCELED Deferred rendering? - State "CANCELED" from "TODO" [2017-02-26 Sun 01:49] \\ Sticking with forward rendering for now and focusing on tools etc. ** DONE Fix mouse bugs on windows - State "DONE" from "TODO" [2017-03-25 Sat 17:27] ** TODO Configuration/Settings load/save handling ** DONE Fix mousewheel bugs and gui not responding to mousewheel input - State "DONE" from "TODO" [2017-03-19 Sun 01:31] ** TODO Ability to mark meshes for debug rendering with possibility of different color for each? ** TODO Setup cross compilation with mingw or stick to msvc? ** TODO Add marking or queuing up custom meshes for debug render with particular transform and color for rendering bounding spheres for example ** DONE Toggleable debug drawing for meshes - State "DONE" from "TODO" [2017-03-18 Sat 16:18] ** TODO Interleaved vbos for meshes and changes to blender exporter accordingly ** TODO Enumerate and save all the uniform and attribute positions in shader when it is added and cache them in shader object? ** TODO Physics/Collision detection in 2d ** 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 ** TODO Allow passsing base path as commandline argument? ** TODO Variant -> String conversion procedure. Use in editor for debug var slots ** DONE Add strings and booleans to variant types - State "DONE" from "TODO" [2017-03-29 Wed 00:23] ** DONE Fix Key release not being reported - State "DONE" from "TODO" [2017-03-26 Sun 01:16] ** TODO Better handling incase assets folder is not found? ** DONE OpenAL not working in releasebuilds - State "DONE" from "TODO" [2017-03-25 Sat 02:06] ** DONE 3d sound using OpenAL - State "DONE" from "TODO" [2017-03-23 Thu 01:43] ** TODO Ogg format loading and playback ** TODO Sound streaming ** TODO Implment missing sound source properties (inner/outer cone, getting sound source data) ** TODO Ingame console and console commands etc ** TODO Allow binding/unbinding input maps to functions at runtime, for example if input map "Recompute" is triggered, it would call some function that can recompute bounding spheres. ** TODO Better handling of wav format checking at load time ** TODO Array-based Hashmaps ** TODO Sprite sheet animations ** TODO Replace orgfile with simple text readme and reduce duplication? ** TODO Ray picking ** TODO Shadow maps ** TODO Log output to file on every run ** TODO Print processor stats and machine capabilites RAM etc on every run to log. ** TODO Milestone: Pong! - In order to put things into perspective and get a feel for what really needs to be prioritized, a very small but actual game release is necessary. - Release platforms: Windows and Linux - Makefile additions. Try to compile game as a dynamically loaded library with ability to reload on recompile - Separation between game and engine base - Game .so with init, update and cleanup functions - Configuration files and "cvars" load/reload - Keybindings in config - Log output on every run. ** TODO Do input maps really need to be queried by their string names? ** TODO Reloading all the things! (textures/shaders/models/settings/entities etc) ** TODO Separate Debug/Editor camera from the active camera in the scene that can be switched to at any time ** TODO Use hashmaps for debugvar slots in editor ** DONE Live data views in editor - State "DONE" from "TODO" [2017-03-22 Wed 02:14] ** DONE Camera resize on window reisze - State "DONE" from "TODO" [2017-03-20 Mon 15:22] ** DONE Resizable framebuffers and textures - State "DONE" from "TODO" [2017-03-16 Thu 22:50] ** DONE Support for multiple color attachments in framebuffers? - State "DONE" from "TODO" [2017-03-16 Thu 22:51] ** TODO Multisampled textures and framebuffers ** DONE Better way to store and manage textures attached to framebuffers - State "DONE" from "TODO" [2017-03-16 Thu 22:51] ** TODO Validate necessary assets at game launch ** TODO Gamma correctness ** DONE Variant type - State "DONE" from "TODO" [2017-03-22 Wed 02:14] ** TODO Log and debug/stats output in gui ** TODO Editor ** TODO Event Subsystem ** TODO Keybindings for gui? ** TODO Textual/Binary format for data serialization and persistance ** TODO Better logging ** TODO Hatching/Ink rendering style ** DONE Fix frustum culling sometimes not working - State "DONE" from "TODO" [2017-03-25 Sat 19:10] ** DONE Compile and test on windows - State "DONE" from "TODO" [2017-03-14 Tue 00:32] ** TODO Array based string type comptible with cstring(char*) ** DONE Fix mouse bugs - State "DONE" from "TODO" [2017-03-01 Wed 00:45] ** DONE Fix ** DONE issues with opengl context showing 2.1 only - State "DONE" from "TODO" [2017-03-19 Sun 14:03] - State "DONE" from "TODO" [2017-02-26 Sun 15:39] ** TODO Improve this readme ** TODO ??? ** TODO Profit!