انتشار Grand Theft Auto VI: An Extended Look در ۲۷ اوت ۲۰۲۶، نگاه تازهای به سطح جزئیات، مقیاس و تکنولوژی مورد انتظار از نسل جدید Grand Theft Auto ارائه کرد.
این ویدیو تقریباً ۲۷ دقیقه است و طبق اعلام Rockstar، تمام تصاویر آن از فوتیج داخل بازی و روی نسخه پایه PlayStation 5 گرفته شده است. GTA VI نیز در حال حاضر برای ۱۹ نوامبر ۲۰۲۶ روی PlayStation 5 و Xbox Series X|S برنامهریزی شده است.
اما یک سؤال بسیار جذاب برای بازیسازها وجود دارد:
پاسخ کوتاه این است:
از نظر تکنولوژی، Unity میتواند بسیاری از اجزای لازم برای چنین بازیای را فراهم کند؛ اما ساخت یک بازی در مقیاس GTA VI فقط انتخاب موتور بازیسازی نیست. مسئله اصلی معماری، Streaming، مدیریت حافظه، AI، Animation، Rendering، Physics، Audio و هزاران سیستم تعاملی است که باید همزمان با یکدیگر کار کنند.
GTA VI تنها یک نقشه بزرگ نیست. این بازی باید یک دنیای زنده ایجاد کند؛ دنیایی که در آن شخصیتها، خودروها، حیوانات، ترافیک، پلیس، محیط، آب، نور، صدا و مأموریتها به شکل همزمان و هماهنگ فعالیت میکنند.
GTA VI چه چیزی را به بازیسازها نشان میدهد؟
Rockstar در اطلاعات رسمی GTA VI، دنیای بازی را در قالب Leonida معرفی کرده است؛ منطقهای که Vice City مرکز شناختهشده آن است و مناطق دیگری نیز در اطراف آن قرار دارند.
شخصیتهای اصلی بازی Jason Duval و Lucia Caminos هستند و داستان آنها در یک توطئه جنایی در سراسر ایالت Leonida جریان دارد.
در Extended Look نیز بخشهای مختلفی از گیمپلی، تعقیبوگریز، تیراندازی، فعالیتهای محیطی و تعاملات شخصیتها نمایش داده شد.
تحلیلهای منتشرشده از این ویدیو به مواردی مانند تعویض شخصیت، تعاملات نزدیکتر با NPCها، مبارزه، تعقیب پلیس و موقعیتهای مختلف مأموریتی اشاره کردهاند.
اگر بخواهیم GTA را با Unity بسازیم، از کجا شروع کنیم؟
فرض کنیم یک تیم بازیسازی تصمیم گرفته است یک بازی Open World در سبک GTA بسازد.
اولین اشتباه این است که کار را با ساخت ساختمانها و خیابانها شروع کنیم.
در چنین پروژهای ابتدا باید Architecture را طراحی کنیم.
ساختار کلی میتواند چیزی شبیه این باشد:
Open World Game
│
├── World Streaming
│ ├── World Chunks
│ ├── Addressables
│ ├── Scene Streaming
│ └── LOD Management
│
├── Rendering
│ ├── HDRP
│ ├── Lighting
│ ├── Weather
│ ├── Post Processing
│ └── Volumetrics
│
├── Character System
│ ├── Animation
│ ├── IK
│ ├── Combat
│ ├── Locomotion
│ └── Interaction
│
├── Vehicle System
│ ├── Car Physics
│ ├── Traffic
│ ├── Damage
│ └── Customization
│
├── AI
│ ├── NPC
│ ├── Police
│ ├── Pedestrians
│ ├── Traffic AI
│ └── Wildlife
│
├── Audio
│ ├── 3D Audio
│ ├── Radio
│ ├── Environment
│ └── Dynamic Music
│
├── Mission System
│ ├── Quest
│ ├── Dialogue
│ ├── Trigger
│ └── Cutscene
│
└── Gameplay
├── Weapons
├── Inventory
├── Economy
├── Wanted System
└── Interaction
این معماری به ما اجازه میدهد که بازی را به چندین سیستم مستقل تقسیم کنیم.
1. ساخت دنیای عظیم Open World
یکی از سختترین قسمتهای ساخت یک بازی مشابه GTA، خود شهر نیست؛ بلکه اجرای همزمان یک دنیای بزرگ بدون مصرف بیش از حد RAM و VRAM است.
اگر کل شهر را یکجا Load کنیم، خیلی سریع با مشکلاتی مانند موارد زیر مواجه خواهیم شد:
- مصرف شدید RAM
- مصرف VRAM
- افزایش زمان Loading
- افت FPS
- تعداد Draw Call بالا
- Physics بیش از حد
- تعداد زیاد NPC
- تعداد زیاد GameObject
بنابراین در Unity باید از سیستمهایی مانند:
استفاده کنیم.
برای مثال، شهر را به Chunk تقسیم میکنیم:
World
│
├── Chunk_001
├── Chunk_002
├── Chunk_003
├── Chunk_004
├── Chunk_005
├── Chunk_006
└── ...
بازیکن فقط بخشهای اطراف خودش را با کیفیت کامل دریافت میکند.
مثلاً:
[Far]
Low Detail World
[Medium] [Medium]
[PLAYER]
[High] [High]
[Physics Active]
در فاصله دور:
LOD پایین
در فاصله متوسط:
LOD متوسط
و نزدیک بازیکن:
LOD کامل
فعال میشود.
2. گرافیک؛ جایی که Unity واقعاً باید تحت فشار قرار بگیرد
برای پروژهای با هدف بصری بسیار بالا، یکی از انتخابهای مهم در Unity استفاده از HDRP است.
HDRP میتواند امکانات مهمی مانند موارد زیر را در اختیار پروژه قرار دهد:
- Physically Based Rendering
- Volumetric Effects
- High Quality Shadows
- Reflection
- Screen Space Effects
- Advanced Lighting
- Post Processing
اما HDRP به تنهایی بازی را زیبا نمیکند.
بخش بزرگی از کیفیت GTA-like مربوط به Asset Production است.
مثلاً یک ساختمان باید فقط یک Cube با Texture نباشد.
باید شامل مواردی مانند:
Building
├── Geometry
├── Normal Map
├── Roughness
├── Metallic
├── AO
├── Decals
├── Interior
├── Windows
├── Dirt
├── Damage
└── LODs
باشد.
این یعنی کیفیت بصری فقط به موتور بازی وابسته نیست؛ کیفیت Asset Pipeline اهمیت بسیار زیادی دارد.
3. نورپردازی؛ شهر باید زنده به نظر برسد
یکی از مهمترین تفاوتهای یک بازی معمولی با یک Open World AAA، سیستم نورپردازی آن است.
در یک شهر بزرگ باید نور خورشید در طول روز تغییر کند.
Morning
Soft Sunlight
Long Shadows
Warm Atmosphere
Midday
High Intensity
Short Shadows
Strong Contrast
Night
Neon Lights
Street Lights
Vehicle Lights
Building Lights
و سپس باید این سیستم با آبوهوا ترکیب شود.
Weather System
│
├── Sunny
├── Cloudy
├── Rain
├── Storm
└── Fog
│
▼
Lighting System
│
▼
World Appearance
در چنین معماری، تغییر Weather فقط تغییر یک Particle System نیست.
باید موارد زیر نیز تغییر کنند:
- نور محیط
- Reflection
- Sky
- Fog
- Wetness
- Puddles
- Road Reflection
- Audio
- Wind
- Particle
4. باران و خیابانهای خیس
یکی از چیزهایی که در یک بازی مانند GTA VI میتواند فوقالعاده به نظر برسد، Wet Surface Rendering است.
فرض کنید باران شروع میشود.
Material خیابان باید بتواند تغییر کند:
Dry Road
↓
Rain Starts
↓
Roughness ↓
Reflection ↑
Wetness ↑
↓
Puddles Appear
در این حالت چراغ ماشینها روی آسفالت منعکس میشود.
برای ایجاد این نتیجه میتوان از ترکیبی از موارد زیر استفاده کرد:
- Shader
- Decal
- Reflection
- Normal Map
- SSR / Reflection techniques
- Particle System
5. NPCها؛ شهری که واقعاً زنده است
اگر ۱۰ هزار ساختمان داشته باشیم ولی NPCها فقط در خیابان راه بروند، شهر هنوز مصنوعی به نظر میرسد.
NPC باید رفتار داشته باشد.
برای مثال:
NPC
│
├── Walk
├── Run
├── Sit
├── Talk
├── Eat
├── Use Phone
├── Enter Vehicle
├── Exit Vehicle
├── React To Crime
├── Flee
└── Call Police
حتی بهتر از آن، NPC باید Context را درک کند.
مثلاً اگر بازیکن با اسلحه در خیابان شلیک کند:
Gunshot
↓
Nearby NPC Detection
↓
Fear Evaluation
↓
NPC Reaction
├── Run
├── Hide
├── Record Video
└── Call Police
این نوع سیستم باعث میشود شهر شبیه یک Simulation رفتار کند، نه مجموعهای از مدلهای سهبعدی.
6. هوش مصنوعی پلیس
سیستم Wanted یکی از مهمترین سیستمهای یک GTA-like است.
بهجای اینکه پلیس فقط به سمت بازیکن حرکت کند، میتوان سیستم را به چند لایه تقسیم کرد:
Crime
↓
Witness
↓
Report
↓
Police Dispatch
↓
Search Area
↓
Target Identification
↓
Pursuit
↓
Combat / Arrest
در سطح بالاتر حتی میتوان برای پلیس Memory ایجاد کرد.
Police Knowledge
Suspect:
Unknown
Vehicle:
Black Sedan
Location:
Vice District
Last Seen:
02:14 AM
این باعث میشود رفتار AI طبیعیتر شود.
7. سیستم خودرو
یکی از پیچیدهترین بخشهای یک GTA-like، Vehicle System است.
هر خودرو باید مواردی مانند موارد زیر را شبیهسازی کند:
- موتور
- Gearbox
- Acceleration
- Braking
- Suspension
- Tire Grip
- Weight
- Aerodynamics
- Damage
- Fuel
- Steering
معماری:
Vehicle
│
├── Engine
├── Transmission
├── Suspension
├── Wheels
├── Steering
├── Brakes
├── Damage
└── Audio
و مهمتر از همه:
Vehicle AI
چون شهر بدون ترافیک واقعی خالی به نظر میرسد.
8. فیزیک
Physics فقط برای برخورد ماشینها نیست.
در یک بازی بزرگ باید سیستم فیزیک برای موارد زیر کار کند:
- خودرو
- شخصیت
- اسلحه
- اجسام محیط
- انفجار
- Ragdoll
- سقوط
- برخورد
- آب
- اشیای قابل تخریب
اما نکته مهم Performance است.
نباید تمام دنیا دائماً Physics Simulation داشته باشد.
به همین دلیل میتوان سیستم را به صورت زیر طراحی کرد:
Player Area
↓
Full Physics
Near Area
↓
Reduced Physics
Far Area
↓
Simplified Simulation
9. Animation؛ چیزی فراتر از چند حرکت آماده
یکی از تفاوتهای بزرگ بازیهای AAA در Animation است.
شخصیت نباید فقط:
Idle
Walk
Run
Jump
داشته باشد.
باید بتواند به شکل طبیعی بین حالتها Transition کند.
برای مثال:
Walk
↓
Run
↓
Stop
↓
Turn
↓
Aim
↓
Shoot
و برای طبیعیتر شدن حرکت میتوان از:
استفاده کرد.
مثلاً اگر شخصیت در حال راه رفتن باشد و به پله برسد، پا باید با ارتفاع واقعی پله هماهنگ شود.
10. سیستم صدا
در بازی Open World، Audio تقریباً به اندازه Graphics اهمیت دارد.
شهر باید صدا داشته باشد:
- موتور خودرو
- بوق
- صدای مردم
- موسیقی
- باد
- پرندگان
- آب
- باران
- تیراندازی
- پلیس
- محیط داخلی ساختمان
و مهمتر:
3D Spatial Audio
اگر ماشین از سمت چپ بازیکن عبور کند، صدا باید از سمت چپ شنیده شود.
اگر وارد یک ساختمان شویم، صدای خیابان باید تغییر کند.
Outdoor
↓
Wall
↓
Interior
صدا باید با محیط Occlusion و Reverb مناسب تغییر کند.
11. سیستم مأموریت
برای بازیای در این مقیاس، Mission System نباید با چند اسکریپت بزرگ و بههمریخته ساخته شود.
بهتر است Data Driven باشد.
مثلاً:
Mission
│
├── Objectives
├── Characters
├── Locations
├── Dialogue
├── Triggers
├── Rewards
├── Fail Conditions
└── Checkpoints
در نتیجه میتوان مأموریت جدید را بدون تغییر گسترده در Core Code ایجاد کرد.
12. Character Switching
یکی از قابلیتهای جذاب GTA VI که در Extended Look نیز توجه زیادی به آن شد، تعامل میان Jason و Lucia و جابهجایی میان آنها در موقعیتهای مختلف است.
گزارشهای مربوط به نمایش جدید Rockstar به نمونههایی از تغییر شخصیت و ادامه رویداد از دید شخصیت دیگر اشاره کردهاند.
در Unity میتوان چنین سیستمی را به شکل زیر طراحی کرد:
Character Manager
│
├── Jason
│ ├── State
│ ├── Position
│ └── Inventory
│
└── Lucia
├── State
├── Position
└── Inventory
هنگام Switch:
Active Character
↓
Save State
↓
Camera Transition
↓
Load Target Character
↓
Activate AI / Player Control
این سیستم زمانی جذاب میشود که شخصیت دوم در همان لحظه واقعاً در دنیای بازی حضور داشته باشد.
13. وسعت دنیا؛ بزرگ بودن نقشه کافی نیست
یک اشتباه رایج در بازیسازی این است که فکر کنیم:
هرچه Map بزرگتر باشد، بازی بهتر است.
در واقع کیفیت Open World بیشتر به Density مربوط است.
یک Map بسیار بزرگ با ساختمانهای خالی:
اما یک Map کوچکتر با:
- NPC
- Traffic
- Interiors
- Mission
- Activities
- Wildlife
- Dynamic Events
- Weather
- Audio
میتواند بسیار زندهتر باشد.
بنابراین در طراحی یک GTA-like باید به این فرمول توجه کنیم:
14. بهینهسازی؛ مهمتر از گرافیک
میتوانیم بهترین گرافیک دنیا را تولید کنیم، اما اگر بازی روی 20 FPS اجرا شود، هیچ ارزشی ندارد.
بنابراین باید از ابتدا Performance Budget تعریف کنیم.
این زمان باید بین سیستمهای مختلف تقسیم شود:
Rendering
Physics
AI
Animation
Audio
Streaming
Gameplay
اگر AI به تنهایی 10ms مصرف کند، دیگر فضای کافی برای Rendering باقی نمیماند.
بنابراین Optimization باید از روز اول پروژه شروع شود، نه در آخرین ماه توسعه.
15. معماری کدنویسی
برای چنین پروژهای نمیتوان همه چیز را داخل MonoBehaviourهای بزرگ قرار داد.
بهتر است معماری Modular داشته باشیم.
مثلاً:
Game
│
├── Core
├── Gameplay
├── Characters
├── Vehicles
├── AI
├── Missions
├── World
├── Audio
├── UI
├── SaveSystem
└── Networking
و سیستمها از طریق Interface و Event با یکدیگر ارتباط برقرار کنند.
برای مثال:
public interface ICrimeReporter
{
void ReportCrime(CrimeData crime);
}
و:
public interface IWantedSystem
{
void AddWantedLevel(int level);
}
در این معماری، سیستم تیراندازی لازم نیست مستقیماً PoliceManager را کنترل کند.
میتواند یک Crime Event منتشر کند.
16. آیا Unity واقعاً میتواند GTA 6 بسازد؟
اینجا باید واقعبین باشیم.
Rockstar موتور و تکنولوژی داخلی خودش را دارد و منابع عمومی درباره معماری دقیق موتور GTA VI منتشر نشده است.
اما اگر سؤال این باشد:
آیا Unity از نظر فنی میتواند یک Open World بسیار بزرگ و پیچیده در سبک GTA بسازد؟
پاسخ:
Unity فقط بخشی از مسئله است.
تیم توسعه باید برای موارد زیر راهکار جدی داشته باشد:
- World Streaming
- Asset Streaming
- LOD
- AI Scheduling
- Physics Optimization
- Rendering Optimization
- Animation System
- Vehicle Simulation
- Audio Streaming
- Memory Management
- Save System
- Mission Architecture
- Tools Pipeline
- Procedural Generation
- Build Pipeline
در حقیقت، ساخت چنین بازیای بیشتر از اینکه یک مسئله «انتخاب موتور» باشد، یک مسئله Software Architecture + Content Production + Optimization است.
Unity در مقابل مقیاس GTA VI
اگر هدف ما ساخت یک بازی با کیفیت نزدیک به GTA VI باشد، میتوان Unity را در این بخشها بسیار جدی گرفت:
| سیستم | Unity |
|---|---|
| Open World | مناسب، با معماری Streaming |
| HDR Graphics | بسیار قدرتمند |
| Lighting | بسیار قدرتمند |
| Physics | مناسب |
| Vehicle | نیازمند توسعه اختصاصی |
| NPC AI | نیازمند معماری اختصاصی |
| Animation | بسیار مناسب |
| Audio | مناسب |
| Multiplayer | قابل پیادهسازی |
| World Streaming | قابل پیادهسازی |
| Procedural Generation | بسیار مناسب |
| Tooling | بسیار قدرتمند |
| Optimization | وابسته به معماری پروژه |
بنابراین مسئله اصلی این نیست که:
بلکه سؤال واقعی این است:
نتیجهگیری
GTA VI نشان میدهد که نسل جدید بازیهای Open World فقط درباره Textureهای باکیفیتتر یا Polygonهای بیشتر نیست.
هدف اصلی، ساختن یک World Simulation است.
دنیایی که:
- شخصیت دارد
- رفتار دارد
- صدا دارد
- نور دارد
- آبوهوا دارد
- ترافیک دارد
- اقتصاد دارد
- جرم و جنایت دارد
- پلیس دارد
- مأموریت دارد
- واکنش دارد
- و مهمتر از همه، بدون دخالت مستقیم بازیکن نیز زنده به نظر میرسد.
Rockstar در Extended Look اعلام کرده که این تصاویر کاملاً از فوتیج داخل بازی روی PlayStation 5 گرفته شدهاند و خود Rockstar این پروژه را «بزرگترین و غوطهورکنندهترین تحول» این مجموعه معرفی کرده است.
اگر بخواهیم تجربهای مشابه را با Unity ایجاد کنیم، باید به جای فکر کردن به «ساخت یک شهر»، به ساخت یک اکوسیستم دیجیتال فکر کنیم.
و شاید مهمترین درس GTA VI برای بازیسازها همین باشد:
یک Open World بزرگ، با تعداد Polygon ساخته نمیشود؛ با تعداد سیستمهایی ساخته میشود که بتوانند همزمان آن دنیا را زنده نگه دارند.
ارسال دیدگاه
نظرات کاربران (0)
هنوز هیچ دیدگاهی برای این مقاله ثبت نشده است.