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.
 
 
 
 
Symmetry/orgfile.org

230 lines
10 KiB

#+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
debug_draw_enabled: true
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: true
msaa_levels: 8
*** Keybindings
# All keys are parsed by comparing the output of SDL_GetKeyname
# Each line represents a keybinding
Move_Forward: W
# Multiple keys to a single binding are specified with commas
Move_Backward: S,Down
# Combinations are specified with a hyphen/dash
Quit: Left Ctrl-Q
*** 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?
** DONE Fix input lag and other framerate related issues
- State "DONE" from "TODO" [2017-05-07 Sun 18:40]
** 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
** TODO Mapping actions to keybindings, for example map action "Jump" to Space key etc
** 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 Show SDL dialogbox if we cannot launch at all?
** DONE Writing back to config file
- State "DONE" from "TODO" [2017-05-08 Mon 00:57]
** DONE Reading from config file
- State "DONE" from "TODO" [2017-05-07 Sun 23:52]
** DONE Variant -> String conversion procedure. Use in editor for debug var slots
- State "DONE" from "TODO" [2017-05-07 Sun 18:43]
** 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 Stick with OpenAL or switch to SoLoud + SDL for sound?
** 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
** DONE Array-based Hashmaps
- State "DONE" from "TODO" [2017-05-07 Sun 18:42]
** TODO Sprite sheet animations
** TODO Replace orgfile with simple text readme and reduce duplication?
** TODO Ray picking
** TODO Remove reduntant "settings" structures and move all configuration stuff to config variables
** 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
x 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!