✨ New features
- Add Bitmap Text objects, an efficient way to display texts using custom "bitmap fonts" (Thanks @Bouh!)
- This allows to display texts on screen that use a "bitmap font", generated with softwares like BMFont or bmGlyph.
- Bitmap fonts allow advanced effects and custom design of each character, with complete control over the appearance of the text. This is useful for making a custom score counter, titles, button labels...
- They also render very well in a pixel-perfect, pixel-art or retro-like game.
- Finally, these Bitmap Texts are fast and efficient to render on screen: useful for scores or texts that are updated frequently.
- Add actions, conditions and expressions to get the position of an object center or set its position using its center:
- This is useful for making concise actions or conditions.
- This is also useful because for some objects, the center is not located at half the width and the height of the object.
- You can use
Object.CenterX()
andObject.CenterY()
to get the position of the center of an object in an expression.
💝 Improvements
- Rework the collisions editor and points editor (Thanks @nilaymaj!):
- Show the preview and the polygons/points side by side (on large screens), so it's easier to edit.
- The split can be dragged to give more space to the preview or to the tables.
- Show point name in tooltip when hovering on point.
- Improve the dragging of points and polygon vertices so that they continue to follow the cursor even if dragging outside of the image bounds.
- Allow to collapse polygon tables, useful if you have lots of polygons in an object.
- The checkered background in the editors are now also using different colors following the selected theme.
-
Rework the behaviors list with collapsible panels (Thanks @nilaymaj!)
- This is useful to hide behaviors when they are too many of them
- This also creates a more visible distinction between each behavior
-
Add an action to display collision hitboxes and points of objects during the game (Thanks @Bouh!)
- This is useful to check the proper set up of objects and check the position of points of objects during the game.
-
Allow setting the client ID in the peer-to-peer extension (Thanks @hedlund!)
- By default, a long unique ID is generated. If you use your own broker server, a game could generate a simple, but unique, ID for each game (e.g. 639239), and then specify that as the client ID. Other players can then connect to that peer using the simpler ID.
-
Add network and persistence configuration to firestore in Firebase (Thanks @arthuro555!)
-
Add new expressions
XFromAngleAndDistance
andYFromAngleAndDistance
(Thanks @Bouh!). Given an angle and distance, they return the coordinate on the X or Y axis.- Both available for objects (
Object.XFromAngleAndDistance(45, 100)
), in which case the origin is the object center, or standalone expressions (XFromAngleAndDistance(45, 100)
).
- Both available for objects (
-
UI improvements:
-
Add a preference to choose if clicking outside a dialog is cancelling changes, applying changes or doing nothing (Thanks @Bouh!)
By default, clicking outside a dialog will now do nothing. Go in the preferences if you want to change this!
-
Improve spacing of descriptions for checkboxes in properties (Thanks @arthuro555!)
-
Add the version number under the name of the extension in the presentation panel (Thanks @Bouh!)
-
Change the wording of the button to "Edit collision masks" (Thanks @Bouh!)
-
-
Allow an object moving vertically to change direction when diagonals are forbidden in the Top-down behavior. (Thanks @D8H!)
- If multiple keys are pressed, the last one is used to move the object.
-
Improve wording on some movement related action sentences (Thanks @tristanbob!)
-
New/improved examples:
- Add a new Dialogue Tree example (thanks potato-gamer-coder and Midhil457!)
- Add Goose Bomberman example (thanks @D8H!)
- Add Titan Souls Demo game (Thanks @HelperWesley and @arthuro555)
- Improve the p2p chat example (Thanks @arthuro555!)
- Add Bim Bam (Bust-a-Move clone) example (thanks @D8H)
- Add Tactical Game Grid Movement example (thanks @D8H)
- Add "Menu with tweens" example (thanks @Dreamkingmovies)
🐛 Bug fixes
- Fix performance issues on iOS by upgrading internal rendering engine to PixiJS v6
- Thanks @Bouh and @arthuro555 for the help!
- Fix sprite objects updating their displayed image one frame too late:
- This fixes some "flickering" when a sprite is just created, when a scene is changed or when external layout objects are created on a scene.
- This also fix objects that are not at the proper size/position/angle just after being created in events.
- Fix a potential crash when instances are selected and an object is deleted
- Fix a crash when adding an instance of a global object on the scene
- Fix multi-user compatibility on Linux (previews/exports not generated in same folders anymore) (Thanks @Oxey405!)
- Fix "Sound is playing" condition not consistent when an audio file is being loaded (Thanks @arthuro555!)
- Because of this, this could create some glitches when playing sounds using the condition to check if a sound was already playing (for example, it could trigger multiple times a sound).
- Fix Video object wrongly starting to play automatically (Thanks @Bouh!)
- Fix sounds/musics playing for a very short time at the default volume instead of the specified one
- Fix export to Android/iOS failing if AdMob id was containing invalid characters
- Fix page scrolling when keyboard was used in games embedded in web pages (Thanks @Bouh!)
- Fix invalid values ("NaN") being potentially stored in variables and corrupting the project files (Thanks @arthuro555!)
- Update the discord invite URL (Thanks @arthuro555!)
- Stick controls now comply with the "allow diagonals" setting in the Top Down movement behavior (Thanks @D8H!)
- Automatically disable smoothing of assets from asset store if the project is using the "nearest" scale mode ("pixel-perfect") (Thanks @Bouh!)
🛠 Internal changes (for developers)
- Improve the file watcher in development mode (Thanks @arthuro555!)
- Use chokidar for a more reliable and robust change detection.
- Rework GetUsedExtensions (Thanks @arthuro555!)
- Improve the type definitions of LinkedObjects (Thanks @D8H!)
- Add tests on moving platforms (Thanks @D8H!)
- Convert Firebase extension to TypeScript (Thanks @arthuro555!)
- Add more type definitions and new tests for on moving platforms for the Platformer behavior (Thanks @D8H!)
- Fix hitboxes not invalidated in TestRuntimeObject (Thanks @D8H!)
- Add a test for platformer object to fall when a platform is removed (Thanks @D8H!)