Open AurumByte opened 3 years ago
Could I be assigned to this issue?
Hello there! You can totally go ahead and get started :) I know I haven't been that clear on this issue, so I have updated it to provide a better roadmap for this issue.
Hello there!
You can totally go ahead and get started :) I know I haven't been that clear on this issue, so I have updated it to provide a better roadmap for this issue.
Thanks for the updated roadmap, its much clearer what I need to do now 😄. One question though. When you say Benchmarks, what kind of benchmarks are you looking for exactly? Like, benchmarks for rendering and stuff?
When you say Benchmarks, what kind of benchmarks are you looking for exactly? Like, benchmarks for rendering and stuff?
Yes. While you can't really benchmark the entire program (the update and render loops run infinitely unless closed), you can still benchmark the time it takes to reach a certain point in the program under certain conditions, like for example:
I am rendering 100 squares, how long does it take to finish rendering one frame, and so on like that. You can also benchmark the responsiveness of the engine in doing certain tasks, like loading the window itself, for instance...
By benchmarking, we end up trying to put the engine under stress and see how it performs. If it is really slow in some aspects, it should be looked at as an issue and must be fixed, and if it is fast, well, it can always be faster xD
When you say Benchmarks, what kind of benchmarks are you looking for exactly? Like, benchmarks for rendering and stuff?
Yes. While you can't really benchmark the entire program (the update and render loops run infinitely unless closed), you can still benchmark the time it takes to reach a certain point in the program under certain conditions, like for example:
I am rendering 100 squares, how long does it take to finish rendering one frame, and so on like that. You can also benchmark the responsiveness of the engine in doing certain tasks, like loading the window itself, for instance...
By benchmarking, we end up trying to put the engine under stress and see how it performs. If it is really slow in some aspects, it should be looked at as an issue and must be fixed, and if it is fast, well, it can always be faster xD
But shouldn't that type of benchmarking be handled separately from unit tests? Unit tests test if code works, and benchmarks measure the efficiency for the code. Shouldn't those be separated?
yes, but then again, they will end up in separate classes at most, as the respective benchmarks and unit tests will be put in their respective modules. You won't be finding physics based tests in the core engine module and vice versa.
Preferably, the Unit tests will be run first, and if they pass, the benchmarks will be run right after, so we have a nice and rather fail safe system, with the benchmarks only being run when the tests pass. Since we are mostly testing the core engine for now, we will have to separate the unit tests from the benchmarks, but both don't have to be limited to only certain modules, as every part of the engine can be benchmarked for performance...
To be honest, Its my mistake that I just plainly stated "benchmarks" rather than to detail it out, so I'll update that bit quickly. thanks for pointing it out :+1:
Makes sense, thanks for the clarification 👍
There we go, I hope everything is clear now. If there are any further clarifications, don't hesitate to give me a ping, I'll be happy to help :smile:
@YeffyCodeGit Lets put this issue on hold until the above mentioned issue is fixed
Yep, sounds good 👍
SypherEngine doesn't have Unit tests yet... so adding them is gonna be a must
Tests:
[ ] Some Basic Tests for the Utility classes (Mathf, Vector2 etc.)
More to be added to this soon, but that's it for now