پس از چهار سال توسعه، موتور بازی سازی رایگان Godot 4.0 مناسب برای ساخت بازی های دو بعدی و سه بعدی منتشر شد. این موتور از یک زبان منطقی بازی با یادگیری آسان، یک محیط گرافیکی برای طراحی بازی، یک سیستم استقرار بازی با یک کلیک، قابلیت های انیمیشن و شبیه سازی گسترده برای فرآیندهای فیزیکی، یک دیباگر داخلی و یک سیستم برای شناسایی گلوگاه های عملکرد پشتیبانی می کند. . کد موتور بازی، محیط طراحی بازی و ابزارهای توسعه مرتبط (موتور فیزیک، سرور صدا، بکاندهای رندر دو بعدی و سه بعدی و غیره) تحت مجوز MIT توزیع میشوند.
این موتور در سال 2014 توسط OKAM پس از ده سال توسعه یک محصول اختصاصی حرفه ای که برای ایجاد و انتشار بازی های زیادی برای رایانه شخصی، کنسول های بازی و دستگاه های تلفن همراه استفاده شده است، منبع باز شد. این موتور از تمامی پلتفرم های محبوب دسکتاپ و موبایل (لینوکس، ویندوز، macOS، Wii، Nintendo 3DS، پلی استیشن 3، PS Vita، Android، iOS، BBX) و همچنین توسعه بازی برای وب پشتیبانی می کند. مجموعه های باینری آماده برای اجرا برای لینوکس، اندروید، ویندوز و macOS ایجاد شده اند.
شعبه Godot 4.0 شامل حدود 12 هزار تغییر و رفع 7 هزار باگ است. حدود 1500 نفر در توسعه موتور و نوشتن مستندات شرکت کردند. از جمله تغییرات کلیدی:
- دو بکاند رندر جدید (خوشهای و موبایل) بر اساس API گرافیکی Vulkan پیشنهاد شدهاند که جایگزین بکندهایی میشوند که از طریق OpenGL ES و OpenGL رندر میشوند. برای دستگاههای قدیمیتر و کم مصرف، باطن سازگاری مبتنی بر OpenGL با استفاده از معماری رندر جدید یکپارچه شده است. رندر پویا در رزولوشنهای پایینتر از فناوری سوپرنمونهبرداری AMD FSR (FidelityFX Super Resolution) استفاده میکند که از مقیاسبندی فضایی و الگوریتمهای بازسازی جزئیات برای کاهش افت کیفیت تصویر هنگام ارتقاء مقیاس و ارتقاء به وضوح بالاتر استفاده میکند. یک موتور رندر مبتنی بر Direct3D 12 پیاده سازی شده است که پشتیبانی از پلتفرم های ویندوز و ایکس باکس را بهبود می بخشد.
- قابلیت کار با رابط در حالت چند پنجره ای اضافه شده است (پنل ها و قسمت های مختلف رابط را می توان به عنوان پنجره های جداگانه باز کرد).
- ویرایشگر رابط کاربری جدید و ویجت طراحی بصری جدید اضافه شده است.
- یک ویرایشگر تم جدید اضافه شد.
- سیستم کنترل نور و سایه با استفاده از فناوری بلادرنگ SDFGI (Signed Distance Field Global Illumination) به طور کامل بازنویسی شده است. کیفیت رندر سایه به طور قابل توجهی بهبود یافته است.
- گره GIProbe که برای پر کردن صحنه با نور بازتابی استفاده میشود، با گره VoxelGI جایگزین شده است که برای پردازش نور در زمان واقعی در صحنههایی با فضای داخلی داخلی کوچک تا متوسط بهینه است. برای سختافزار کممصرف، میتوان نور و سایهها را با استفاده از نقشههای نوری که اکنون از GPU برای سرعت بخشیدن به رندر استفاده میکنند، به صورت فعال رندر کرد.
- تکنیک های جدید بهینه سازی رندر پیاده سازی شده است. حذف خودکار انسداد اضافه شده است که به صورت پویا مدل های پنهان شده در پشت سطوح دیگر را برای بهبود عملکرد رندر و کاهش بار CPU و GPU شناسایی و حذف می کند.
- اضافه شدن حالت SSIL (نورپردازی غیرمستقیم فضای صفحه) برای بهبود کیفیت رندر در سخت افزارهای پیشرفته با بهبود مدیریت مناطق تاریک و نور غیر مستقیم. علاوه بر این، تنظیمات اضافی برای شبیه سازی نور غیر مستقیم منتشر با استفاده از تکنیک SSAO (Screen Space Ambient Occlusion) ارائه شده است، مانند انتخاب سطح تأثیر نور مستقیم.
- واحدهای روشنایی واقعی پیشنهاد شده است که به شما امکان می دهد شدت نور را تنظیم کنید و از تنظیمات استاندارد دوربین مانند دیافراگم، سرعت شاتر و ISO برای کنترل روشنایی صحنه نهایی استفاده کنید.
- ابزارهای ویرایش سطح جدید برای بازی های دو بعدی اضافه شده است. تغییرات اساسی در روند ساخت بازی دو بعدی ایجاد شده است. یک ویرایشگر tilemap جدید اضافه شده است که اکنون از لایهها، پر کردن خودکار منظره، قرار دادن تصادفی گیاهان، سنگها و اشیاء مختلف و انتخاب انعطافپذیر اشیا پشتیبانی میکند. کار با نقشههای کاشی و مجموعهای از قطعات برای ساخت نقشه (تایلست) یکپارچه شده است. گسترش خودکار قطعات در یک مجموعه برای حذف فضاهای بین قطعات مجاور ارائه شده است. یک تابع جدید برای چیدمان اشیا روی صحنه اضافه شده است که به عنوان مثال می توان از آن برای افزودن کاراکتر به سلول های شبکه کاشی استفاده کرد.
- در رندر دوبعدی، میتوانید از گروههای بوم برای ترکیب عناصر روی همپوشانی بوم استفاده کنید، برای مثال، میتوانید چندین اسپرایت را با هم گروهبندی کنید و آنها را در پسزمینه ترکیب کنید، گویی اسپرایتها یک عنصر هستند. ویژگی Clip Children اضافه شده است که به شما امکان می دهد از هر عنصر دو بعدی به عنوان ماسک استفاده کنید. موتور دو بعدی همچنین گزینه ای برای استفاده از MSAA (Multisample Anti-Aliasing) برای بهبود کیفیت تصویر و ایجاد لبه های صاف تر اضافه می کند.
- کنترل بهتر نور و سایه ها در بازی های دو بعدی. عملکرد قابل توجهی در هنگام استفاده از چندین منبع نور بهبود یافته است. اضافه شدن قابلیت شبیه سازی سه بعدی با تغییر سطح نور در نقشه های معمولی و همچنین ایجاد جلوه های بصری مانند سایه های بلند، هاله ها و خطوط واضح.
- یک افکت مه حجمی اضافه شده است که از تکنیک بازپرداخت زمانی برای دستیابی به ظاهر واقعی و عملکرد بالا استفاده می کند.
- سایه بان های ابری اضافه شده است که به شما امکان می دهد به صورت پویا ابرهایی ایجاد کنید که در زمان واقعی تغییر می کنند.
- پشتیبانی از «برگردانها»، روشی برای نمایش مواد بر روی سطح، اضافه شده است.
- افکتهای ذرهای در سطح بازی اضافه شد که از GPU استفاده میکنند و از جاذبهها، برخوردها، ستونها و ساطعکنندهها پشتیبانی میکنند.
- قابلیت های رابط برای ویرایش بصری سایه بان ها گسترش یافته است.
- زبان شیدر به گونهای گسترش یافته است که شامل پشتیبانی از ساختارها، ماکروهای پیشپردازنده، جایگزینی سایهزن (شامل عبارت)، آرایههای یکپارچه، و استفاده از «متغیر» برای انتقال دادهها از کنترلکننده قطعه به کنترلکننده روشنایی میشود.
- قابلیت استفاده از سایه زن های محاسباتی که از GPU برای تسریع الگوریتم ها استفاده می کنند اضافه شده است.
- در زبان برنامه نویسی GDScript، سیستم تایپ ایستا بهبود یافته است، یک نحو جدید برای تعریف ویژگی ها اضافه شده است، کلمات کلیدی await و super پیشنهاد شده اند، عملیات نقشه/کاهش اضافه شده است، یک سیستم حاشیه نویسی جدید پیاده سازی شده است، و استفاده از کاراکترهای یونیکد در نام متغیرها و نام توابع ممکن شده است. ابزاری برای تولید اسناد خودکار اضافه شده است. بهبود عملکرد و پایداری زمان اجرا GDScript. در محیط توسعه امکان نمایش چندین خطا به صورت همزمان وجود دارد و برای مشکلات رایج هشدارهای جدیدی اضافه شده است.
- امکانات توسعه منطق بازی در سی شارپ گسترش یافته است. پشتیبانی از پلت فرم دات نت 6 و زبان سی شارپ 10 اضافه شد. انواع 64 بیتی برای مقادیر اسکالر فعال هستند. بسیاری از API ها از int و float به long و double تبدیل شده اند. امکان تعریف سیگنال ها در قالب رویدادهای سی شارپ را فراهم می کند. اضافه شدن قابلیت توسعه GDEextensions در سی شارپ.
- پشتیبانی آزمایشی برای افزونه ها (GDExtension) اضافه شده است، که می تواند برای گسترش قابلیت های موتور بدون بازسازی آن یا ایجاد تغییرات در کد استفاده شود.
- بهطور پیشفرض، موتور خود ما برای شبیهسازی فرآیندهای فیزیکی، Godot Physics، ارائه شده است، برای حل مشکلات ذاتی بازیهای رایانهای بهینهسازی شده است و از نظر عملکرد با موتور Bullet که قبلاً استفاده شده بود، برابری میکند (به عنوان مثال، Godot Physics پردازش اشکال جدید را اضافه کرد. برخورد، پشتیبانی از نقشه های ارتفاع و توانایی استفاده از گره های SoftBody برای شبیه سازی لباس). بهینهسازی عملکرد انجام شده است و استفاده از چند رشته برای توزیع بار در هستههای مختلف CPU هنگام شبیهسازی فرآیندهای فیزیکی در محیطهای دو بعدی و سه بعدی گسترش یافته است. بسیاری از مشکلات شبیه سازی حل شده است.
- یک سیستم رندر متن جدید پیشنهاد شده است که کنترل بیشتری بر برش و بسته بندی متن و همچنین وضوح بالایی در هر وضوح صفحه ارائه می دهد.
- ابزارهای محلی سازی و کار ترجمه گسترش یافته است.
- یک گفتگوی جداگانه برای وارد کردن داراییهای دو بعدی و سه بعدی، پشتیبانی از پیشنمایش و تغییر تنظیمات صحنه، مواد و ویژگیهای فیزیکی وارد شده اضافه شده است.
- ویجت های جدیدی به ویرایشگر اضافه شده است، مانند پانلی برای لغو تغییرات و انتخاب رنگ جدید و گفتگوی به روز رسانی پالت.
- رابط بازرسی، پانل کنترل صحنه و ویرایشگر اسکریپت به روز شده است. برجسته سازی نحو بهبود یافته است، قابلیت نمایش مکان نماهای متعدد اضافه شده است و ابزارهایی برای ویرایش فرمت های JSON و YAML ارائه شده است.
- قابلیت های ویرایشگر انیمیشن گسترش یافته است و پشتیبانی از ترکیب اشکال و بهبود فرآیندها بر اساس منحنی Bezier اضافه شده است. کد انیمیشن سه بعدی را بازنویسی کرد تا شامل پشتیبانی فشرده سازی برای کاهش مصرف حافظه شود. سیستم ترکیب انیمیشن و ایجاد جلوه های انتقال بازنویسی شده است. امکانات ساخت انیمیشن های پیچیده گسترش یافته است. کتابخانه های انیمیشن برای ذخیره و استفاده مجدد از انیمیشن های ایجاد شده پیشنهاد شده اند.
- یک حالت ایجاد فیلم اضافه شده است که صحنه ها را فریم به فریم با حداکثر کیفیت برای ایجاد محافظ صفحه و ضبط فیلم ارائه می کند.
- پشتیبانی از هدست های سه بعدی و پلتفرم های واقعیت مجازی گسترش یافته است. بخش اصلی موتور شامل پشتیبانی داخلی برای استاندارد OpenXR است که یک API جهانی برای ایجاد برنامه های کاربردی واقعیت مجازی و واقعیت افزوده تعریف می کند. ویندوز و لینوکس از تمام هدست های سه بعدی محبوب از جمله SteamVR، Oculus و Monado پشتیبانی می کنند.
- پایداری زیرسیستم برای سازماندهی بازی های آنلاین افزایش یافته و روند توسعه بازی های چند نفره ساده شده است.
- قابلیت های سیستم صوتی گسترش یافته است، پشتیبانی از پلی فونی تعبیه شده است، یک API برای سنتز گفتار اضافه شده است و قابلیت لوپ صدا نیز پیاده سازی شده است.
- امکان اجرای رابط Godot بر روی تبلت های اندرویدی و در مرورگر وب وجود دارد.
- اضافه شدن یک سیستم جدید برای ساخت بازی برای معماری های مختلف CPU. به عنوان مثال، اکنون می توانید برای Raspberry Pi، Microsoft Volterra، Surface Pro X، Pine Phone، VisionFive، ARM Chromebook و Asahi Linux بسازید.
- تغییراتی در API ایجاد شده است که سازگاری را از بین می برد. انتقال از Godot 3.x به Godot 4.0 نیاز به کار مجدد برنامه دارد، اما شاخه Godot 3.x یک چرخه پشتیبانی طولانی دارد که طول آن به تقاضای کاربر برای API قدیمی بستگی دارد.
منبع: opennet.ru