galaxy
galaxy copied to clipboard
Project: Spring Clean
Project:
- [x] Clang-Tidy.
- [x] MS Code Analysis.
- [x] Update Clang-Format config.
- [ ] Include-What-You-Use.
- [x] Repo Cleanup.
- [x] Readme Update.
- [x] External CI/CD.
- [ ] Linux Support.
- [x] Doxygen update.
- [ ] Doxygen Error Checking + Reporting (if found).
- [ ] CodeCov.
- [x] Automated Test Building.
- [x] Automated test running.
- [ ] Add supercluster images/readme/videos to repo readme.
- [x] Review Best Practices.
- [x] Improve project build speed.
- [ ] clang-format
External Dependencies:
- [x] Each External Dependency needs to be included in deps or be built with cmake + msbuild.
- [x] Ensure each is on a stable branch and is needed.
Optimizations:
- [ ] https://gameprogrammingpatterns.com/optimization-patterns.html
Algorithms:
- [x ] Generic Algorithms
- [x] zLib
- [x] Base64
- [x] Random Number Gen
- [x] gZip
ASync:
- [x] ThreadPool
- [x] Task
- [x] Timer
Audio:
- [x] Use OpenAL.
- [ ] Supported by SceneGraph.
- [x] Fully implement OpenAL specification.
- [ ] Needs reference to a global audio service.
- [ ] Audio and Threads need to be locked to a scene.
- [ ] Lua Support.
- [ ] Sound effects should be played without having to be instanciated repeatedly.
- [ ] Same with music.
Core:
- [x] Service Locator.
- [x] Configuration Header.
- [x] Configuration Loader.
ECS:
- [ ] Split Systems into Systems (single threaded) and processes (async). See https://old.reddit.com/r/gamedev/comments/ugr3wg/improving_upon_entity_component_systems/
Error Handling:
- [x] Async logging.
- [x] Compile Time logging.
- [x] Custom formatting support.
- [x] Logging to different sinks
- [x] Colour, Levels.
- [x] DateTime stamp.
- [x] Nice output format.
- [x] Console Sink
- [x] File Sink
Events:
- [x] Observer - Signals & Slots?
- [x] Dispatcher / Subscriber pattern
- [x] User input events.
FileSystem:
- [x] Serialization to JSON
- [x] zlib compressable serialized objects.
- Virtual FileSystem
- [x] Create File / Folder
- [x] Delete File / Folder
- [x] Map to a root folder
- [x] Binary archive support
- [x] read / write file
- [x] read / write binary file
- [x] read / write file dialog
- [x] List files in directory
- [x] search w/ hint
Meta:
- [x] Project related static configs.
- [x] Template metaprogramming helpers.
Platform:
- [x] Windows/Unix Terminal Setup
- [x] SubProcess launching.
Scripting:
- [x] Lua
- [x] Json