اصطلاحات در طراحی بازی

Mahdi_Rashed

Well-Known Member
سلام . توی این پست یک سری از اصطلاحاتی که ممکنه در طول مراحل طراحی بازی باهاش مواجه بشین رو تعریف میکنم .

Engine یا موتور طراحی بازی
: هسته ی اصلی همه بازیهاست که همه ی مراحل و برنامه ها و کدهای یک بازی رو با هم هماهنگ میکنه .

LPM : مخفف کلمه ی low Poly Modeling به معنای مدل زدن اشیا ی 3بعدی در کیفیت متوسط یا پایین که مخصوص محیطهای بازی و real Time هستش و از حدود 27 قانون پیروی میکنه که در پست جداگانه توضیح میدم .

LOD : مخفف کلمه ی Level of Detail به معنای سطح کیفیت برحست فاصله . در یک بازی که در محیط 3بعدی اجرا میشه CPU نمیتونه همه ی اشیای 3بعدی رو در کیفیتی ثابت Render کنه . برای همین برای هر شی 3بعدی 2 یا چند شی 3بعدی ولی با کیفیت پایینتر طراحی میشه که وقتی فاصله ی کاربر از شی زیاد شد کیفیت شی هم کم بشه و سرعت پردازش بیشتر بشه . این اصل خیلی مهمی توی طراحی بازی هست .

Emitter و Particle
: این دو اصطلاح معنی متفاوتی دارن ولی تا باهم نباشن کار نمیکنن . Particle یک ذره هست که برای نشان دادن دود یا آتش یا ... بسته به نوع محیط طراحی میشه و خیلی از حالات دینامیک و افکتها رو شامل میشه ولی به تنهایی استفاده نمیشه بلکه وقتی استفاده میشه که در Emitter جای گذاری بشه . Emitter تعداد بسیار زیادی از این ذره ها رو با یک حالت خاص به صورت اتوماتیک یا دستی تولید میکنه و جلوه هایی مثل دود و اتش و... رو پدید میاره . Emitter هم دارای یک نوع LOD هست که با زیاد شدن فاصله اولاً تعداد تولید Particle ها کم میشه و هم چنین کیفیت Particle ها مقدار ناچیزی کاهش میابد .

Next Generation of Games : بازی هایی که با خلق ورژن سوم موتور طراحی Unreal Engine و ورژن دوم Cry engine و ورژن سوم Chrome Engine پدید اومدن و زبان سیستم سایه زنی یا Shader به این بازی ها اضافه شد . این سبک طراحی بازی در همه ی مراحل فرق داشت . مثلاً تعدادی از قوانین LPM رو نقض کرد و 17 قانون جدید به طراحی Low poly Modeling اضافه کرد . کیفیت های تکسچرینگ رو بالا برد و کلاً انقلاب بزرگی رو در طراحی بازی در سال 2003 و 2004 انجام داد که از همان سالها در امروز درحال پیشرفت بدون توقف است .

Mesh : اصطلاح کلیی است که همه ی اشیای 3بعدی داخل محیط Real Time رو شامل میشه و Mesh به دو نوع Triangle یا 3گوشه و quadrangle یا 4گوشه تقسیم میشه که بستگی به نوع موتور طراحی بازی داره . هر نوع از این Meshهای یک سری خوبی و یک سری بدی دارن که بعداً ذکر میکنم .

تعداد این اصطلاحات خیلی خیلی زیادن که در پست های آینده اونها رو تعریف میکنم .

موفق باشید
منبع : forum.mrashed.ir
 

Mahdi_Rashed

Well-Known Member
Internal Files : به تمامی فایلها و عناصری که به صورت کامل و تمام در فایل اجرایی بازی که فرمت آن exe است میگویند که البته تعداد انها توی بازیهای حجیم و سنگین با گرافیک بالا کم بوده و فقط برای بازیهای 2 بعدی از این نوع فایلها استفاده میشه . استفاده از این نوع فایلها اجرای بازی رو کند و زمانبر میکنه .

External Files : که مربوط میشه به کلیه ی فایلها و عناصر مورد استفاده در بازی که به صورت فایل جدا در یک پکیج ذخیره میشه و در مواقع مورد نیاز با توجه به اسم و برچسب پکیج در سیستم بازی فراخوانی میشن . این پکجها در پایگاه اطلاعات یا Database بازی حداقل با 4 شناسه ثبت میشن .
1 : نام فایل که شامل نامی که روی کل پکیج نسبت داده شده
2 : نام برچست یا Tag که به صورت کد یا عدد ذخیره میشن
3 : فرمت و حجم که معلومه کارش چیه
4 : ID که یک شماره ی خواص رو برای جدولبندی داخلی پایگاه اطلاعات و کم کردن حجمش از اون استفاده میشه . شماره ها هم بسته به تعداد پکیجها معمولاً از 01 تا 99برای 99 پکیج , 001 تا 999 برای 999 پکیج و الاآخر ...

listener : اگر با زبانهای برنامه نویسی کار کرده باشین حتماً کار اینو میدونید . ولی در طراحی بازی و Engine حمی فرق داره . Listener یک تابع حالت و یا تابع زمان هست که در هنگام وقوع یک تابع جدید رو ازاد میکنه و مهمترین فرقش اینه که با توجه به حالت یا زمان دستور به اون اضافه میکنه .

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

Debugger : یک نوع Listener با کار مداوم هست که در تعداد کمی از Engine ها و پایگاههای داده تعبیه شده . کار Debugger انتظار برای یک خطای جزیی یا کلی در هنگام پردازش یا انجام بازیه . اگر Debugger یک خطا رو پیدا کنه بلافاصله اون رو به یک Injector میده تا Injector کدی که خطا رو برطرف میکنه بسازه و به داخل پایگاه داده تزریق کنه . اونوقت پایگاه داده یک کد تصحیح رو به قسمتی که خطا رخ داده میفرسته تا خطا برطرف بشه و یک نسخه ی خطا و کد تصحیح خطا رو در قسمت از پیش تعیین شده ذخیره میکنه تا دوباره این خطا اتفاق نیفته .

موفق باشید
منبع : forum.mrashed.ir
 

Mahdi_Rashed

Well-Known Member
FGD : به معنای Fast game development یعنی طراحی و انتشار بازی با استفاده از امکانات و مدلهای پیشفرض یک موتور طراحی بازی که معمولاً این جور بازی ها محبوبیت زیادی کسب نمیکنن و بیشتر شرکتهای تازه کار از این روش برای هزینه ی کمتر استفاده میکنن . مثل بازی Necro Vision .

SGD : به معنای Slow Game Development یعنی طراحی و انتشار بازی در حالتی که حداقل 51 درصد عناصر و بخشهای بازی توسط طراحان و برنامه نویسان یک شرکت به موتور طراحی اضافه شده باشه و معمولاً ساخت اینجور بازی ها زمان بیشتری نیاز داره و هزینه ی بیشتری باید به طراحان و برنامه نویسان پرداخت بشه .

GUI : به معنای Game User Interface یا Graphical User Interface که به بخشهایی مثل منو و دکمه ها و کلاً رابطهای کاربری در قسمتهای مختلف بازی گفته میشه که در بعضی Engine ها باید به عنوان قابلیت به Engine اضافه بشه .

API : به معنای Application Programming Interface یعنی استفاده از روابط کاربری آماده برای کم کردن حجم برنامه نویسی یک موتور طراحیه . تقریباً همون برنامه نویسی به زبان و شیوه های برنامه نویسی شی گرا یا Object Oriented

Console : یکی از بخشهای جانبی بازی هست که بستگی به قدرت Engine داره و همه ی دستورات بازی رو اجرا و کنترل میکنه و هم چنین کاربرا هم میتونن به او یک دستور رو تزریق کنن . دو نوع کنسول داریم . یکی کنسول باز که همه ی دستورات و توابعی که در بازی اجرا میشه رو همراه مقادیر اون در کنسول بازی نمایش میده و کاربر میتون اونا رو ببینه . مثل کنسول بازی Counter - Strike و یک کنسول مخفی داریم که فقط کاربر میتونه از اون برای تزریق دستور یا گفت و گو استفاده کنه و عملاً هیچکدوم از دستوراتی که در محیط بازی اجرا میشه نمیتونه مشاهده کنه . مثل کنسول بازیهایی شبیه Call of Duty یا Mirror's Edge . به طور کلی برای بازیهایی با سطح برنامه نویسی بالا کنسول دستورات نمایش داده نمیشه .

منبع : forum.mrashed.ir
 
سلام.
ممنون و خسته نباشيد.
ميشه توضيح كاملي در مورد shader ها بديد.اين كه چي ان و چه كار ميكنن و چند مدل پركاربرد دارند؟
منابع هم اگه معرفي كنيد استفاده ميكنيم.
ممنون
 

Mahdi_Rashed

Well-Known Member
Shader یک زبان برنامه نویسی نسبتاً پیشرفته ی گرافیک هست که برای یک نرم افزار Rial Time rendering یک سایه زن محسوب میشه و یک سری از توابع زبانهای ماشین که در کارتهای گرافیک و مدل Sahder کار تعریف شده به صورت زبان Shader وابسته به توابع DirectX رو اجرا میکنه شبیه درخشش , نرمال بامپ یا یک زمین یا دریایی که انتها نداره . فایلهای Shader که قالباً fx هستن بیشتر برای اشیایی که در محیط Rial time تکسچرهاشون رو با الگوریتم UV دریافت میکنن استفاده میشه که نمونش توی بازی Unreal Tournament وجود داره . برای ساختش هم میتونید از Shaderfx که پلاگینی برای مکسه استفاده کنید یا اگر با UDK که همون Unreal Engine 3 هست استفاده میکنید این امکانات توش وجود داره . منبع خاصی برای اینجور چیزا نیست ولی توی همین انجمن یک لینکی گذاشته بودم که میتنستید فایلهای Shader آماده رو دانلود کنید .
 
ببخشید وسط تاپیکتون این سوال رو می کنم.
لطفا واژه Senior (اگه درست نوشته باشم) رو هم توضیح بدین من توی خیلی از سایتهای بازی سازی دیدم.نمی دونم این چه سمتی هست.
و در ضمن لطف کنین سمت معادل با کارگردان رو هم در ساخت یک بازی بنویسید.
متشکر.
 
با اجاره آقا مهدی عزیز من هم یکی بنویسم.

Culling:
به الگویتمهایی گفته می شود که برای حذف نمایش اشیا در صحنه بکار می روند.
مثلا فرض کنید شما در یک اتاق هستید و می خواهید اشیا پشت دیوار دیده نشوند(چون لزومی به نمایش آنها نیست).
 

Mahdi_Rashed

Well-Known Member
ببخشید وسط تاپیکتون این سوال رو می کنم.
لطفا واژه Senior (اگه درست نوشته باشم) رو هم توضیح بدین من توی خیلی از سایتهای بازی سازی دیدم.نمی دونم این چه سمتی هست.
و در ضمن لطف کنین سمت معادل با کارگردان رو هم در ساخت یک بازی بنویسید.
متشکر.

Job description: Senior Game Designer
POSITION SUMMARY:
We have an immediate opening for a Sr. Game Designer with at least 5 years experience in the interactive entertainment industry. This is an excellent opportunity with a growing game company.

We develop state of the art multi-user game software that runs on Flash, consoles, PC’s, and devices. We offer a work environment full of talented, bright, and self-directed people. We value teamwork, commitment to excellence, an interest in the new ideas to support our base of game players and users.

The Sr. Game Designer will work closely to help develop, document and communicate game and functional designs to Producers, Artists and Content Developers. The Game Designer will help gather product and business requirements, coordinate and set up design meetings, create functional prototypes, and document game and functional designs required to effectively communicate the overall guest experience, flow, interactions, functionality, and integration with core platforms.

Essential Job Functions:
• Creates level layouts and features.
• This position involves using specialized tools to edit game data, working within an overall game design established by others.
• Manage and assist in developing individual work schedule, track personal tasks, and alert lead to any changes in planned schedule or tasks
• Works closely with project team members to execute design and work through design revisions as needed.
• Works with team to define creative vision and fun factor
• Plan and direct development of player experiences.
• Direct Junior Game Designers and/or Coops and Interns.
• Help generate requirements for other disciplines such as level artists and tools programmers.
• Estimating tasks and participating in the formation and tracking of schedules and project close out.
• Assist and mentor other Design staff.
• Work closely with project team members to execute design and work through design revisions as needed.
• Work with project team to define and maintain creative vision.
• Work closely with the Producer to ensure scope and milestones are met.

Experience/Skills:
• Experience with Flash / Actionscript, Photoshop, and HTML
• Knowledge of Flash-based production, XML and content management systems
• Skilled with Microsoft Office suite of tools, including Project, Excel, PowerPoint, Visio and Word
• Experience in creation and implementation of project documentation, including requirement and design documents.
• Outstanding attention to detail and organizational abilities
• Previous experience in a design position, with multiple completed game products is necessary.
• Excellent written and verbal communication skills is necessary.
• An ability to use 3DStudio Max, or Maya.
• Awareness of current industry trends is expected.
• Study of visual design, computer programming, human/computer interaction, media studies, ludology, and/or literary criticism, sufficient to train others is expected.
• Knowledge of a variety of types of games.
• Introductory-level computer programming may be helpful to implement scripted behaviors.
• Study or knowledge of the fundamentals of graphic design, architecture, interior decoration, or landscaping is helpful.
• A passion for developing for high quality games is expected
سمت معادل با کارگردان هم Project leader هست.​
Culling:
به الگویتمهایی گفته می شود که برای حذف نمایش اشیا در صحنه بکار می روند.
مثلا فرض کنید شما در یک اتاق هستید و می خواهید اشیا پشت دیوار دیده نشوند(چون لزومی به نمایش آنها نیست).
بله درسته Cull همین معنی رو میده . در واقع یک تابع یا الگوریتم هست اما یک نصیحتی به شما دوست عزیز که هیچ وقت اشیای پش سر بازیکن رو حذف نکن چون اگه بازیکن هی برگرده و با سرعت زیاد برگرده و پشت به دوربین ظرفیت CPU رندر کردن یا پنهان کردن مکرر اشیای موجود رو نداره و میترکه . من یک بار همچین Scene رو ساختم و تجربه کردم که اگر اشیای خارج از دید که معمولاً در یک مه پنهان میشن حذف بشه نصب روشی که اشیای پشت دوربین حذف بشن پردازش لازم داره . حتی کمتر از نصف .
 

Mahdi_Rashed

Well-Known Member
SSAO یا Screen Space Ambient Occlusion

این اصطلاح نسبتاً جدید و عجیب
mrashed_Q_01.gif
یک سایه زن یا Shader تمام صفحه یا Full-screen است که به صورت یک جلوه ی محیطی نوشته میشه . کار SSAO یافتن نقاط برخورد دو mesh با هم یا با Base یک مرحله و ایجاد یک سایه ی ساده به نام Occlusion یا Area shadow هست . به صورت پیش فرض تا جایی که من اطلاع دارم و استفاده کردم SSAO در موتورهای طراحی بازی unreal Engine و UDK . موتور طراحی Cry Engine و Dunya که بخشی از Cry هست و موتور طراحی بازی Anvil که باهاش بازی " کیش آدمکش " رو ساختن وجود داره . SSAO ر صحنه های خیلی بزرگ حجم وسیعی از اطلاعات و پردازش رو در CPU اشغال میکنه و باعث کند شدن روند بازی میشه و برای همینه که برای این جلوه ی محیطی هم نوعی LOD یا level of Detail طراحی شده که بر مبنای 3 متغیر بیان میشه

X>1 که X فاصله ی دوربین از نقطه ی دارای SSAO هست . وقتی X>1 انتخاب میشه که دوربین از منطقه ی SSAO خارج شده و نیازی به رندر SSAO نیست

X=1 برای وقتی که دوربین به نزدیک ترین فاصله از SSAO میرسه و باید SSAO با نهایت کیفیت تعریف شده رندر بشه

X<1 برای وقتی که فاصله ی دوربین از نقطه ی SSAO زیاده و کیفیت SSAO با توجه به فاصله ی دوربین کم و کمتر میشه

یک تابع دیگه هم هست که مقدار درهم کنشی SSAO رو با Texture محل برخورد که همون Blend هست . این تابع برای محیط تعریف میشه مثلاً برای محیط تاریک Blend هم کمتر میشه و برای محیط روشنتر Blend بیشتر . برای درک بهتر SSAO چند تا عکس هم پیوست کردم که در موتور UDK ایجاد شده .

منبع : Mrashed
 

پیوست ها

  • screenshot_set1.jpg
    screenshot_set1.jpg
    89.5 کیلوبایت · بازدیدها: 19
  • screenshot_set2.jpg
    screenshot_set2.jpg
    45.4 کیلوبایت · بازدیدها: 17
  • screenshot_set3.jpg
    screenshot_set3.jpg
    21.4 کیلوبایت · بازدیدها: 16

Mahdi_Rashed

Well-Known Member
Decal یا برچسب

Decal یا برچسب همونطور که از اسمش معلومه روی UV های اشیای 3بعدی یا Base مرحله چسبیده میشه و یک سری جزییات مثل خرابی . خیسی . خون پاشیده شده یا جای برخود گلوله رو نشون میشه . Decal از نظر برنامه نویسی بسیار پیشرفته و سنگینه ولی از نظر اعمال در محیط طراحی بازی و رندر اون بسیار سبک و موثر هست . ساختمان Decal یک متریال هست که مهم ترین بخش اون اول Opacity Mask و بعد تکسچر Alpha و Diffuse که لایه ی اصلیه و گاهی اوقات فقط یک رنگه , هست . بعد هم تکسچر DUDV که حالت مشبکی یا Distortion که در بعضی مواقع از تکسچرهای نرمال و بامپ هم میشه استفاده کرد و بعد از اون تکسچر Normal و specular و در آخر Emissve هست که حالت Self light یا خود روشنایی رو ایجاد میکنه .
و بگم که بهترین توابع Decal در موتورهای Cry Engine و unreal Engine هست .


Bump Offset

Bump Offset یک روش رندر در محیط بازی هست که با استفاده از تکسچر Displacement ایجاد میشه . Bump Offset وقتی روی یک متریال اعمال میشه باعث برجستگی مصنوعی روی نقاط مشخص شده توسط تکسچر میشه . اما این برجستگی به گونه ای ایجاد میشه که اگر به صورت طولی بهش نگاه کنید برجستگیی وجود نداره . بلکه فقط با اعمال برآمدگی و کشیدگی روی کانالهای رنگی وقتی به صورت مایل دیده میشه برجسته نشون داده میشه . قبل از Bump Offset روشهای دیگه ای هم وجود داشته که با تکسچر نرمال ایجاد میشد . ولی تکسچر نرمال نسبت به تکسچر Displacement به دلیل کانال رنگ بیشتر حجم بیشتری هم میگیره . برای همین Bump offset از بین این روشها از همه سبکتر و بهتره . این روش رندر بهتره روی Base مرحله های بازی اعمال بشه و از استفاده ی اون در اشیای جانبی خودداری بشه چون در 90 درصد مواقع معلوم نمیشه .


منبع : Mrashed
 

Mahdi_Rashed

Well-Known Member
حیفم اومد که بعد از این همه مدت - طبق گفته این پیام 401 روز - این تاپیک رو دوباره ادامه ندم . کلاً یادم رفته بود تا این که همینطوری داشتم نوشته های قدیمی انجمن طراحی بازی رو مطالعه میکردم که به این تاپیک نیمه کاره رسیدم . حالا دوباره میخوام به روز رسانی این تاپیک رو ادامه بدم و از همه دوستان علاقه مند میخوام که همکاری کنن . ممنون :green:

خاصیت Cross-Platform : یکی از خاصیتهای مهم در موتورهای طراحی بازی به معنای توانایی انتشار یک بازی برای چندین سکوی اجرایی یا کنسولهای بازی به غیر از رایانه ها. یعنی کنسولهای شبیه Playstation، Xbox و ...

AI System : مخفف Artificial Intelligence system یا سیستم هوش مصنوعی است که یکی از عناصر مهم در القای رفتارهای انسان به کاراکترها و عناصر موجود در بازیهای رایانه است . مانند شنیدن صداهای بلند . سرکشی کردن . اقدام به هدف گیری و تیر اندازی و انتخاب گزینه های پیشرو و به طور کلی تبعیت از یک سری قانون که توسط طراح در سیستم هوش مصنوعی نوشته شده است. البته کاربر هوش مصنوعی در رباتها و ابزارآلات اتوماتیک و کارخانه ای نیز هست ولی منظور ما استفاده از هوش مصنوعی در طراحی بازی میباشد.
 
آخرین ویرایش:

Mahdi_Rashed

Well-Known Member
Shader های SSS و Fast SSS: عبارت SSS مخفف subsurface scattering یا پراکندگی درون سطحی نوعی shader یا متریال است که با دریافت و پردازش بسته های نوری از طریف منبع ثابت یا دینامیک نور آنها را از خود عبور داده و به نحوی فضای داخل یک شی 3بعدی را رندر میکند . این نوع Shader بیشتر در متریال کاراکتر ها و موجودات زنده در بازی یا انیمیشن استفاده میشود . دو نمونه ها از تکسچرهایی که همیشه در Shader های SSS استفاده میشود Subdermal و epidermal است.

تکسچر Subdermal: یکی از تکسچر های مورد استفاده در shader های SSS میباشد که شامل حالت و رنگ متریالی است که در درون سطح Shader رندر میشود . چون از SSS ها بیشتر در متریالهای کاراکتر و موجودات زنده نظیر انسان استفاده میشود این تکسچر کد رنگهای گرم مایل به قرمز و نارنجی با contrast بالا را شامل میشود.

تکسچر Epidermal: یکی از تکسچرهای مورد استفاده در SSS Shader ها میباشد که حد مجاز رندر درون سطحی را برای متریال shader مشخص میکند . به عنوان مثال در SSS برای صورت یک انسان حد مجاز رندر درون سطح نواحی گوش میباشد که نسبت به دیگر بخشها نازکتر است . این تکسچر شدت نوری که درون سطح را روشن میکند را نیز کنترل میکند . دامنه و کد رنگ در این نوع تکسچر دامنه بین رنگهای سفید تا سیاه است ولی با ساختار تکسچر های mask و alpha فرق بسیار زیادی دارد .
 

Mahdi_Rashed

Well-Known Member
Trigger: یک تابع از نوع توابع Listener هست که حساس به انجام یک عمل از سوی کاربر یا بازیکن تابع هوش مصنوعی میباشد. این عمل از قبل توسط برنامه نویسی یا تنظیم مشخص میشود و ناحیه آن توسط یک حجم شبیه مکعب یا استوانه در فضای بازی تعیین میشود . به این معنا که وقتی بازیکن وارد این فضا میشود Trigger عمل کرده و دستور مورد نظر را اجرا میکند . به عنوان مثال باز شدن در هنگام نزدیک شدن به آن و یا از بین رفتن و ... . Trigger ها میتوانند دستورات فرعی هم دریافت کنند . اجرای دستور بعد از یک زمان خاص ( وقتی کاربر وارد محدوده مورد نظر شود) و یا اجرا دستور با زدن یک دکمه به شرطی که کاربر در محدوده مورد نظر باشد. Trigger ها از نظر برنامه نویسی میتوانند به سه نوع تنظیم دستی ، اسکریپتی و حالت اجرای Node base به مراحل بازی اظافه شوند.

fluctuation : یکی از توابع در سیستم های ذره ای هستند که میزان نوسان بین مقادیر مختلف سیستم ذره ای را مشخص کرده و به صورت Chained Random یا تصادفی دنباله دار تغییر میدهند . یعنی اگر مقدار اولیه 10 باشد و مقدار تصادفی 15 باشد تابع fluctuation از پرش مقادیر از 10 به 15 جلو گیری کرده و مقدار را با توجه به یک متغیر افزایش دهنده زیاد یا کم میکند یعنی :

10 => 10.5 => 11 => 11.5 و ...

تابع fluctuation به صورت زیر نوشته میشود.

کد:
flunc([particle name],[value ID],[value type]) //Function Start here
        {
         minrange = 10;
         maxrange = 20;
         step = 0.5;
         minrandom = -3;
         maxrandom = 3;
         scale=0.01;
         recalc = 500;
 }
 //end

particle name نام سیستم ذره ای در پایگاه داده و محیط بازی است.
Value ID کد مقدار مورد نظر برای تاثیر پذیری از تابع نوسان از زیر شاخه particle name است.
Value Type نوع متغیر است که یا Local است یا World
minrange و maxrange مقدار حداقل و حداکثر range برای تغییر در متغیر است.
step متغیری است که میزان اضافه شدن از مقدار قبلی به مقدار جدید را در تابع Chain مشخص میکند.
minradom و maxrandom حداقل و حداکثر اضافه ی یا کم شدن بهrange را در اجرا عمل تعیین عدد تصادفی مشخص میکند و باید به دقت با توجه به range مشخص شده انتخاب شود.
scale مقداری است که تاثیر پذیری مقدار تصادفی جدید از مقدار تصادفی قبلی را مشخص میکند و هر چقدر که کمتر باشد تاثیر پذیری هم کمتر است . دامنه این تغییرات 0 تا 1 است .
recalc سرعت محاسبه دوباره عدد تصادفی و اضافه یا کم کردن range به صورت زنجیره ای است و مقیاس پیشفرض آن فریم بر ثانیه است . یعنی با گذشت X فریم بر ثانیه یک عدد تصادفی جدید تولید شود و تابع نوسانی مقدار قبلی را به مقدار جدید تبدیل کند.
 

Mahdi_Rashed

Well-Known Member
بهتره در مورد سبکهای بازی ها صحبت کنیم:

بازیهای رایانه ای به طور کلی دارای 3 دسته هستند.

بازیهای شبیه سازی شده ( شبیه سازی هواپیما، ماشین، بازیهای ورزشی شبیه فوتبال و این نوع بازیها)
بازی ها استراتزیک ( شامل RPG و بازیهایی که معمولاً دید بازیکن از بالای محیط بازی است )
بازیهای اکشن یا حادثه ای ( شامل اول شخص، سوم شخص)

ولی در یکی از طبقه بندی ها بازیهای رایانه به 6 دسته تقسیم شدند.

Sport Games:
شامل همه بازیهایی که به نوعی مربوط به ورزش و رشته های ورزشی میشوند. دارای 3 دسته اصلی هستن که به صورت زیر هست:

بازیهای ورزشی با توپ ( فوتبال، بسکتبال، تنیس و کلاً همه ی ورزشهای توپی )
بازیهای ورزشی فکری ( شطرنج، تخته، دومینو و ... )
بازیهای ورزشی با وسایل نقلیه ( اتوموبیل رانی در پیست، موتور سواری در پیست، مسابقات هواپیماهای نمایشی )

در بازی هایی با سبک ورزشی بیشتر از هر بخش دیگه در موتور طراحی بازی به سیستم هوش مصنوعی توجه میشه.

Simulation Games:
بازیهای شبیه سازی شده به دو دسته کلی تقسیم میشن که به صورت زیر هست.

شبیه سازی با جنبه آموزشی ( آموزش خلبانی، کنترل قطار، کنترل برج مراقبت یا مرکز کنترل قطار، شبیه سازی رانندگی با ماشینهای معمولی یا SUV و ... )
شبیه سازی با جنبه طنز یا بازی ( بازیهایی شبیه The Sims یا شبیه سازی یک خانواده، بازیهای جنگی بر پایه کنترل یک وسیله شبیه تانک یا هواپیما )

در بازیهای شبیه سازی بیشتر به بخش دینامیک و کارایی سیستم مورد شبیه سازی واقع شده توجه میشه . مثلاً دینامیک ماشین یا هواپیما و یا کارایی و task های یک برج مراقبت یا مرکز کنترل.

Desktop Games:
بازیهای دسکتاپ یا دم دستی که برخی مواقع به بازیهای i'm in hurry مشهور هستن به بازیهایی گفته میشه که ساختار ساده و Game Play ساده ای دارن و معمولاً برای سنین پایین یا برای سرگرمی افراد طراحی میشن و میتونن همه نوع دسته های بازی رو داشته باشند. ماجرایی، هیجانی، فکری، ورزشی و ...

در بازی های دسکتاپ بیشتر به بحث سبک بودن بازی توجه میشه که کاربر برای بارگذاری مرحله وقت زیادی رو از دست نده. اکثر این بازی ها دو بعدی هستن و دارای طرفداهای خاص و بسیار زیادی در دنیا هستند.

Strategic Games:
بازی های استراتژیک هم بسیار سرگرم کننده و در برخی مواقع فکری و سخت هستند. به 3 دسته اصلی تقسیم میشن:

Role-Playing Games که شامل بازی های استراتژیکی هست که شما نقش یک شخصیت رو در بازی ایفا میکنید. شبیه بازی World of Warcraft. بازی های RPG معمولاً به صورت آنلاین هستن. این نوع بازیها میتونن فکری یا اکشن و ... باشن.
Real-Time Strategic همون بازی استراتژیک هست که بازی به صورت همیشگی در اون تداوم داره و شما باید سرعت عمل خودتون رو برای انجام این بازی زیاد کنید . البته استراتژی در بازی هم مهمه
Turn-Time Strategy هم بازی استراتژیک هست ولی نیروهای شما مقدار مشخصی حرکت دارن و شما باید به جای سرعت عمل به این وارد باشید که چطور نیرو های خودتون رو آرایش کنید تا در حمله دشمن بهترین کاربری رو داشته باشند و وقتی حرکت نیروهای شما تموم بشه باید به دور بعدی بازی برید . بازی Civilization از این سبک بازی ها هستن.

در بازیهای استراتژیک بیشتر به مبحث mass Rendering و optimizing توجه میشه تا سرعت بازی هنگام اجرا کم نشه . فشرده سازی درست و بازکردن فایلها از حالت فشرده همه ترین بخش مباحث ذکر شده هست.

First and third person Games:
بازیهای اول شخص یا سوم شخص هم که معرف حضورتون هست . اول شخص یعنی بازیی که شما سلاح جنگی یا تفنگ خودتون رو مشاهده میکنید و به این معنیه که شما خودتون رو به جای شخصیتی قرار دادین که در واقع خودتون هستین ( ترجمه شده متن ویکی پدیا ) و بازی سوم شخص شما شخصیت رو معمولاً از پشت میبینید و خودتون رو به جای اون شخصیت قرار میدید تا بازی رو انجام بدین. بازیهای اول و سوم شخص از مورد علاقه ترین بازیها و پر طرفدار ترین اونها در بین کاربران هست چون بازی های اول یا سوم شخص همه سبکهای بازی و نوع داستان بازی رو پشتیبانی میکنند. در یک بازی اول یا سوم شخص میتونید از یک وسیله نقلیه استفاده کنید و داستان بازی میتونه اکشن و حادثه ای، ماجرایی و فکری و ... باشه.

در بازیهای اول و سوم شخص به 3 مبحث طراحی دقیق کاراکتر ها و حرکتهای اونها، سیستم هوش مصنوعی و سیستم رندرینگ و نورپردازی توجه بسیاری میشه و موتورهای طراحی بازی بیشتر برای این نوع بازی ها طراحی میشن.

Business Games:
بازی های مربوط به کار و شغل عملاً آموزشی هستن ولی آموزش انجام یک کار و در طراحی این بازیها بیشتر به دقت انجام کار و مقایسه نحوه صحیح انجام کار با نحوه انجام کار توسط کاربر توجه میشه.

بازیهایی شبیه کار در بازار بورس، خرید و فروش یک محصول، بازار یابی، سخنرانی و صحبت کردن، مهمانداری و ... در این گروه هستند.
 

Mahdi_Rashed

Well-Known Member
چند اصطلاح در سیستمهای دینامیک:

Collision Tolerance : میزان دقت محسبه دینامیکی دو یا چند شی نسبت به هم هست در حالتی که World Scale درست تنظیم شده باشه. معمولاً مقدار پیشفرض collision Tolerance بین 1 تا حدود عدد 4 هست که توسط توابع خاص خودش تغییر داده میشه. Collision Tolerance میتونه در طی بازی به صورت یک مقدار متغیر دینامیکی عمل کنه و در مواقع خاص عدد خودش رو تغییر بده در حالی که تاثیر اون در صحنه بازی بلافاصله و Real-Time هست.

World Scale : مقیاس کلیه ی اشیای داخل صحنه یک بازی نسبت به بزرگترین شی یا میانگین بزرگترین اشیا. معمولاً برای صحنه های بازی معمولی برای هر 1 متر 20 تا 50 واحد در نظر گرفته میشه ولی برای صحنه های بزرگ با سطح پردازش دینامیک بالا این مقدار بیشتر میشه. تاثیر این متغیر به این صورت هست که عمل و عکس العمل دو شی نسبت به هم رو در توابع دینامیک حرکت در فضای سه بعدی محاسبه و در صحنه بازی اعمال میکنه. در یکی از بازیهایی که اسمش یادم نیست در برخورد دو سیاره بزرگ در فضا به دلیل اینکه World Scale بر حسب میانگین سیاره بزرگتر تعیین شده بود سیاره کوچکتر از بین میره. یا در بازی GTA IV با برخورد ماشین بزرگتر به ماشین کوچکتر میزان خرابی ماشین کوچتر در تابع Soft body بیشتر از ماشین بزرگتر هست.

Softbody : یکی از توابع دینامیک حرکت هست که در تعریف برنامه نویسی به این صورت نوشته میشه. "انتقال نیرو از یک جسم به جسم دیگر و میزان جابجایی Faceهای متحد نسبت به هم با توجه به جنس Face در شی 3بعدی و World Scale در بازی" جنس Face یعنی میزان سختی یا نرمی یا به طور کلی مقاومت نسبت به نیروی وارد شده. برخورد دو ماشین با هم و ایجاد فرورفتگی در بدنه ماشین این تابع رو میطلبه. Soft body میتونه از تابع Hard body هم استفاده کنه و درصورتی که نیروی وارد شده به بدنه بیش از حد باشه دچار شکستگی و خرد شدن بشه. Hard body تابعی هست که همین مسئله رو بیان میکنه.
 

جدیدترین ارسال ها

بالا