<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.9.5">Jekyll</generator><link href="https://libgdx.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://libgdx.com/" rel="alternate" type="text/html" /><updated>2026-04-02T08:20:41+00:00</updated><id>https://libgdx.com/feed.xml</id><title type="html">libGDX</title><subtitle>libGDX is a cross-platform Java game development framework based on OpenGL (ES) that works on Windows, Linux, macOS, Android, your browser and iOS.</subtitle><entry><title type="html">libGDX Jam December 2025</title><link href="https://libgdx.com/news/2025/12/jam-december-2025" rel="alternate" type="text/html" title="libGDX Jam December 2025" /><published>2025-12-14T00:00:00+00:00</published><updated>2025-12-14T00:00:00+00:00</updated><id>https://libgdx.com/news/2025/12/jam-december-2025</id><content type="html" xml:base="https://libgdx.com/news/2025/12/jam-december-2025"><![CDATA[<p>With our 35th collaboration, the <a href="/community/jams/">libGDX Jam</a> continues the time-honoured tradition of making awesome games using the best framework out there. We encourage camaraderie, teamwork, and good sportsmanship with a side of well-intentioned buffoonery. The general jam rules can as always be found <a href="/community/jams/#rules">here</a>. <strong>To participate take a look at the official <a href="https://itch.io/jam/libgdx-jam-35">itch.io page of the jam</a>.</strong> The humorous jam trailer can be found on <a href="https://www.youtube.com/watch?v=flOSpVhL0pI">YouTube</a>.</p>

<p>Be sure to get involved with the community by joining the libGDX Discord server!</p>

<h2 id="schedule">Schedule</h2>
<p>The theme is <strong>BRIDGES</strong>. Good luck everybody!</p>

<ul>
  <li><strong>Theme Submission:</strong> 30th of November - 2nd of December. Everyone will be allowed to submit a theme for the jam.</li>
  <li><strong>Voting:</strong> 4th - 6th of December. Everyone will vote on their favourite theme. May the best win!</li>
  <li><strong>Jam:</strong> 7th - 13th of December. Participants will create their games and rejoice!</li>
</ul>

<!--## Submissions
The libGDX Jam December 2025 is now over! We hope everyone had a lot of fun and are proud to present the [N submissions](https://itch.io/jam/libgdx-jam-35/entries).-->]]></content><author><name></name></author><category term="news" /><summary type="html"><![CDATA[With our 35th collaboration, the libGDX Jam continues the time-honoured tradition of making awesome games using the best framework out there. We encourage camaraderie, teamwork, and good sportsmanship with a side of well-intentioned buffoonery. The general jam rules can as always be found here. To participate take a look at the official itch.io page of the jam. The humorous jam trailer can be found on YouTube.]]></summary></entry><entry><title type="html">libGDX 1.14.0</title><link href="https://libgdx.com/news/2025/10/gdx-1-14-0" rel="alternate" type="text/html" title="libGDX 1.14.0" /><published>2025-10-20T00:00:00+00:00</published><updated>2025-10-20T00:00:00+00:00</updated><id>https://libgdx.com/news/2025/10/gdx-1-14-0</id><content type="html" xml:base="https://libgdx.com/news/2025/10/gdx-1-14-0"><![CDATA[<p class="notice--primary no-top-margin">If you are looking for past changelogs, check out <a href="/news/changelog/">this</a> page.</p>

<p>libGDX 1.14.0 has been released with bug fixes and new features. See the changelog below for a complete overview.</p>

<h2 id="a-few-notable-changes">A few notable changes</h2>

<ul>
  <li>[CORE] The <code class="language-plaintext highlighter-rouge">Pools</code> changes in 1.13.5 have been partially reverted and the class has been deprecated. Users should either create a <code class="language-plaintext highlighter-rouge">DefaultPool</code> themselves or switch to the new <code class="language-plaintext highlighter-rouge">PoolManager</code>. To avoid reflection, <code class="language-plaintext highlighter-rouge">PoolManager</code> requires registering a class beforehand either via the constructor or <code class="language-plaintext highlighter-rouge">#addPool</code>. See <a href="https://github.com/libgdx/libgdx/pull/7648">#7648</a> for more information of the (now deprecated) <code class="language-plaintext highlighter-rouge">Pools</code> class and <a href="https://github.com/libgdx/libgdx/pull/7678">#7678</a> for more information on <code class="language-plaintext highlighter-rouge">PoolManager</code>.</li>
  <li>[CORE] Once again there have been multiple big and small improvements to the tiled map support, in particular class and template object support as well as the addition of a universal tiled map loader. Special thanks to BoBIsHere86 for that!</li>
  <li>[CORE] <code class="language-plaintext highlighter-rouge">JsonValue#get</code> is no longer case insensitive. Use <code class="language-plaintext highlighter-rouge">JsonValue#getIgnoreCase()</code>.</li>
  <li>[CORE] <code class="language-plaintext highlighter-rouge">StringBuilder</code> has been removed and its methods merged with <code class="language-plaintext highlighter-rouge">CharArray</code>.</li>
  <li>[LWJGL3] You can now use <code class="language-plaintext highlighter-rouge">Lwjgl3ApplicationConfiguration.useGlfwAsync();</code> as a shorthand for <code class="language-plaintext highlighter-rouge">if (SharedLibraryLoader.os == Os.MacOsX) Configuration.GLFW_LIBRARY_NAME.set("glfw_async");</code></li>
</ul>

<p>To check out our progress towards the next release, take a look at the <a href="https://github.com/libgdx/libgdx/milestone/10">corresponding milestone</a> on GitHub. As always, we appreciate feedback on the issues/PRs already part of the milestone and would like to invite you to bring forward anything still missing on our <a href="/community/discord/">Discord</a> server!</p>

<h3 id="full-changelog">Full changelog</h3>
<p class="notice--info">Updating your Gradle project is straight-forward: Check out the instructions <a href="/wiki/articles/updating-libgdx">on the wiki</a>!</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>- [BREAKING CHANGE] API: Pools changes in 1.13.5 have been partially reverted. Pools#get/Pools#obtain method return to requiring a Class parameter. Reflection is avoided by using pre-populated Pools for libgdx classes. See https://github.com/libgdx/libgdx/pull/7648 and https://github.com/libgdx/libgdx/pull/7678
- [BREAKING CHANGE] `JsonSkimmer` API changed to use JsonToken parameters.
- [BREAKING CHANGE] `JsonValue#last` added for O(1) append. Code that changes next may also need to change last.
- [BREAKING CHANGE] `JsonValue#get` is no longer case insensitive. Use `JsonValue#getIgnoreCase()`.
- [BREAKING CHANGE] `StringBuilder` has been deleted; its methods have been merged with `CharArray`.
- API Addition: Added `JsonValue#toJson` that takes a Writer.
- API Addition: Added `getProgrammaticChangeEvents()` to scene2d.ui actors that have `setProgrammaticChangeEvents()`.
- API Addition: Added `JsonMatcher`, extracts values with pattern matching.
- API Addition: Added `setUniform_iv` functions in `ShaderProgram` to set uniform integer arrays
- API Deprecation: Pools class is now deprecated and not used internally. Some functionality can be restored by using the new `PoolManager` class.
- API Fix: Fixed crashes when reading the soft buttons bar height on Android.
- API Addition: Multi sample FBOs can now be used with OpenGL ES 3.0+ instead of OpenGL ES 3.1+
- API Addition: Lwjgl3ApplicationConfiguration#useGlfwAsync
- API Addition: A Universal Tiled Map Loader
- API Fix: Allow Creation of HexagonTiledMapRenderer with empty TiledMap
- API Fix: Fixed a GWT incompatibility issue in the AtlasTmxMapLoader and AtlasTmjMapLoader 
- API Addition: Add a constructor taking a TextureData array to FileTextureArrayData
- API Fix: fix wrong x, y layer offset in HexagonalTiledMapRenderer
- API Addition: Added Template Object Support for TiledMaps
- API Addition: Added glBlendFuncSeparate support in RenderContext
- API Addition: VAO byte calculation add support for int and uint
- API Addition: Add Vector.One static fields for convenience
- API Addition: Extract AndroidGraphics#createGraphics method so a custom instance can be created
- API Addition: Class support in Tiled
- API Addition: Update freetype to v2.13.3
- API Fix: Replace deprecated methods on AndroidAudioDevice and AndroidCursor
- API Fix: Fixed JsonValue#setChild failing when child is null.
- Various javadoc improvements
</code></pre></div></div>]]></content><author><name></name></author><category term="news" /><category term="changelog" /><summary type="html"><![CDATA[We are proud to present a new release of libGDX: version 1.14.0!]]></summary></entry><entry><title type="html">libGDX Jam June 2025</title><link href="https://libgdx.com/news/2025/06/jam-june-2025" rel="alternate" type="text/html" title="libGDX Jam June 2025" /><published>2025-06-15T00:00:00+00:00</published><updated>2025-06-15T00:00:00+00:00</updated><id>https://libgdx.com/news/2025/06/jam-june-2025</id><content type="html" xml:base="https://libgdx.com/news/2025/06/jam-june-2025"><![CDATA[<p>With our 33rd collaboration, the <a href="/community/jams/">libGDX Jam</a> continues the time-honoured tradition of making awesome games using the best framework out there. We encourage camaraderie, teamwork, and good sportsmanship with a side of well-intentioned buffoonery. The general jam rules can as always be found <a href="/community/jams/#rules">here</a>. <strong>To participate take a look at the official <a href="https://itch.io/jam/libgdx-jam-33">itch.io page of the jam</a>.</strong> The humorous jam trailer can be found on <a href="https://www.youtube.com/watch?v=BAo8U_P0JBU">YouTube</a>.</p>

<p>Be sure to get involved with the community by joining the libGDX Discord server!</p>

<h2 id="schedule">Schedule</h2>
<p>The theme is <strong>Nature’s Revenge</strong>. Good luck everybody!</p>

<ul>
  <li><strong>Theme Submission:</strong> There are no theme submissions for this special jam!</li>
  <li><strong>Voting:</strong> 12th - 14th of June. Everyone will vote on their favourite theme. May the best win!</li>
  <li><strong>Jam:</strong> 15th - 21st of June. Participants will create their games and rejoice!</li>
</ul>

<!--## Submissions
The libGDX Jam June 2025 is now over! We hope everyone had a lot of fun and are proud to present the [N submissions](https://itch.io/jam/libgdx-jam-33/entries).-->]]></content><author><name></name></author><category term="news" /><summary type="html"><![CDATA[With our 33rd collaboration, the libGDX Jam continues the time-honoured tradition of making awesome games using the best framework out there. We encourage camaraderie, teamwork, and good sportsmanship with a side of well-intentioned buffoonery. The general jam rules can as always be found here. To participate take a look at the official itch.io page of the jam. The humorous jam trailer can be found on YouTube.]]></summary></entry><entry><title type="html">libGDX 1.13.5</title><link href="https://libgdx.com/news/2025/05/gdx-1-13-5" rel="alternate" type="text/html" title="libGDX 1.13.5" /><published>2025-05-13T00:00:00+00:00</published><updated>2025-05-13T00:00:00+00:00</updated><id>https://libgdx.com/news/2025/05/gdx-1-13-5</id><content type="html" xml:base="https://libgdx.com/news/2025/05/gdx-1-13-5"><![CDATA[<p class="notice--primary no-top-margin">If you are looking for past changelogs, check out <a href="/news/changelog/">this</a> page.</p>

<p>Hi, kids, Mario here! After accidentally breaking a few patch releases (oops!), I’m back with libGDX 1.13.5! The reason? Sonatype is <a href="https://central.sonatype.org/news/20250326_ossrh_sunset/">sunsetting OSSRH in June</a>, forcing us to migrate to their new Central Portal service. With their lacking documentation and Gradle support, it was quite the adventure. But we got there in the end!</p>

<p class="notice--warning">Please note that due to an issue with R8 and the Supplier API (which is used within the pooling classes), libGDX 1.13.5 is not recommended for Android. Users are advised to switch to the new 1.14.0 or stay on version 1.13.1.</p>

<h2 id="a-few-notable-changes">A few notable changes</h2>

<ul>
  <li>[BREAKING CHANGE] Android: Updated minSDK to 21. Multidex config is no longer required.</li>
  <li>[BREAKING CHANGE] Gradle: Snapshot builds are now published to https://central.sonatype.com/repository/maven-snapshots/. This means that you need to update your build scripts and add the new repository URL. Some of your other snapshot dependencies might still live on OSSRH, so make sure to keep that repository as well.</li>
  <li>[BREAKING CHANGE] Skin <code class="language-plaintext highlighter-rouge">setEnabled</code> now only works with actors that implement <code class="language-plaintext highlighter-rouge">Styleable</code>. Use <code class="language-plaintext highlighter-rouge">setEnabledReflection</code> for old behavior.</li>
  <li>[iOS] Updated to MobiVM 2.3.23 and replaced MetalANGLE backend with MetalANGLEKit.</li>
  <li>[ANDROID] Removed <code class="language-plaintext highlighter-rouge">AndroidApplicationConfiguration#touchSleepTime</code>.</li>
  <li>[LWJGL3] The signature of <code class="language-plaintext highlighter-rouge">OpenALLwjgl3Audio#registerSound/registerMusic</code> has changed to use method references.</li>
  <li>Added support for Tiled “Text Objects” through new TextMapObject class.</li>
  <li>Multiple API additions including various Array replacement methods and new Drawable default interface methods.</li>
  <li>API Deprecation: Deprecated ReflectionPool and related methods in favor of new DefaultPool with improved safety.</li>
</ul>

<p>To check out our progress towards the next release, take a look at the <a href="https://github.com/libgdx/libgdx/milestone/9">corresponding milestone</a> on GitHub. As always, we appreciate feedback on the issues/PRs already part of the milestone and would like to invite you to bring forward anything still missing on our <a href="/community/discord/">Discord</a> server!</p>

<h3 id="full-changelog">Full changelog</h3>
<p class="notice--info">Updating your Gradle project is straight-forward: Check out the instructions <a href="/wiki/articles/updating-libgdx">on the wiki</a>!</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>- [BREAKING CHANGE] Gradle: snapshot builds are now publishes to https://central.sonatype.com/repository/maven-snapshots/. Update your build scripts and the new repository URL. Some of your other snapshot dependencies might still live on OSSRH, so make sure to keep that repository as well.
- [BREAKING CHANGE] Gradle: The `publish` task now uses jreleaser to publish to Maven Central. The RELEASE_REPOSITORY_URL environment variable is no longer interpreted. SNAPSHOT_REPOSITORY_URL works as before.]
- [BREAKING CHANGE] Android: Updated minSDK to 21. Multidex config is no longer required, please check https://developer.android.com/build/multidex.
- [BREAKING CHANGE] Android: Proguard config line `boolean getUseDefaultContactFilter();` needs to be added. See https://github.com/libgdx/libgdx/pull/7578.
- [BREAKING CHANGE] Android: Removed `AndroidApplicationConfiguration#touchSleepTime`.
- [BREAKING CHANGE] Skin `setEnabled` now only works with actors that implement `Styleable`. Use `setEnabledReflection` for old behavior or add `Styleable` to your actors.
- [BREAKING CHANGE] LWJGL3: The signature of `OpenALLwjgl3Audio#registerSound/registerMusic` has changed. To migrate just replace `registerMusic("myMusic", MyMusic.class);` with `registerMusic("myMusic", MyMusic::new);`
- [BREAKING CHANGE] HorizontalGroup and VerticalGroup set transform false by default.
- [BREAKING CHANGE] Gradle: The `publish` task now uses jreleaser to publish to Maven Central. The RELEASE_REPOSITORY_URL environment variable is no longer interpreted. SNAPSHOT_REPOSITORY_URL works as before.
- API Addition: Allow option to set Box2D native ContactFilter (World#setContactFilter(null)) for performance improvements.
- API Addition: Added BooleanArray#replaceFirst and BooleanArray#replaceAll
- API Addition: Added ByteArray#replaceFirst and ByteArray#replaceAll
- API Addition: Added CharArray#replaceFirst and CharArray#replaceAll
- API Addition: Added DelayedRemovalArray#replaceFirst and DelayedRemovalArray#replaceAll
- API Addition: Added FloatArray#replaceFirst and FloatArray#replaceAll
- API Addition: Added IntArray#replaceFirst and IntArray#replaceAll
- API Addition: Added LongArray#replaceFirst and LongArray#replaceAll
- API Addition: Added ShortArray#replaceFirst and ShortArray#replaceAll
- API Addition: Added SnapshotArray#replaceFirst and SnapshotArray#replaceAll
- API Addition: Actors that implement `getStyle` and `setStyle` should now implement the `Styleable` interface
- API Addition: Added BitmapFontCache#getPageCount.
- API Addition: Added TextField#drawBackground, #updateDisplayText is protected.
- API Addition: Added Drawable default interface methods.
- Android: Fixed rare NPE when `onDestroy` was called
- Support has been added for Tiled "Text Objects", through new TextMapObject class
- API Deprecation: Deprecated ReflectionPool and the related Pools#get/Pools#obtain method. Please use the new DefaultPool with the new Pools#get/Pools#obtain methods. They offer more safety and can be used with the java 8 method reference syntax (e.g. Pools.get(MyClass::new))
- API Deprecation: Deprecated constructors taking a "Class" for Queue/ArrayMap/Array. Please use the constructors utilising "ArraySupplier". They offer more safety and can be used with the java 8 method reference syntax (e.g. MyClass[]::new)
- API Deprecation: Deprecated constructors taking a "Class" for ParallelArray.ChannelDescriptor. Please use the constructors utilising "ArraySupplier". They offer more safety and can be used with the java 8 method reference syntax (e.g. MyClass[]::new)
- iOS: Update to MobiVM 2.3.23
- iOS: The MetalANGLE backend has been replaced by MetalANGLEKit which uses a newer ANGLE revision
- Fixed Container#setCullingArea.
- iOS: Fixing issue where after setText is called on TextField, characters cannot be deleted until a new character is added.
</code></pre></div></div>]]></content><author><name></name></author><category term="news" /><category term="changelog" /><summary type="html"><![CDATA[We are proud to present a new release of libGDX: version 1.13.5!]]></summary></entry><entry><title type="html">libGDX Jam March 2025</title><link href="https://libgdx.com/news/2025/03/jam-march-2025" rel="alternate" type="text/html" title="libGDX Jam March 2025" /><published>2025-03-10T00:00:00+00:00</published><updated>2025-03-10T00:00:00+00:00</updated><id>https://libgdx.com/news/2025/03/jam-march-2025</id><content type="html" xml:base="https://libgdx.com/news/2025/03/jam-march-2025"><![CDATA[<p>With our 32nd collaboration, the <a href="/community/jams/">libGDX Jam</a> continues the time-honoured tradition of making awesome games using the best framework out there. We encourage camaraderie, teamwork, and good sportsmanship with a side of well-intentioned buffoonery. The general jam rules can as always be found <a href="/community/jams/#rules">here</a>. <strong>To participate take a look at the official <a href="https://itch.io/jam/libgdx-jam-32">itch.io page of the jam</a>.</strong> The humorous jam trailer can be found on <a href="https://www.youtube.com/watch?v=aH6wBTIfDjk">YouTube</a>.</p>

<p>Be sure to get involved with the community by joining the libGDX Discord server!</p>

<h2 id="schedule">Schedule</h2>
<p><em>The theme is yet to be revealed.</em>
<!--The theme is **this**. Good luck everybody!--></p>

<ul>
  <li><strong>Theme Submission:</strong> 9th - 11th of March. Everyone will be allowed to submit a theme for the jam.</li>
  <li><strong>Voting:</strong> 13th - 15th of March. Everyone will vote on their favourite theme. May the best win!</li>
  <li><strong>Jam:</strong> 16th - 22nd of March. Participants will create their games and rejoice!</li>
</ul>

<!--## Submissions
The libGDX Jam March 2025 is now over! We hope everyone had a lot of fun and are proud to present the [N submissions](https://itch.io/jam/libgdx-jam-32/entries).-->]]></content><author><name></name></author><category term="news" /><summary type="html"><![CDATA[With our 32nd collaboration, the libGDX Jam continues the time-honoured tradition of making awesome games using the best framework out there. We encourage camaraderie, teamwork, and good sportsmanship with a side of well-intentioned buffoonery. The general jam rules can as always be found here. To participate take a look at the official itch.io page of the jam. The humorous jam trailer can be found on YouTube.]]></summary></entry><entry><title type="html">libGDX 1.13.1</title><link href="https://libgdx.com/news/2025/01/gdx-1-13-1" rel="alternate" type="text/html" title="libGDX 1.13.1" /><published>2025-01-08T00:00:00+00:00</published><updated>2025-01-08T00:00:00+00:00</updated><id>https://libgdx.com/news/2025/01/gdx-1-13-1</id><content type="html" xml:base="https://libgdx.com/news/2025/01/gdx-1-13-1"><![CDATA[<p class="notice--primary no-top-margin">If you are looking for past changelogs, check out <a href="/news/changelog/">this</a> page.</p>

<p>Hot off the press: libGDX 1.13.1 brings a few pressing bugfixes as well as a couple of interesting new features. Check out the full list below to find out more.</p>

<h2 id="a-few-notable-changes">A few notable changes</h2>

<ul>
  <li>[ANDROID] The AndroidX core dependency is now included with libGDX (<a href="https://github.com/libgdx/libgdx/pull/7543">#7543</a>).</li>
  <li>[CORE] There have been quite a few improvements to the tiled map support (<a href="https://github.com/libgdx/libgdx/pull/7076">#7076</a>, <a href="https://github.com/libgdx/libgdx/pull/7135">#7135</a>, <a href="https://github.com/libgdx/libgdx/pull/7505">#7505</a>, <a href="https://github.com/libgdx/libgdx/pull/7534">#7534</a>). Thanks to BoBIsHere86 for that!</li>
  <li>[GWT] Fix issue with SpriteBatch (<a href="https://github.com/libgdx/libgdx/pull/7486">#7486</a>)</li>
  <li>[iOS] Updated to <a href="https://github.com/MobiVM/robovm/wiki/Changelog#current-master-2322----work-in-progress">MobiVM 2.3.22</a> from 2.3.21.</li>
  <li>[LWJGL3] We downgraded the LWJGL version to 3.3.3 to avoid the ongoing antivirus false positives. This means that the RISC-V support is only available in libGDX 1.13.1 if you manually upgrade your LWJGL dependency (<a href="https://github.com/libgdx/libgdx/pull/7555">#7555</a>).</li>
</ul>

<p>To check out our progress towards the next release, take a look at the <a href="https://github.com/libgdx/libgdx/milestone/8">corresponding milestone</a> on GitHub. As always, we appreciate feedback on the issues/PRs already part of the milestone and would like to invite you to bring forward anything still missing on our <a href="/community/discord/">Discord</a> server!</p>

<h3 id="full-changelog">Full changelog</h3>
<p class="notice--info">Updating your Gradle project is straight-forward: Check out the instructions <a href="/wiki/articles/updating-libgdx">on the wiki</a>!</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>- [BREAKING CHANGE] Android: Since 1.13.0 libGDX requires setting `android.useAndroidX=true` in your gradle.properties file. In 1.13.1 it is NO longer needed to define the `androidx.core:core` dependency in your Android module.
- iOS: Update to MobiVM 2.3.22
- iOS: Fixes Gdx.openURI() not working on iOS 18.1 Simulator.
- Change visibility of PolygonSpriteBatch.switchTexture() to protected
- Added XmlReader.getChildren() and XmlReader.replaceChild()
- LWJGL3: Fix pauseWhenLostFocus not working as expected
- LWJGL 3: Downgrade to 3.3.3 due to AV false positives on 3.3.4 and OpenAL log spamming issue on 3.3.5.
- API Addition: Added FPSLogger#setBound
- Android: Fix crash on startup if `setContentView` was manually called after `initializeForView`
- API Addition: Added Array#replaceFirst and Array#replaceAll
- Fixed ShortArray#lastIndexOf taking char instead of short.
- Properly validate font name in Hiero
- Fix depth shader recycling
- Support 'class' Tiled/Tmx MapProperty
- Support for Layer TintColor in TiledMap
- Fix classpath files not being loaded on GWT
- Fixed LongArray#lastIndexOf taking char instead of long.
- LongArray#pop and #peek now throw expections if the array is empty
- Reset existing transformations of provided overlap Polygon in Polygon::intersectPolygons
- Added tiledmap loader for JSON files
- Fix duplicate points returned in polygon intersection
- Change defaults of SpriteBatch to use VBO instead of VertexArray on gl2/gles2.0
- Fix: no longer inline the version string
- GWT - Calculate MD5 hash while copying file to avoid errors on very large files
- Fix: Wayland doesn't support setting window position and icon
- Fix: Parsing imagelayer inside a group tag in TMX file
- Improve Android input keyboard with autocorrection
- Unproject and pick ray docs for Viewport/Camera
- Support for Image Layer repeat x and y in TiledMap + Bugfix
</code></pre></div></div>]]></content><author><name></name></author><category term="news" /><category term="changelog" /><summary type="html"><![CDATA[We are proud to present a new release of libGDX: version 1.13.1!]]></summary></entry><entry><title type="html">libGDX Jam December 2024</title><link href="https://libgdx.com/news/2024/12/jam-december-2024" rel="alternate" type="text/html" title="libGDX Jam December 2024" /><published>2024-12-10T00:00:00+00:00</published><updated>2024-12-10T00:00:00+00:00</updated><id>https://libgdx.com/news/2024/12/jam-december-2024</id><content type="html" xml:base="https://libgdx.com/news/2024/12/jam-december-2024"><![CDATA[<p>With our 31st collaboration, the <a href="/community/jams/">libGDX Jam</a> continues the time-honoured tradition of making awesome games using the best framework out there. We encourage camaraderie, teamwork, and good sportsmanship with a side of well-intentioned buffoonery. The general jam rules can as always be found <a href="/community/jams/#rules">here</a>. <strong>To participate take a look at the official <a href="https://itch.io/jam/libgdx-jam-31">itch.io page of the jam</a>.</strong> The humorous jam trailer can be found on <a href="https://www.youtube.com/watch?v=lRdmAIkjvF0">YouTube</a>.</p>

<p>Be sure to get involved with the community by joining the libGDX Discord server!</p>

<h2 id="schedule">Schedule</h2>
<p>The theme is <strong>Roguelike</strong>. Good luck everybody!</p>

<ul>
  <li><strong>Theme Submission:</strong> 1st - 3rd of December. Everyone will be allowed to submit a theme for the jam.</li>
  <li><strong>Voting:</strong> 5th - 7th of December. Everyone will vote on their favourite theme. May the best win!</li>
  <li><strong>Jam:</strong> 8th - 14th of December. Participants will create their games and rejoice!</li>
</ul>

<!--## Submissions
The libGDX Jam December 2024 is now over! We hope everyone had a lot of fun and are proud to present the [N submissions](https://itch.io/jam/libgdx-jam-31/entries).-->]]></content><author><name></name></author><category term="news" /><summary type="html"><![CDATA[With our 31st collaboration, the libGDX Jam continues the time-honoured tradition of making awesome games using the best framework out there. We encourage camaraderie, teamwork, and good sportsmanship with a side of well-intentioned buffoonery. The general jam rules can as always be found here. To participate take a look at the official itch.io page of the jam. The humorous jam trailer can be found on YouTube.]]></summary></entry><entry><title type="html">libGDX 1.13.0</title><link href="https://libgdx.com/news/2024/10/gdx-1-13" rel="alternate" type="text/html" title="libGDX 1.13.0" /><published>2024-10-17T00:00:00+00:00</published><updated>2024-10-17T00:00:00+00:00</updated><id>https://libgdx.com/news/2024/10/gdx-1-13</id><content type="html" xml:base="https://libgdx.com/news/2024/10/gdx-1-13"><![CDATA[<p class="notice--primary no-top-margin">If you are looking for past changelogs, check out <a href="/news/changelog/">this</a> page.</p>

<p>It has been some time since our last release, but version 1.13.0 of libGDX brings plenty of improvements and bug fixes. Check out the full list below to find out more.</p>

<p class="notice--warning">Please note that at the moment, any desktop apps developed with version 1.13.0 seem to be incorrectly flagged by some antivirus programs. The likely cause is a <a href="https://github.com/LWJGL/lwjgl3/issues/1005">false positive of LWJGL 3’s natives</a>. Find out more <a href="https://github.com/libgdx/gdx-liftoff/issues/207">here</a>.</p>

<h2 id="breaking-changes">Breaking changes</h2>

<p>The following changes require you to adapt your existing libGDX codebases:</p>

<ul>
  <li>[ANDROID] The minimum API level is now <code class="language-plaintext highlighter-rouge">19</code> (Android 4.4).</li>
  <li>[ANDROID] Removed <code class="language-plaintext highlighter-rouge">Input#setCatchBackKey</code>, <code class="language-plaintext highlighter-rouge">#isCatchBackKey</code>, <code class="language-plaintext highlighter-rouge">#setCatchMenuKey</code>, and <code class="language-plaintext highlighter-rouge">#isCatchMenuKey</code> deprecated in 1.9.10. Use <code class="language-plaintext highlighter-rouge">#setCatchKey</code> and <code class="language-plaintext highlighter-rouge">#isCatchKey</code> instead.</li>
  <li>[ANDROID] The Android backend now depends on AndroidX. To update your old projects, add <code class="language-plaintext highlighter-rouge">android.useAndroidX=true</code> to your <code class="language-plaintext highlighter-rouge">gradle.properties</code> file and add <code class="language-plaintext highlighter-rouge">implementation "androidx.core:core:1.13.1"</code> as dependency to your Android module. Since libGDX 1.13.1 this dependency is provided by libGDX itself.</li>
  <li>[ANDROID &amp; iOS] Exceptions occurring in <code class="language-plaintext highlighter-rouge">Runnable</code> tasks scheduled through <code class="language-plaintext highlighter-rouge">Gdx.app.postRunnable(...)</code> are no longer swallowed and will crash the app. Add a protection to your tasks if required.</li>
  <li>[GWT] Updated to <a href="https://www.gwtproject.org/release-notes.html#Release_Notes_2_11_0">GWT 2.11.0</a> from 2.10.0. This improves the JRE emulation to support features from Java 11 like collections, streams, and more. To keep old projects working, add <code class="language-plaintext highlighter-rouge">com.google.jsinterop:jsinterop-annotations:2.0.2:sources</code> as dependency to your html subproject.</li>
  <li>[iOS] The minimum supported iOS version is now 12.0. Update your <code class="language-plaintext highlighter-rouge">Info.plist</code> file if necessary.</li>
  <li>[LWJGL3] The <code class="language-plaintext highlighter-rouge">gdx-lwjgl3-glfw-awt-macos</code> extension was retired. Just remove it from your dependencies and use the following snippet at the start of your <code class="language-plaintext highlighter-rouge">main()</code> method instead (<a href="https://github.com/libgdx/libgdx/pull/7361">#7361</a>):
    <div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code> <span class="k">if</span> <span class="o">(</span><span class="nc">SharedLibraryLoader</span><span class="o">.</span><span class="na">isMac</span><span class="o">)</span> <span class="o">{</span>
     <span class="nc">Configuration</span><span class="o">.</span><span class="na">GLFW_LIBRARY_NAME</span><span class="o">.</span><span class="na">set</span><span class="o">(</span><span class="s">"glfw_async"</span><span class="o">);</span>
 <span class="o">}</span>
</code></pre></div>    </div>
  </li>
</ul>

<h2 id="a-few-notable-changes">A few notable changes</h2>
<p>In addition, there are a couple notable changes:</p>

<ul>
  <li>[CORE] There have been a couple of minor performance improvements, in particular to <code class="language-plaintext highlighter-rouge">Sprite</code> and <code class="language-plaintext highlighter-rouge">SpriteBatch</code>.</li>
  <li>[CORE] Added framebuffer multisample support (<a href="https://github.com/libgdx/libgdx/pull/7185">#7185</a>). Take a look at <a href="https://github.com/libgdx/libgdx/blob/master/tests/gdx-tests/src/com/badlogic/gdx/tests/gles31/GL31FrameBufferMultisampleTest.java"><code class="language-plaintext highlighter-rouge">GL31FrameBufferMultisampleTest</code></a> for a simple example of how to use it.</li>
  <li>[CORE] There is a new API to get user input via native text fields (<a href="https://github.com/libgdx/libgdx/pull/7004">#7004</a>).</li>
  <li>[GWT] The audio device can be switched now (<a href="https://github.com/libgdx/libgdx/pull/7243">#7243</a>). This has to be enabled via <code class="language-plaintext highlighter-rouge">GwtApplicationConfiguration#fetchAvailableOutputDevices</code> beforehand.</li>
  <li>[iOS] Updated to <a href="https://github.com/MobiVM/robovm/wiki/Changelog#2321-february-2024">MobiVM 2.3.21</a> from 2.3.21.</li>
  <li>[iOS] The iOS backend now has an implementaion for <code class="language-plaintext highlighter-rouge">AudioDevice</code> (<a href="https://github.com/libgdx/libgdx/pull/7371">#7371</a>). It can be configured through <code class="language-plaintext highlighter-rouge">IOSApplicationConfiguration</code> with <code class="language-plaintext highlighter-rouge">audioDeviceBufferSize</code> and <code class="language-plaintext highlighter-rouge">audioDeviceBufferCount</code>.</li>
  <li>[LWJGL3] Added the <code class="language-plaintext highlighter-rouge">Lwjgl3ApplicationConfiguration#pauseWhenMinimized</code> and <code class="language-plaintext highlighter-rouge">#pauseWhenLostFocus</code> flags to control when the application should call the <code class="language-plaintext highlighter-rouge">pause()</code> method on the <code class="language-plaintext highlighter-rouge">ApplicationListener</code> (<a href="https://github.com/libgdx/libgdx/pull/7287">#7287</a>).</li>
  <li>[LWJGL3] Support for Linux RISC-V has been added (<a href="https://github.com/libgdx/libgdx/pull/7275">#7275</a>).</li>
</ul>

<p>To check out our progress towards the next release, take a look at the <a href="https://github.com/libgdx/libgdx/milestone/7">corresponding milestone</a> on GitHub. As always, we appreciate feedback on the issues/PRs already part of the milestone and would like to invite you to bring forward anything still missing on our <a href="/community/discord/">Discord</a> server!</p>

<h3 id="full-changelog">Full changelog</h3>
<p class="notice--info">Updating your Gradle project is straight-forward: Check out the instructions <a href="/wiki/articles/updating-libgdx">on the wiki</a>!</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>- [BREAKING CHANGE] GWT: Updated to 2.11.0. `com.google.jsinterop:jsinterop-annotations:2.0.2:sources` must be added as a dependency to your html project dependencies.
- [BREAKING CHANGE] Android: Minimum API level is now level 19 (Android 4.4)
- [BREAKING CHANGE] iOS: Increased min supported iOS version to 12.0. Update your Info.plist file if necessary.
- [BREAKING CHANGE] Android, iOS: Exceptions occurring in Runnable tasks scheduled through Gdx.app.postRunnable() are no longer swallowed and will crash the app (add a protection if required).
- Updated: Update to jnigen 2.5.2
- iOS: Update to MobiVM 2.3.21
- iOS: The iOS backend now implements AudioDevice. It can be configured through IOSApplicationConfiguration with audioDeviceBufferSize/audioDeviceBufferCount
- Fixed GlyphLayout for fixed width glyph offsets at the start and end of lines.
- Fixed scene2d.ui layout for fractional positions and sizes.
- LWJGL3: Added pauseWhenMinimized and pauseWhenLostFocus flags to Lwjgl3ApplicationConfiguration.
- libGDX is now built using Java 17 due to Gradle 8 requirements.
- New GDX Setup projects now use Gradle 8.4 and AGP Plugin 8.1.2 which require at least Java 17.
- Fixed Timer#stop, remember time spent stopped and delay tasks when started again. #7281
- Android: Add configuration option to render under the cutout if available on the device.
- Fix: Keep SelectBox popup from extending past right edge of stage.
- Added Framebuffer multisample support (see GL31FrameBufferMultisampleTest.java for basic usage)
- Fix: Fonts generated with gdx-freetype no longer bleed when drawn with a shadow
- Fixed Timer tasks being run after cancellation.
- Optimization of SpriteBatch in GL30 default modes, as indices do not need to be updated
- Desktop: Added support for 8/32/64-bit PCM and MP3 WAVs
- Desktop: Improved support for surround sound audio files (#6792)
- Android: Added support for predictive back gesture (requires android:enableOnBackInvokedCallback="true" in manifest)
- API Removal: Removed deprecated back and menu key methods. Use `setCatchKey` and `isCatchKey` instead.
- Cache packed color on sprite to improve performance
- Improve JsonReader, add JsonSkimmer, JsonString
- Add proper glTexImage2D support on GWT
- Expose the color variables of Box2DDebugRenderer
- Add Color#set(Color rgb, float a)
- Prevent loss of precision in OrthographicCamera#update
- Fix offsets in ConvexHull while being unsorted
- Small particle emitter improvements
- Fix : RenderBuffer leak in GLFrameBuffer
- LWJGL 3: Remove unnecessary window.makeCurrent() calls to improve performance (#7362)
- Fix: DragListener only listens to the correct touch up events
- Fix incorrect glyph page index in FreeTypeFontGenerator
- Added TextureAtlas.TextureAtlasData.Page#name.
- iOS: Improve preferred FPS setting logic and documentation on iOS backend
- Fixed TextField breaking if the font has markup enabled.
- Only allow scrolling of a scroll pane if it has scroll focus
- iOS: Adding RoboVM AudioDevice implementation
- Add new Color#CLEAR_WHITE
- Fixed ScrollPane#scrollTo setting scrollX when there's a width
- Screens now extend the Disposable interface
- Added antialiasing flag to the ScreenUtils.
- Fix Intersector.intersectPolygons() corner case
- LWJGL 3: Fix the delta time not changing when resizing the window
- GWT: Allow switching the audio device; this has to be enabled via GwtApplicationConfiguration#fetchAvailableOutputDevices
- Add API to get user inout with native text fields (#7004)
- Fix issue with the 'request still pending' check on NetJavaImpl
- Added possibility to reset a particle effect without starting it
- Android &amp; iOS: Use empty Audio implementations on Android and iOS when audio is disabled
- Adds status detection for an httpRequest
- Fix ANGLE GLES renderer on dekstop (#7274)
- Architecture support: Support for Linux RISC-V has been added. The gdx-xxx-natives-desktop.jar files now also contain native libraries for this architecture.
</code></pre></div></div>]]></content><author><name></name></author><category term="news" /><category term="changelog" /><summary type="html"><![CDATA[We are proud to present a new release of libGDX: version 1.13.0!]]></summary></entry><entry><title type="html">libGDX Jam September 2024</title><link href="https://libgdx.com/news/2024/09/jam-september-2024" rel="alternate" type="text/html" title="libGDX Jam September 2024" /><published>2024-09-01T00:00:00+00:00</published><updated>2024-09-01T00:00:00+00:00</updated><id>https://libgdx.com/news/2024/09/jam-september-2024</id><content type="html" xml:base="https://libgdx.com/news/2024/09/jam-september-2024"><![CDATA[<p>With our 30th collaboration, the <a href="/community/jams/">libGDX Jam</a> continues the time-honoured tradition of making awesome games using the best framework out there. We encourage camaraderie, teamwork, and good sportsmanship with a side of well-intentioned buffoonery. The general jam rules can as always be found <a href="/community/jams/#rules">here</a>. <strong>To participate take a look at the official <a href="https://itch.io/jam/libgdx-jam-30">itch.io page of the jam</a>.</strong> The humorous jam trailer can be found on <a href="https://www.youtube.com/watch?v=vGF44yOH1xk">YouTube</a>.</p>

<p>Be sure to get involved with the community by joining the libGDX Discord server!</p>

<h2 id="schedule">Schedule</h2>
<p>The theme is <strong>THE 4 ELEMENTS</strong>. Good luck everybody!</p>

<ul>
  <li><strong>Theme Submission:</strong> 8th - 10th of September. Everyone will be allowed to submit a theme for the jam.</li>
  <li><strong>Voting:</strong> 12th - 14th of September. Everyone will vote on their favourite theme. May the best win!</li>
  <li><strong>Jam:</strong> 15th - 21st of September. Participants will create their games and rejoice!</li>
</ul>

<!--## Submissions
The libGDX Jam September 2024 is now over! We hope everyone had a lot of fun and are proud to present the [N submissions](https://itch.io/jam/libgdx-jam-30/entries).-->]]></content><author><name></name></author><category term="news" /><summary type="html"><![CDATA[With our 30th collaboration, the libGDX Jam continues the time-honoured tradition of making awesome games using the best framework out there. We encourage camaraderie, teamwork, and good sportsmanship with a side of well-intentioned buffoonery. The general jam rules can as always be found here. To participate take a look at the official itch.io page of the jam. The humorous jam trailer can be found on YouTube.]]></summary></entry><entry><title type="html">Status Report #10: New Setup Tool!</title><link href="https://libgdx.com/news/2024/08/devlog-10-gdx-liftoff" rel="alternate" type="text/html" title="Status Report #10: New Setup Tool!" /><published>2024-08-08T00:00:00+00:00</published><updated>2024-08-08T00:00:00+00:00</updated><id>https://libgdx.com/news/2024/08/devlog-10-gdx-liftoff</id><content type="html" xml:base="https://libgdx.com/news/2024/08/devlog-10-gdx-liftoff"><![CDATA[<p>Gdx-Liftoff has replaced gdx-setup as the new official setup tool! Available <a href="https://github.com/libgdx/gdx-liftoff/releases/latest">here</a>. You have a choice of languages you can add. TeaVM is available to allow Kotlin web apps. You can choose from several templates, including some meant for Kotlin apps, and one template is a playable sample (Super Koalio). Many third-party extensions are readily available. Folders are structured differently, but are easier to add unit tests to, if you want. It’s <code class="language-plaintext highlighter-rouge">lwjgl3</code>, not <code class="language-plaintext highlighter-rouge">desktop</code>, now, because it uses LWJGL3. LWJGL2 is also available if you need it. Raeleus made a <a href="https://www.youtube.com/watch?v=VF6N_X_oWr0">video about it</a>. Hooray!</p>]]></content><author><name></name></author><category term="news" /><category term="devlog" /><summary type="html"><![CDATA[Gdx-Liftoff has replaced gdx-setup as the new official setup tool!]]></summary></entry></feed>