Godot 4.2 Stable is Here!
Tags: gamedev, news, godot, godotengine
Published: 2023-11-30 13:12:24

**Godot 4.2** is finally here, packed with exciting features and improvements for game developers. With over 1800 improvements submitted by 359 contributors, this release is a testament to the dedication and passion of the Godot community. 

{% embed https://www.youtube.com/watch?v=wHXJPaj6988 %}

## New Features and Improvements

Let's dive into some of the most significant highlights of this release:

### Code Regions in the Code Editor

One of my personal favorites in this release is the addition of **Code Regions** for GDScript in the code editor. This feature allows you to break up your scripts into named, foldable blocks for better organization and navigation.

![Godot Code Region](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ock4gop468mhvh070c5b.gif)

### Critical and Breaking Changes

While the Godot team strives for seamless compatibility between releases, some breaking changes are inevitable. To help with the migration process, they've provided a [migration guide for 4.2](https://docs.godotengine.org/en/4.2/tutorials/migrating/upgrading_to_godot_4.2.html).

### Core and Systems

This release focuses on stability, addressing design limitations, and fixing bugs related to renaming and moving files. Memory usage has also been optimized for projects using many plain Godot objects.

### 2D and 3D Features

- New features for 2D games include integer scaling for pixel-perfect graphics and closed lines support for `Line2D` nodes.
- In 3D, precise normals can now be calculated from raycast contact points using barycentric coordinates.

### Animation Improvements

`AnimationPlayer` and `AnimationTree` have been unified under the new `AnimationMixer` node, addressing various issues and inconsistencies. Onion skinning has also made a return, allowing for better animation previews.

### Navigation

The navigation system now supports 2D navigation mesh baking and multi-threaded baking for both 2D and 3D navigation meshes.

### Tilemaps

Tilemaps receive a plethora of improvements, including new tools for flipping and rotating tiles, performance optimizations, and usability enhancements.

### Editor and Usability

The editor has seen many improvements, such as better focus management, native file dialogs for desktop platforms, and an updated project manager.

### GDExtension

GDExtension sees a host of new features, including in-editor hot reloading, Web platform support, and new API functionalities.

### GUI and Theming

Focus management has been improved, and new features have been added to the `GraphEdit` node. Other improvements include seamless video looping and better image handling in `RichTextLabel`.

### Import and Asset Pipeline

Changes to the asset importing process include better handling of import type changes, new import options, and improved GLTF support.

### Input

Improvements to input handling include better mouse and focus event handling across multiple viewports and windows, as well as gamepad-related bug fixes.

### Multiplayer and Networking

The high-level multiplayer system has been enhanced with better synchronization options and streamlined scene replication.

### Porting and Platforms

New features for porting include one-click deployment for iOS, native file dialogs for desktop platforms, and a new architecture for Android that unlocks new features like multiple window support and quicker startup times.

___

Godot 4.2 is a significant release that brings a wealth of new features and improvements for game developers. There's too much to list here so be sure to [check out the original page](https://godotengine.org/article/godot-4-2-arrives-in-style/) for more details and to download the latest version of the engine. 

As always, if you'd like to support the Godot project financially, consider making a [recurring monthly donation](https://fund.godotengine.org/) to help ensure its sustainability and continued development. Your contributions go a long way in making Godot better for everyone.