Godot Engine – Multi-platform 2D and 3D game engine
Go to file
Andrii Doroshenko (Xrayez) 883ef8570a Expose 2D polygon boolean operations in Geometry singleton
Clipper 6.4.2 is used internally to perform polypaths clipping, as well
as inflating/deflating polypaths. The following methods were added:

```
Geometry.merge_polygons_2d(poly_a, poly_b) # union
Geometry.clip_polygons_2d(poly_a, poly_b) # difference
Geometry.intersect_polygons_2d(poly_a, poly_b) # intersection
Geometry.exclude_polygons_2d(poly_a, poly_b) # xor

Geometry.clip_polyline_with_polygon_2d(poly_a, poly_b)
Geometry.intersect_polyline_with_polygon_2d(poly_a, poly_b)

Geometry.offset_polygon_2d(polygon, delta) # inflate/deflate
Geometry.offset_polyline_2d(polyline, delta) # returns polygons

// This one helps to implement CSG-like behaviour:
Geometry.transform_points_2d(points, transform)
```

All the methods return an array of polygons/polylines. The resulting
polygons could possibly be holes which could be checked with
`Geometry.is_polygon_clockwise()` which was exposed to scripting as well.
2019-05-22 17:12:39 +03:00
core Expose 2D polygon boolean operations in Geometry singleton 2019-05-22 17:12:39 +03:00
doc Expose 2D polygon boolean operations in Geometry singleton 2019-05-22 17:12:39 +03:00
drivers Merge pull request #29041 from hbina/add_const 2019-05-21 15:16:41 +02:00
editor Merge pull request #29003 from Xrayez/clipper-6.4.2-exceptions-fix 2019-05-22 15:58:24 +02:00
main Merge pull request #28792 from Calinou/low-processor-mode-144hz 2019-05-20 17:52:51 +02:00
misc Travis: Update clang-format to version 8.0 2019-05-20 14:35:56 +02:00
modules [GDNative] fix godot_variant_evaluate function 2019-05-22 09:10:06 +02:00
platform Merge pull request #29032 from akien-mga/tools-exceptions-rtti 2019-05-21 17:10:51 +02:00
scene Initialize readonly/editable in LineEdit and TextEdit controls 2019-05-21 21:50:02 +01:00
servers Fix typos with codespell 2019-05-19 13:10:35 +02:00
thirdparty Build Clipper with `tools=no` and patch it to auto-disable exceptions 2019-05-22 13:12:21 +03:00
.appveyor.yml AppVeyor: Force installing SCons 3.0.1 2019-01-01 23:31:08 +01:00
.clang-format clang-format: Set standard for ObjC++ 2019-02-09 12:20:24 +01:00
.editorconfig Update zstd to 1.3.8 2019-01-03 22:35:20 -02:00
.gitattributes Update .gitattributes to encompass all text files 2019-05-22 09:10:47 +02:00
.gitignore Update .gitignore 2019-04-25 19:35:41 +02:00
.mailmap Update AUTHORS and DONORS list 2019-03-05 11:21:52 +01:00
.travis.yml Travis: Update clang-format to version 8.0 2019-05-20 14:35:56 +02:00
AUTHORS.md Update AUTHORS and DONORS list 2019-05-06 12:58:13 +02:00
CHANGELOG.md Bump version to 3.1-stable \o/ 2019-03-13 17:16:00 +01:00
CODEOWNERS Remove reduz from some autorequested code reviews 2019-05-06 18:32:45 +02:00
CONTRIBUTING.md Minor English fix 2019-04-06 18:45:02 -04:00
COPYRIGHT.txt libpng: Update to upstream 1.6.37 2019-04-26 10:37:22 +02:00
DONORS.md Update AUTHORS and DONORS list 2019-05-06 12:58:13 +02:00
ISSUE_TEMPLATE.md Issue template: Remove checkbox and reword some comments 2018-01-05 10:58:04 +01:00
LICENSE.txt Update copyright statements to 2019 2019-01-01 12:58:10 +01:00
LOGO_LICENSE.md Improve documentation of thirdparty code snippets 2017-05-07 11:42:37 +02:00
README.md Replace 3.0 screenshot by new one from TPS demo 2019-04-08 14:07:13 +02:00
SConstruct Fix typos with codespell 2019-05-19 13:10:35 +02:00
compat.py fixed building using scons with python3 2018-05-28 18:41:16 +01:00
gles_builders.py Remove trailing whitespace 2018-11-20 11:15:02 +01:00
icon.png Optimize images losslessly using `oxipng -o6 --strip all --zopfli` 2018-06-28 19:17:41 +02:00
icon.svg Use new Godot icon consistently everywhere 2017-05-17 19:53:59 +02:00
logo.png Optimize images losslessly using `oxipng -o6 --strip all --zopfli` 2018-06-28 19:17:41 +02:00
logo.svg Use new Godot icon consistently everywhere 2017-05-17 19:53:59 +02:00
methods.py SCons: Review uses of CCFLAGS, CXXFLAGS and CPPFLAGS 2019-04-24 16:57:58 +02:00
platform_methods.py Fixed short circuiting on non-Windows platforms 2018-07-30 23:55:15 +02:00
version.py Bump version to 3.2-dev 2019-03-13 18:43:13 +01:00

README.md

Godot Engine logo

Godot Engine

Homepage: https://godotengine.org

2D and 3D cross-platform game engine

Godot Engine is a feature-packed, cross-platform game engine to create 2D and 3D games from a unified interface. It provides a comprehensive set of common tools, so that users can focus on making games without having to reinvent the wheel. Games can be exported in one click to a number of platforms, including the major desktop platforms (Linux, Mac OSX, Windows) as well as mobile (Android, iOS) and web-based (HTML5) platforms.

Free, open source and community-driven

Godot is completely free and open source under the very permissive MIT license. No strings attached, no royalties, nothing. The users' games are theirs, down to the last line of engine code. Godot's development is fully independent and community-driven, empowering users to help shape their engine to match their expectations. It is supported by the Software Freedom Conservancy not-for-profit.

Before being open sourced in February 2014, Godot had been developed by Juan Linietsky and Ariel Manzur (both still maintaining the project) for several years as an in-house engine, used to publish several work-for-hire titles.

Screenshot of a 3D scene in Godot Engine

Getting the engine

Binary downloads

Official binaries for the Godot editor and the export templates can be found on the homepage.

Compiling from source

See the official docs for compilation instructions for every supported platform.

Community and contributing

Godot is not only an engine but an ever-growing community of users and engine developers. The main community channels are listed on the homepage.

To get in touch with the developers, the best way is to join the #godotengine IRC channel on Freenode.

To get started contributing to the project, see the contributing guide.

Documentation and demos

The official documentation is hosted on ReadTheDocs. It is maintained by the Godot community in its own GitHub repository.

The class reference is also accessible from within the engine.

The official demos are maintained in their own GitHub repository as well.

There are also a number of other learning resources provided by the community, such as text and video tutorials, demos, etc. Consult the community channels for more info.

Travis Build Status AppVeyor Build Status Code Triagers Badge