Arcade 2.4.1 was released 2020-07-13.

Arcade version 2.4 is a major enhancement release to Arcade.

For an example of using the A-Star algorithm, see A-Star Path Finding .

New support for style-able GUI elements. New API in arcade.gui package .

Support to render to frame buffer, then re-render. Example: Mini-Map Defender .

Support for defining your own frame buffers, shaders, and more advanced OpenGL programming. New API in arcade.gl package .

The arcade.Texture class, arcade.Sprite class, and arcade.tilemap.process_layer take in hit_box_algorithm and hit_box_detail parameters for hit box calculation.

Add in font searching code if we can’t find default font when drawing text.

Support getting tmx layer by path, making it less likely reading in a tmx file will have directory confusion issues.

Add ability to directly assign items in a sprite list. This is particularly useful when re-ordering sprites for drawing.

Added get_distance function to get the distance between two points.

Added SpriteCircle class that makes a circular sprite, either solid or with a fading gradient.

Added has_line_of_sight() to calculate if there is line-of-sight between two points.

Added Window.center_window() to center the window on the monitor.

Added get_display_size() to get resolution of the monitor

Version 2.4 Under-the-hood improvements¶

General

Simple Physics engine is less likely to ‘glitch’ out.

Anti-aliasing should now work on windows if antialiasing=True is passed in the window constructor.

Major speed improvements to drawing of shape primitives, such as lines, squares, and circles by moving more of the work to the graphics processor.

Speed improvements for sprites including gpu-based sprite culling (don’t draw sprites outside the screen).

Speed improvements due to shader caching. This should be especially noticeable on Mac OS.

Speed improvements due to more efficient ways of setting rendering states such as projection.

Speed improvements due to less memory copying in the lower level rendering API.

OpenGL API

A brand new low level rendering API wrapping OpenGL 3.3 core was added in this release. It’s loosely based on the ModernGL API, so ModernGL users should be able to pick it up fast. This API is used by arcade for all the higher level drawing functionality, but can also be used by end users to really take advantage of their GPU. More guides and tutorials around this is likely to appear in the future.

A simplified list of features in the new API: