The project is a native plugin that integrates QuarkPhysics into Godot Engine versions 4.4 and above. QuarkPhysics is a physics engine for 2D games, capable of simulating Rigid Body, Soft Body, and various dynamics. You can find detailed information on the QuarkPhysics project page.
Features of the Extension:
- Covers the entire API of the physics engine and can be easily used with the engine's up-to-date documentation.
- Can render QMeshNode objects with various advanced settings.
- Includes
QMeshEditor
plugin for editingQMeshAdvancedNode
objects. - Supports all platforms provided by Godot's GDExtension.
- Includes example projects created with QuarkPhysics.
FAQ
-
Can I convert a project made with Godot's built-in physics engine to QuarkPhysics with just a setting change?
- No. QuarkPhysics has a completely different API with its own dynamics, and it is not integrated with Godot’s
PhysicsServer
system.
To use QuarkPhysics, you'll need to adapt your project to use its specific objects and API.
- No. QuarkPhysics has a completely different API with its own dynamics, and it is not integrated with Godot’s
-
Why should I use QuarkPhysics if Godot already has a built-in physics engine?
- Because you want to use not only rigid body dynamics, but also advanced soft body dynamics and — in the future — fluid dynamics, which are currently in testing.
- Unlike traditional physics engines, QuarkPhysics is less abstracted and more position-based, making it suitable for procedural animations and custom physical behavior tailored to your game.
- You may want your physics engine to be a standalone library, independent of any specific game engine. QuarkPhysics is not a 2D physics engine made only for Godot — it’s an engine-agnostic project. Just like with the Godot integration, it can be integrated into other engines too.
- Backward compatibility is a priority, and effort is made to maintain it so that older projects don’t break after updates.
- You may want to rapidly prototype a traditional platformer game. QuarkPhysics includes a built-in platformer character physics object that saves you the trouble of writing a platformer controller from scratch — allowing for super fast prototyping.
-
Godot has Jolt as an alternative physics engine. Is that an alternative to QuarkPhysics?
- No. Jolt is a 3D physics engine and serves as an alternative to Godot’s built-in 3D physics. QuarkPhysics, on the other hand, is a 2D physics engine with a different focus and architecture.
How to Use?
-
If you'd like to take a quick look at the project, download the latest version's zip file from the Releases section. Open the project inside the zip with Godot 4.3 or a later version and explore the examples.
-
If you decide to use the plugin, simply add the
addons
folder from the zip file to your project. The addons folder contains three essential components:- A GDExtension application located under the
addons/bin
folder, which connects the physics engine and API with Godot and includes precompiled binaries for all platforms (this is the most crucial part). - An EditorPlugin written in GDScript that allows you to edit QMeshAdvancedNode objects. You can activate or deactivate this plugin from the Godot settings. We recommend activating it via the
Project Settings > Plugins
settings for optimal use. However, even if the plugin is deactivated, your project will still work—it’s just an optional editor plugin. - The
helper_nodes
folder includes GDScript-based node objects designed to assist you with some additional tools in Godot, which you can easily modify to suit your needs. For example, one of these is a node called QTileMapCollider. When added under a TileMapLayer node in Godot, it converts the physics colliders defined on the TileMapLayer into QuarkPhysics colliders.
- A GDExtension application located under the
-
If you prefer using Godot's Asset Library, search for QuarkPhysics in the Asset Library and add it to your project. Although updates might experience a slight delay due to the approval process, the release on the Asset Library will be identical to the one available in the GitHub Releases section.
Any Documentation?
-
Official
- Wiki ( Work in progress )
- QuarkPhysics API
-
Communnity
How to Contribute?
You can contribute to the project in many ways. At this stage, the most valuable contribution is to test the project and report any bugs you encounter. You can also share your experiences. Additionally, you can help by working on documentation, creating tutorials, or promoting the project.
If you use QuarkPhysics in one of your game projects, please don’t forget to let me know at erayzesen@gmail.com. This would be a significant contribution to the showcase we plan to present soon.