![]() |
We already announced some new features in April (PLY, InlineGeometry, web: URL parameters and TCastleDownload). Below we report more goodies 🙂 Enjoy!
- Check out Training Timer 2: Zero Time project by Serufu Yua, available for Windows and Android. Downloads on itch.io and source code on GitHub (thank you!).
See also ready UI list box components also from Serufu Yua. Thank you!
-
View changes (setting
Container.View:=.., callingContainer.PushView,Container.PopView) may be now performed with a delay. We have extensive documentation what it means, and why we do it, here. The forum thread, with even more information and reasons, is here. Thanks to Vlad (Phomm) for reporting this — this was a critical design problem we had, now “defused”.Please note that this change may require to adjust your code in some cases. We tried to make it backward-compatible, and in many cases it is, but it cannot be 100% — inherently, some things are now done later -> so some assumptions break.
For example, you can no longer assume that new view is started right after
PushView:procedure TViewMainMenu.ButtonClick; begin Container.PushView(ViewInventory);// THIS IS LIKELY INVALID NOW,
// published ViewInventory.Label1 is not initialized
// because ViewInventory.Start is not yet done.
ViewInventory.Label1.Caption := ‘Something’;// Solution is to pass information using a public field,
// which will be applied in TViewInventory.Start:
ViewInventory.DesiredLabel1Caption := ‘Something’;
end;
Another example (of logic that will no longer work) is if you assumed that old view is stopped right away:
procedure TViewMainMenu.ButtonClick; begin Container.View := nil;// THIS IS INVALID NOW,
// if you assumed that ViewPlay.Stop is already executed
// and did something with LastSavedSaveGame.
LastSavedSaveGame.Done := true;
end;
- We have a new utility to process URLs of the model (useful before saving it) to e.g. force URLs to be relative or embedded. See
ProcessUrlsandTUrlProcessingAPI for the possibilities. See also pull request for all details. Thank you to Jan Adamec for implementing this! -
We have added documentation how to install web prerequisites using “WA” button in FpcUpDeluxe. Thanks to Vlad (Phomm)!
-
I (Michalis) attended FOSS Backstage 2026 conference recently and enjoyed a lot of talks with fellow open-source devs (and walking in Berlin!). The talk “AI generated violations of FOSS Licences” was in particular informative, and fun, and sad -> because AIs indeed ignore copyrights and licenses. To put it bluntly, all the open-source code in the wild has been abused — it is now reproduced, ignoring copyrights. Watch it and maybe you can spot the back of my bald(ing) head in the front :).
There’s a lot of related discussion and opinions, see e.g. here at Gitea and this article.
I have added a suitable section about it to our AI guidelines.
-
Finally, something in progress: we work on audio playback on the web using WebAudio. Current progress is on branch webaudio. Details what works / what needs to be completed before merge in forum post here.
Enjoy using our engine? Please support us on Patreon. And have fun making games:)
