ساخت بازی با هوش مصنوعی؛ آموزش کامل بازیسازی با AI از ایده تا انتشار
در این راهنمای جامع، ساخت بازی با هوش مصنوعی را از ایده و Game Design Document تا کدنویسی، تولید کاراکتر، تست و انتشار یاد میگیرید و با ابزارهای معتبر و API درواره آشنا میشوید.
ساخت بازی یکی از پیچیدهترین فرایندهای تولید نرمافزار و محتوای دیجیتال است. یک بازی حتی در ابعاد کوچک ممکن است به طراحی مکانیک، برنامهنویسی، رابط کاربری، تصویرسازی، انیمیشن، صداگذاری، موسیقی، طراحی مرحله، داستاننویسی، تست و بهینهسازی نیاز داشته باشد.
هوش مصنوعی میتواند در تمام این مراحل به تیم بازیسازی کمک کند. امروز میتوان ایده اولیه بازی را به یک Game Design Document تبدیل کرد، منطق حرکت و امتیازدهی را با AI نوشت، Sprite و محیط تولید کرد، دیالوگ شخصیتها را ساخت و حتی بعضی بازیهای ساده را فقط با توضیح متنی به یک Prototype قابلبازی تبدیل کرد.
برای مثال میتوانید بنویسید:
یک بازی دوبعدی Platformer بساز که بازیکن در یک شهر متروکه حرکت کند، سکه جمع کند، از موانع عبور کند و پس از رسیدن به دروازه وارد مرحله بعد شود.
ابزار AI ممکن است شخصیت، حرکت، سیستم برخورد، سکهها، امتیاز و مرحله اولیه را بسازد. اما بازی ساختهشده با یک Prompt معمولاً Prototype است، نه محصول آماده انتشار.
یک بازی کامل همچنان به طراحی دقیق تجربه، تنظیم سختی، رفع باگ، تست روی دستگاههای مختلف و بهینهسازی نیاز دارد. هوش مصنوعی سرعت تولید را افزایش میدهد، اما تصمیمهای اصلی Game Design همچنان بر عهده سازنده است.
در این مقاله، بازیسازی با هوش مصنوعی را از انتخاب ایده و ابزار تا ساخت، تست و انتشار بررسی میکنیم. در بخش فنی نیز یاد میگیریم چگونه با API درواره، NPC هوشمند، دیالوگ پویا، تولید مأموریت و سایر قابلیتهای AI را به بازی اضافه کنیم.
ساخت بازی با هوش مصنوعی چیست؟
ساخت بازی با هوش مصنوعی یا AI Game Development به استفاده از مدلهای مولد و Agentهای هوشمند در طراحی، توسعه یا اجرای بازی گفته میشود.
هوش مصنوعی میتواند در دو بخش اصلی وارد بازی شود.
استفاده از AI برای توسعه بازی
در این حالت، AI به تیم سازنده کمک میکند:
- تولید ایده
- نوشتن Game Design Document
- ساخت کد
- طراحی مرحله
- تولید تصویر
- ساخت Sprite
- طراحی محیط
- تولید موسیقی
- صداگذاری
- ساخت دیالوگ
- تست بازی
- رفع خطا
- تولید محتوای تبلیغاتی
استفاده از AI داخل خود بازی
در این حالت، مدل هوش مصنوعی هنگام اجرای بازی نقش دارد:
- NPC گفتوگومحور
- داستان پویا
- مأموریت شخصیسازیشده
- راهنمای هوشمند
- روایت تطبیقی
- تحلیل رفتار بازیکن
- تولید آیتم و توضیحات
- تغییر سطح دشواری
- خلاصهسازی اتفاقات قبلی
- تبدیل صدای بازیکن به دستور
- تولید صدای شخصیت
این دو مفهوم را نباید با هم اشتباه گرفت. ممکن است بازی با کمک AI ساخته شود، اما هنگام اجرا هیچ مدل هوش مصنوعی فراخوانی نکند.
آیا میتوان بدون کدنویسی بازی ساخت؟
بله، ابزارهایی مانند GDevelop و بعضی AI Game Makerهای تحت وب امکان ساخت بازیهای ساده را با منطق بصری یا Prompt فراهم میکنند.
پروژههای مناسب برای شروع:
- بازی Platformer دوبعدی
- بازی Puzzle
- Endless Runner
- بازی کلیکی
- بازی سؤال و جواب
- Visual Novel
- بازی آموزشی
- بازی کارت
- Top-Down Adventure
- بازی جمعآوری آیتم
- شبیهساز ساده
- بازی مرورگری
بازیهای پیچیدهتر معمولاً به دانش برنامهنویسی و Game Engine نیاز دارند:
- بازی آنلاین چندنفره
- جهان باز
- سیستم فیزیک پیچیده
- هوش مصنوعی دشمنان
- اقتصاد درونبازی
- بازی رقابتی
- ذخیرهسازی ابری
- همگامسازی بلادرنگ
- بازی سهبعدی بزرگ
- انتشار روی چند کنسول
بهترین ابزارهای ساخت بازی با هوش مصنوعی
Unity AI
Unity یکی از شناختهشدهترین موتورهای بازیسازی است. Unity AI مجموعهای از قابلیتهای هوش مصنوعی داخل Editor است که میتواند ساخت و اصلاح پروژه را تسهیل کند.
Unity AI در نسخه Open Beta برای Unity 6، قابلیتهایی مانند Assistant، حالتهای Ask، Plan و Agent، تولید محتوا و دسترسی مبتنی بر زمینه پروژه را ارائه میکند. Agent میتواند ساختار Scene، GameObjectها، Componentها و Packageهای پروژه را درک کند. Unity AI
کاربردها:
- پاسخ به پرسشهای Unity
- برنامهریزی Feature
- ساخت یا اصلاح GameObject
- کمک در نوشتن C#
- تنظیم Componentها
- تحلیل ساختار پروژه
- تولید Asset در گردشهای پشتیبانیشده
- رفع خطا
- اجرای عملیات داخل Editor
مناسب برای:
- بازی دوبعدی و سهبعدی
- توسعهدهندگان C#
- پروژههای موبایل
- بازی PC
- تیمهای حرفهای و مستقل
محدودیت:
Agent ممکن است تغییراتی انجام دهد که با معماری پروژه هماهنگ نباشند. تغییرات باید بازبینی، ثبت و تست شوند. همچنین کیفیت Game Design فقط با تولید کد تضمین نمیشود.
GDevelop
GDevelop یک موتور بازیسازی Open Source با سیستم No-Code مبتنی بر Event است. منطق در این موتور با ساختار شرط و عمل تعریف میشود:
اگر بازیکن با سکه برخورد کرد
سکه را حذف کن
امتیاز را یک واحد افزایش بده
AI Agent در GDevelop میتواند ساختار پروژه، Scene، Object و Variableها را بخواند و براساس Prompt منطق بازی ایجاد کند. برای مثال، میتوان از Agent خواست سیستم جان، جمعآوری سکه یا Respawn بسازد. GDevelop AI Agent
قابلیتها:
- بازیسازی بدون کدنویسی
- ساخت بازی 2D و 3D
- AI Agent
- سیستم Event
- Behaviorهای آماده
- Assetهای آماده
- توسعه با JavaScript
- خروجی HTML5
- خروجی Android
- انتشار Desktop
- پشتیبانی از Multiplayer در گردشهای موجود
مناسب برای:
- مبتدیان
- دانشآموزان و دانشجویان
- بازی دوبعدی
- بازی مرورگری
- Prototype
- بازی موبایل ساده
محدودیت:
AI Agent دکمه «کل بازی را کامل بساز» نیست. سیستمهای پیچیده باید مرحلهای طراحی، تولید و آزمایش شوند.
Rosebud AI
Rosebud یک AI Game Maker تحت وب است که توضیح متنی را به کد و بازی قابلاجرا تبدیل میکند.
قابلیتهای آن:
- تولید بازی از Prompt
- ساخت بازی 2D و 3D
- تولید کد اولیه
- ساخت مکانیک
- تولید Asset
- ساخت شخصیت
- ویرایش بازی با گفتوگو
- اجرای بازی در مرورگر
- اشتراک بازی با لینک
- ساخت بازی RPG، Puzzle و Platformer
Rosebud AI برای تبدیل سریع ایده به Prototype مرورگری مناسب است.
محدودیت:
بازی تولیدشده با Prompt ممکن است از نظر کنترل، معماری کد، کیفیت Asset و تعادل گیمپلی نیازمند اصلاحات زیادی باشد. این ابزار بیشتر برای نمونهسازی و بازیهای کوچک مناسب است.
Coplay برای Unity
Coplay یک Agent مستقل برای Unity است که داخل محیط موتور بازی نصب میشود و میتواند به توسعهدهنده در انجام کارهای Editor، ایجاد کد و تنظیم Scene کمک کند.
قابلیتها:
- درک ساختار پروژه Unity
- ایجاد یا اصلاح Script
- ساخت Scene
- کار با GameObjectها
- پیشنهاد و اعمال تغییرات
- کنترل سطح اختیار Agent
- استفاده از مدلهای مختلف
Coplay برای توسعهدهندگانی مناسب است که میخواهند AI مستقیماً در گردش کار Unity حضور داشته باشد.
Roblox Studio و ابزارهای AI
برای ساخت بازی در Roblox، ابزارهایی ایجاد شدهاند که Agent هوش مصنوعی را به Roblox Studio متصل میکنند.
برای مثال BloxBot از Roblox Studio MCP استفاده میکند تا Agent بتواند ساختار بازی را ببیند، Scriptهای Luau ایجاد کند و روی Objectها، Terrain و رابط کاربری کار کند. BloxBot
کاربردها:
- نوشتن Luau
- ساخت Object
- طراحی Terrain
- ساخت رابط کاربری
- ایجاد سیستم امتیاز
- ساخت فروشگاه
- ساخت Checkpoint
- رفع خطا
- Playtest
مناسب برای:
- سازندگان Roblox
- کاربران آشنا با Roblox Studio
- بازیهای اجتماعی
- بازیهای آموزشی و تفریحی
محدودیت:
کد تولیدشده باید از نظر معماری Client و Server، ذخیرهسازی داده و منطق بازی آزمایش شود.
Scenario برای تولید Assetهای هماهنگ
Scenario یک زیرساخت تولید محتوای خلاقانه برای تصویر، ویدئو، صدا و سهبعدی است. تیمها میتوانند با تصاویر مرجع و مدلهای سفارشی، Assetهایی هماهنگ با زبان بصری پروژه تولید کنند. Scenario
کاربردها:
- Concept Art
- کاراکتر
- آیتم
- محیط
- UI Asset
- Texture
- تبلیغات بازی
- تولید نسخههای هماهنگ
- حفظ Art Style
مناسب برای:
- استودیوهای بازی
- تیمهای Art
- پروژههایی با Assetهای زیاد
- بازیهایی که ثبات بصری اهمیت دارد
Inworld برای صدا و شخصیتهای تعاملی
Inworld روی قابلیتهای هوش مصنوعی بلادرنگ و صدا تمرکز دارد و میتواند در ساخت تجربههای گفتوگومحور و NPCهای صوتی استفاده شود. Inworld
برای بسیاری از بازیهای مستقل، میتوان قابلیت مشابه را بهصورت کنترلشده با ترکیب مدل متنی، تبدیل گفتار به متن و تبدیل متن به گفتار ساخت.
API درواره برای ساخت قابلیتهای AI در بازی
درواره امکان دسترسی به مدلهای متنی، تصویری، صوتی، ویدئویی، کدنویسی و چندوجهی را از طریق یک API سازگار با OpenAI فراهم میکند.
کاربردهای مناسب برای بازی:
- NPC هوشمند
- دیالوگ پویا
- تولید مأموریت
- نوشتن توضیحات آیتم
- تولید داستان پسزمینه
- خلاصهسازی رویدادها
- ساخت تصویر کاراکتر
- تولید Concept Art
- تبدیل متن به صدا
- تبدیل گفتار بازیکن به متن
- ساخت موسیقی و افکت در گردشهای مناسب
- تولید محتوای بازاریابی
برای مشاهده مدلها، Model ID درواره و قیمتهای بهروز به صفحه مدلهای درواره مراجعه کنید.
مقایسه ابزارهای AI بازیسازی
| ابزار | کاربرد اصلی | کدنویسی | خروجی | مناسب برای |
|---|---|---|---|---|
| Unity AI | توسعه داخل Unity | C# | بازی 2D و 3D | توسعهدهنده |
| GDevelop | بازیسازی No-Code | اختیاری | Web، Mobile و Desktop | مبتدی |
| Rosebud AI | Prompt-to-Game | اختیاری | بازی مرورگری | Prototype |
| Coplay | Agent داخل Unity | C# | پروژه Unity | تیم Unity |
| BloxBot | ساخت بازی Roblox | Luau | پروژه Roblox | Roblox Creator |
| Scenario | تولید Asset | خیر | تصویر، ویدئو و 3D | تیم هنری |
| API درواره | AI داخل بازی | نیازمند Backend | متن، تصویر و صدا | توسعهدهنده |
کدام ابزار برای شما مناسبتر است؟
اگر هیچ برنامهنویسی بلد نیستید
GDevelop و Rosebud AI برای شروع سادهتر هستند.
اگر بازی موبایل میخواهید
GDevelop برای بازیهای ساده و Unity برای پروژههای سفارشیتر مناسباند.
اگر بازی سهبعدی حرفهای میسازید
Unity با AI Assistant یا Agentهای متصل به Editor کنترل بیشتری فراهم میکند.
اگر بازی Roblox میسازید
Roblox Studio همراه با ابزارهای AI تخصصی و Agentهای Luau مناسب است.
اگر فقط Asset میخواهید
از مدلهای تصویر، صدا و ابزارهایی مانند Scenario استفاده کنید.
اگر NPC یا داستان پویا میخواهید
مدلهای متنی و صوتی API درواره را از طریق Backend کنترلشده به بازی متصل کنید.
مراحل ساخت بازی با هوش مصنوعی
مرحله اول: Core Loop را تعریف کنید
Core Loop فعالیتی است که بازیکن بارها انجام میدهد.
نمونه بازی Platformer:
حرکت
پرش
عبور از مانع
جمعآوری سکه
رسیدن به پایان مرحله
ارتقا یا ورود به مرحله بعد
نمونه بازی مدیریتی:
جمعآوری منابع
ساخت تجهیزات
افزایش ظرفیت
بازکردن قابلیت جدید
مدیریت منابع بیشتر
اگر Core Loop جذاب نباشد، تصویر زیبا یا کد زیاد بازی را نجات نمیدهد.
مرحله دوم: MVP بازی را محدود کنید
برای اولین نسخه فقط این موارد را بسازید:
- یک شخصیت
- یک مرحله
- یک مکانیک اصلی
- یک نوع دشمن
- سیستم امتیاز
- برد و باخت
- Restart
پس از اطمینان از جذاببودن مکانیک، محتوا و مراحل بیشتری اضافه کنید.
مرحله سوم: Game Design Document بنویسید
یک GDD مختصر میتواند شامل این بخشها باشد:
- نام موقت بازی
- ژانر
- پلتفرم
- مخاطب
- Core Loop
- کنترل
- هدف بازیکن
- شکست و پیروزی
- شخصیتها
- دشمنان
- مراحل
- اقتصاد
- پیشرفت
- Art Style
- صدا
- MVP
- معیارهای موفقیت
پرامپت ساخت GDD
برای یک بازی دوبعدی Platformer یک Game Design Document مختصر بنویس.
ایده:
بازیکن یک ربات کوچک است که در کارخانه متروکه حرکت میکند،
قطعات انرژی جمع میکند و از دستگاههای خراب دوری میکند.
پلتفرم:
Web و Android
مخاطب:
بازیکنان Casual
مدت هر مرحله:
3 تا 5 دقیقه
خروجی:
1. High Concept
2. Core Loop
3. کنترل
4. مکانیک اصلی
5. دشمنان
6. سیستم امتیاز
7. برد و باخت
8. سه مرحله اولیه
9. Art Direction
10. Sound Direction
11. MVP
12. قابلیتهای نسخههای بعد
از افزودن قابلیتهای غیرضروری به MVP خودداری کن.
مرحله چهارم: مکانیک اصلی را بسازید
پیش از منو، فروشگاه یا داستان، حرکت و تعامل اصلی را بسازید.
برای Platformer:
- حرکت افقی
- پرش
- برخورد
- دوربین
- زمین
- یک مانع
- یک آیتم قابلجمعآوری
مرحله پنجم: Graybox بسازید
Graybox نسخهای ساده از مرحله است که با اشکال ابتدایی ساخته میشود. هدف آن ارزیابی گیمپلی است، نه زیبایی.
در این مرحله بررسی کنید:
- فاصله پرش مناسب است؟
- سرعت بازیکن خوب است؟
- مسیر قابلفهم است؟
- مرحله بیشازحد سخت نیست؟
- هدف واضح است؟
- دوربین مزاحم نیست؟
مرحله ششم: Assetها را اضافه کنید
پس از تثبیت مکانیک:
- کاراکتر
- محیط
- Sprite
- Texture
- UI
- انیمیشن
- صدا
- موسیقی
را اضافه کنید.
مرحله هفتم: سیستمهای جانبی را بسازید
- منوی اصلی
- Pause
- تنظیمات
- ذخیره بازی
- انتخاب مرحله
- آموزش
- صدا
- Game Over
- Victory
- امتیاز
مرحله هشتم: Playtest انجام دهید
بازی را به فردی بدهید که چیزی درباره طراحی آن نمیداند. فقط رفتار او را مشاهده کنید.
موارد مهم:
- مسیر را پیدا میکند؟
- کنترل را میفهمد؟
- دلیل باخت را میداند؟
- بازی بیشازحد آسان یا سخت است؟
- کجا خسته میشود؟
- آیا دوباره بازی میکند؟
مرحله نهم: بهینهسازی کنید
- Assetهای سنگین را کاهش دهید.
- Objectهای غیرضروری را حذف کنید.
- تعداد Draw Call را بررسی کنید.
- تصویرها را فشرده کنید.
- صداها را بهینه کنید.
- Object Pooling استفاده کنید.
- حافظه و Frame Rate را اندازه بگیرید.
- بازی را روی دستگاه ضعیفتر تست کنید.
مرحله دهم: منتشر کنید
بسته به موتور میتوانید خروجی بگیرید:
- HTML5
- Android
- iOS
- Windows
- macOS
- Linux
- پلتفرمهای بازی تحت وب
- فروشگاههای بازی
پرامپت ساخت بازی Platformer در GDevelop
در Scene فعلی یک Prototype بازی Platformer بساز.
Objectها:
- Player
- Ground
- Platform
- Coin
- Enemy
- Goal
منطق:
- Player با کلیدهای چپ و راست حرکت کند.
- با Space بپرد.
- هنگام برخورد با Coin، سکه حذف و Score یک واحد زیاد شود.
- هنگام برخورد با Enemy، Health ده واحد کم شود.
- اگر Health به صفر رسید، Scene از ابتدا اجرا شود.
- هنگام برخورد با Goal، صفحه پیروزی نمایش داده شود.
UI:
- Score بالا سمت راست
- Health بالا سمت چپ
- طراحی ساده و مناسب تست
ابتدا Objectها و Variableهای لازم را فهرست کن.
سپس سیستمها را یکییکی ایجاد کن.
پرامپت ساخت بازی در Unity
برای Unity 6 یک Prototype دوبعدی Platformer ایجاد کن.
ابتدا Plan ارائه بده و سپس مرحلهای اجرا کن.
مرحله اول:
- Player GameObject
- Rigidbody2D
- Collider2D
- حرکت افقی
- پرش با Ground Check
- دوربین دنبالکننده
مرحله دوم:
- Coin قابلجمعآوری
- Score Manager
- UI امتیاز
مرحله سوم:
- دشمن گشتی ساده
- Health System
- Respawn
الزامات:
- C# تمیز و Component-based
- مقادیر قابلتنظیم در Inspector
- استفاده از Tag فقط در صورت نیاز
- جلوگیری از وابستگی غیرضروری
- ثبت پیامهای خطای قابلفهم
- هر Script یک مسئولیت مشخص داشته باشد
بعد از هر مرحله، نحوه تست را توضیح بده.
نمونه اسکریپت حرکت Unity
using UnityEngine;
[RequireComponent(typeof(Rigidbody2D))]
public class PlayerMovement : MonoBehaviour
{
[SerializeField] private float moveSpeed = 6f;
[SerializeField] private float jumpForce = 12f;
[SerializeField] private Transform groundCheck;
[SerializeField] private LayerMask groundLayer;
[SerializeField] private float groundRadius = 0.2f;
private Rigidbody2D body;
private float horizontalInput;
private void Awake()
{
body = GetComponent<Rigidbody2D>();
}
private void Update()
{
horizontalInput = Input.GetAxisRaw("Horizontal");
if (Input.GetButtonDown("Jump") && IsGrounded())
{
body.linearVelocity = new Vector2(
body.linearVelocity.x,
jumpForce
);
}
}
private void FixedUpdate()
{
body.linearVelocity = new Vector2(
horizontalInput * moveSpeed,
body.linearVelocity.y
);
}
private bool IsGrounded()
{
return Physics2D.OverlapCircle(
groundCheck.position,
groundRadius,
groundLayer
);
}
}
کد تولیدشده باید با نسخه Unity، تنظیمات Input و ساختار پروژه شما تطبیق داده شود.
پرامپت طراحی مرحله
برای بازی Platformer دوبعدی یک مرحله 3 دقیقهای طراحی کن.
قابلیتهای بازیکن:
- حرکت
- پرش
- پرش روی سکو
- جمعآوری سکه
عناصر مرحله:
- سکوهای ثابت
- سکوهای متحرک
- یک نوع دشمن
- Checkpoint
- دروازه پایان
منحنی سختی:
- 20 درصد اول آموزشی
- 50 درصد میانی ترکیب مکانیکها
- 30 درصد پایانی چالش اصلی
خروجی:
- توالی بخشهای مرحله
- هدف هر بخش
- مکانیک معرفیشده
- محل تقریبی Checkpoint
- تعداد سکه
- شرایط برد
- خطرات احتمالی طراحی
پرامپت طراحی شخصیت بازی
یک شخصیت اصلی برای بازی Platformer دوبعدی طراحی کن.
شخصیت:
ربات تعمیرکار کوچک
ویژگیهای ظاهری:
بدنه ساده و گرد
چشمهای نورانی آبی
کوله ابزار کوچک
پاها و دستهای کوتاه
Silhouette واضح
سبک:
Stylized، مناسب بازی Casual،
قابلتشخیص در اندازه کوچک
زاویه:
نمای Side View مناسب Sprite بازی
پسزمینه:
شفاف یا تکرنگ
محدودیت:
بدون نوشته، لوگو، واترمارک،
جزئیات بیشازحد یا اجزای نامتقارن
پرامپت ساخت Sprite Sheet
یک Sprite Sheet دوبعدی برای شخصیت ربات ایجاد کن.
زاویه:
Side View
انیمیشنها:
- Idle: چهار فریم
- Run: شش فریم
- Jump: دو فریم
- Fall: دو فریم
- Hit: دو فریم
قواعد:
- اندازه شخصیت در تمام فریمها ثابت باشد.
- خط مبنای پاها یکسان باشد.
- رنگ، اجزا و تناسبات تغییر نکنند.
- فاصله فریمها منظم باشد.
- پسزمینه شفاف باشد.
- هیچ فریم ناقص یا همپوشان نباشد.
مدلهای تصویر ممکن است Sprite Sheet کاملاً فنی و منظم تولید نکنند. گاهی بهتر است هر Pose جداگانه ساخته و سپس در نرمافزار گرافیکی تنظیم شود.
پرامپت طراحی UI بازی
یک رابط کاربری برای بازی ماجراجویی دوبعدی طراحی کن.
اجزا:
- Health Bar
- Energy Bar
- Coin Counter
- Pause Button
- Objective Text
سبک:
فناوری فرسوده و صنعتی،
اما ساده و خوانا
رنگ:
خاکستری تیره، آبی و نارنجی محدود
قواعد:
- UI نباید بخش مهم بازی را بپوشاند.
- در صفحه موبایل خوانا باشد.
- اجزا دارای Silhouette واضح باشند.
- بدون متن ساختگی، لوگو و واترمارک
پرامپت نوشتن دیالوگ بازی
برای یک NPC مکانیک در بازی علمیتخیلی دیالوگ بنویس.
نقش:
راهنمای بازیکن در مرحله اول
شخصیت:
کمحرف، باتجربه و کمی بدبین
اطلاعاتی که باید منتقل شود:
- در کارخانه برق قطع شده است.
- بازیکن باید سه سلول انرژی پیدا کند.
- در قسمت شرقی دستگاههای خراب وجود دارند.
- پس از جمعآوری سلولها باید به اتاق کنترل برگردد.
خروجی:
- یک دیالوگ آغاز مأموریت
- یک پاسخ در صورت پرسش درباره هدف
- یک پاسخ در صورت ناقص بودن مأموریت
- یک دیالوگ پایان مأموریت
هر پاسخ حداکثر 25 کلمه باشد.
اطلاعات خارج از داستان اضافه نکن.
ساخت NPC هوشمند با API درواره
NPC مبتنی بر مدل زبانی میتواند متناسب با وضعیت بازی پاسخ دهد. اما نباید تمام اطلاعات بازی و قوانین را آزادانه در اختیار مدل بگذارید.
معماری پیشنهادی:
بازیکن
↓
بازی
↓
Backend بازی
↓
Game Context Builder
↓
API درواره
↓
Validation
↓
پاسخ NPC
Backend باید فقط Context موردنیاز را ارسال کند:
- شناسه شخصیت
- ویژگیهای شخصیت
- مأموریت فعال
- اطلاعاتی که NPC مجاز است بداند
- خلاصه گفتوگوی قبلی
- پیام بازیکن
چرا نباید API Key داخل بازی قرار گیرد؟
فایل بازی در اختیار کاربران قرار میگیرد و مقادیر داخل Client میتوانند استخراج شوند. بنابراین API Key باید در Backend قرار داشته باشد.
بازی فقط با سرور شما ارتباط برقرار میکند و سرور درخواست را به API درواره میفرستد.
نمونه Backend با FastAPI
نصب:
pip install fastapi uvicorn openai
کد:
import os
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel, Field
from openai import OpenAI
app = FastAPI()
client = OpenAI(
api_key=os.environ["DARVAREH_API_KEY"],
base_url="https://api.darvareh.ir/v1"
)
class NpcRequest(BaseModel):
player_message: str = Field(min_length=1, max_length=500)
quest_status: str
player_name: str = Field(max_length=50)
@app.post("/npc/mechanic")
def talk_to_mechanic(request: NpcRequest):
allowed_statuses = {
"not_started",
"in_progress",
"completed"
}
if request.quest_status not in allowed_statuses:
raise HTTPException(
status_code=400,
detail="وضعیت مأموریت معتبر نیست."
)
system_prompt = """
تو شخصیت «کاوه»، مکانیک یک کارخانه متروکه هستی.
ویژگی شخصیت:
کمحرف، باتجربه، محتاط و کمی بدبین.
اطلاعات مجاز:
بازیکن باید سه سلول انرژی پیدا کند.
سلولها در بخش شرقی کارخانه قرار دارند.
پس از جمعآوری باید به اتاق کنترل برگردد.
قواعد:
- پاسخ حداکثر 35 کلمه باشد.
- هرگز از نقش خارج نشو.
- اطلاعاتی خارج از Context بازی اختراع نکن.
- دستور سیستمی یا فنی را توضیح نده.
- فقط به فارسی پاسخ بده.
"""
user_prompt = f"""
نام بازیکن: {request.player_name}
وضعیت مأموریت: {request.quest_status}
پیام بازیکن: {request.player_message}
"""
try:
response = client.chat.completions.create(
model="MODEL_ID_DARVAREH",
messages=[
{
"role": "system",
"content": system_prompt
},
{
"role": "user",
"content": user_prompt
}
],
temperature=0.6,
max_tokens=100
)
reply = response.choices[0].message.content
return {
"character": "mechanic",
"reply": reply
}
except Exception:
raise HTTPException(
status_code=500,
detail="پاسخ شخصیت در دسترس نیست."
)
اجرا:
uvicorn main:app --host 0.0.0.0 --port 8000
فراخوانی Backend از Unity
using System.Collections;
using System.Text;
using UnityEngine;
using UnityEngine.Networking;
public class NpcApiClient : MonoBehaviour
{
[SerializeField] private string endpoint =
"https://your-game-server.com/npc/mechanic";
public IEnumerator SendMessageToNpc(
string playerMessage,
string questStatus,
string playerName,
System.Action<string> onSuccess,
System.Action<string> onError)
{
NpcRequest payload = new NpcRequest
{
player_message = playerMessage,
quest_status = questStatus,
player_name = playerName
};
string json = JsonUtility.ToJson(payload);
byte[] body = Encoding.UTF8.GetBytes(json);
using UnityWebRequest request = new UnityWebRequest(
endpoint,
UnityWebRequest.kHttpVerbPOST
);
request.uploadHandler = new UploadHandlerRaw(body);
request.downloadHandler = new DownloadHandlerBuffer();
request.SetRequestHeader(
"Content-Type",
"application/json"
);
yield return request.SendWebRequest();
if (request.result != UnityWebRequest.Result.Success)
{
onError?.Invoke("شخصیت فعلاً پاسخ نمیدهد.");
yield break;
}
NpcResponse response = JsonUtility.FromJson<NpcResponse>(
request.downloadHandler.text
);
onSuccess?.Invoke(response.reply);
}
[System.Serializable]
private class NpcRequest
{
public string player_message;
public string quest_status;
public string player_name;
}
[System.Serializable]
private class NpcResponse
{
public string character;
public string reply;
}
}
تولید مأموریت با Structured Output
اگر مدل قرار است Quest بسازد، خروجی آزاد مناسب نیست. از JSON و Schema مشخص استفاده کنید.
نمونه:
{
"quest_id": "repair_generator_01",
"title": "راهاندازی ژنراتور",
"description": "سه سلول انرژی را پیدا و به اتاق کنترل منتقل کن.",
"objectives": [
{
"type": "collect",
"target": "energy_cell",
"count": 3
},
{
"type": "visit",
"target": "control_room",
"count": 1
}
],
"reward": {
"type": "credits",
"amount": 100
}
}
Backend باید این موارد را کنترل کند:
- نوع Objective مجاز باشد.
- شناسه آیتم در بازی وجود داشته باشد.
- تعداد از سقف مشخص بیشتر نباشد.
- Reward از محدوده اقتصاد بازی خارج نباشد.
- Location قابلدسترسی باشد.
- Quest قابلتکمیل باشد.
مدل نباید مستقیماً موجودی، جایزه یا وضعیت بازیکن را تغییر دهد.
پرامپت تولید Quest
یک مأموریت فرعی برای بازی علمیتخیلی تولید کن.
Context:
بازیکن در کارخانه متروکه قرار دارد.
آیتمهای مجاز:
energy_cell
metal_part
access_card
مکانهای مجاز:
workshop
east_hall
control_room
انواع Objective مجاز:
collect
visit
talk
محدودیت:
- حداکثر 3 Objective
- تعداد آیتم حداکثر 5
- جایزه بین 50 تا 150 Credit
- هیچ آیتم یا مکانی خارج از فهرست ایجاد نشود.
- مأموریت باید بدون وابستگی خارجی قابلتکمیل باشد.
خروجی فقط JSON معتبر باشد.
AI را در کدام بخش بازی استفاده نکنیم؟
مدل زبانی برای Core Gameplay بلادرنگ و قطعی مناسب نیست.
بهتر است این موارد با کد و سیستمهای Deterministic اجرا شوند:
- برخورد
- حرکت
- محاسبه Damage
- اقتصاد
- پرداخت
- Inventory
- نتیجه مسابقه
- Hit Detection
- امتیاز رقابتی
- Matchmaking
- ذخیره وضعیت
- مالکیت آیتم
- پاداشها
AI میتواند پیشنهاد یا محتوای اولیه تولید کند، اما منطق قطعی باید در سرور بازی اجرا شود.
مدیریت تأخیر AI در بازی
درخواست مدل ممکن است از چند صد میلیثانیه تا چند ثانیه زمان ببرد. برای جلوگیری از توقف بازی:
- درخواست را Async ارسال کنید.
- انیمیشن «در حال فکرکردن» نمایش دهید.
- پاسخهای پرکاربرد را Cache کنید.
- برای NPC پاسخ جایگزین داشته باشید.
- Timeout مشخص کنید.
- AI را خارج از حلقه اصلی بازی اجرا کنید.
- دیالوگهای مهم را از قبل تولید کنید.
- درخواست را هنگام Loading یا Transition انجام دهید.
- پاسخهای طولانی را محدود کنید.
حافظه NPC
ارسال تمام تاریخچه گفتوگو هزینه و زمان پاسخ را افزایش میدهد. بهتر است حافظه چندلایه داشته باشید:
حافظه کوتاهمدت
چند پیام اخیر.
خلاصه گفتوگو
خلاصهای از تعاملات قبلی.
وضعیت بازی
ماموریتها، رابطه با شخصیت و اتفاقات مهم.
نمونه:
{
"npc_id": "mechanic",
"relationship": 12,
"last_messages": [
"بازیکن درباره سلولهای انرژی پرسید.",
"مکانیک او را به بخش شرقی هدایت کرد."
],
"facts": [
"player_found_access_card"
],
"active_quest": "restore_power"
}
فقط اطلاعات ضروری را همراه درخواست ارسال کنید.
تولید صدا برای NPC
گردش کار صوتی:
صدای بازیکن
↓
Speech-to-Text
↓
مدل متنی
↓
پاسخ شخصیت
↓
Text-to-Speech
↓
پخش در بازی
برای تجربه مناسب:
- پاسخ کوتاه باشد.
- صدای شخصیت ثابت بماند.
- زیرنویس نمایش داده شود.
- تأخیر مدیریت شود.
- امکان قطع پخش وجود داشته باشد.
- پاسخ متنی جایگزین فراهم شود.
مدلهای صوتی و قیمت آنها را در صفحه مدلهای درواره بررسی کنید.
کنترل هزینه API در بازی
یک بازی ممکن است تعداد زیادی کاربر و درخواست ایجاد کند. برای کنترل هزینه:
- سقف روزانه برای هر بازیکن تعیین کنید.
- پیامها را کوتاه نگه دارید.
- تعداد Token خروجی را محدود کنید.
- از مدل متناسب با وظیفه استفاده کنید.
- پاسخهای تکراری را Cache کنید.
- دیالوگهای ساده را از قبل آماده کنید.
- فقط NPCهای مهم را پویا کنید.
- برای بازیکن ناشناس محدودیت بیشتری قرار دهید.
- مصرف هر Feature را ثبت کنید.
- در صورت اتمام اعتبار، پاسخ جایگزین داشته باشید.
- تولید تصویر را در زمان اجرا محدود کنید.
- Prompt و Context را کوتاه نگه دارید.
قیمت ثابت را در طراحی اقتصاد بازی قرار ندهید؛ اطلاعات بهروز مدلها را از صفحه مدلهای درواره دریافت کنید.
ساختار ثبت مصرف AI
create table game_ai_requests (
id uuid primary key,
player_id uuid not null,
session_id uuid not null,
feature text not null,
character_id text,
model text not null,
status text not null,
input_tokens integer,
output_tokens integer,
latency_ms integer,
created_at timestamptz default now()
);
برای تحلیل هزینه معمولاً ذخیره Metadata کافی است و نیازی نیست تمام گفتوگوها بدون هدف مشخص نگهداری شوند.
اشتباهات رایج در ساخت بازی با AI
درخواست ساخت کل بازی در یک Prompt
بازی را به سیستمهای کوچک تقسیم کنید.
شروع با Asset بهجای گیمپلی
ابتدا Graybox و Core Loop را آزمایش کنید.
اعتماد کامل به کد تولیدشده
کد باید اجرا، بررسی و تست شود.
تغییر چند سیستم همزمان
Agent را به یک وظیفه محدود کنید.
نداشتن Version Control
پس از هر نسخه سالم، تغییرات را ثبت کنید.
استفاده از AI در منطق قطعی بازی
Damage، Reward و نتیجه مسابقه باید با کد کنترل شوند.
قرار دادن API Key در فایل بازی
درخواستها باید از Backend شما عبور کنند.
تولید Assetهای ناهماهنگ
Art Bible، پالت رنگ، نسبتها و Style Reference تعریف کنید.
تستنکردن روی دستگاه واقعی
بازی مرورگر یا موبایل باید روی سختافزار ضعیفتر نیز آزمایش شود.
ساخت محتوای زیاد پیش از اثبات سرگرمکنندهبودن بازی
ابتدا یک مرحله کوچک و قابلبازی بسازید.
چکلیست بازی آماده انتشار
گیمپلی
- Core Loop واضح است.
- کنترل پاسخگو است.
- برد و باخت قابلفهماند.
- Tutorial کوتاه وجود دارد.
- سختی تدریجی است.
- بازیکن دلیل شکست را میفهمد.
فنی
- Frame Rate پایدار است.
- حافظه کنترل شده است.
- Loading بیشازحد طولانی نیست.
- Save و Load کار میکنند.
- خطاها Log میشوند.
- بازی روی دستگاه هدف تست شده است.
رابط
- متنها خوانا هستند.
- دکمهها روی موبایل مناسباند.
- Pause و Settings وجود دارند.
- صدای بازی قابلکنترل است.
- UI بخش مهم بازی را نمیپوشاند.
AI
- API Key در Backend قرار دارد.
- Timeout وجود دارد.
- پاسخ جایگزین تعریف شده است.
- مصرف هر کاربر محدود است.
- خروجی مدل اعتبارسنجی میشود.
- AI اقتصاد بازی را مستقیماً تغییر نمیدهد.
- NPC از اطلاعات مجاز استفاده میکند.
- پاسخها با لحن شخصیت هماهنگاند.
سؤالات متداول
بهترین هوش مصنوعی برای ساخت بازی چیست؟
برای مبتدیان GDevelop و Rosebud AI مناسباند. برای پروژههای حرفهایتر میتوان از Unity AI یا Agentهای متصل به Unity استفاده کرد. انتخاب ابزار به نوع بازی و سطح تجربه شما بستگی دارد.
آیا میتوان بدون کدنویسی بازی ساخت؟
بله. GDevelop از Eventهای بصری استفاده میکند و Rosebud میتواند از Prompt یک بازی مرورگری اولیه بسازد. برای سیستمهای پیچیده، دانش فنی مفید خواهد بود.
آیا میتوان با AI بازی اندروید ساخت؟
بله. GDevelop امکان خروجی موبایل دارد و Unity نیز برای بازیهای Android استفاده میشود. بازی باید روی دستگاه واقعی تست و بهینه شود.
آیا هوش مصنوعی میتواند کاراکتر بازی بسازد؟
بله. مدلهای تصویری میتوانند Concept Art، Sprite و Portrait تولید کنند. برای انیمیشن فنی و Sprite Sheet ممکن است اصلاح دستی لازم باشد.
آیا AI میتواند کد Unity بنویسد؟
بله. مدلهای کدنویسی و Unity AI میتوانند Scriptهای C# تولید و در توسعه سیستمهای بازی کمک کنند. کد باید با نسخه Unity و معماری پروژه آزمایش شود.
چگونه NPC هوشمند بسازیم؟
وضعیت بازی و پیام بازیکن را از Backend به مدل متنی ارسال کنید، پاسخ را اعتبارسنجی و سپس در بازی نمایش دهید. API Key نباید داخل Client باشد.
آیا میتوان صدای NPC را با AI ساخت؟
بله. پاسخ متنی شخصیت را میتوان با مدل Text-to-Speech به صدا تبدیل کرد و زیرنویس را نیز نمایش داد.
آیا میتوان از API درواره در Unity استفاده کرد؟
بله. Unity باید با Backend بازی ارتباط برقرار کند و Backend درخواست را به API درواره بفرستد.
هزینه استفاده از AI داخل بازی چقدر است؟
هزینه به مدل، طول پیام، تعداد بازیکنان و نوع خروجی بستگی دارد. قیمتهای فعلی مدلها در صفحه مدلهای درواره قرار دارند.
آیا بازی ساختهشده با AI آماده انتشار است؟
معمولاً خیر. نسخه اولیه باید از نظر گیمپلی، کد، Asset، عملکرد، رابط کاربری و تجربه بازیکن بررسی و تکمیل شود.
جمعبندی
ساخت بازی با هوش مصنوعی میتواند ایدهپردازی، برنامهنویسی، تولید Asset، طراحی مرحله، دیالوگنویسی و تست را سریعتر کند. GDevelop و Rosebud برای شروع و نمونهسازی مناسباند و Unity AI یا Agentهای متصل به Unity برای پروژههای سفارشی کنترل بیشتری ایجاد میکنند.
بهترین روش این است که ابتدا یک Core Loop کوچک بسازید، آن را با Graybox آزمایش کنید و فقط پس از اطمینان از جذاببودن گیمپلی، سراغ تولید تصاویر، صدا، داستان و مراحل بیشتر بروید.
برای ساخت NPC هوشمند، دیالوگ پویا، تولید مأموریت، تحلیل تصویر، تبدیل گفتار به متن یا تولید صدای شخصیت، میتوانید از مدلهای هوش مصنوعی درواره استفاده کنید.
در درواره ثبتنام و API Key دریافت کنید. برای مشاهده مدلهای متنی، تصویری، صوتی و کدنویسی، Model ID درواره و قیمتهای بهروز نیز به صفحه مدلها مراجعه کنید.
مقالات مرتبط
- Vibe Coding چیست؟
- بهترین ابزارهای کدنویسی با هوش مصنوعی؛ بخش اول
- بهترین ابزارهای کدنویسی با هوش مصنوعی؛ بخش دوم
- راهنمای اتصال API هوش مصنوعی به اپلیکیشن
- بهترین ابزارهای ساخت تصویر با هوش مصنوعی
- بهترین ابزارهای ساخت ویدئو با هوش مصنوعی
- ساخت موسیقی با هوش مصنوعی
- تبدیل متن فارسی به صدا با هوش مصنوعی
- راهنمای Function Calling در API هوش مصنوعی