post

نمایشگاه Gamescom 2011 در آلمان برگزار می‌شود

نمایشگاه Gamescom 2011 در آلمان برگزار می‌شود

نمایشگاه Gamescom 2011 در آلمان برگزار می‌شود

نمایشگاه Gamescom 2011 با حضور شرکت‌های بزرگ و مطرح در صنعت بازی‌های الکترونیکی نظیر مایکرو سافت و سونی تابستان امسال در آلمان برگزار خواهد شد.

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

همچنین نام شرکت‌هایی نظیر مایکرو سافت، سونی، الکترونیک آرتس، نینتندو، یوبی سافت،کپ کام، سگا و کونامی در میان لیست شرکت‌کنندگان این نمایشگاه که 17تا 21 آگوست 2011 مطابق با 26  تا 30 مرداد 90 در شهر کلن آلمان برگزار می‌شود به چشم می‌خورد.

گفتنی است نمایشگاه  Gamescomسال گذشته با بیش از 254000 بازدید کننده، 505 شرکت کننده و فضایی بالغ بر 120000 متر مربع  یکی از بزرگترین نمایشگاه‌هایی بود که در حوزه صنعت بازی‌های رایانه‌ای برگزار گردید.

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

بازی های گرشاسپ، سیاره میترا، عصر پهلوانان، رویین تنی، میرمهنا، قلب سیمرغ، سیاوش، طلای سیاه، آسمان دژ و گاندو به نمایندگی از جمهوری اسلامی ایران در نمایشگاه 2010  Gamescom معرفی شده اند.

post

معرفی موتور بازی ساز یونیتی

معرفی موتور بازی ساز یونیتی

موتور بازی ساز یونیتی 3

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

ساخت بازی با این موتور بازی ساز بسیار ساده است چرا که بیشتر کار در محیط ویژوال انجام می شود، یعنی حدود 80 درصد کار بدون کدنویسی انجام می شود و تنها حدود 20 درصد کار کدنویسی است، که این موضوع باعث جذب بسیاری از کاربران علاقه مند به بازی سازی شده است که علم زیادی در برنامه نویسی ندارند.

 

ویرایشگر اسکریپت

این موتور بازی ساز از نرم افزار mono که یک نرم افزار متن باز ویرایشگر زبان های برنامه نویسی است به عنوان ویرایشگر زبان برنامه نویسی استفاده می کند، این نرم افزار بسیار قدرتمند است و کاملا با موتور بازی ساز یونیتی هماهنگ شده است ،مهمترین قابلیت های این نرم افزار در لیست زیر معرفی شده است

  • پیشنهاد دهنده خودکار کلمات
  • سیستم دیباگینگ پیشرفته
  • پشتیبانی کامل از زبان سی شارپ
ویراشیگر اسکریپت mono
ویراشیگر اسکریپت mono

 

 

زبان برنامه نویسی

یونیتی از جمله موتور های بازی ساز است که می تواند از زبان های برنامه نویسی معروف پشتیانی کند، زبان های برنامه نویسی سی شارپ (C#.net) ، جاوااسکریپت (javascript) و زبان برنامه نویسی بو(BOO) که یک زبان از خانواده زبان برنامه نویسی پایتون(Python) می باشد در یونیتی قابل استفاده هستند.

زبان برنامه سی شارپ (C#.net)  یکی از قدرتمند ترین زبان های برنامه نویسی است که قابلیت شی گرایی ( objectOreinted)   و به واسطه این قابلیت ، قابلیت هایی همچون ارث بری را دارد، این قابلیت ها در پروژه های بزرگ برنامه نویسی بسیار سودمند هستند.

آبجکت ها و مدل ها

یونیتی قابلیت پشتیبانی از بسیاری از فایل های سه بعدی را دارد که از جمله آنها می توان به نرم افزار ها زیر  و فایل های خروجی آنها اشاره کرد:

Blender (.blend),

Maya (.mb, .ma),

Cheetah3d (.jas)

3dsMax(.3ds,.max)

اما فایل های FBX فایل های اصلی مورد استفاده یونیتی است که برای مدل های متحرک استفاده می شود، این فایل توسط بسیاری از نرم افزار های سه بعدی مانند 3dsmax و maya تولید می شود.

همچنین یونیتی قابلیت استفاده از بافت ها(texture) با پسوند jpg،png،dds, ، psd و…  را دارد.

 

shader

یونیتی بطور پیش فرض 40 شیدر که بیشترین استفاده در بازی های روز را دارند همراه خود دارد، به عنوان نمونه می توان تعدادی از آنها را نام برد: Depht of field,Soft Particle,Glow,Specular,Bump Mapping,Paralax Mapping,Glass Shader .

اگر این شیدرها برای شما کافی نبود، شما می توانید به راحتی شیدر خود را بنویسید، این کار در یونیتی به وسیله Shaderlab که زبان CG و GLSL را پشتیبانی می کند انجام می شود.

عوارض زمین

یکی دیگر از قابلیت های یونیتی ایجاد عوارض زمین به صورت ویژوالی می باشد، این قابلیت کاربر را قادر می سازد تا سریع و ساده زمین و عوارض آن مانند پستی و بلندی را ایجاد کند، همچنین کاربر می تواند با استفاده از قلم، بافت گذاری و ایجاد آبجکت های گوناگون مانند درختان بر روی زمین را به راحتی انجام داد.

عوارض زمین
عوارض زمین

 

 

فیزیک

یونیتی از موتور فیزیکی PhysX محصول شرکت NVIDIA استفاده می کند.

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

اجسام سخت(Rigidbodies)

زمانیکه از این قابلیت برای آبجکت ها در بازی استفاده می کنیم، می توانیم به راحتی به جسم نیرو وارد کنیم یا آن را به چرخش در آوریم که این عملیات به وسیله اسکریپت نویسی قابل کنترل هستند.

شبیه ساز اتومبیل

یونیتی این امکان را برای کاربران فراهم کرده است تا کاربران بتوانند بسیار ساده و سریع فیزیک مورد نیاز برای شبیه سازی حرکت اتومبیل را ایجاد کنند.

نور پردازی و سایه

نور و سایه  در یونیتی کاملا پویا است، قابلیت های استفاده شده در یونیتی باعث شده است تا بدون نگرانی از افت میزان فرم، از بهترین حالت نور و سایه استفاده کرد.

به وسیله میان افزار Beast می توان پس از ایجاد محیط بازی و نورپردازی ها در بازی یک lightmap کلی از محیط ایجاد کرد که این کار باعث بالا رفتن کیفیت سایه در بازی می شود، این میان افزار باعث می شود تا سایه ها و نور ها تنها در فضای نمایش داده شده توسط دوربین ایجاد شود و بقیه محیط که در دید دوربین نیست مورد پردازش قرار نگیرد،  این امکان در بسیاری از موتورهای گران قیمت بازی ساز نیز موجود است.

 

رندرینگ و افکت های تصویر

یونیتی از میان افزار Umbra  برای رند کردن تصاویر استفاده می کند، Umbra  یک میان افزار برای کنترل رندر است که برای بهبود عملیات رندر از تکنولوژی Occlusion Culling استفاده می کند و با این کار بازدهی بی نظیری در رندر ایجاد می کند، این میان افزار هم اکنون با پلتفرم های Xbox360،PS3 و PC سازگاری دارد.

Occlusion Culling یکی از بهترین و معروفترین تکنولوژی های برای بالابردن فریم ریت بازی هاست، در صورتی که بخواهیم به ساده ترین شکل ممکن Occlusion Culling را تعریف کنیم باید بگوییم هر چیزی که در دید دوربین است رندر میشود و تمام اجسامی که در خارج از دید آن هستند مورد پردازش قرار نمیگیرند، همین تعریف ساده نشان میدهد که این تکولوژی باعث بازدهی بسیار بالایی خواهد شد.

همچنین یونیتی به طور پیش فرض بسیاری از افکت های مورد نیاز دوربین در بازی را به همراه دارد که استفاده از این افکت ها باعث بالا رفتن کیفیت تصویر در بازی می شود، دوتا از مهمترین آنها عبارتند از:

Screen Space Ambient Occlusion (SSAO) image effect : این اسکریپت زمانی که بر روی دوربین استفاده شود باعث ایجاد سایه ناشی از نزدیکی دو جسم به یکدیگر به صورت realtime می شود که در زیبا تر جلوه دادن بازی بسیار مؤثر است.

Screen Space Ambient Occlusion
Screen Space Ambient Occlusion

 

Depth of Field Image Effect : ای اسکریپت باعث شبیه سازی لنز دوربین می شود به طوری که منطقه ای از دید دوربین واضح و بقیه مات می باشد، این افکت باعث طبیعی تر شدن دید دوربین می شود.

Depth of Field Image Effect
Depth of Field Image Effect

 

 

در زیر لیستی از افکت ها آمده است:

  • Blur image effect
  • Bloom and Flares Image Effect
  • Color Correction Curves image effect
  • Color Correction image effect
  • Contrast Enhance image effect
  • Contrast Stretch image effect
  • Crease image effect
  • Depth of Field Image Effect
  • Luminance Edge Blur image effect
  • Edge Detection image effect
  • Edge Detect Normals image effect
  • Fisheye image effect
  • Glow image effect
  • Grayscale image effect
  • Motion Blur image effect
  • Noise image effect
  • Sepia Tone image effect
  • Screen Space Ambient Occlusion (SSAO) image effect
  • Sun Shafts image effect
  • Twirl image effect
  • Vignetting Image Effect
  • Vortex image effect

 

صدا در یونیتی

 

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

موتور بازی ساز یونیتی از فرمت های  ogg, wav, aif, mp3  پشتیبانی می کند اما برای اینکه صدای بازی بر روی تمامی پلتفرم ها اجرا شود بهتر است از فایل های mp3 در صدا گذاری بازی استفاده شود.

Audioclip بخش اصلی صدا گذاری در یونیتی است که از audiosource ها استفاده می کند، یه این نحو که ابتدا یک audiosource برای یک شی در بازی ایجاد می کنیم و بعد با استفاده از audioclip آن را کنترل می کنیم.

صدا در یونیتی
صدا در یونیتی

 

همه چیز تقریبا واضح است، قسمت 3d soundاگر انتخاب شده باشد صدا در محیط به صورت سه بعدی پخش می شود ، بدون در نظر گرفتن منو یا استریو بودن صدا، یعنی اگر شما به عنوان یک شنونده در بازی به شی نزدیک شوید که صدای سه بعدی پخش می کند ، با چرخش شما به دور تولید کننده صدا ، صدا بر اساس جایگاه شما در اسپیکر راست یا چپ پخش می شود.

using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
public AudioClip impact;
void OnCollisionEnter() {
audio.PlayOneShot(impact);
}
}

در مثال، impact یک متغیر از نوع Audioclip می باشد که یک Audisource در آن قرار دارد، این اسکریپت اگر به یک شی نسبت داده شود، آن شی پس از برخورد این صدا را برای یک بار پخش می کند، مثلا اگر این اسکریپت را به فشنگ(تیر) نسبت دهیم، تیر به محض برخورد با یک جسم دیگر این صدا را برای یک بار پخش می کند.

سیستم ذرات

اصولا کار سیستم ذرات ایجاد جلوه سه بعدی از تصاویر دو بعدی است، که در یونیتی از سه بخش زیر تشکیل شده است.

  • Particle Emitter
  • Particle Animator
  • Particle Renderer

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

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

سیستم ذرات
سیستم ذرات

 

 

پلتفرم های خروجی

یونیتی یک موتور بازی ساز چند پلتفرمه است، یعنی می تواند برای بسیاری از پلتفرم های موجود بازی را ایجاد کند.

امروزه تنها حدود 5 درصد کاربران بازی ها را بر روی کامپیوتر های شخصی اجرا می کنند و سهم بسیاری به کنسول های بازی و موبایل و وب می رسد.

یونیتی برای پلتفرم های زیر خروجی ایجاد می کند:

  • windows
  • Mac
  • Nintendo Wii
  • XBOX
  • PS3
  • IOS
  • Android
  • Web

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

از جمله بازی های ساخته شده برای وب توسط یونیتی می توان به بازی های زیر اشاره کرد:

  • Battlestar Galactica
  • Fusion Fall
  • BeGone
  • Marvel Superhero Squad Online
  • Paper Moon

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

منابع آموزشی

یکی از برتری های موتور بازی ساز یونیتی داشتن فایل راهنما ( help)  بسیار قدرتمند است، این باعث می شود تا برنامه نویسی با یونیتی بسیار سریع و راحت انجام شود، این فایل راهنما ( help)  به همراه یونیتی پس از نصب به صورت آفلاین در دسترس برنامه نویس قرار می گیرد و تقریبا تمامی کلاس ها و متد های مورد استفاده یونیتی را به همراه مثال کاربردی به سه سی شارپ (c#.net) ، جاوااسکریپت (javascript)  و بو (BOO) را دارد.

همچنین در سایت یونیتی قسمت هایی برای پشتیبانی برنامه نویسی در نظر گرفته شده است که در صورت داشتن هرگونه شوال می توان به آنها مراجعه کرد .

چندین شرکت ساخت فیلم آموزشی برای موتور بازی ساز نیز ساعت ها فیلم آموزشی ساخته اند، همچنین کاربران بسیاری در زمینه آموزش یونیتی فیلم ساخته و یا مقاله نوشته اند که تمامی آنها در اینترنت قابل دسترسی است.

 

قیمت

موتور بازی ساز یونیتی با توجه به قابلیت های بسیاری که دارد دارای قیمت مناسب و ارزانی است، که این خود یکی از دلایل روی آوردن بازی سازیان به این موتور بازی ساز شده است.

این موتور بازی ساز در دو نسخه رایگان و غیر رایگان یا حرفه ای عرضه می شود، قیمت نسخه حرفه ای حدود 1500 دلار می باشد که البته برای بار اول باید این مبلغ را پرداخت کرد و برای نسخه های جدید تر نیازی به پرداخت دوباره نیست بلکه تخفیف بسیاری برای نسخه های بعدی به مشتری داده می شود.

 

post

انتشار 3 کتاب‌ جدید در حوزه بازی‌های رایانه‌ای

بنیاد ملی بازی‌های رایانه‌ای 3 کتاب جدید با عناوین : « کنترل خانواده »، « رده بندی سنی بازی‌های رایانه‌ای  ESRA » و « راهنمای بازی نامه نویسی» منتشر کرد.

انتشار 3 کتاب‌ جدید در حوزه بازی‌های رایانه‌ای

به گزارش معاونت ارتباطات بنیاد ملی بازی‌های رایانه‌ای در این کتاب‌ها که با هدف بالا بردن سطح دانش فعالان حوزه بازی‌های    رایانه‌ای و علاقه‌مندان به این مقوله به چاپ رسیده است به موضوعاتی همچون تاریخچه بازی‌های رایانه‌ای در جهان و ایران، اصول بازی‌نامه نویسی، معرفی نظام ملی رده‌بندی سنی بازی‌های رایانه‌ای  ESRA ، خانواده و مراحل رشد کودک از دیدگاه جامعه شناسی و ارتباط آن با کنترل موثر فرزندان در استفاده از بازی‌های رایانه‌ای و… اشاره شده است.

کتاب کنترل خانواده که در 5 فصل به رشته تحریر در آمده است با بررسی مفاهیمی همچون خانواده ، کنترل اجتماعی، جامعه پذیری و مراحل رشد کودک از دیدگاه جامعه شناسی به ارائه راهکار های عملی برای کنترل موثر فرزندان در استفاده از بازی‌های رایانه‌ای می پردازد.

کتاب بعدی با عنوان رده بندی سنی بازی‌های رایانه‌ای است که در 7 فصل به چاپ رسیده است . در این کتاب مولف ضمن بیان تاریخچه بازی‌های رایانه‌ای و نظام رده بندی سنی این بازی‌ها در ایران و جهان به بررسی و معرفی مقولاتی همچون سبک ، مفهوم، سن وگروههای سنی، روش تحقیق و چهارچوب نظری ، معیارهای رده‌بندی سنی در ESRA و نظام های دیگر و همچنین آینده پیش روی سازمان ESRA و … می پردازد.

همچنین در کتاب راهنمای بازی نامه نویسی که در 3 فصل نگارش شده است نویسنده با بررسی ریشه‌های نیاز بشر به بازی و تاریخچه تکامل زود هنگام بازی‌های رایانه‌ای در جهان ضمن پاسخ گفتن به این سئوال که « بازی رایانه‌ای چیست؟» به شرح چگونگی نگارش بازی‌نامه می پردازد و در انتها نیز بازی‌نامه بازی « گرشاسپ» را به عنوان نمونه می آورد.

لازم به یادآوری است که این کتاب‌ها با تیراژ 1500 نسخه و توسط نشر بنیاد ملی بازی‌های رایانه‌ای در سال  1389 به چاپ رسیده است.

post

500000 کاربر در مدت 6 ماه یونیتی را دانلود کردند

unity

موتور بازی ساز یونیتی یک موتور چند پلتفرمه است که قادر است بازی را در پلتفرم های وب ، ios، Android  و  انواع کنسول ها ایجاد کند و امروز در کمتر از 6 ماه بیش از 500000 کاربر برای استفاده از این موتور ثبت نام کردند و 150000 کاربر فعال به صورت ماهیانه بیش از یک میلیون ساعت به ساخت بازی می پردازند. علاوه بر این بیش از 60 میلیون کاربر پخش کننده وب موتور بازی ساز یونیتی را دانلود کردند.

 

post

نظام ملی رده بندی سنی بازی های رایانه ای (ESRA)

نظام ملی رده بندی سنی بازی های رایانه ای(ESRA)اسرا

سازمان رده‌بندی نرم افزارهای سرگرم کننده (اسرا)،سیستمرده‌بندی سنی بازی‌های رایانه‌ای است که محتوای رده‌ بندیو سن مناسب را تعیین می‌نماید. این سازمان در سال 1386توسط بنیاد ملی بازی‌های رایانه‌ای که یک نهاد نیمه دولتی است، تأسیس گردید.

تیم اسرا

پروژه تحقیقاتی اسرا به مدیریت جناب آقای مجد، توسط یک تیم تحقیقاتی متشکل از 17 روانشناس و 8 جامعه‌شناس اجرا می‌شود. این پروژه تحقیقاتی که شامل 5 فاز مجزا می‌باشد، از سال 1386 در بنیاد ملی بازی‌های رایانه‌ای در حال اجراست.

در تعیین رده‌بندی بازی‌های رایانه‌ای، اسرا 4 ویژگی رادر نظر می‌گیرد:

  1. خصوصیات جسمی _ حرکتی
  2. خصوصیات ذهنی _ روانی
  3. خصوصیات عاطفی
  4. خصوصیات اجتماعی

گروه‌های سنی عبارتند از:

  • (خردسالی) بالای 3 سال
  • (کودکی) بالای 7 سال
  • (ابتدای دوران نوجوانی) بالای 12 سال
  • (نیمه دوم نوجوانی) بالای 15 سال
  • (بزرگسالان، مجرد) بالای 18 سال
  • (بزرگسالان، متأهل) بالای 25 سال

توصیف محتواهادر زیر 7 محتوا توصیف شده‌اند:

  • خشونت : نمایش خشونت ، یعنی نمایش رفتاری که برای آسیب‌رساندن به دیگری از کسی سر‌می‌زند و دامنه آن از تخریب اموال و دارایی و آسیب رساندن، نابود کردن، از کار انداختن غیر جاندار و….گسترده است.
  • استفاده از تنباکو و مواد مخدر : مشاهده مصرف تنباکو و یا مواد مخدر در بازیها می‌تواند تابوی درونی ـ اجتماعی مصرف نکردن آنها را برای مخاطب شکننده کند.
  • محرکهای جنسی : تنوع‌طلبی جنسی، روابط جنسی خارج از هنجارهای اجتماعی و غیره در بازی‌ها می‌تواند منجر به آسیب های روحی و جسمی مرتبط با نیاز جنسی مخاطب و موقعیت اجتماعی او گردد.
  • ترس : ترس، نوعی احساس درونی مبنی بر عدم امنیت و نیز بی‌اعتمادی به فضای موجود است. این احساس درونی می‌تواند در سنین مختلف منجر به آسیب هایی نظیر استرس های مزمن، لکنت زبان در کودکی و بیماریهای قلبی ـ تنفسی و همچنین حس بدبینی و رفتارهای محافظه کارانه در محیط اجتماعی گردد.
  • نقض ارزشهای دینی : نقض ارزشهای دینی منطبق با اصول اسلامی در نظر گرفته خواهد شد. چهار مؤلفه مهم آن عبارت است از:
  1. نقض اصول اساسی یا باورهای دینی (چگونگی نمایش بهشت و جهنم)
  2. توهین به اماکن مقدس( توهین به مسجد، کلیسا)
  • نقض هنجارهای اجتماعی : استفاده از کلمات رکیک و رفتارهای ناشایستی که منجر به هنجارشکنی اجتماعی می‌شود، از آسیب های اجتماعی است که کودکان و نوجوانان در بازیها با آن آشنا می‌شوند.
  • ناامیدی : معیار ناامیدی در بازی ها مرتبط با احساسی است که بازیکن بر خلاف میل خود مجبور است عملی را انجام داده و یا انجام ندهد. این اتفاق باعث ایجاد نوعی عذاب وجدان و احساس گناه در او می شود.

چشم‌انداز

خواسته اسرا یا به بیان بهتر، هدف نهایی اسرا رسیدن به نقطه‌ای است که قادر باشد بهترین سن را برای هر بازی رایانه‌ای تعیین نماید. بهترین سن یعنی سنی که در آن، بازی هیچ آسیب روانی و رفتاری نداشته و به ارتقاء و رشد مخاطب کمک می‌نماید.

سازمان اسرا واقع در بنیاد ملی بازی‌های رایانه‌ای درصدد است فعالیتهای خود را با 2 هدف دنبال نماید:

اولین هدف، ادامه تحقیقات و پژوهشها می‌باشد. استفاده از چشم‌اندازهای جدید نظیر علوم ارتباطی، علوم تربیتی و روانشناسی اجتماعی، طراحی محتوا و صحنه‌های آسیب رسان جدید، طبقه‌بندی و تفکیک آنها، صرف نظر از بهره‌گیری از دانش روز که در فاز پنجم تحقیقات اسرا طراحی و برنامه‌ریزی شد، از فعالیتهای تحقیقاتی مهم اسرا به‌شمار می‌روند.

هدف بعدی، اداره سازمان اسرا و اجرای سیستم آن می‌باشد. تهیه فیلم و استخراج محتواهای بازی، تحلیل گیم پلی، تشخیص و تعیین گروه سنی مناسب برای هر بازی از جمله فعالیتهای این فاز به‌شمار می‌روند.

تربیت نیروی متخصص که مسؤلیت این هدف را بر عهده داشته باشند، امری مشکل و پرهزینه است که دستیابی به آن ملزم به استفاده از کلیه ظرفیت‌ها می‌باشد.

post

برنامه نویسی برای موتور بازی – قسمت اول- امیرحسین فصیحی و یاسر ژیان

اساتید : امیرحسین فصیحی و  یاسر ژیان

تدوین گزارش : مریم ثابت قدم

برنامه نویسی برای موتور بازی – قسمت اول- امیرحسین فصیحی و یاسر ژیان

حقوق این گزارش برای سایت انیمیشن دیتا محفوظ است

 

Tools > Version Control
Version control ، یک سری تغییرات را روی کد ذخیره می کند. این در زمانی که خواهان یک نسخه stable از بازی باشیم ؛ مورد استفاده قرار می گیرد. اما از آنجا که یک سری تغییرات اعمال شده از حالت stable خارج می شود ؛ لذا برای دسترسی به realese از version control استفاده می کنیم.
در این مبحث ، از قابلیت Branching صحبت می شود که یکی از قابلیت های نرم افزار Version control بشمار می آید ؛ در این حالت وقتی روی بخشی از نرم افزار کار می کنید ؛ بدون هیچ تغییری روی اصل نرم افزار ، قادر به ایجاد یک شاخه یا یک branch از آن هستید.
ولی دلیل اصلی برای استفاده از version control ، در حقیقت write شدن تغییرات بروی این نرم افزار و امکان برنامه نویسی گروهی است. بدون شک ، کار همزمان چندین برنامه نویس روی یک فایل بطور دستی امکان پذیر نیست. در نرم افزار Version Control یک data base مرکزی وجود ندارد که همه برنامه نویسان روی آن کار کرده و اصطلاحاً کدهای خود را check in و یا  check out کنند.
صبح وقتی برنامه نویس بر سر کار حاضر می شود ؛ تغییرات کد را می گیرد و برای خود یک version local تشکیل می دهد و تا عصر چندین بار connect می شود تا تغییرات وارد data base شوند.
در ساخت بازی رایانه ای ، به دلیل وجود گروهی از افراد متخصص نظیر برنامه نویسان و آرتیست ها ، مدل سازان و غیره ، اطلاعات به طور مداوم در حال افزوده شدن است و لذا بدون وجود یک مکانیسم مشخص نظیر version control ، نمی توان یک پروژه را مدیریت کرد.

اقسام Version control:

•DCVS
decentralized and CVS-based
CVS is a version control system, an important component of Source Configuration Management (SCM). Using it, you can record the history of sources files, and documents. It fills a similar role to the free software RCS, PRCS, and Aegis packages.

 

•SVN

If you’re a Windows user, Tortoise SVN is a great file browser for viewing, editing and modifying your Subversion code base
• Mercurial

written in Python as an Open Source replacement to BitKeeper; decentralized and aims to be fast, lightweight, portable, and easy to use
The name “mercurial” is an adjective that means “Relating to or having characteristics (eloquence, swiftness, cleverness) attributed to the god Mercury.”

•Git

written in a collection of Perl, C, and various shell scripts, designed by Linus Torvalds based on the needs of the Linux kernel project; decentralized , and aims to be fast, flexible, and robust
Git is the new fast-rising star of version control systems.

• Perforce

Perforce is a commercial, proprietary, centralized revision control system developed by Perforce Software, Inc.
Perforce is a client/server system. The server manages a central database and a master repository of file versions. Users work on files in local client workspaces, and submit changed files together in changelists. Communication from client to the server is via any of a number of clients (user interfaces) (see below). Client and server communicate via TCP/IP using a proprietary RPC and streaming protocol.

• Alienbrain

Alienbrain is a digital asset management system for artists in the entertainment industry. It combines everything studios need to securely store, version, manage and share any kind of file, with an intuitive user interface that lets artists work visually.
به Mercurial اصطلاحاً distributed version control system نیز اطلاق می شود که در اینجا data لزوماً در یک جای مرکزی وجود ندارد و اندکی معماری آن متفاوت است.· جدیداً از Mercurial در پروژه های آنلاین نیز استفاده می شود .
نرم افزار Perforce در صنعت بازی سازی بسیار مورد استفاده قرار می گیرد ؛ زیرا هم برای آرت و هم برای کد کاربردی است. متاسفانه در ایران این نرم افزار نیست و ورژن کرک آن نیز در دسترس عموم قرار ندارد. این در حالی است که خیلی از شرکت های مطرح بازی سازی می خواهند شما از طریق perforce به سرورهایشان متصل شوید تا به اطلاعات سرور دسترسی یابید.
در یک پروژه بازی ، Source code ها مبحث جدی بشمار می آیند . سئوالی که در اینجا مطرح می شود این است که آیا از Version control می توان برای همه اینها استفاده کرد؟
بطور مثال CCVS و SVN برای Source code و Text عالی هستند ولی برای Binary چندان جالب نیست.
نرم افزاری که برای آرتیست ها تولید شده ، Alienbrain نام دارد که سیستمی Assert management است و برای فایل های art که در داخل مایا و یا استودیو مکس وجود دارند ؛ Integrate می شود.
Aleinbrain دارای هیچ فیچری نیست و بسیار ساده است. البته Perforce هم می تواند برای هر دو گروه برنامه نویسان و آرتیست ها مناسب باشد.
خیلی از Art ها دارای لایه بندی است ؛ زیرا از یک تکسچر شروع می شود که در واقع یک فایل فتوشاپ با فرمت .psd است . این فرمت هرگز مورد نیاز هیچ برنامه نویس یا انجینی به حالت real time نیست. لذا Source art نیازمند یک برنامه نویس نیست.
هنرمندان ما در پروژه گرشاسب نیز ار Alienbrain بطور مجزا استفاده کردند و برنامه نویس مان از SVN بهره برد. Art هایی که قرار بود نهایی شود ؛ در SVN قرار می گرفت . یعنی پس از export فرمت mesh. که OGRE از آن استفاده می کند ؛ وارد SVN می شد.
لذا وجود یک سیستم Asset management برای ساخت بازی بسیار حیاتی است.

 

Tools > Profiler
نرم افزارهایی هستند که اجازه تست Performance را می دهند. زیرا فاکتورهایی نظیر سرعت اجراء و حافظه ( مقدار مصرف منابع ) در performance بسیار مهم است. این نرم افزارها به شما اجازه می دهند که ببینید چه مدت زمان برای function ها صرف شده ؛ چند بار صدا زده شده و چه قدر حافظه مورد استفاده قرار گرفته است .
یکی از این نرم افزارها ، Intel Vtune است. وقتی برنامه نویسی گرافیکی جدی برای بازی خود انجام می دهید ؛ GPU نیز به اندازه CPU و Motherbord از اهمیت زیادی برخوردار می شود. کارت گرافیک نیز حافظه دارد و لذا یک سری ابزار وجود دارد تا به کارت گرافیکی شما کمک کند .ابزارهایی نظیر :
• Nvida PerfHUD ( رایگان )
NVIDIA PerfHUD is a powerful real-time performance analysis tool for Direct3D applications. PerfHUD is widely used by the world’s best game developers and was a 2007 Game Developer Magazine Frontline Award Finalist.

ویدئوی آموزشی  کاربرد PerfHUD6 در Texture Visualization

 

•ATI PerfStudio ( رایگان )

Microsoft PIX ( رایگان ) و مفید برای CPU و GPU

Intel GPA ( رایگان ) – وقتی از شیدرها استفاده می کنید ؛ اتفاقاتی که روی GPU و کارت گرافیک را نشان می دهد.
Tools > Bug Tracker
به معنی رد یابی باگ ها است.یکی از نمونه های آن Bugzilla است .
با نوشتن هر خط ، به تعداد باگ ها نیز افزوده می شود. در این صورت یا شما متوجه باگ ها می شوید و یا افرادی نظیر game designer و artist ها متوجه آن می شوند. برای اصلاح این قبیل باگ ها ، مسلماً نیازی نیست که به سراغ شما بیایند ؛ بلکه باید یک سیستم مدیریتی برای این باگ ها وجود باشد که مسلماً ابزار پیچیده ای هم نیست. در واقع یک data base است که معمولاً دارای چنین ساختاری است :

Bug
Number         Title          Description           Assigned       Date      State         Version

نهایتاً یک سیستم مدیریت و بانک اطلاعاتی از باگ ها فراهم می آید. فرضاً مشخص می کند که چه باگ هایی باز است ؟ چه باگ هایی نیاز به یک سری تغییرات دارند و اگر برنامه نویس ، اطلاعات بیشتری در مورد باگ بخواهد ؛ می تواند همانجا Status را تغییر دهد و آن را به tester ارجاع داده و حتی می تواند Screen shot بخواهد . لذا سیستمی ساده و در عین حال بسیار مهم است.
اقسام آن عبارتند از :

Mantis

MantisBT is a free popular web-based bugtracking system (feature list). It is written in the PHP scripting language and works with MySQL, MS SQL, and PostgreSQL databases and a webserver

Jira

JIRA provides issue tracking and project tracking for software development teams to improve code quality and the speed of development

Bugzilla

Bugzilla is server software designed to help you manage software development.Optimized database structure for increased performance and scalability.Advanced query tool that can remember your searches

 

Tools > Task Management

مدیریت حافظه ، در واقع مدیریت وظایف در بازی و ثبت آن ها است. اگر باگ موجود باشد ؛ آن را در bug tracker ثبت کرده و اگر درخواست تست و نظایر این باشد ؛ آن را در task ثبت می کند. نهایتاً ارتباط میان نفرات تیم در یک جا ثبت می شود. این ابزار با ثبت این قبیل وظایف ، کمک می کند تا همه چیز قابل پیگیری بوده و انواع گزارش ها را از روی آن یافت.
از جمله این ابزار ، Redmine است· که مشابه سیستم های اتوماسیون اداری عمل می کند.

این درحالی است که برای تیم های کوچک ، رابطه میان کاربر و اینگونه ابزار بسیار عجیب است. هم از آن استفاده می کنید· و دوستش دارید و هم از آن متنفر هستید ؛ زیرا مستلزم فرایندی است که ساعت ها وقت شما را به خود اختصاص می دهد تا یک باگ را پیگیری کنید.
برنامه نویسان تا حدی می توانند اینگونه پیچیدگی ها را بپذیرند و حتی از CCVS هم استفاده نکنند. ولی مسلماً نمی توان از یک game designer که حتی از visual studio استفاده نمی کند ؛ انتظار داشت که با این ابزار کار کند. البته نکته ای که باید حائز اهمیت قرار داد این است که ابزارهای خیلی بزرگ هم نمی توانند انعطاف پذیر باشند و حتی در صورت وجود این انعطاف ها ، چه بسا پیچیده تر هم بشوند. این در حالی است که آموزش آن نیز بسیار دشوار· است. ابزارهای غیر اپن سورسی نظیر ابزارهای مایکروسافت ، از· جمله ابزارهایی هستند که در صورت هرگونه تغییر ، امکان کار با ابزار دیگری فراهم نیست.
لذا تا جایی که امکان پذیر باشد ؛ این ابزارها باید سبک باشند و نباید فرایند را به شما دیکته کنند. بلکه این شما هستید که فرایند را باید پیاده سازی کنید. و این انعطاف پذیری را به حدی کوچک کنید که برای یک task خاص باشد ؛ نه اینکه چند وظیفه را به طور ضعیف پشتیبانی کند. به طور مثال ، Redmine ، سه یا چهار کوچک را به خوبی انجام می دهد.
Memory و ( Leak Detector)
اصولاً حافظه ای که دیگر به آن pointer اختصاص نمی یابد ؛ Leak گفته می شود. زیرا حافظه ای است که دیگر نمی توان به درستی از آن استفاده کرد. ایچنین بعنوان یک باگ شناخته می شود.
Memory leak بحث جدی بشمار می آید . زیرا بدین معنا است که کد شما دارای باگ بوده و این باگ در جایی است که شما از آن بی خبر هستید.
یک سری ابزارهای خیلی خوب برای memory leak detection وجود دارد و البته برنامه نویسان نیز برای تیم خود ، یک چنین برنامه هایی را بطور مجزا develop می کنند. البته نوشتن آن ، خیلی ساده و در عین حال بسیار کاربردی است. خیلی از profiler ها ، دارای حجم زیادی است. کتابخانه ای که شما استفاده می کنید ؛ عملکرد leak را برعهده دارد . بطور مثال در پروژه گرشاسب ، ما از فلش استفاده کردیم که در همه حال در پی memory leak است .

Automated Testing
از جنبه های مختلفی برخوردار است. در حالی که unit test را build· می کنید ؛ یک سری فایل های اجرایی که در طول زمان با تغییر و اجرای کد،· اجراء می شوند. فرضاً اگر کتابخانه ریاضی نوشته اید سعی می کند کد را تست کند، و جواب ها را با پاسخ هایی که از قبل می دانستید ؛ چک کند.
بازی ها ، application visual هستند. برخی از استودیو ها ، کار جدی تری روی آن می کنند. به طور مثال ، واسط گرافیکی UI خود را بطور اتوماتیک چک می کنند. برخی نیز screen shot های مختلفی از زوایای متفاوت گرفته و در نهایت پیکسل به پیکسل ، آن ها را مورد بررسی قرار می دهند. زیرا اندکی تفاوت، نشاندهنده این مطلب است که فرضاً رندرینگ شما تغییر یافته و یا اینکه کد شما دارای یک باگ است.

Continous Build System
در پروژه های کوچک ، به طور معمول کد های خود را می نویسید و build می کنید . ده ثانیه طول می کشد و سپس فایل exe به شما داده و اینجا اتمام کار است.
در پروژه های بزرگ ، پنج دقیقه این فرایند به طول می کشد. در یک بازی ، علاوه بر آن که باید کد را build کنید ؛ باید تکسچر را compress کنید و یا resource ها را سرجای خود بچینید ؛ یا باید نسخه نهایی را بیاورید ، فایل های level را به binary تبدیل کنید و بسیاری کارهای دیگر…

fable2_guide_1231374631

مشاهده تریلر بازی fable ii

 

بطور مثال ، FABLE II که بازی معروف برای کنسول ایکس باکس است ؛ دو هفته را به build اختصاص داد. پس build کردن بازی ، یک مورد ساده و از پیش افتاده ای نیست. خیلی از استودیو ها حتی برای نرم افزارهای عادی نیز چنین می کنند. آن ها از یک سری رایانه برخوردارند که کد را check out کرده و آن build می کند و نیم ساعت تا یک روز کامل به build بازی اختصاص می یابد .
لذا فرایند build آنچنان کار جدی و زمان بری بشمار می آید که حتی developer هم قادر نیست آن را بر روی رایانه خودش اجراء کند . زیرا فرضاً برای دو خط کد ، دو ساعت زمان صرف build آن می شود.

پایان قسمت اول سمینار آموزشی

©·Copyright 2009 – 2011/ Animationdata.org & Partners