Updated Logo

This commit is contained in:
2025-06-07 12:00:05 -04:00
parent d3eba6560d
commit 58bac4e260
10 changed files with 241 additions and 66 deletions

View File

@@ -1,35 +1,44 @@
<br><br>
<div style="width: 100%;">
<img src="./logo/raster.png" alt="drawing" width="128px" style="display: block; margin-left: auto; margin-right: auto;"/>
<figcaption>
<img src="./logo/raster.png" width="128px" style="display: block; margin-left: auto; margin-right: auto;"/>
<h1 style="text-align: center; top:-1em;">fennec</h1>
<p style="text-align: center; top:-4em;">a free and open source game engine</p>
</figcaption>
<div style="text-align: center; top:-4em;">a free and open source game engine</div>
</div>
<br><br>
## Table of Contents
1. [Introduction](#introduction)
2. [Building from Source](#building-from-source)
1. [Building from Terminal](#building-from-terminal)
2. [Building on Windows](#building-on-windows)
3. [Running the Test Suite](#running-the-test-suite)
3. [Usage](#usage)
4. [Contribution](#contribution)
<br>
<br>
<a id="introduction"></a>
## Introduction
fennec is designed to be a general purpose, educational game engine.
Interfacing with the API in C++ follows the [GNU Coding Standards](https://www.gnu.org/prep/standards/html_node/index.html).
Some main areas where the engine strays from the GNU standard includes the following:
fennec may be used both through the provided editor application, or as a standalone
library link against your application. Some main areas where the engine strays from
the GNU standard includes the following:
- [Section 4.7, Standards for Graphical Interfaces](https://www.gnu.org/prep/standards/html_node/Graphical-Interfaces.html).
fennec provides an implementation for X11, however it does not use the GTK toolkit.
- [Section 6.1, GNU Manuals](https://www.gnu.org/prep/standards/html_node/GNU-Manuals.html)
fennec does not use Texinfo and instead uses Doxygen. Otherwise, it follows the other standards of this section.
- [Section 7, The Release Process](https://www.gnu.org/prep/standards/html_node/Managing-Releases.html)
fennec follows most of the conventions in this section, however the build system used is CMake and not
Makefile. CMake, although overwhelming at first, is much more friendly to those who are learning build systems for the first time.
<br>
@@ -37,16 +46,16 @@ The C++ stdlib is reimplemented in the fennec engine.
There are a few reasons for this:
1. Standardize implementations across compilers
2. Set proper naming conventions, i.e. `std::vector`->`fennec::dynarray`
2. Set proper naming conventions, i.e. `std::vector` &rarr; `fennec::dynarray`
3. Optimize compilation times, binary size, and performance.
4. Inject debugging information when necessary.
5. Expose functionality in a readable manner for those interested in learning the
intricacies of the implementation.
<br>
<a id="building-from-source"></a>
## Building from Source
fennec uses the CMake build system. The CMake build script provides several
@@ -68,6 +77,7 @@ is also a viable IDE but involves some extra setup.
<br>
<a id="building-from-terminal"></a>
### Building from Terminal
`build.sh` provides profiles for building the main engine. Run `./build.sh --help`
@@ -80,6 +90,7 @@ for available generators](https://cmake.org/cmake/help/latest/manual/cmake-gener
<br>
<a id="building-on-windows"></a>
### Building on Windows
The bash script can be run natively on Windows when WSL is enabled. You do not
@@ -123,6 +134,7 @@ cmake -G "Visual Studio 17 2022" -A x64
<br>
<br>
<a id="running-the-test-suite"></a>
## Running the Test Suite
`test.sh` provides profiles for building the test suite and executes them.
@@ -130,4 +142,21 @@ cmake -G "Visual Studio 17 2022" -A x64
By default, it runs in debug mode and the first failed test will throw an assertion.
Any tests that involve running as an application will spawn a subprocess with a window,
and give a short description of the behaviour in the terminal. It will then have you confirm
whether the information displayed is correct.
whether the information displayed is correct.
<br>
<br>
<a id="usage"></a>
## Usage
<br>
<br>
<a id="contribution"></a>
## Contribution
There are some principles to keep in mind when contributing to fennec.
1. You must follow the style guide provided by the [GNU Coding Standard](https://www.gnu.org/prep/standards/html_node/Writing-C.html).
2. Any changes must allow all projects to be forward compatible with newer engine verisons.