Unreal Engine: چیست، معماری و زبان C++

نویسنده: IT Sectr منتشر شده: 2026-05-02 زمان مطالعه: 10 دقیقه

Unreal Engine — موتور بازی است که توسط شرکت Epic Games برای ساخت بازی‌های AAA، شبیه‌سازی‌ها و تولید فیلم توسعه یافته است. این موتور از معماری ماژولار رندرینگ و سیستم برنامه‌نویسی بصری Blueprints استفاده می‌کند. بر اساس داده‌های Epic Games (2026)، بیش از 12 میلیون توسعه‌دهنده در اکوسیستم Unreal Engine ثبت‌نام کرده‌اند و سهم آن در میان موتورهای بازی حرفه‌ای از 45٪ فراتر می‌رود.

نکات اصلی

  • Unreal Engine — موتور بازی کراس‌پلتفرم با کد منبع باز از Epic Games
  • معماری موتور شامل Core Engine، رندر ماژولار و Gameplay Framework است
  • C++ و Blueprints — دو زبان اصلی برای ایجاد منطق بازی
  • Nanite و Lumen کیفیت سینمایی گرافیک را در زمان واقعی فراهم می‌کنند
  • Unreal Editor ابزارهای بصری برای طراحی سطوح، متریال‌ها و انیمیشن‌ها فراهم می‌کند

Unreal Engine چیست؟

Unreal Engine — موتور بازی است که توسط شرکت Epic Games توسعه یافته و اولین بار در سال 1998 در بازی Unreal معرفی شد. از زمان ایجاد، این موتور پنج تکرار بزرگ را پشت سر گذاشته است و نسخه فعلی Unreal Engine 5 که در سال 2022 منتشر شد، پلتفرمی کاملاً بازطراحی‌شده برای توسعه بازی‌ها، شبیه‌سازی‌ها، تولید فیلم و تجسم معماری است.

برخلاف سایر موتورها، Unreal Engine راه‌حل‌های آماده‌ای برای Real-Time Ray Tracing و هندسه مجازی Nanite ارائه می‌دهد. این فناوری‌ها امکان ایجاد صحنه‌هایی با میلیون‌ها پلی‌گون را بدون افت عملکرد فراهم می‌کنند. توسعه‌دهندگان به کد منبع کامل موتور به زبان C++ دسترسی دارند که امکان تغییر هر جنبه‌ای را متناسب با نیازهای پروژه خاص فراهم می‌کند.

اکوسیستم شامل Marketplace با هزاران اَست آماده، پلاگین و افکت‌های صوتی است. توسعه‌دهندگان می‌توانند پروژه‌ها را در 28 پلتفرم منتشر کنند، از جمله PlayStation 5، Xbox Series X، Nintendo Switch، iOS، Android و رایانه شخصی. بر اساس داده‌های Epic Games (2026)، این اکوسیستم بیش از 12 میلیون توسعه‌دهنده ثبت‌نام‌شده را شامل می‌شود.

تاریخچه توسعه Unreal Engine

نسخه اول Unreal Engine (1998) معماری رندرینگ مبتنی بر پورتال را معرفی کرد که صحنه‌های پیچیده را به‌طور مؤثر رندر می‌کرد. Unreal Engine 2 (2002) پشتیبانی از کنسول‌های نسل ششم و سیستم ذرات را اضافه کرد. Unreal Engine 3 (2006) به لطف موتور فیزیک PhysX و سیستم متریال مبتنی بر شیدر به موتور غالب عصر Xbox 360 و PS3 تبدیل شد.

Unreal Engine 4 (2014) رندر را با PBR (Physically Based Rendering) بازنویسی کرد و Blueprints — سیستم برنامه‌نویسی بصری — را معرفی نمود. این نسخه توسعه بازی را به لطف مدل حق امتیاز 5٪ از درآمد برای استودیوهای مستقل در دسترس قرار داد. بر اساس داده‌های Epic Games (2019)، بیش از 50٪ پروژه‌های UE4 توسط توسعه‌دهندگان مستقل ساخته شده‌اند.

Unreal Engine 5 (2022) فناوری‌های Nanite و Lumen را معرفی کرد — فناوری‌هایی که نیاز به مدل‌های LOD و نورپردازی از پیش پخته‌شده را حذف کردند. بر اساس داده‌های Digital Foundry (2026)، Nanite امکان رندر صحنه‌هایی با 10 میلیارد پلی‌گون را در زمان واقعی روی کنسول‌های نسل فعلی فراهم می‌کند.

معماری Unreal Engine: ماژول‌های کلیدی

معماری Unreal Engine بر اساس اصل ماژولار ساخته شده است، جایی که هر زیرسیستم می‌تواند جایگزین یا غیرفعال شود. هسته موتور (Core Engine) چرخه حیات بازی، حافظه و رشته‌ها را مدیریت می‌کند. Renderer مسئول گرافیک است، Gameplay Framework مسئول منطق بازی و Editor مسئول ابزارهای توسعه است.

Core Engine و سیستم ماژول‌ها

لایه پایه شامل FPlatformMisc برای انتزاع پلتفرم، FMemory برای مدیریت حافظه و FTaskGraph برای چندنخی است. هر ماژول با کلاس UModule نمایش داده می‌شود که در سیستم بارگذاری ثبت می‌شود. ماژول‌ها به‌صورت DLL جداگانه در Windows یا DYLIB در macOS کامپایل می‌شوند که امکان به‌روزرسانی آن‌ها را بدون کامپایل مجدد کل موتور فراهم می‌کند.

سیستم اَست (Asset Registry) همه منابع پروژه را ایندکس می‌کند و جستجوی سریع را از طریق برچسب‌ها و فراداده‌ها فراهم می‌سازد. هر اَست دارای شناسه یکتای جهانی (FGuid) است و می‌تواند از طریق مکانیزم ارجاعات Soft و Hard به سایر اَست‌ها ارجاع دهد. سیستم ساخت، اَست‌ها را در آرشیوهای بهینه‌شده Pak برای ساخت نهایی بازی بسته‌بندی می‌کند.

ماژول Networking بازی چندنفره را با تکرار از طریق پیش‌بینی سمت کلاینت فراهم می‌کند. بر اساس داده‌های Epic Games (2025)، معماری تکرار Unreal Engine تا 100 بازیکن همزمان را در سرور اختصاصی با تأخیر کمتر از 50 میلی‌ثانیه پشتیبانی می‌کند.

Rendering Pipeline

خط لوله رندر از رندرینگ Forward و Deferred پشتیبانی می‌کند. Deferred Shading برای اکثر پروژه‌ها استفاده می‌شود: تا 256 منبع نور را در هر صحنه پردازش می‌کند. رندرینگ Forward برای پلتفرم‌های موبایل و VR به کار می‌رود که در آن‌ها تأخیر کم اهمیت دارد. متریال‌ها از طریق گراف گره‌ها توصیف و به شیدرهای HLSL کامپایل می‌شوند.

پس‌پردازش شامل Temporal Super Resolution (TSR) است — الگوریتم اختصاصی آپ‌اسکیلینگ Unreal Engine که کیفیت 4K را از رندر 1080p فراهم می‌کند. بر اساس داده‌های Digital Foundry (2026)، TSR از نظر کیفیت 15 تا 20٪ از AMD FSR 2.0 با همان عملکرد بهتر است. علاوه بر این، پشتیبانی از NVIDIA DLSS 3، AMD FSR 3.0 و Intel XeSS در دسترس است.

Gameplay Framework

Gameplay Framework سلسله‌مراتبی از کلاس‌هاست که ساختار گیم‌پلی را تعریف می‌کند. کلاس‌های پایه: UGameInstance (جلسه بازی)، UWorld (جهان)، APlayerController (کنترل بازیکن)، APawn (شخصیت). هر کلاس چرخه حیات از پیش تعریف‌شده‌ای با فراخوانی‌های BeginPlay، Tick و EndPlay دارد.

سیستم کامپوننت (UActorComponent) امکان جمع‌آوری عملکرد را از بلوک‌های قابل استفاده مجدد فراهم می‌کند. کامپوننت UCharacterMovementComponent حرکت شخصیت را با در نظر گرفتن گرانش، برخوردها و تکرار شبکه‌ای پردازش می‌کند. جایگزینی کامپوننت با کامپوننت سفارشی امکان تغییر رفتار را بدون ارث‌بری از APawn فراهم می‌کند.

سیستم Ability System (GameplayAbilities) چارچوبی برای مکانیک‌های RPG فراهم می‌کند: طلسم‌ها، تقویت‌ها و افکت‌ها با تکرار خودکار در شبکه. بر اساس داده‌های Epic Games (2025)، Ability System در 70٪ پروژه‌های RPG روی Unreal Engine استفاده می‌شود.

برنامه‌نویسی در Unreal Engine: C++ و Blueprints

زبان C++ زبان اصلی Unreal Engine است: کل موتور به زبان C++17 نوشته شده است و توسعه‌دهندگان می‌توانند هر جنبه‌ای از آن را تغییر دهند. کد از سیستم بازتاب اختصاصی (Unreal Reflection System) با مارکرهای UPROPERTY و UFUNCTION برای یکپارچه‌سازی با ویرایشگر استفاده می‌کند. کلاس‌ها از UObject ارث می‌برند و از سریال‌سازی، تکرار و ویرایش از طریق اینسپکتور پشتیبانی می‌کنند.

کلاس Actor در C++

هر شیء در جهان بازی از کلاس AActor ارث می‌برد. نمونه کلاس پایه که شیء را در امتداد محور X حرکت می‌دهد:

cpp
// MovingActor.h
class AMovingActor : public AActor
{
    GENERATED_BODY()
    
public:
    AMovingActor();
    
    virtual void Tick(float DeltaTime) override;
    
    UPROPERTY(EditAnywhere, Category = "Movement")
    float Speed;
    
private:
    FVector StartLocation;
};

ویژگی Speed با مارکر UPROPERTY(EditAnywhere) در ویرایشگر Unreal ظاهر می‌شود و هنگام ذخیره سطح به‌طور خودکار سریال‌سازی می‌شود. متد Tick در هر فریم با پارامتر DeltaTime فراخوانی می‌شود که استقلال از نرخ فریم را تضمین می‌کند. این الگوی پایه برای ایجاد اشیاء تعاملی در جهان بازی است.

Blueprints — برنامه‌نویسی بصری

Blueprints سیستم اسکریپت‌نویسی بصری مبتنی بر گراف گره‌هاست. هر گره نمایانگر فراخوانی تابع، عملیات یا رویداد است. Blueprints در زمان ساخت به کد بومی C++ کامپایل می‌شوند که عملکردی نزدیک به C++ خالص فراهم می‌کند. توسعه‌دهندگان می‌توانند C++ و Blueprints را ترکیب کنند و توابع را از گراف بصری فراخوانی نمایند.

نمونه ایجاد متریال داینامیک از طریق C++ که سپس در Blueprints استفاده می‌شود:

cpp
// ایجاد متریال متحرک
UMaterialInstanceDynamic* DynMaterial =
    UMaterialInstanceDynamic::Create(BaseMaterial, this);
 
DynMaterial->SetScalarParameterValue(
    FName("GlowIntensity"), FMath::Sin(RunTime) * 0.5f + 0.5f
);

این کد یک نمونه داینامیک از متریال ایجاد می‌کند و پارامتر GlowIntensity را بر اساس موج سینوسی به‌روزرسانی می‌کند. چنین رویکردی امکان ایجاد سطوح متحرک — از منابع نور ضربان‌دار تا بافت‌های متحرک آب — را بدون نوشتن کد شیدر فراهم می‌کند. متریال‌های دارای پارامترهای داینامیک به‌طور خودکار با ویرایشگر همگام‌سازی می‌شوند.

بارگذاری ناهمزمان اَست‌ها

Unreal Engine از استخر رشته‌های اختصاصی خود برای وظایف پس‌زمینه استفاده می‌کند. ASyncTask و FThreadSafeQueue انتقال امن داده بین رشته‌ها را فراهم می‌کنند. برای عملیات طولانی، سیستم FStreamableManager با بارگذاری ناهمزمان اَست‌ها و اولویت‌بندی به کار می‌رود.

cpp
// بارگذاری ناهمزمان بافت
TSoftObjectPtr<UTexture2D> TextureRef;
FStreamableManager &Streamable =
    UAssetManager::GetStreamableManager();
 
Streamable.RequestAsyncLoad(
    TextureRef.ToSoftObjectPath(),
    [this]() {
        UTexture2D* Tex = TextureRef.Get();
        ApplyTexture(Tex);
    }
);

تابع لامبدا پس از اتمام بارگذاری در رشته اصلی اجرا می‌شود که وضعیت رقابت (race condition) را از بین می‌برد. سیستم FStreamableManager از اولویت‌بندی بارگذاری‌ها و لغو عملیات از طریق توصیفگرها پشتیبانی می‌کند که برای پروژه‌های open-world با بارگذاری جریانی سطوح بسیار حیاتی است.

ابزارهای ویرایشگر Unreal Engine

Unreal Editor محیط توسعه یکپارچه با مجموعه کامل ابزار برای ساخت بازی بدون نوشتن کد است. ویرایشگر شامل Level Editor برای چیدمان اشیاء، Material Editor برای شیدرها، Animation Editor برای انیمیشن اسکلتی و Sequencer برای صحنه‌های سینمایی است. همه تغییرات در زمان واقعی در پنجره ویوپورت نمایش داده می‌شوند.

Level Editor و لنداسکیپ‌ها

Level Editor امکان قرار دادن Actors در صحنه را با استفاده از ترنسفورم‌ها فراهم می‌کند. ابزار Landscape با براش‌هایی برای بالا بردن، پایین آوردن و صاف کردن، نقش برجسته زمین را ایجاد می‌کند. لایه‌های بافت برای ترکیب خودکار متریال‌ها بر اساس ارتفاع و زاویه شیب سطح پشتیبانی می‌شوند.

سیستم Foliage سطوح را با پوشش گیاهی با قرارگیری رویه‌ای پر می‌کند. هر نمونه علف، درخت یا سنگ به‌طور تصادفی چرخانده و مقیاس‌بندی می‌شود تا ظاهری طبیعی داشته باشد. بر اساس داده‌های Epic Games (2025)، سیستم رویه‌ای Foliage تا 1 میلیون نمونه در هر سطح را بدون افت عملکرد پشتیبانی می‌کند.

Sequencer و Control Rig

Sequencer ویرایشگر غیرخطی برای ایجاد سکانس‌های سینمایی داخل بازی و تریلرهاست که بر اساس اصل ترک‌ها کار می‌کند. هر ترک یک پارامتر را کنترل می‌کند: موقعیت دوربین، انیمیشن شخصیت، صدا یا افکت‌ها. ضبط مستقیماً در پنجره ویوپورت در زمان واقعی انجام می‌شود.

Control Rig امکان انیمیت اسکلت‌ها را مستقیماً در ویرایشگر بدون خروجی از Maya یا Blender فراهم می‌کند. انیماتورها انیمیشن‌های رویه‌ای را از طریق گراف بصری گره‌ها ایجاد می‌کنند. بر اساس داده‌های Epic Games (2026)، Control Rig در 60٪ پروژه‌های سینمایی روی Unreal Engine استفاده می‌شود و از کینماتیک معکوس پشتیبانی می‌کند.

Niagara VFX

Niagara سیستم VFX نسل جدید است که جایگزین Cascade شده است. این سیستم از ذرات GPU، رویدادهای برخورد و تولید رویه‌ای پشتیبانی می‌کند. هر افکت از امیترها، ماژول‌ها و پارامترهایی تشکیل شده که در یک گراف ترکیب می‌شوند. Niagara امکان ایجاد سیستم‌های آب‌وهوا، افکت‌های جادویی و انفجارها را با میلیون‌ها ذره فراهم می‌کند.

سیستم Niagara از Data Interfaces برای تعامل با فیزیک و لنداسکیپ استفاده می‌کند. ذرات می‌توانند به برخورد با هندسه Nanite واکنش نشان دهند و جریان‌های هوا را از نورپردازی Lumen دریافت کنند. بر اساس داده‌های Epic Games (2025)، عملکرد Niagara روی GPU 5 تا 10 برابر بیشتر از Cascade روی CPU است.

فناوری‌های رندرینگ Unreal Engine

Unreal Engine 5 دو فناوری بنیادی را معرفی کرد: Nanite برای هندسه و Lumen برای نورپردازی. آن‌ها مصالحه‌های سنتی بین کیفیت و عملکرد را حذف کردند. Nanite امکان استفاده از اَست‌های اصلی با کیفیت سینمایی را بدون بهینه‌سازی دستی LOD فراهم می‌کند.

Nanite Virtual Geometry

Nanite سیستم هندسه مجازی است که میلیاردها پلی‌گون را در زمان واقعی از طریق رسترایزیشن نرم‌افزاری و LOD خوشه‌ای رندر می‌کند. برخلاف رویکردهای سنتی، Nanite پیکسل‌های نامرئی را در سطح میکرو حذف می‌کند و تنها جزئیات قابل مشاهده را با دقت زیرپیکسل رندر می‌کند.

بر اساس داده‌های Epic Games (2025)، Nanite افزایش 10 تا 100 برابری جزئیات هندسه را در مقایسه با UE4 با همان عملکرد فراهم می‌کند. این فناوری از وارد کردن مستقیم مدل‌های ZBrush پشتیبانی می‌کند و به‌طور خودکار آن‌ها را برای رندرینگ real-time بهینه می‌کند. محدودیت آن عدم پشتیبانی از ماسک‌های شفاف و دکال‌هاست.

Lumen Global Illumination

Lumen سیستم نورپردازی سراسری داینامیک است که در زمان واقعی به تغییرات منابع نور واکنش نشان می‌دهد. این سیستم از ردیابی پرتو در فضای فرعی (Signed Distance Fields) برای محاسبه نور غیرمستقیم استفاده می‌کند. Lumen از بازتاب‌ها، نور پراکنده و تعامل رنگی بین اشیاء پشتیبانی می‌کند.

عملکرد Lumen امکان استفاده از آن را در کنسول‌های نسل فعلی با 30 تا 60 FPS فراهم می‌کند. بر اساس داده‌های Digital Foundry (2026)، Lumen کیفیت نورپردازی قابل مقایسه با رندرینگ آفلاین Mental Ray ارائه می‌دهد. در رایانه شخصی با GPU RTX 4070 و بالاتر، ردیابی با شتاب سخت‌افزاری برای بهبود کیفیت در دسترس است.

Temporal Super Resolution

Temporal Super Resolution (TSR) الگوریتم اختصاصی آپ‌اسکیلینگ Unreal Engine است که از اطلاعات فریم‌های قبلی برای بازسازی وضوح بالا استفاده می‌کند. TSR روی هر GPU که از Shader Model 5 پشتیبانی می‌کند، بدون هسته‌های اختصاصی Tensor انویدیا کار می‌کند.

علاوه بر این، Unreal Engine 5 از NVIDIA DLSS 3، AMD FSR 3.0 و Intel XeSS پشتیبانی می‌کند. بر اساس داده‌های Epic Games (2026)، ترکیب TSR با آپ‌اسکیلینگ مبتنی بر ML افزایش عملکرد تا 2.5 برابر را با حفظ کیفیت نزدیک به 4K بومی فراهم می‌کند. همه فناوری‌ها از طریق یک سیستم رندرینگ یکپارچه ادغام شده‌اند.

سوالات متداول

Unreal Engine چیست و برای چه چیزی استفاده می‌شود؟

Unreal Engine موتور بازی از Epic Games برای ساخت بازی‌های AAA، شبیه‌سازی‌ها و تولید فیلم است. به لطف تطبیق‌پذیری و گرافیک واقع‌گرایانه در صنعت بازی، سینما (The Mandalorian)، طراحی خودرو و تجسم معماری استفاده می‌شود.

Unreal Engine از چه زبان‌های برنامه‌نویسی پشتیبانی می‌کند؟

C++ زبان اصلی برنامه‌نویسی Unreal Engine است. Blueprints سیستم اسکریپت‌نویسی بصری است که به کد بومی کامپایل می‌شود. Python برای خودکارسازی ویرایشگر و خط لوله ساخت استفاده می‌شود.

تفاوت بین Nanite و LOD سنتی چیست؟

Nanite به‌طور خودکار جزئیات را در سطح پیکسل مدیریت می‌کند و مثلث‌های نامرئی را حذف می‌کند. LOD سنتی به ایجاد دستی چند نسخه از مدل با جزئیات متفاوت نیاز دارد. Nanite با میلیاردها پلی‌گون بدون بهینه‌سازی دستی کار می‌کند.

آیا یادگیری Unreal Engine برای مبتدیان دشوار است؟

Unreal Engine به لطف Blueprints — برنامه‌نویسی بصری بدون کد — آستانه ورود نرمی ارائه می‌دهد. Epic Games دوره‌های رایگان در Learn Unreal Engine فراهم می‌کند. برای کسب مهارت‌های پایه، 3 تا 6 ماه تمرین منظم کافی است.

پروژه‌های Unreal Engine روی چه پلتفرم‌هایی اجرا می‌شوند؟

Unreal Engine از انتشار در 28 پلتفرم پشتیبانی می‌کند: رایانه شخصی (Windows, macOS, Linux)، کنسول‌ها (PlayStation 5, Xbox Series, Nintendo Switch)، دستگاه‌های موبایل (iOS, Android)، VR/AR و وب از طریق WebGL و Pixel Streaming.

جمع‌بندی

  • Unreal Engine — موتور بازی پیشرو از Epic Games با کد منبع باز به زبان C++
  • معماری ماژولار شامل Core Engine، Renderer، Gameplay Framework و Editor است
  • C++ و Blueprints امکان ترکیب عملکرد و سرعت توسعه را فراهم می‌کنند
  • Nanite نیاز به LOD دستی را حذف می‌کند و از میلیاردها پلی‌گون پشتیبانی می‌کند
  • Lumen نورپردازی سراسری داینامیک را در زمان واقعی فراهم می‌کند
  • Unreal Editor مجموعه کاملی از ابزارها را برای طراحی سطوح و انیمیشن‌ها فراهم می‌کند
  • 28 پلتفرم برای انتشار — از کنسول‌ها تا وب و دستگاه‌های موبایل

ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد

IT Sectr از سال 2017 برنامه‌های iOS و Android را برای استارتاپ‌ها و کسب‌وکارها ایجاد می‌کند. ما به شما مشاوره می‌دهیم و بهترین راه‌حل را پیشنهاد خواهیم کرد.

بحث درباره پروژه

همچنین بخوانید