- README.md Formatting
This commit is contained in:
47
README.md
47
README.md
@@ -53,8 +53,8 @@ Some main areas where the engine strays from the GNU standard includes the follo
|
||||
|
||||
fennec Standards:
|
||||
|
||||
* As per the GNU standard, macros should be `SCREAMING_SNAKE_CASE`. Additionally, Macros should be preceded by `<APP_NAME>_`.
|
||||
Macros that wrap C-Style functions may use normal `snake_case`.
|
||||
* As per the GNU standard, macros should be `SCREAMING_SNAKE_CASE`. Additionally, Macros should be preceded by
|
||||
`<APP_NAME>_`. Macros that wrap C-Style functions may use normal `snake_case`.
|
||||
|
||||
- Header Guards should be implemented using `#ifndef`, `#define`, and `#endif` for portability.
|
||||
The naming convention for Header Guards is as follows: `<APP_NAME>_<DIRECTORY_PATH>_<FILE_NAME>_H`.
|
||||
@@ -72,17 +72,18 @@ fennec Standards:
|
||||
<br><br>
|
||||
|
||||
<a id="f1"></a>
|
||||
<sup>[1]</sup> If we were to use the exception paradigm for all erroneous behaviour, we couldn't
|
||||
guarantee that the state will not be corrupted when an exception is thrown. The behaviour afterward is
|
||||
undefined because of this, and we also don't really know when, how, or where that exception will be handled.
|
||||
The assertion paradigm is better at handling this because you are defining erroneous behaviour in the code and how
|
||||
it is handled. In a debug build we can immediately halt the program, we don't care about the state afterward, only
|
||||
beforehand. Now for a release build, this is first and foremost a game engine, so we want to crash as gracefully as
|
||||
possible, prevent data loss, and get some debug information for it. fennec defines its own `assert` macro to
|
||||
be used, defining a hook in the private version of the function. This hook is used to clean up any state information
|
||||
within the engine and may be used to send immediate events to listeners so that outside functionality may decide
|
||||
how to handle the impending crash. In Debug Mode there is nothing that can be done to stop the crash, as soon
|
||||
as the branch finishes, `abort()` will be called.
|
||||
<sup>[1]</sup> If we were to use the exception paradigm for all erroneous behaviour, we couldn't guarantee
|
||||
that the state will not be corrupted when an exception is thrown. The behaviour afterward is undefined
|
||||
because of this, and we also don't really know when, how, or where that exception will be handled.
|
||||
The assertion paradigm is better at handling this because you are defining erroneous behaviour in the
|
||||
code and how it is handled. In a debug build we can immediately halt the program, we don't care about
|
||||
the state afterward, only beforehand. Now for a release build, this is first and foremost a game engine,
|
||||
so we want to crash as gracefully as possible, prevent data loss, and get some debug information for it.
|
||||
fennec defines its own `assert` macro to be used, defining a hook in the private version of the
|
||||
function. This hook is used to clean up any state information within the engine and may be used to send
|
||||
immediate events to listeners so that outside functionality may decide how to handle the impending crash.
|
||||
In Debug Mode there is nothing that can be done to stop the crash, as soon as the branch finishes,
|
||||
`abort()` will be called.
|
||||
|
||||
|
||||
<br>
|
||||
@@ -140,6 +141,11 @@ for more info.
|
||||
  By default, the CMake generator used is Ninja, which requires Ninja to be installed. You can modify the
|
||||
build scripts to use another build manager, see the [CMake documentation for available generators](https://cmake.org/cmake/help/latest/manual/cmake-generators.7.html).
|
||||
|
||||
|
||||
  I will at no point provide official cross-compilation toolchains for fennec, if you wish to compile your project for
|
||||
both Windows and Linux, working on Windows with WSL is likely your best option besides dual-booting. For Android and
|
||||
iOS, using the GCC and Clang cross-compilation toolchains, respectively, will suffice.
|
||||
|
||||
<br>
|
||||
|
||||
<a id="building-on-windows"></a>
|
||||
@@ -202,33 +208,30 @@ information displayed is correct.
|
||||
|
||||
### Licensing
|
||||
|
||||
The following content of this section is not legal advice, nor is it legally binding, and nor does it change the terms of the license.
|
||||
The following content of this section is not legal advice, nor is it legally binding, and nor does it change the terms
|
||||
of the license. Please seek legal council if you have any concerns.
|
||||
|
||||
fennec is licensed under GPLv3. The primary reason for the choice of license is to dissuade corporations from modifying
|
||||
  fennec is licensed under GPLv3. The primary reason for the choice of license is to dissuade corporations from modifying
|
||||
fennec and using it in a commercial manner. This of course does not bar them from using fennec commercially, however
|
||||
it will prevent them from being able to make the derivative work proprietary. You are free to use and redistribute
|
||||
fennec however you wish according to the terms of the license, which does not bar you from commercializing software
|
||||
based on fennec.
|
||||
|
||||
If you wish to protect your game files, assets and generated content do not constitute a covered work and may be
|
||||
  If you wish to protect your game files, assets and generated content do not constitute a covered work and may be
|
||||
copyrighted under a non-compliant license. Think of it in terms of using Blender to create a mesh for a game, then
|
||||
licensing that mesh under another license.
|
||||
|
||||
Any code that is linked against fennec or uses any part is by definition a covered work must be licensed under GPLv3.
|
||||
|
||||
As long as you use the official editor, it will properly include licenses in project content when provided a license
|
||||
  As long as you use the official editor, it will properly include licenses in project content when provided a license
|
||||
and the name of the license holder. Archive packs will include the license holders non-GPLv3 license in them and any
|
||||
linked code will be covered by GPLv3 under the name of the license holder. Be aware that the parts of your project
|
||||
licensed under GPLv3 must be available upon request.
|
||||
|
||||
A release project will consist of an executable, a shared library for your code, an archive pak, and streamable assets.
|
||||
  A release project will consist of an executable, a shared library for your code, an archive pak, and streamable assets.
|
||||
The executable and shared library are protected under the GPLv3 license, while the archive pak and streamable assets are
|
||||
protected under your license.
|
||||
|
||||
I will at no point provide official cross-compilation toolchains for fennec, if you wish to compile your project for
|
||||
both Windows and Linux, working on Windows with WSL is likely your best option besides dual-booting. For Android and
|
||||
iOS, using the GCC and Clang cross-compilation toolchains, respectively, will suffice.
|
||||
|
||||
It is to my discretion whether I enforce the terms of the license on a party.
|
||||
|
||||
The following practices are more likely to get my attention and enforcement:
|
||||
|
||||
Reference in New Issue
Block a user