Browse Source

docs: rewrite introduction

Daniele Bartolini 1 year ago
parent
commit
fa4328f69e
2 changed files with 91 additions and 84 deletions
  1. 0 10
      docs/copyright.rst
  2. 91 74
      docs/introduction.rst

+ 0 - 10
docs/copyright.rst

@@ -722,16 +722,6 @@ The Crown Manual is licensed under a `Creative Commons Attribution-ShareAlike
 or any later version. Used logos, trademarks, icons, source code and Lua scripts
 are *excluded* from CC-BY-SA.
 
-Your Game or Application
-========================
-
-What you create with Crown is your sole property. All the data (textures,
-models, materials, levels etc.) and code you produce (including data and code
-that Crown outputs) is free for you to use as you like.
-
-This means that Crown can be used by individuals or organizations - no matter
-how big - to make commercial games and applications without any restriction.
-
 Third-party libraries
 =====================
 

+ 91 - 74
docs/introduction.rst

@@ -5,110 +5,127 @@ Introduction
 What is it?
 -----------
 
-Crown is a general purpose and data-driven game engine, written in `orthodox
-<https://gist.github.com/bkaradzic/2e39896bc7d8c34e042b>`__ C++ with a
-minimalistic and data-oriented design philosophy in mind.
+Crown is a complete and cross-platform game engine designed for flexibility,
+performance, and fast-iterations.
 
-Crown isn't tied to a particular game type or genre but instead it offers a set
-of generic primitives and facilities to help you create a wide gamut of
-interactive 2D and 3D products.
+It is not limited to a specific game type or genre; rather, it provides a set of
+versatile primitives and tools that can be used to create a broad range of both
+3D and 2D games.
 
-Crown also offers a complete cross-platform editor to create and put together
-all the elements that make up your game.
+.. image:: shots/level-editor.png
 
-Crown is loosely inspired by the Bitsquid engine and many of its design
-principles.
+.. note::
 
-Features
---------
+    Crown is in active development and new features are added and improved all
+    the time; You can follow the development progress in real-time on `GitHub
+    <https://github.com/crownengine/crown/issues>`__ and join the discussions on
+    the `Discord <https://discord.com/invite/CeXVWCT>`__ channel!
 
-.. note::
+License
+-------
+
+The games you create with Crown is your sole property. All the data (models,
+textures, levels etc.) and code you produce (including data and code that Crown
+itself outputs) is free for you to use as you wish. See :doc:`copyright` for an
+exhaustive list of the licenses involved.
+
+Supported platforms
+-------------------
+
+* Runtime
+	* Android 7.0+ (ARMv7-a, ARMv8-a)
+	* HTML5 (Wasm/Emscripten)
+	* Ubuntu 20.04+ (x86_64)
+	* Windows 7+ (x86_64)
 
-	Crown is in active development and new features are added and improved all
-	the time; you can check out the development efforts in real-time on
-	`GitHub <https://github.com/crownengine/crown/issues>`__ and on the
-	`Discord <https://discord.com/invite/CeXVWCT>`__ channel!
+* Editor
+	* Ubuntu 20.04+ (or any 64-bit Linux with GTK+ >= 3.24)
+	* Windows 7+
+
+Hardware requirements
+---------------------
+
+* Editor
+	* 64-bit dual-core CPU or higher
+	* OpenGL 3.2+ graphics card with 512 MB of RAM, 1 GB recommended
+	* 4 GB of RAM minimum, 8 GB recommended
+	* 1366x768 display resolution minimum, 1920x1080 recommended
+	* Three-button mouse
+
+Design Principles
+-----------------
+
+Crown is loosely inspired by the Bitsquid engine and shares with it many of its
+design principles:
 
 * Data-driven
-	Every aspect of the game is controlled through text configuration files. Text
-	files are human-readable for easy inspection and play nicely with traditional
-	version control systems. Before shipping, configuration files are compiled to
-	efficient platform-specific binary blobs.
+	All aspects of the game are defined via text-based configuration files,
+	which are compiled into native, efficient, platform-specific BLOBs before
+	shipping. These files are human-readable, making them easy to inspect and
+	compatible with traditional VCS and regular text-based utilities.
 
 * Data-oriented
 	Data in memory is organized to achieve the maximum performance possible on
-	every platform.
+	every supported platform.
 
-* Lightweight codebase and runtime
-	Engine plus tools amounts to less than 50K LOC. Written in simple 'C-style'
-	C++. It is easy for anyone to understand and make modifications.
+* Hot-reload everything
+	Every game asset is reloadable at run-time, including code.
 
-* Editor
-	* Runs and looks equally well both on Linux and on Windows.
-	* Source data importers (meshes, sprites, sounds, textures etc.).
-	* All the editing data is held by the editor which runs in its own process, if the Runtime crashes you can restart it without losing your work.
-	* TCP/IP communication with Runtime allows editing to be mirrored to remote devices (phones, consoles etc.).
-	* Hot-reloading of every asset including code.
+* Multi-process Editor/Runtime architecture
+	The Editor and the Runtime live in separate processes. The Editor helds all
+	the important data: if the Runtime crashes you can restart it without losing
+	any work.
 
-* Graphics
-	* High-level 2D and 3D objects: sprites, meshes and lights (directional, omni and spot).
-	* Cross-plaform GLSL-like shader programming language with data-driven definitions of render states and permutations.
-	* D3D11, GL 3.2 and GLES 2.0 render backends.
-	* PNG, TGA, DDS, KTX and PVR texture formats.
+* Lightweight Codebase and Runtime
+	The Runtime (plus tools) consist of fewer than 70K lines of code. Written in
+	straightforward 'C-style' C++, it is easily understood and extensible by
+	anyone.
 
-* Animation
+Features
+--------
+
+* Cross-platform Editor
+	* DCC data importers for models, textures, sounds etc.
+	* Scene Editor with place/move/rotate/scale controls, snapping, selection etc.
+	* Deployer for Android, HTML5 and desktop platforms.
+	* Project Browser with thumbnails and multiple view modes.
+	* Scene Tree and object Inspector.
+	* Console with Lua REPL.
+
+* Graphics
+	* High-level 3D & 2D objects (meshes, cameras, lights and sprites).
+	* Cross-platform GLSL-like shader programming language.
 	* Animation state machine with events, variables and blending with simple expressions evaluator.
+	* Immediate-mode GUI API with customizable materials.
+	* TrueType text rendering via texture atlas.
 	* Flipbook sprite animation.
+	* PNG, TGA, DDS, KTX and PVR texture formats.
+	* D3D11, GL 3.2 and GLES 2.0 render backends.
 
 * Physics
-	* Static, dynamic and keyframed rigid bodies, triggers and joints (fixed, spring and hinge).
+	* Static, dynamic and keyframed rigid bodies with multiple colliders.
+	* Joints (fixed, spring and hinge).
 	* Spatial queries: ray-, sphere- and box-casts.
-	* Multiple collision geometries per rigid body.
-	* Collision geometry can be generated from mesh data, authored by artists or manually specified.
-	* Uniform scaling of physics objects.
-
-* Audio
-	* 3D audio sources with position and range-based attenuation.
-	* Volume control.
-	* WAV format supported.
+	* Triggers.
 
 * Scripting
 	* Integrated Lua runtime can be used to control every aspect of the game.
-	* LuaJIT is used on supported platforms for maximum performance.
+	* On supported platforms, LuaJIT is used for even higher performances.
 	* Integrated REPL to quickly test and experiment while the game is running.
 	* Live reloading of gameplay code without needing to restart the game.
 
 * Debugging
-	* Integrated profiler.
-	* Callstack generation for C++ and Lua.
-
-* Gui
-	* Immediate-mode GUI with custom materials.
-	* TrueType text rendering via texture atlas.
+	* Integrated profiler and data plotter graph.
+	* C++ and Lua callstack generation.
 
 * Input
-	* Unified interface for accessing mice, keyboards, touchpads and joypads.
-
-* Exporters
-	* Mesh exporter for Blender >= 2.80.
-
-Supported platforms
--------------------
-
-* Runtime
-	* Android 7.0+ (ARMv7-a, ARMv8-a)
-	* HTML5 (Wasm/Emscripten)
-	* Ubuntu 20.04+ (x86_64)
-	* Windows 7+ (x86_64)
+	* Unified interface for mice, keyboards, joypads and touchpads.
+	* Full list of input events for each simulation frame.
+	* Simplified polling interface for rapid prototyping.
 
-* Editor
-	* Any 64-bit Linux with GTK+ 3.24 or newer (Ubuntu 20.04+)
-	* Any 64-bit Windows 7+
-	* 64-bit dual-core CPU or higher
-	* OpenGL 3.2+ graphics card with 512 MB of RAM, 1 GB recommended
-	* 4 GB of RAM minimum, 8 GB recommended
-	* 1366x768 display resolution minimum, 1920x1080 recommended
-	* Three-button mouse
+* Audio
+	* 3D audio sources with position and range-based attenuation.
+	* Formats: WAV.
 
 Contact
 -------