You've already forked godot
							
							
				mirror of
				https://github.com/godotengine/godot.git
				synced 2025-11-04 12:00:25 +00:00 
			
		
		
		
	
		
			
				
	
	
	
		
			25 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			25 KiB
		
	
	
	
	
	
	
	
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
Unreleased
Added
- OpenGL ES 2.0 renderer.
 - Visual shader editor.
- New PBR output nodes.
 - Conversion between Vector3 and scalar types is now automatic.
 - Ability to create custom nodes via scripting.
 - Ports can now be previewed.
 
 - 3D soft body physics.
 - 3D ragdoll system.
 - Constructive solid geometry in 3D.
 - 2D meshes and skeletal deformation.
 - Various improvements to KinematicBody2D.
- Support for snapping the body to the floor.
 - Support for RayCast shapes in kinematic bodies.
 - Support for synchronizing kinematic movement to physics, avoiding an one-frame delay.
 
 - WebSockets support using libwebsockets.
 - UPnP support using MiniUPnP.
 - Revamped inspector.
- Improved visualization and editing of numeric properties.
 - Vector and matrix types can now be edited directly (no pop-ups).
 - Subresources can now be edited directly within the same inspector.
 - Layer names can now be displayed in the inspector.
 - Proper editing of arrays and dictionaries.
 - Ability to reset any property to its default value.
 
 - Improved animation editor.
- Simpler, less cluttered layout.
 - New Bezier, Audio and Animation tracks.
 - Several key types can be previewed directly in the track editor.
 - Tracks can now be grouped and filtered on a per-node basis.
 - Copying and pasting tracks between animations is now possible.
 - New Capture mode to blend from a node's current value to the first key in a track.
 
 - Improved animation tree and new state machine.
- More visual feedback in the blend tree editor.
 - 1D and 2D blend spaces are now supported.
 - Ability to write custom blending logic.
 - Support for root motion.
 
 - New FileSystem dock.
- Unified view of folders and files in the same panel.
 - Files can now be marked as favorites, not only folders.
 - Files now have icons representing their type, or thumbnail previews when relevant.
 - New search field to filter entries in the tree.
 
 - OpenSimplexNoise and NoiseTexture resources.
 - Optional static typing in GDScript.
- Does not currently improve performance, but helps write more robust code.
 
 - Warning system in GDScript.
- Reports potential code issues such as:
- unused variables,
 - standalone expressions,
 - discarded return values from functions,
 - unreachable code after a 
returnstatement, - …
 
 - Warnings can be disabled in the Project Settings or by writing special comments.
 
 - Reports potential code issues such as:
 - GDScript keyword 
class_nameto register scripts as classes. - Simple expression language independent from GDScript, used by inspector boxes that accept numeric values.
- Can also be used in projects.
 
 - C# projects can now be exported for Windows, Linux, and macOS targets.
 - The 
serverplatform is back as it was in Godot 2.1.- It is now again possible to run a headless Godot instance on Linux.
 
 - Support for BPTC texture compression on desktop platforms.
 - New properties for SpatialMaterial.
- Dithering-based distance fade, for fading materials without making them transparent.
 - Disable ambient light on a per-material basis.
 
 - Option to link Mono statically on Windows.
 - Unified class and reference search in the editor.
 - Revamped TileSet editor with support for undo/redo operations.
 - Various quality-of-life improvements to the Polygon2D and TextureRegion editors.
 - RandomNumberGenerator class that allows for multiple instances at once.
 - Array methods 
min()andmax()to return the smallest and largest value respectively. - Dictionary method 
get(key[, default])wheredefaultis returned if the key does not exist. - Node method 
print_tree_pretty()to print a graphical view of the scene tree. - String methods 
trim_prefix(),trim_suffix(),lstrip(),rstrip(). - OS methods:
get_system_time_msecs(): Return the system time with milliseconds.get_audio_driver_name()andget_audio_driver_count()to query audio driver information.get_video_driver_count()andget_video_driver_name()to query renderer information.center_window(): Center the window on the screen.move_window_to_foreground(): Move the window to the foreground.
 - StreamPeerTCP method 
set_no_delay()to enable theTCP_NODELAYoption. - EditorPlugin method 
remove_control_from_container(). - Ability to set Godot windows as "always on top".
 - Ability to create windows with per-pixel transparency.
 - New GLSL built-in functions in the shader language:
radians()degrees()asinh()acosh()atanh()exp2()log2()roundEven()
 - New command-line options:
--build-solutions: Build C# solutions without starting the editor.--print-fps: Display frames per second to standard output.--quit: Quit the engine after the first main loop iteration.
 - Debugger button to copy error messages.
 - Support for 
.escnscenes has been added for use with the new Blender exporter. - It is now possible to scale an OBJ mesh when importing.
 popup_closedsignal forColorPickerButton.- Methods that are deprecated can now print warnings.
 - Input actions can now provide an analog value.
 - Input actions can now be mapped to either a specific device or all devices.
 - DNS resolution for high-level networking.
 - Servers can now kick/disconnect peers in high-level networking.
 - Servers can now access IP and port information of peers in high-level networking.
 - High-level multiplayer API decoupled from SceneTree (see 
SceneTree.multiplayer_api/SceneTree.custom_multiplayer_api), can now be extended. Input.set_default_cursor_shape()to change the default shape in the viewport.- Custom cursors can now be as large as 256×256 (needed to be exactly 32×32 before).
 - Support for radio-looking items with icon in 
PopupMenus. - Drag and drop to rearrange Editor docks.
 - TileSet's 
TileModeis now exposed to GDScript. OS.get_ticks_usec()is now exposed to GDScript.- Normals can now be flipped when generated via 
SurfaceTool. - TextureProgress bars can now be bilinear (extending in both directions).
 - The character used for masking secrets in LineEdit can now be changed.
 - Improved DynamicFont:
- DynamicFonts can now use high-quality outlines generated by FreeType.
 - DynamicFonts can now have their anti-aliasing disabled.
 - DynamicFonts can now have their hinting tweaked ("Normal", "Light" or "None").
 - Colored glyphs such as emoji are now supported.
 
 - Universal translation of touch input to mouse input.
 - AudioStreamPlayer, AudioStreamPlayer2D, and AudioStreamPlayer3D now have a pitch scale property.
 - Support for MIDI input.
 - Support for audio capture from microphones.
 GROW_DIRECTION_BOTHfor Controls.- Selected tiles can be moved in the tile map editor.
 - The editor can now be configured to display the project window on the previous or next monitor (relative to the editor).
- If either end is reached, then the project will start on the last or first monitor (respectively).
 
 - Signal in VideoPlayer to notify when the video finished playing.
 Image.bumpmap_to_normalmap()to convert bump maps to normal maps.File.get_path()andFile.get_path_absolute().- Unselected tabs in the editor now have a subtle background for easier identification.
 - The depth fog's end distance is now configurable independently of the far plane distance.
 - The alpha component of the fog color can now be used to control fog density.
 - The 3D editor's information panel now displays the camera's coordinates.
 - New options to hide the origin and viewport in the 2D editor.
 - Improved 3D editor grid:
- The grid size and number of subdivisions can now be configured.
 - Its primary and secondary colors can now also be changed.
 
 - Ctrl now toggles snapping in the 3D viewport.
 - Find & replace in files (Ctrl + Shift + F by default).
 - Batch node renaming tool (Ctrl + F2 by default).
 - More editor scaling options to support HiDPI displays.
 - Type icons can now be enabled in the editor again.
 - Buttons in the editor to open common directories in the OS file manager:
- project data directory,
 - user data directory,
 - user settings directory.
 
 - Projects can now be sorted by name or modification date in the project manager.
 - Projects can now be imported from ZIP archives in the project manager.
 - Improved autocompletion.
- Keywords are now present in autocompletion results.
 
 editorandstandalonefeature tags to check whether the project is running from an editor or non-editor binary.android_add_asset_dir("...")method to Android module Gradle build configuration.- iOS: Support for exporting to the iPhone X.
 - iOS: Readded support for in-app purchases.
 
Changed
- Built-in vector types now use copy-on-write mode as originally intended, resulting in increased engine performance.
 - The mbedtls library is now used instead of OpenSSL.
 - Renamed several core files.
- Third-party modules may have to be updated to reflect this.
 
 - SSL certificates are now bundled in exported projects unless a custom bundle is specified.
 - Improved buffer writing performance on Windows and Linux.
 - Removed many debugging prints in the console.
 - Export templates now display an error dialog if no project was found when starting.
 - DynamicFont oversampling is now enabled by default.
 - Nodes' internal logic now consistently use internal physics processing.
 - Allow attaching and clearing scripts on multiple nodes at once.
 - Default values are no longer saved in scene and resource files.
 - The selection rectangle of 2D nodes is now hidden when not pertinent (no more rectangle for collision shapes).
 - SSE2 is now enabled in libsquish, resulting in improved S3TC encoding performance.
 - Tangent and binormal coordinates are now more consistent across mesh types (primitive/imported), resulting in more predictable normal map and depth map appearance.
 - Better defaults for 3D scenes.
- The default procedural sky now has a more neutral blue tone.
 - The default SpatialMaterial now has a roughness value of 1 and metallic value of 0.
 - The fallback material now uses the same values as the default SpatialMaterial.
 
 - Text editor themes are now sorted alphabetically in the selection dropdown.
 - The 3D manipulator gizmo now has a smoother, more detailed appearance.
 - The 3D viewport menu button now has a background to make it easier to read.
 - QuadMeshes are now built using two triangles (6 vertices) instead of one quad (4 vertices).
- This was done because quads are deprecated in OpenGL.
 
 - Controls inside containers are no longer movable or resizable but can still be selected.
 - The 
isGDScript keyword can now be used to compare a value against built-in types. - Exported variables with type hints are now always initialized.
- For example, 
export(int) var awill be initialized to0. 
 - For example, 
 - Named enums in GDScript no longer create script constants.
- This means 
enum Name { VALUE }must now be accessed withName.VALUEinstead ofVALUE. 
 - This means 
 - Cyclic references to other scripts with 
preload()are no longer allowed.load()should be used in at least one of the scripts instead.
 switch,caseanddoare no longer reserved identifiers in GDScript.- Shadowing variables from parent scopes is no longer allowed in GDScript.
 - Function parameters' default values can no longer depend on other parameters in GDScript.
 - Indentation guides are now displayed in a more subtle way in the script editor.
- Indentation guides are now displayed when indenting using spaces.
 
 - Multi-line strings are now highlighted as strings rather than as comments in the script editor.
- This is because GDScript does not officially support multiline comments.
 
 - Increased the script editor's line spacing (4 pixels → 6 pixels).
 - Increased the caret width in the script editor (1 pixel → 2 pixels).
 - The project manager window is now resized to match the editor scale.
 - The asset library now makes use of threading, making loading more responsive.
 - Line spacing in the script editor, underlines and caret widths are now resized to match the editor scale.
 - Replaced editor icons for checkboxes and radio buttons with simpler designs.
 - Tweaked the editor's success, error, and warning text colors for better readability and consistency.
 - Android: Custom permissions are now stored in an array and their amount is no longer limited to 20.
- Custom permissions will have to be redefined in projects imported from older versions.
 
 - Android: Provide error details when an in-app purchase fails.
 - Linux: 
OS.alert()now uses Zenity or KDialog if available instead of xmessage. - Mono: Display stack traces for inner exceptions.
 - Mono: Bundle 
mscorlib.dllwith Godot to improve portability. 
Removed
- Removed the RtAudio backend on Windows in favor of WASAPI, which is the default since 3.0.
 - macOS: Support for 32-bit and fat binaries.
 
Fixed
move_and_slide()now behaves differently at low velocities, which makes it function as originally intended.- AnimatedSprite2D's 
animation_finishedsignal is now triggered at the end of the animation, instead of as soon as the last frame displays. - Audio buses can now be removed in the editor while they are used by AudioStreamPlayer2D/3D nodes.
 - Do not show the project manager unless no project was found at all.
 - The animation editor time offset indicator no longer "walks" when resizing the editor.
 - Allow creation of a built-in GDScript file even if the filename suggested already exists.
 - Show tooltips in the editor when physics object picking is disabled.
 - Button shortcuts can now be triggered by gamepad buttons.
 - Fix a serialization bug that could cause TSCN files to grow very large.
 - Gizmos are now properly hidden on scene load if the object they control is hidden.
 - Camera gizmos in the 3D viewport no longer look twice as wide as they actually are.
 - Copy/pasting from the editor on X11 will now work more reliably.
 libgcc_sandlibstdc++are now linked statically for better Linux binary portability.- The FPS cap set by 
force_fpsin the Project Settings is no longer applied to the editor.- Low FPS caps no longer cause the editor to feel sluggish.
 
 - hiDPI is now detected and used if needed in the project manager.
 - The Visual Studio Code external editor option now recognizes more binary names such as 
code-oss, making detection more reliable. - The 
-ffast-mathflag is no longer used when compiling Godot, resulting in increased floating-point determinism. - Fix spelling of 
apply_torque_impulse()and deprecate the misspelled method. - Escape sequences like 
\nand\tare now recognized in CSV translation files. - Remove spurious errors when using a PanoramaSky without textures.
 - The lightmap baker will now use all available cores on Windows.
 - Bullet physics now correctly calculates effective gravity on KinematicBodies.
 - Setting the color 
vmember now correctly sets thesmember. - RichTextLabels now correctly determine the baseline for all fonts.
 - SpinBoxes now correctly calculate their initial size.
 - OGG streams now correctly signal the end of playback.
 - Android exporter no longer writes unnecessary permissions to the exported APK.
 - Debugger "focus stealing" now works more reliably.
 - Subresources are now always saved when saving a scene.
 - Many fixes related to importers (glTF, Collada, audio), physics (Bullet), Mono/C#, GDNative, Android/iOS.
 - Mono: Many fixes and improvements to C# support (including a 
[Signal]attribute). - WebAssembly: Supply proper CORS headers.
 
Security
- Fixed a security issue relating to deserializing Variants.
 
3.0 - 2018-01-29
Added
- Physically-based renderer using OpenGL ES 3.0.
- Uses the Disney PBR model, with clearcoat, sheen and anisotropy parameters available.
 - Uses a forward renderer, supporting multi-sample anti-aliasing (MSAA).
 - Parallax occlusion mapping.
 - Reflection probes.
 - Screen-space reflections.
 - Real-time global illumination using voxel cone tracing (GIProbe).
 - Proximity fade and distance fade (useful for creating soft particles and various effects).
 - Lightmapper for lower-end desktop and mobile platforms, as an alternative to GIProbe.
 
 - New SpatialMaterial resource, replacing FixedMaterial.
- Multiple passes can now be specified (with an optional "grow" property), allowing for effects such as cel shading.
 
 - Brand new 3D post-processing system.
- Depth of field (near and far).
 - Fog, supporting light transmittance, sun-oriented fog, depth fog and height fog.
 - Tonemapping and Auto-exposure.
 - Screen-space ambient occlusion.
 - Multi-stage glow and bloom, supporting optional bicubic upscaling for better quality.
 - Color grading and various adjustments.
 
 - Rewritten audio engine from scratch.
- Supports audio routing with arbitrary number of channels, including Area-based audio redirection (video).
 - More than a dozen of audio effects included.
 
 - Rewritten 3D physics using Bullet.
 - UDP-based high-level networking API using ENet.
 - IPv6 support for all of the engine's networking APIs.
 - Visual scripting.
 - Rewritten import system.
- Assets are now referenced with their source files, then imported in a transparent manner by the engine.
 - Imported assets are now cached in a 
.importdirectory, making distribution and versioning easier. - Support for ETC2 compression.
 - Support for uncompressed Targa (.tga) textures, allowing for faster importing.
 
 - Rewritten export system.
- GPU-based texture compression can now be tweaked per-target.
 - Support for exporting resource packs to build DLC / content addons.
 
 - Improved GDScript.
- Pattern matching using the 
matchkeyword. $shorthand forget_node().- Setters and getters for node properties.
 - Underscores in number literals are now allowed for improved readability (for example,
1_000_000). - Improved performance (+20% to +40%, based on various benchmarks).
 
 - Pattern matching using the 
 - Feature tags in the Project Settings, for custom per-platform settings.
 - Full support for the glTF 2.0 3D interchange format.
 - Freelook and fly navigation to the 3D editor.
 - Built-in editor logging (logging standard output to a file), disabled by default.
 - Improved, more intuitive file chooser in the editor.
 - Smoothed out 3D editor zooming, panning and movement.
 - Toggleable rendering information box in the 3D editor viewport.
- FPS display can also be enabled in the editor viewport.
 
 - Ability to render the 3D editor viewport at half resolution to achieve better performance.
 - GDNative for binding languages like C++ to Godot as dynamic libraries.
 - Editor settings and export templates are now versioned, making it easier to use several Godot versions on the same system.
 - Optional soft shadows for 2D rendering.
 - HDR sky support.
 - Ability to toggle V-Sync while the project is running.
 - Panorama sky support (sphere maps).
 - Support for WebM videos (VP8/VP9 with Vorbis/Opus).
 - Exporting to HTML5 using WebAssembly.
 - C# support using Mono.
- The Mono module is disabled by default, and needs to be compiled in at build-time.
 - The latest Mono version (5.4) can be used, fully supporting C# 7.0.
 
 - Support for rasterizing SVG to images on-the-fly, using the nanosvg library.
- Editor icons are now in SVG format, making them better-looking at non-integer scales.
 - Due to the library used, only simpler SVGs are well-supported, more complex SVGs may not render correctly.
 
 - Support for oversampling DynamicFonts, keeping them sharp when scaled to high resolutions.
 - Improved StyleBoxFlat.
- Border widths can now be set per-corner.
 - Support for anti-aliased rounded and beveled corners.
 - Support for soft drop shadows.
 
 - VeryLoDPI (75%) and MiDPI (150%) scaling modes for the editor.
 - Improved internationalization support for projects.
- Language changes are now effective without reloading the current scene.
 
 - Implemented missing features in the HTML5 platform.
- Cursor style changes.
 - Cursor capturing and hiding.
 
 - Improved styling and presentation of HTML5 exports.
- A spinner is now displayed during loading.
 
 - Rewritten the 2D and 3D particle systems.
- Particles are now GPU-based, allowing their use in much higher quantities than before.
 - Meshes can now be used as particles.
 - Particles can now be emitted from a mesh's shape.
 - Properties can now be modified over time using an editable curve.
 - Custom particle shaders can now be used.
 
 - New editor theme, with customizable base color, highlight color and contrast.
- A light editor theme option is now available, with icons suited to light backgrounds.
 - Alternative dark gray and Arc colors are available out of the box.
 
 - New adaptive text editor theme, adjusting automatically based on the editor colors.
 - Support for macOS trackpad gestures in the editor.
 - Exporting to macOS now creates a 
.dmgdisk image if exporting from an editor running on macOS.- Signing the macOS export now is possible if running macOS (requires a valid code signing certificate).
 
 - Exporting to Windows now changes the exported project's icon using 
rcedit(requires WINE if exporting from Linux or macOS). - Improved build system.
- Support for compiling using Visual Studio 2017.
 - SCons 3.0 and Python 3 are now supported (SCons 2.5 and Python 2.7 still work).
 - Link-time optimization can now be enabled by passing 
use_lto=yesto the SCons command line.- Produces faster and sometimes smaller binaries.
 - Currently only supported with GCC and MSVC.
 
 - Added a progress percentage when compiling Godot.
 .ziparchives are automatically created when compiling HTML5 export templates.
 - Easier and more powerful way to create editor plugins with EditorPlugin and related APIs.
 
Changed
- Increased the default low-processor-usage mode FPS limit (60 → 125).
- This makes the editor smoother and more responsive.
 
 - Increased the default 3D editor camera's field of view (55 → 70).
 - Increased the default 3D Camera node's field of view (65 → 70).
 - Changed the default editor font (Droid Sans → Noto Sans).
 - Changed the default script editor font (Source Code Pro → Hack)
 - Renamed 
engine.cfgtoproject.godot.- This allows users to open a project by double-clicking the file if Godot is associated to 
.godotfiles. 
 - This allows users to open a project by double-clicking the file if Godot is associated to 
 - Some methods from the 
OSsingleton were moved to the newEnginesingleton. - Switched from GLEW to GLAD for OpenGL wrapping.
 - Changed the SCons build flag for simple logs (
colored=yes→verbose=no). - The HTML5 platform now uses WebGL 2.0 (instead of 1.0).
 - Redesigned the Godot logo to be more legible at small sizes.
 
Deprecated
opacityandself_opacityare replaced bymodulateandself_modulatein all 2D nodes, allowing for full color changes in addition to opacity changes.
Removed
- Skybox support.
- Replaced with panorama skies, which are easier to import.
 
 - Opus audio codec support.
- This is due to the way the new audio engine is designed.
 
 - HTML5 export using asm.js.
- Only WebAssembly is supported now, since all browsers supporting WebGL 2.0 also support WebAssembly.