-
Notifications
You must be signed in to change notification settings - Fork 18
Description
This list represents features which are meaningful to implement in Goost, and is continuously updated. If you'd like to work on some of these yourself, you can open another issue to discuss implementation details, or simply say that you're already working on this here if the feature is trivial to implement and/or has been discussed with others. May also contain Godot Improvement Proposals.
Note that any PR implementing a particular feature would still need to go though the review process before merging. Opening a discussion before working on any non-trivial feature is highly recommended. At the very least, maintainers and contributors must agree upon the public API first and foremost.
Godot 3.x - gd3 branch
Note: All features approved for Godot 3.2 are also applicable for Godot 4.0.
- ← a feature is already implemented (either in Goost or Godot).
Core
- Database backends: Add SQLite to Godot. godotengine/godot#37070
- Exposing
PropertyInfostructure as a class to GDScript (?)- See also Add
VariantResourceclass #30.
- See also Add
- Most items in godot-extended-libraries/godot-ideas#11, but some need design work.
-
uuid(): Add uuidv4_text function godotengine/godot#42408.- Can be implemented in the existing
Randomsingleton: AddRandomsingleton #29.
- Can be implemented in the existing
- Add a method to get a random element with weighted probability (similar to
random.choices()in Python) godotengine/godot-proposals#3948 -
Random.pop(): AddArray.pick_random()as a shorthand forArray[randi() % Array.size()]godotengine/godot-proposals#3454 (comment) - Add a Graph data structure to Godot godotengine/godot-proposals#3848
- Implementing Bresenham line algorithm: Implement Bresenham line algorithm in Geometry2D godotengine/godot#43916. Implemented in Implement Bresenham line algorithm in
GoostGeometry2D#75 - Command-line parsing: Add command-line parser class godotengine/godot#44594, implemented in Add command-line parser #123.
- Add
fill_rect()method to Image class godotengine/godot-proposals#3259 (implemented in Godot 4.0). - Math functions #151
- Implement APNG support in Goost. #193
Scene
- Add a "debug" Label to display node properties in a running project godotengine/godot-proposals#115
- This should be implemented with custom font drawing API for better integration.
- See GDScript implementation at godot-next.
- Add ShapeCast3D node for collision sweep and immediate overlap queries (already implemented in 2D) godotengine/godot-proposals#710
- Add a Shape2D node to draw 2D shapes godotengine/godot-proposals#1126
- Add stopwatch functionality to the Timer node godotengine/godot-proposals#2878
- Add a "Mask2D" node (and/or a "mask_parent" property for Sprite2D) godotengine/godot-proposals#4282
UI
- Add
AspectRatioContainerclass godotengine/godot#43807 - Add a TableControl node for complex column-row data sets in UIs godotengine/godot-proposals#97
Resources
-
BitSet- See GDScript implementation at godot-next.
-
BitFlag: Improve usability of bitflag fields in GDScript godotengine/godot-proposals#923.- See GDScript implementation at godot-next.
- Provide a way to create gradient textures in 2D with different types of fill, not just 1D godotengine/godot-proposals#1677
-
Matrix: Matrix support and operations #14.
Editor
- Create a script template manager for the editor godotengine/godot-proposals#748
- Make
EditorSettingsaccessible as a singleton, to be able to access outside EditorPlugin godotengine/godot-proposals#3511 - Add a BitMap preview to the inspector godotengine/godot-proposals#4307
Modules
- GIF save support via
ImageFrames.save_gif(): Add ability to save animated GIF #104.
List of community modules to consider merging or get inspired from:
- https://github.com/Louis-Simon22/poisson_disk_sampling_module
- https://github.com/Relintai/thread_pool
- https://github.com/Lucrecious/pathfinder
Godot 4.x - gd4 branch
Note: Godot 4.0 is still in development, so no gd4 branch is created in Goost yet.
Some classes are deprecated in Godot 3.x, so if someone still needs an exact implementation written in C++ without reverting to using the AssetLib version (if available), then these classes can be safely ported to Goost.
-
InterpolatedCamera: documentation and source code, deprecated in Mark InterpolatedCamera as deprecated godotengine/godot#42113.- See also https://github.com/godot-extended-libraries/godot-interpolated-camera3d where more features could be potentially implemented.
-
ClippedCamera3D, removed in Remove ClippedCamera3D godotengine/godot#53354. - Collada importer, may be removed in Remove COLLADA importer godotengine/godot#53418.