introduction.html 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324
  1. <!DOCTYPE html>
  2. <html class="writer-html4" lang="en" >
  3. <head>
  4. <meta charset="utf-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Introduction &mdash; Crown 0.55.0 Manual 0.55.0 documentation</title><link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
  7. <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
  8. <link rel="stylesheet" href="_static/css/custom.css" type="text/css" /><link rel="shortcut icon" href="_static/crown-black-socket.svg"/>
  9. <!--[if lt IE 9]>
  10. <script src="_static/js/html5shiv.min.js"></script>
  11. <![endif]-->
  12. <script id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
  13. <script type="text/javascript" src="_static/jquery.js"></script>
  14. <script type="text/javascript" src="_static/underscore.js"></script>
  15. <script type="text/javascript" src="_static/doctools.js"></script>
  16. <script type="text/javascript" src="_static/language_data.js"></script>
  17. <script src="_static/js/theme.js"></script>
  18. <link rel="index" title="Index" href="genindex.html" />
  19. <link rel="search" title="Search" href="search.html" />
  20. <link rel="copyright" title="Copyright" href="copyright.html" />
  21. <link rel="next" title="Installing Crown" href="installing_crown/index.html" />
  22. <link rel="prev" title="Changelog" href="changelog.html" />
  23. </head>
  24. <body class="wy-body-for-nav">
  25. <div class="wy-grid-for-nav">
  26. <nav data-toggle="wy-nav-shift" class="wy-nav-side">
  27. <div class="wy-side-scroll">
  28. <div class="wy-side-nav-search" >
  29. <a href="index.html"><img src="_static/crown-black-socket.svg" class="logo" alt="Logo"/>
  30. </a>
  31. <div class="version">
  32. Crown 0.55.0 Manual
  33. </div>
  34. <div role="search">
  35. <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
  36. <input type="text" name="q" placeholder="Search docs" />
  37. <input type="hidden" name="check_keywords" value="yes" />
  38. <input type="hidden" name="area" value="default" />
  39. </form>
  40. </div>
  41. </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
  42. <ul class="current">
  43. <li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog</a></li>
  44. <li class="toctree-l1 current"><a class="current reference internal" href="#">Introduction</a><ul>
  45. <li class="toctree-l2"><a class="reference internal" href="#what-is-it">What is it?</a></li>
  46. <li class="toctree-l2"><a class="reference internal" href="#license">License</a></li>
  47. <li class="toctree-l2"><a class="reference internal" href="#supported-platforms">Supported platforms</a></li>
  48. <li class="toctree-l2"><a class="reference internal" href="#design-principles">Design Principles</a></li>
  49. <li class="toctree-l2"><a class="reference internal" href="#features">Features</a></li>
  50. <li class="toctree-l2"><a class="reference internal" href="#contact">Contact</a></li>
  51. <li class="toctree-l2"><a class="reference internal" href="#contributors">Contributors</a></li>
  52. </ul>
  53. </li>
  54. <li class="toctree-l1"><a class="reference internal" href="installing_crown/index.html">Installing Crown</a></li>
  55. <li class="toctree-l1"><a class="reference internal" href="getting_started/index.html">Getting Started</a></li>
  56. <li class="toctree-l1"><a class="reference internal" href="deploying/index.html">Deploying</a></li>
  57. <li class="toctree-l1"><a class="reference internal" href="reference/index.html">Reference</a></li>
  58. <li class="toctree-l1"><a class="reference internal" href="lua_api.html">Lua API reference</a></li>
  59. <li class="toctree-l1"><a class="reference internal" href="glossary.html">Glossary</a></li>
  60. <li class="toctree-l1"><a class="reference internal" href="copyright.html">License</a></li>
  61. <li class="toctree-l1"><a class="reference internal" href="hackers/index.html">Hackers</a></li>
  62. </ul>
  63. </div>
  64. </div>
  65. </nav>
  66. <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
  67. <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
  68. <a href="index.html">Crown 0.55.0 Manual</a>
  69. </nav>
  70. <div class="wy-nav-content">
  71. <div class="rst-content">
  72. <div role="navigation" aria-label="Page navigation">
  73. <ul class="wy-breadcrumbs">
  74. <li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
  75. <li>Introduction</li>
  76. <li class="wy-breadcrumbs-aside">
  77. <a href="_sources/introduction.rst.txt" rel="nofollow"> View page source</a>
  78. </li>
  79. </ul>
  80. <hr/>
  81. </div>
  82. <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
  83. <div itemprop="articleBody">
  84. <div class="section" id="introduction">
  85. <h1>Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h1>
  86. <div class="section" id="what-is-it">
  87. <h2>What is it?<a class="headerlink" href="#what-is-it" title="Permalink to this headline">¶</a></h2>
  88. <p>Crown is a complete and cross-platform game engine designed for flexibility,
  89. performance, and fast-iterations.</p>
  90. <p>It is not limited to a specific game type or genre; rather, it provides a set of
  91. versatile primitives and tools that can be used to create a broad range of both
  92. 3D and 2D games.</p>
  93. <img alt="_images/level-editor.png" src="_images/level-editor.png" />
  94. <div class="admonition note">
  95. <p class="first admonition-title">Note</p>
  96. <p class="last">Crown is in active development and new features are added and improved all
  97. the time; You can follow the development progress in real-time on <a class="reference external" href="https://github.com/crownengine/crown/issues">GitHub</a> and join the discussions on
  98. the <a class="reference external" href="https://discord.com/invite/CeXVWCT">Discord</a> channel!</p>
  99. </div>
  100. </div>
  101. <div class="section" id="license">
  102. <h2>License<a class="headerlink" href="#license" title="Permalink to this headline">¶</a></h2>
  103. <p>The games you create with Crown is your sole property. All the data (models,
  104. textures, levels etc.) and code you produce (including data and code that Crown
  105. itself outputs) is free for you to use as you wish. See <a class="reference internal" href="copyright.html"><span class="doc">License</span></a> for an
  106. exhaustive list of the licenses involved.</p>
  107. </div>
  108. <div class="section" id="supported-platforms">
  109. <h2>Supported platforms<a class="headerlink" href="#supported-platforms" title="Permalink to this headline">¶</a></h2>
  110. <ul class="simple">
  111. <li><dl class="first docutils">
  112. <dt>Runtime</dt>
  113. <dd><ul class="first last">
  114. <li>Android 7.0+ (ARMv7-a, ARMv8-a)</li>
  115. <li>HTML5 (Wasm/Emscripten)</li>
  116. <li>Ubuntu 20.04+ (x86_64)</li>
  117. <li>Windows 7+ (x86_64)</li>
  118. </ul>
  119. </dd>
  120. </dl>
  121. </li>
  122. <li><dl class="first docutils">
  123. <dt>Editor</dt>
  124. <dd><ul class="first last">
  125. <li>Ubuntu 20.04+ (or any 64-bit Linux with GTK+ &gt;= 3.24)</li>
  126. <li>Windows 7+</li>
  127. </ul>
  128. </dd>
  129. </dl>
  130. </li>
  131. </ul>
  132. </div>
  133. <div class="section" id="design-principles">
  134. <h2>Design Principles<a class="headerlink" href="#design-principles" title="Permalink to this headline">¶</a></h2>
  135. <p>Crown is loosely inspired by the Bitsquid engine and shares with it many of its
  136. design principles:</p>
  137. <ul class="simple">
  138. <li><dl class="first docutils">
  139. <dt>Data-driven</dt>
  140. <dd>All aspects of the game are defined via text-based configuration files,
  141. which are compiled into native, efficient, platform-specific BLOBs before
  142. shipping. These files are human-readable, making them easy to inspect and
  143. compatible with traditional VCS and regular text-based utilities.</dd>
  144. </dl>
  145. </li>
  146. <li><dl class="first docutils">
  147. <dt>Data-oriented</dt>
  148. <dd>Data in memory is organized to achieve the maximum performance possible on
  149. every supported platform.</dd>
  150. </dl>
  151. </li>
  152. <li><dl class="first docutils">
  153. <dt>Hot-reload everything</dt>
  154. <dd>Every game asset is reloadable at run-time, including code.</dd>
  155. </dl>
  156. </li>
  157. <li><dl class="first docutils">
  158. <dt>Multi-process Editor/Runtime architecture</dt>
  159. <dd>The Editor and the Runtime live in separate processes. The Editor helds all
  160. the important data: if the Runtime crashes you can restart it without losing
  161. any work.</dd>
  162. </dl>
  163. </li>
  164. <li><dl class="first docutils">
  165. <dt>Lightweight Codebase and Runtime</dt>
  166. <dd>The Runtime (plus tools) consist of fewer than 70K lines of code. Written in
  167. straightforward ‘C-style’ C++, it is easily understood and extensible by
  168. anyone.</dd>
  169. </dl>
  170. </li>
  171. </ul>
  172. </div>
  173. <div class="section" id="features">
  174. <h2>Features<a class="headerlink" href="#features" title="Permalink to this headline">¶</a></h2>
  175. <ul class="simple">
  176. <li><dl class="first docutils">
  177. <dt>Cross-platform Editor</dt>
  178. <dd><ul class="first last">
  179. <li>DCC data importers for models, textures, sounds etc.</li>
  180. <li>Scene Editor with place/move/rotate/scale controls, snapping, selection etc.</li>
  181. <li>Deployer for Android, HTML5 and desktop platforms.</li>
  182. <li>Project Browser with thumbnails and multiple view modes.</li>
  183. <li>Scene Tree and object Inspector.</li>
  184. <li>Console with Lua REPL.</li>
  185. </ul>
  186. </dd>
  187. </dl>
  188. </li>
  189. <li><dl class="first docutils">
  190. <dt>Graphics</dt>
  191. <dd><ul class="first last">
  192. <li>High-level 3D &amp; 2D objects (meshes, cameras, lights and sprites).</li>
  193. <li>Cross-platform GLSL-like shader programming language.</li>
  194. <li>Animation state machine with events, variables and blending with simple expressions evaluator.</li>
  195. <li>Immediate-mode GUI API with customizable materials.</li>
  196. <li>TrueType text rendering via texture atlas.</li>
  197. <li>Flipbook sprite animation.</li>
  198. <li>PNG, TGA, DDS, KTX and PVR texture formats.</li>
  199. <li>D3D11, GL 3.2 and GLES 2.0 render backends.</li>
  200. </ul>
  201. </dd>
  202. </dl>
  203. </li>
  204. <li><dl class="first docutils">
  205. <dt>Physics</dt>
  206. <dd><ul class="first last">
  207. <li>Static, dynamic and keyframed rigid bodies with multiple colliders.</li>
  208. <li>Joints (fixed, spring and hinge).</li>
  209. <li>Spatial queries: ray-, sphere- and box-casts.</li>
  210. <li>Triggers.</li>
  211. </ul>
  212. </dd>
  213. </dl>
  214. </li>
  215. <li><dl class="first docutils">
  216. <dt>Scripting</dt>
  217. <dd><ul class="first last">
  218. <li>Integrated Lua runtime can be used to control every aspect of the game.</li>
  219. <li>On supported platforms, LuaJIT is used for even higher performances.</li>
  220. <li>Integrated REPL to quickly test and experiment while the game is running.</li>
  221. <li>Live reloading of gameplay code without needing to restart the game.</li>
  222. </ul>
  223. </dd>
  224. </dl>
  225. </li>
  226. <li><dl class="first docutils">
  227. <dt>Debugging</dt>
  228. <dd><ul class="first last">
  229. <li>Integrated profiler and data plotter graph.</li>
  230. <li>C++ and Lua callstack generation.</li>
  231. </ul>
  232. </dd>
  233. </dl>
  234. </li>
  235. <li><dl class="first docutils">
  236. <dt>Input</dt>
  237. <dd><ul class="first last">
  238. <li>Unified interface for mice, keyboards, joypads and touchpads.</li>
  239. <li>Full list of input events for each simulation frame.</li>
  240. <li>Simplified polling interface for rapid prototyping.</li>
  241. </ul>
  242. </dd>
  243. </dl>
  244. </li>
  245. <li><dl class="first docutils">
  246. <dt>Audio</dt>
  247. <dd><ul class="first last">
  248. <li>3D audio sources with position and range-based attenuation.</li>
  249. <li>Formats: WAV.</li>
  250. </ul>
  251. </dd>
  252. </dl>
  253. </li>
  254. </ul>
  255. </div>
  256. <div class="section" id="contact">
  257. <h2>Contact<a class="headerlink" href="#contact" title="Permalink to this headline">¶</a></h2>
  258. <ul class="simple">
  259. <li>Website: <a class="reference external" href="https://www.crownengine.org">https://www.crownengine.org</a></li>
  260. <li>Project page: <a class="reference external" href="https://github.com/crownengine/crown">https://github.com/crownengine/crown</a></li>
  261. </ul>
  262. </div>
  263. <div class="section" id="contributors">
  264. <h2>Contributors<a class="headerlink" href="#contributors" title="Permalink to this headline">¶</a></h2>
  265. <p>In chronological order.</p>
  266. <ul class="simple">
  267. <li>Daniele Bartolini (<a class="reference external" href="https://github.com/dbartolini">&#64;dbartolini</a>)</li>
  268. <li>Simone Boscaratto (<a class="reference external" href="https://github.com/Xed89">&#64;Xed89</a>)</li>
  269. <li>Michele Rossi (<a class="reference external" href="https://github.com/mikymod">&#64;mikymod</a>)</li>
  270. <li>Michela Iacchelli - Crown logo v1.</li>
  271. <li>Raphael de Vasconcelos Nascimento (<a class="reference external" href="https://github.com/vasconssa">&#64;vasconssa</a>)</li>
  272. <li>Giulia Gazzoli - Crown logo v2.</li>
  273. </ul>
  274. </div>
  275. </div>
  276. </div>
  277. </div>
  278. <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
  279. <a href="changelog.html" class="btn btn-neutral float-left" title="Changelog" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
  280. <a href="installing_crown/index.html" class="btn btn-neutral float-right" title="Installing Crown" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
  281. </div>
  282. <hr/>
  283. <div role="contentinfo">
  284. <p>&#169; <a href="copyright.html">Copyright</a> Except where otherwise noted, content on this page is licensed under a CC-BY-SA 4.0 Int. License.</p>
  285. </div>
  286. Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
  287. <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
  288. provided by <a href="https://readthedocs.org">Read the Docs</a>.
  289. </footer>
  290. </div>
  291. </div>
  292. </section>
  293. </div>
  294. <script>
  295. jQuery(function () {
  296. SphinxRtdTheme.Navigation.enable(true);
  297. });
  298. </script>
  299. <!-- Theme Analytics -->
  300. <script async src="https://www.googletagmanager.com/gtag/js?id=G-XNVGCMNDZH"></script>
  301. <script>
  302. window.dataLayer = window.dataLayer || [];
  303. function gtag(){dataLayer.push(arguments);}
  304. gtag('js', new Date());
  305. gtag('config', 'G-XNVGCMNDZH', {
  306. 'anonymize_ip': true,
  307. });
  308. </script>
  309. </body>
  310. </html>