title = "Features"
url = "/features"
layout = "features"
description = "Discover what Godot has to offer for 2D and 3D game development."
is_hidden = 0
==
{##}
{% put title %} Features {% endput %}

<style>
  .head {
    margin-bottom: 0;
  }

  section img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 0.5rem;
  }

  h2 {
    width: 70%;
  }

  section, section.container {
    margin-bottom: 64px;
  }

  section .content {
    background-color: var(--transparent-cover-darker);
  }

  .title-padded {
    padding-top: 32px;
    padding-bottom: 42px;
  }
</style>

<section id="design" style="margin-top: 24px">
  <div class="container flex eqsize">
    <div>
      <img src="{{ 'assets/features/design_graphic.svg' | theme }}" width="500" height="600" alt="">
    </div>

    <div class="title-padded">
    <h2>Innovative design</h2>
    <p>
      <em>Create games with ease using Godot's unique approach to game development.</em>
      <ul class="text-left">
        <li><strong>Nodes for all your needs.</strong> Godot comes with hundreds of built-in nodes that make game design a breeze. You can also create your own for custom behaviors, editors and much more.</li>
        <li><strong>Flexible scene system.</strong> Create node compositions with support for instancing and inheritance.</li>
        <li><strong>Visual editor</strong> with all the tools you need packed into a beautiful and uncluttered context-sensitive UI.</li>
        <li><strong>Friendly content creation pipeline</strong> for artists, level designers, animators and everyone in between.</li>
        <li><strong>Persistent live editing</strong> where changes are not lost after stopping the game. It even works on mobile devices!</li>
        <li><strong>Create your own custom tools</strong> with ease using the incredible tool system.</li>
      </ul>
    </p>
    </div>
  </div>
</section>

<section id="features_3d" class="container sm-full">
  <a href="{{ 'assets/features/3dgames.jpg' | theme }}" class="lightbox" data-group="features">
    <img
      src="{{ 'assets/features/3dgames.jpg' | theme }}"
      width="1587"
      height="893"
      alt="Screenshot of Infinistate by fracteed"
      style="background: linear-gradient(90deg, #8e3019 23%, #381d15 68%, #150f0e 80%, #150f0e 94%)"
      loading="lazy"
    />
  </a>
  <div class="title-padded base-padding">
    <h2>Gorgeous 3D graphics</h2>
    <em>
      The physically-based renderer comes with a ton of features that will make your games look incredible.
    </em>
  </div>

  <div class="flex eqsize responsive base-padding">
    <ul>
      <li><strong>Innovative architecture</strong> that combines the best of forward rendering with the efficiency of deferred rendering.</li>
      <li><strong>Physically-based rendering</strong> with full MSAA and FXAA support.</li>
      <li><strong>Full principled BSDF</strong> with subsurface scattering, reflection, refraction, anisotropy, clearcoat, transmittance and more.</li>
    </ul>
    <ul>
      <li><strong>Global illumination</strong> for real-time gorgeous graphics. It can also be pre-baked for beautiful results even on low-end devices.</li>
      <li><strong>Mid- and Post-processing effects</strong> including a tonemapper that supports HDR, multiple standard curves and auto exposure, screen-space reflections, fog, bloom, depth of field and much more.</li>
      <li><strong>Easy-to-use shader language</strong> based on GLSL, with built-in editor and code completion.</li>
    </ul>
  </div>
</section>

<section id="features_2d" class="container sm-full">
  <a href="{{ 'assets/features/2dgames.jpg' | theme }}" class="lightbox" data-group="features">
    <img
      src="{{ 'assets/features/2dgames.jpg' | theme }}"
      width="1186"
      height="696"
      alt="Screenshot of Slyway by Guaranapps"
      style="background: linear-gradient(90deg, #4b5a6b 36%, #54687e 54%, #54677c 90%, #3f649e 95%)"
      loading="lazy"
    />
  </a>
  <div class="title-padded base-padding">
    <h2>Create 2D games with ease</h2>
    <em>Godot comes with a fully-dedicated 2D engine packed with features.</em>
  </div>

  <div class="flex eqsize responsive base-padding">
    <ul>
      <li><strong>Work in pixels as your units</strong>, but scale to any screen size and aspect ratio.</li>
      <li><strong>Tile map editor</strong> with auto-tiling, rotation, custom grid shapes and multiple layers.</li>
      <li><strong>2D lights and normal maps</strong> to give your 2D games a more realistic look. </li>
    </ul>
    <ul>
      <li><strong>Animate your games</strong> using cut-out or sprite-based animation. </li>
      <li><strong>Flexible kinematic controller</strong> for collision detection without physics.</li>
    </ul>
  </div>
</section>

<section id="animation" class="container flex eqsize responsive">
  <div style="overflow: hidden;">
    <a href="{{ 'assets/features/animate.jpg' | theme }}" class="lightbox" data-group="features">
      <img
        src="{{ 'assets/features/animate.jpg' | theme }}"
        width="780"
        height="420"
        alt="Screenshot of Godot's animation editor by ndee85"
        style="background: linear-gradient(90deg, #423f4b 33%, #47444f 40%, #47444f 71%, #3c3a46 81%)"
        loading="lazy"
      />
    </a>
  </div>
  <div class="base-padding" style="padding-top: 0;">
    <h2>Animate everything</h2>
    <em>The most flexible animation system.</em>
    <ul>
      <li><strong>Animate literally everything</strong>, from bones and objects to function calls.</li>
      <li><strong>Use custom transition curves and tweens</strong> to create incredible animations.</li>
      <li><strong>Helpers to animate 2D rigs</strong>, with skeletons and IK.</li>
      <li><strong>Efficient optimizer</strong> to pack imported 3D animations.</li>
    </ul>
  </div>
</section>

<div class="flex container responsive eqsize sm-full">
  <section id="script">
    <div class="base-padding">
      <h2>Script with full freedom</h2>
      <em>More choices than any other engine.</em>
      <ul>
        <li>
          <strong>GDScript</strong> Python-like scripting language, designed to make games with zero hassle.
          <a href="https://docs.godotengine.org/en/stable/getting_started/scripting/gdscript/gdscript_basics.html">Learn why our community loves it.</a>
        </li>
        <li>
          <strong>
            <a href="https://docs.godotengine.org/en/stable/getting_started/scripting/c_sharp/c_sharp_basics.html">Full C# 8.0 support</a>
          </strong> using Mono.
        </li>
        <li>
          <strong>Full C++ support</strong> without needing to recompile the engine using
          <a href="https://docs.godotengine.org/en/stable/tutorials/scripting/gdnative/what_is_gdnative.html">GDNative</a>.
        </li>
        <li>
          <strong><a href="https://docs.godotengine.org/en/stable/getting_started/scripting/visual_script/index.html">Visual scripting</a></strong>
          using blocks and connections.
        </li>
        <li>
          <strong><a href="https://docs.godotengine.org/en/stable/tutorials/scripting/gdnative/what_is_gdnative.html#supported-languages">Additional languages</a></strong>
          with community-provided support for Rust, Nim, D and other languages.
        </li>
        <li><strong>Built-in editor</strong> with syntax highlighting, real-time parser and code completion.</li>
        <li><strong>Integrated documentation.</strong> Browse and search the whole API offline, without leaving the editor.</li>
      </ul>
    </div>
  </section>

  <section id="debug">
    <div class="base-padding">
      <h2>Debug &amp; Optimize</h2>
      <em>
        Solve bugs and performance bottlenecks with the
        <a href="https://docs.godotengine.org/en/stable/tutorials/debug/overview_of_debugging_tools.html">built-in debugger</a>.
      </em>
      <ul>
        <li><strong>Explore and modify</strong> your project while it's running, even on mobile devices.</li>
        <li><strong>Keeps changes</strong> by default after closing the project.</li>
        <li><strong>Built-in profiler</strong> with graph plotting and time seeking.</li>
        <li>Video memory debugger.</li>
        <li><strong>Error logger</strong> with full stack traces.</li>
        <li><strong>Network profiler</strong> with per-node remote call tracking and bandwidth usage estimation.</li>
      </ul>
    </div>
  </section>
</div>

<div class="flex container responsive eqsize sm-full">
  <section id="multiplatform-editor">
    <div class="base-padding">
    <h2>Multi-platform editor</h2>
    <em>Create games on any desktop OS and Android.</em>
    <ul>
      <li><strong>Works on Windows, macOS, Linux, *BSD and Android&nbsp;<em>(experimental)</em>.</strong><br> The editor runs in 32-bit and 64-bit on all platforms, with native Apple Silicon support.</li>
      <li><strong>Small download</strong> (around 35 MB), and you are ready to go.</li>
      <li><strong>Easy to compile</strong> on any platform (no dependency hell).</li>
    </ul>
    </div>
    <div></div>
  </section>
  <section id="deploy">
    <div class="base-padding">
    <h2>Multi-platform deploy</h2>
    <em>Deploy games everywhere!</em>
    <ul>
      <li><strong>Export to desktop platforms:</strong> Windows, macOS, Linux, UWP, and *BSD.</li>
      <li><strong>Export to mobile platforms:</strong> iOS and Android.</li>
      <li>
        <strong>Consoles:</strong> Nintendo Switch, PlayStation 4, Xbox One via third-party providers
        <a href="https://docs.godotengine.org/en/stable/tutorials/platform/consoles.html">(read more).</a>
      </li>
      <li><strong>Export to the web</strong> using HTML5 and WebAssembly.</li>
      <li><strong>One-click deploy &amp; export</strong> to most platforms. Easily create custom builds as well.</li>
    </ul>
    </div>
    <div></div>
  </section>
</div>

<section id="xrsupport" class="container flex eqsize responsive">
  <div class="base-padding" style="padding-top: 0;">
    <h2>XR support</h2>
    <p>Godot makes cross-platform Augmented and Virtual Reality development easy.</p>

    <ul>
      <li><strong>Works with many headsets</strong> including the Meta Quest, Valve Index, HTC Vive, Oculus Rift, all Microsoft MR headsets, and many more.</li>
      <li><strong>Support for OpenXR</strong>, an emerging open standard that most hardware vendors are moving to.</li>
      <li><strong>Plugins</strong> give access to various proprietary SDKs, such as OpenVR (SteamVR) and the legacy Oculus SDKs.</li>
      <li><strong>WebXR</strong> can deliver AR/VR experiences via a web browser.</li>
      <li><strong>ARKit</strong> allows creating AR apps for iOS.</li>
    </ul>
  </div>
  <div style="overflow: hidden;">
    <a href="{{ 'assets/features/xrsupport.jpg' | theme }}" class="lightbox" data-group="features">
      <img
        src="{{ 'assets/features/xrsupport.jpg' | theme }}"
        width="716"
        height="420"
        alt="Screenshot of XR support by Mux213"
        style="background: linear-gradient(90deg, #50594d 6%, #2b221b 43%, #7d7a77 82%, #84817e 92%)"
        loading="lazy"
      />
    </a>
  </div>
</section>

<section id="collaborate" class="container flex eqsize responsive">
  <div>
    <h2>Easy teamwork</h2>
    <p>Godot is designed from the ground up for smooth teamwork.</p>

    <ul>
      <li><strong>Friendly filesystem usage</strong> that works great with version control systems like Git, Subversion, Mercurial, you name it.</li>
      <li><strong>Scene instancing</strong> makes teamwork a breeze. Every team member can focus on their own scene, be it a character, level, etc., and edit without stepping on each other's toes.</li>
      <li>Text-based descriptive and optimal scene format.</li>
      <li>Script syntax supported by GitHub.</li>
    </ul>
  </div>
</section>

<section
  id="call-to-action"
  class="container flex eqsize responsive"
  style="background-color: var(--dark-color); box-shadow: var(--base-shadow); padding: 1.5rem 1.5rem 0.5rem 1.5rem"
>
  <div>
    <h2 class="text-center" style="color: white; width: 100%">Ready to start?</h2>
    <p class="text-center" style="color: white; margin-bottom: -0.5rem">Download Godot and try it out today!</p>
    <div class="text-center">
      <a href="/download" class="btn download">
        <div class="main">Download</div><div class="opt">{% include('version') with {'key': 'identifier'} %}</div>
      </a>
      <br>
      <a href="https://docs.godotengine.org/en/stable/about/list_of_features.html" class="btn flat btn-white-text">Complete list of features</a>
    </div>
  </div>
</section>
