- Added More Documentation
- Added some more notes to the planning doc regarding shared libraries - Started adding unit tests for the C++ lang library.
This commit is contained in:
14
PLANNING.md
14
PLANNING.md
@@ -41,6 +41,15 @@ assertions. **DO NOT USE EXCEPTIONS**.
|
||||
System implementations should be independent of architecture or platforms. i.e. the code of the graphics system should
|
||||
not care if OpenGL or Vulkan is used and should not use any direct calls to OpenGL or Vulkan.
|
||||
|
||||
The engine should not care about the types of objects loaded from a so/dll. In fact, most of the code should
|
||||
be type independent. Any shared information among a collection of objects should be held either implicitly or explicitly
|
||||
in the super-class. It will be the responsibility of the linked code to initialize and cleanup the objects related to it.
|
||||
This principle should extend to the submodules of the engine.
|
||||
|
||||
It is also best to avoid objects having behaviour that is not defined by the system they are in. There are some exceptions
|
||||
in extensions or mods and should be given configurability and programmability within those systems and their stages.
|
||||
This however can be acheived using events at different stages of those engines that are on-demand.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -68,6 +77,9 @@ So far this is implemented on an as-needed basis. A full implementation should b
|
||||
|
||||
Implement math functions according to the [OpenGL 4.6 Shading Language Specification](https://registry.khronos.org/OpenGL/specs/gl/GLSLangSpec.4.60.pdf).
|
||||
|
||||
"Extensions" has a different meaning here. Extensions for the math library are any functions that are not defined within
|
||||
the Specification.
|
||||
|
||||
Additional extensions should be implemented to provide standard definitions for functions predominantly related
|
||||
to Linear Algebra, Mathematical Analysis, and Discrete Analysis. Additional extensions will be implemented on a
|
||||
as-needed basis.
|
||||
@@ -107,7 +119,6 @@ Here are essential data-structures not specified in the C++ stdlib:
|
||||
|
||||
## Format Processing (`fproc`)
|
||||
|
||||
No, this won't include Machine Learning, it will mostly include tools for processing human-readable files.
|
||||
fennec should be able to use Doxygen and LaTeX externally. Consider including binaries with releases.
|
||||
|
||||
* String Analysis (`fproc/strings`)
|
||||
@@ -167,6 +178,7 @@ This will be the core of the engine.
|
||||
- Event System
|
||||
- Most events will fire at the start of the next tick, especially those related to physics and input.
|
||||
- Events for graphics or audio should propagate immediately.
|
||||
- Events for stages should also propagate immediately, this is to support extensions and mods.
|
||||
- Core Engine Loop
|
||||
- System Manager
|
||||
- Ticks vs. Frames
|
||||
|
||||
Reference in New Issue
Block a user