{"id":4653,"date":"2023-12-23T19:38:15","date_gmt":"2023-12-23T19:38:15","guid":{"rendered":"https:\/\/castle-engine.io\/wp\/?p=4653"},"modified":"2023-12-23T19:38:15","modified_gmt":"2023-12-23T19:38:15","slug":"merry-christmas-some-summaries-and-api-improvements","status":"publish","type":"post","link":"https:\/\/castle-engine.io\/wp\/2023\/12\/23\/merry-christmas-some-summaries-and-api-improvements\/","title":{"rendered":"Merry Christmas, some summaries and API improvements"},"content":{"rendered":"<table class=\"thumbnails thumbnails-align-right\"><tr><td>\n          <a href=\"https:\/\/castle-engine.io\/wp\/wp-content\/uploads\/2023\/12\/christmas_cge_santa.png\"\n             class=\"screenshot\"\n             title=\"Castle Game Engine Christmas postcard\"><img loading=\"lazy\" decoding=\"async\"\n            style=\"float: right\"\n            src=\"https:\/\/castle-engine.io\/wp\/wp-content\/uploads\/2023\/12\/christmas_cge_santa-200x200.png\"\n             width=\"200\" height=\"200\" \n            alt=\"Castle Game Engine Christmas postcard\"\n          ><\/a><\/td><\/tr><tr><td>\n          <a href=\"https:\/\/castle-engine.io\/wp\/wp-content\/uploads\/2023\/12\/christmas_cge_tree.png\"\n             class=\"screenshot\"\n             title=\"Castle Game Engine Christmas postcard\"><img loading=\"lazy\" decoding=\"async\"\n            style=\"float: right\"\n            src=\"https:\/\/castle-engine.io\/wp\/wp-content\/uploads\/2023\/12\/christmas_cge_tree-200x200.png\"\n             width=\"200\" height=\"200\" \n            alt=\"Castle Game Engine Christmas postcard\"\n          ><\/a><\/td><\/tr><tr><td>\n          <a href=\"https:\/\/castle-engine.io\/wp\/wp-content\/uploads\/2023\/12\/christmas_cge_reindeers.png\"\n             class=\"screenshot\"\n             title=\"Castle Game Engine Christmas postcard\"><img loading=\"lazy\" decoding=\"async\"\n            style=\"float: right\"\n            src=\"https:\/\/castle-engine.io\/wp\/wp-content\/uploads\/2023\/12\/christmas_cge_reindeers-200x200.png\"\n             width=\"200\" height=\"200\" \n            alt=\"Castle Game Engine Christmas postcard\"\n          ><\/a><\/td><\/tr><\/table>\n<p>As we get near the end of 2023, I want to simply thank everyone who supports <i>Castle Game Engine<\/i> in whatever way &mdash; <a href=\"https:\/\/www.patreon.com\/castleengine\">on Patreon<\/a>, by making games, by code contributions, by feedback, or just by simply being here and looking what we&#8217;re doing \ud83d\ude42<\/p>\n<p>The end of this year was a bit busy for me, admittedly, and I didn&#8217;t achieve <i>yet<\/i> some of our big goals I hoped for 2023 (like <em>7.0<\/em> release, or even <em>7.0-alpha3<\/em>, or Delphi\/Linux finish, or review of some <a href=\"https:\/\/github.com\/castle-engine\/castle-engine\/pulls\">very important PRs<\/a> like Steam, new navigation components, Tiled improvements). But I hope to get there, there&#8217;s still one more week! \ud83d\ude42 And we <a href=\"https:\/\/castle-engine.io\/wp\/\">did a lot already<\/a>, making the engine both more functional and also easier to use in many departments. See <a href=\"https:\/\/castle-engine.io\/new_features_in_castle_game_engine_7.0#_already_available_in_snapshot_will_be_released_in_7_0_alpha_3\">all things we added for 7.0-alpha3<\/a>. We also have lots of new up-to-date training material, starting from <a href=\"https:\/\/castle-engine.io\/wp\/2023\/12\/02\/two-new-articles-to-learn-castle-game-engine-and-a-fun-toy-to-play-bad-way-to-play-chess-aka-3d-physics-fun\/\">&#8220;Bad way to play chess&#8221; 2 tutorial articles<\/a>, though <a href=\"https:\/\/castle-engine.io\/manual_intro.php\">many manual updates<\/a>, <a href=\"https:\/\/castle-engine.io\/modern_pascal\">Pascal learning materials<\/a> and finally <a href=\"https:\/\/castle-engine.io\/conferences\">slides and examples from all conferences I attended in 2023<\/a>. I hope you enjoy this steady progress.<\/p>\n<p>Onward with a description of most important recent API updates:<\/p>\n<ul>\n<li>\n    Undeprecated and made read-only <code><a href=\"https:\/\/castle-engine.io\/apidoc\/html\/CastleTransform.TCastleTransform.html#RigidBody\">TCastleTransform.RigidBody<\/a><\/code>. This is just a shortcut for <code>Transform.FindBehavior(TCastleRigidBody)<\/code>.<\/p>\n<li>\n<p>Temporary but important <code><a href=\"https:\/\/castle-engine.io\/apidoc\/html\/\">TCastleTransform.InternalMovesPhysicsBodies<\/a><\/code> &mdash; workaround for some cases when using physics, and moving parent object from code whilst children objects have physics rigid bodies.<\/p>\n<li>\n<p>New <code><a href=\"https:\/\/castle-engine.io\/apidoc\/html\/CastleComponentSerialize.TCastleComponentFactory.html\">TCastleComponentFactory<\/a><\/code> &mdash; load a serialized component and instantiate multiple times.<\/p>\n<li>\n<p>New <code><a href=\"https:\/\/castle-engine.io\/apidoc\/html\/CastleComponentSerialize.html#ComponentClone-TComponent-TComponent-\">ComponentClone<\/a><\/code> &mdash; deep-copy (clone) any component.<\/p>\n<li>\n<p>Some long-deprecated <code><a href=\"https:\/\/castle-engine.io\/apidoc\/html\/CastleSoundEngine.html\">CastleSoundEngine<\/a><\/code> API removed (or moved to private, so not accessible): <code>SoundEngine.Sound<\/code>, <code>SoundEngine.Sound3D<\/code>, <code>SoundEngine.PlaySound<\/code>, <code>SoundEngine.LoadBuffer<\/code>, <code>SoundEngine.FreeBuffer<\/code>. <\/p>\n<p>Since a long time, we have better alternatives: play sound using <code><a href=\"https:\/\/castle-engine.io\/apidoc\/html\/CastleSoundEngine.TCastleSound.html\">TCastleSound<\/a><\/code>, <code><a href=\"https:\/\/castle-engine.io\/apidoc\/html\/CastleSoundEngine.TCastlePlayingSound.html\">TCastlePlayingSound<\/a><\/code>, <code><a href=\"https:\/\/castle-engine.io\/apidoc\/html\/CastleBehaviors.TCastleSoundSource.html\">TCastleSoundSource<\/a><\/code>, <code><a href=\"https:\/\/castle-engine.io\/apidoc\/html\/CastleSoundEngine.TSoundEngine.html#Play-TCastleSound-\">TSoundEngine.Play<\/a><\/code>. See the <a href=\"https:\/\/castle-engine.io\/manual_sound.php\">sound engine documentation<\/a>. These new classes provide much improvement (are easier to use from code, and are possible to setup in editor too).<\/p>\n<p>If you have any questions how to upgrade old API usage, consult above manual, and talk to us! A short map:<\/p>\n<p><code>SoundEngine.Sound<\/code> can most usually be just replaced with <code>SoundEngine.Play<\/code><\/p>\n<p><code>SoundEngine.Sound3d<\/code> replacement is more involved, you need to use <code><a href=\"https:\/\/castle-engine.io\/apidoc\/html\/CastleBehaviors.TCastleSoundSource.html\">TCastleSoundSource<\/a><\/code> attached to some <code><a href=\"https:\/\/castle-engine.io\/apidoc\/html\/CastleTransform.TCastleTransform.html\">TCastleTransform<\/a><\/code>.\n<\/ul>\n<p>That&#8217;s it for today, but I hope to have bigger news very soon &mdash; hopefully still in 2023 \ud83d\ude42 Have a good Christmas, holidays, and a happy New Year everyone!<\/p>\n<p>And since this was a year of AI boom, enjoy 3 AI-generated CGE + Christmas themed postcards attached to this news post \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As we get near the end of 2023, I want to simply thank everyone who supports Castle Game Engine in whatever way &mdash; on Patreon, by making games, by code contributions, by feedback, or just by simply being here and looking what we&#8217;re doing \ud83d\ude42 The end of this year was a bit busy for &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/castle-engine.io\/wp\/2023\/12\/23\/merry-christmas-some-summaries-and-api-improvements\/\" class=\"more-link\">Continue reading  \u27a4<span class=\"screen-reader-text\"> &#8220;Merry Christmas, some summaries and API improvements&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":4659,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"publish_to_discourse":"1","publish_post_category":"9","wpdc_auto_publish_overridden":"","wpdc_topic_tags":"","wpdc_pin_topic":"","wpdc_pin_until":"","discourse_post_id":"3988","discourse_permalink":"https:\/\/forum.castle-engine.io\/t\/merry-christmas-some-summaries-and-api-improvements\/1031","wpdc_publishing_response":"","wpdc_publishing_error":"","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[1],"tags":[],"class_list":["post-4653","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/castle-engine.io\/wp\/wp-content\/uploads\/2023\/12\/christmas_cge_santa.png","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9IgYW-1d3","jetpack_likes_enabled":false,"_links":{"self":[{"href":"https:\/\/castle-engine.io\/wp\/wp-json\/wp\/v2\/posts\/4653","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/castle-engine.io\/wp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/castle-engine.io\/wp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/castle-engine.io\/wp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/castle-engine.io\/wp\/wp-json\/wp\/v2\/comments?post=4653"}],"version-history":[{"count":11,"href":"https:\/\/castle-engine.io\/wp\/wp-json\/wp\/v2\/posts\/4653\/revisions"}],"predecessor-version":[{"id":4667,"href":"https:\/\/castle-engine.io\/wp\/wp-json\/wp\/v2\/posts\/4653\/revisions\/4667"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/castle-engine.io\/wp\/wp-json\/wp\/v2\/media\/4659"}],"wp:attachment":[{"href":"https:\/\/castle-engine.io\/wp\/wp-json\/wp\/v2\/media?parent=4653"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/castle-engine.io\/wp\/wp-json\/wp\/v2\/categories?post=4653"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/castle-engine.io\/wp\/wp-json\/wp\/v2\/tags?post=4653"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}