Various improvements (blending documentation, AvoidNavigationCollisions fix, buttonXxx renames, CastleXMLUtils example…)

Posted on

Ship in the bottle - Model by Loïc Norgeot from https://sketchfab.com/3d-models/ship-in-a-bottle-9ddbc5b32da94bafbfdb56e1f6be9a38 (Creative Commons Attribution-NonCommercial)

I’m happy to be swamped with things to announce about the engine! 🙂 So, after previous announcements this weekend, one more list of new stuff 🙂

  • We have an extensive documentation how blending (partial-transparency) works. While the engine tries its best, it’s not always possible to make blending automatically “just work”. This documentation should help you understand what and why you can tweak.

  • We have important fixes for edge-cases when handling MessageOK, progress bars or TCastleViewport.AvoidNavigationCollisions by Andrzej Kilijański.

    Moreover, Andrzej submitted a big PR that introduces a huge upgrade to handling sprite sheets in CGE. It is under review now (i.e., waiting for Michalis 🙂 ), stay tuned!

  • We have renamed mouse button names/types to buttonXxx and TCastleMouseButton. This way they do not conflict with LCL. The old names mbXxx still remain, but are now deprecated, and we will be able to remove them in later CGE (7.2?). Thanks to Eugene Loza!

  • In the editor, we now expose “Scene (Optimal Blending for 2D Models)”, which is just TCastleScene with Setup2D performed.

    It is better than the now-deprecated TCastle2DScene. Dealing with TCastle2DScene was sometimes uncomfortable: when you wanted to derive descendants and mix 2D and 3D models in your game. And existence of TCastle2DScene was not really justified: in the end, it is a completely trivial variant of TCastleScene, the Setup2D just sets "RenderOptions.BlendingSort := bs2D" (really, that’s it! nothing more needed for 2D scene).

  • I added an example of using CastleXMLUtils unit in examples/short_api_samples/xml_utils/.

  • Our Jenkins (see wiki docs) is now integrated with GitHub, and it sets “build status” on GitHub. This means we can quickly recognize failing commits, branches, PRs etc.

    ( It’s not always the fault of the branch/PR author, so don’t worry — I’m diagnosing all fails and will let you know if this is something you need to take care in your PR. )

Start the discussion at Castle Game Engine Forum