storytime's People
storytime's Issues
Resource Manager
Add ResourceManager class to load assets like shaders, textures and more.
Add event dispatcher
Make project Visual Studio friendly
Revisit git submodules for libraries
Change as many dependencies as possible to git submodules
Public header
Problem
Storytime has to be included as a CMake subdirectory for includes in include/Storytime.h
to work.
Preferred solution
A public inlude file so that Storytime can be used as a library by simply adding that file to the include path and linking against it.
Refs, formatting and naming
- Make objects in engine into refs
- WONTFIX: Unnecessary and retains complete control over creation/destruction
- Refactor formatting & naming conventions
Update resources when building
Currently, the CMake project needs to be reloaded for resources to be added to build-folder. The CMake project is NOT reloaded when running project which is not ideal when f.ex. editing shaders.
Editor project
Add "editor" project to build the engine workflow using imgui
Precompiled header
CI using GitHub actions
Renderer statistics
- Add statistics to renderer to track number of vertices, indices etc.
- Show statistics on ImGUI window
Entity Component System
Implement the humble beginnings of an Entity Componen System.
- Add EnTT library
- Add entity class that manages components (with help from scene)
- Add a scene class that manages entities
ImGUI docking
Use the docking-version of ImGUI
ImGUI
- Add ImGUI library
- Add ImGUI render callbacks to layers
Batch renderer
Texture rendering
Add textures to quads and subsequently batch rendering
Add a framebuffer class
Profile logging tag performace
Description
I suspect the current use of logging tags (ST_TAG
), while really nice, is not optimal for performance and should therefore be profiled somehow.
Prerequisites
- Profiling tools
Possible solutions
- Convert tags to members
- This would probably allow me to remove, or at least stop using, the logging macros
- Could probably remove the tag macro as well if it was converted into a struct? Or can just use the Tag-function in the initializer?
Event categories
Add categories to events (using BIT
?)
Add tiling factor to texture shader
Improve shader class
- Load from file
- Add more logging
- Use string_view
Add test+mock framework
Alternatives
- Catch2+FakeIt
- GoogleTest+GoogleMock
Replace unsigned int with uint_Xt
Move main function from client to engine
- Move main function from sandbox to storytime. Get config from client by having client define external
getConfig
function likegetApplication
. - Copy client assets into engine build folder post build
- Delete existing build-folder before new builds to clean existing assets (or overwrite files during build)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.