Skip to content

Code Design Philosophy

These are core designs that Engine3D and other Engine3D libraries should seek to achieve with every design decision, line written, and architectural design changes made.

Design.1 Multi Targeted

Engine3D and other Engine3D libraries should work on all platforms Windows, Linux, and Mac. As long the appropriate compiler or cross-compiler is used.

Design 2 - Light Weight

Engine3D drivers, core, and utility code should be kept lightweight. Meaning ensuring that if things need to be allocated that they are only decided if no other option is proposed. Ensure that when doing allocations that YOU DO NOT use raw pointers. If you have to use pointers ask yourself the reason to use pointers. If you need to use pointers, specifically use smart pointers (shared_ptr, unique_ptr).

Design 3 - Minimalist

Engine3D strives to be as simple and no simpler. Core, utility, and libraries should be straight forward to the programmers to understand with added complexity when no other option exists.

Design 4 - Safe and Reliability

Engine3D and it's style guide aim to use patterns, techniques, documentation to help reduce safety issues and improve reliability.