PDA

View Full Version : SDK کنسول



vice_city
شنبه 12 آذر 1390, 13:19 عصر
سلام.
یه سری اطلاعات درباره کتابخانه های کنسول ها میخام لطفا. اینکه کتابخانه پلی اسیشن3 و ایکس باکس 360 رو از کجا باید گرفت (لینک) ، آیا رایگان در دسترس هستند و یه توضیح کلی و کوچیک درباره کار با اونها.
و البته دو سوال دیگه که برام مهمه:
1- با توجه به اینکه نسل بعدی کنسول در راهه ، به نظرم کتابخانه های اونها باید از قبل اومدنشون به بازار در دسترس باشه تا شرکت ها بتونن به محض ورود کنسول جدید بازیشون رو روی اون کنسول ارائه بدن.آیا این درسته؟و اگر آره چطور باید بهش دسترسی داشت؟
2- ساختار هماهنگ کردن یک انجین برای سه پلتفرم اصلی به چه شکل هست؟منظورم اینه که اگه بخایم ساپورت کنسول رو به یه موتور پی سی که در حال تکمیله اضافه کنیم ، با توجه یه کتابخانه های پشتیبانی شده در کنسول های بالا باید همه ساختارهای قبلی موتور رو تغییر بدیم؟

سپول
یک شنبه 13 آذر 1390, 16:30 عصر
۱ - بله درسته و همین الان هم sdk کنسول wiiU در اختیار بعضی بازی سازها هست. ولی متاسفانه ما تحریم هستیم و شرکت های مایکروسافت و سونی و نینتندو به هیچ وجه کیت هاشون رو در اختیار ما نمی گذارند
تازه اگر هم تحریم نبودیم هم به سختی می تونستید این کیت ها رو تهیه کنید از اونجا که هم گرون هست هم برای گیم غیر casual باید فیلترهای فنی و غیر فنی سختی رو از طرف این شرکت ها رد کنید. این کیت ها و منابع فقط برای شرکت های معتبر بازی سازی فراهم هست نه ما و نه حتی indie های خارج.
ممکن هست بشه از طریق سایت های روسی و غیره یک سری sdk های نرم افزاری دزدیده شده از این کنسول ها تهیه کرد که برای آموزش صرفا می تونه مفید باشه ولی برای تولید و کار جدید نه. از اونجا هم ساپورتی ندارید و هم اینکه این کیت های شامل sdk نیست و یک سخت افزار خاص هم دارند که برای توسعه و تست بازی ها ازشون استفاده می شه (مانند pc‌عمل می کنند منتهی با سخت افزار کنسول)

کسی هم توی ایران فکر نکنم تجربه برنامه نویسی روی کنسول (بصورت حرفه ای)‌رو داشته باشه, در واقع همون pc ایش هم کم هستند چه برسه به کنسول ... بهترین گزینه برای شما می تونه کار بر روی پلتفرم های موبایل باشه مثل android و iOS که هم آسونتره و هم محبوبیت زیادی کسب کرده.
در مورد xbox هم که مایکروسافت گزینه XNA‌رو ارایه داده که روی کنسول xbox360 هم اجرا می شه و با زبان C#‎ هم هست. احتمالا روی windows phone هم اجرا می شه و فقط هم می تونید باهاش بازی های casual برای xbox درست کنید (xbox live games) .نظر من رو می خواهید برای کار آینده دار به دنبال solution های مایکروسافت نباشید کلا.

۲- بستگی به دیزاین انجین داره. اگر موتور شما با هدف مالتی پلفرم و در نظر گرفتن این مورد دیزاین شده باشه. کارتون بعدا بسیار راحتتر می شه برای پورت کردن انجین به سخت افزارهای دیگه. اگر دیزاین برای مالتی پلتفرم ناقص باشه, بله, احتمالا مجبور هستید خیلی از کد ها رو دوباره بنویسید.
- یکی از کارهای پایه ای و اصلی این هست که کل api هایی که در هر پلتفرم فرق دارند (مثل opengl و directx و توابع سیستمی win32 و ...)‌. اینها رو باید روشون یک جور wrapper بنویسید و حالت مرکزیت بهشون بدی. به عنوان مثال اگر کد های directx و d3dx‌که صرفا مخصوص ویندوز هست همه جای انجین شما پخش شده باشه و در دیزاین اصلی نقش داشته باشه پورت کردن به پلتفرم دیگه سخت تر می شه و باید کلی از کد ها رو عوض کنید.

- یکی از چالش های دیگه اینه که شما باید تسلط نسبی رو همه پلتفرم هایی که می خواهید کار کنید (چه سخت افزار چه api ها) داشته باشید تا بتوانید دیزاین بهتری برای چند پلتفرم تهیه کنید. وگرنه نمی تونید موارد مهم رو در نظر بگیردید. مثلا برنامه نویسی برای ps3 خیلی با pc فرق داره از اونجا که ساختار cpu اش هم کلی تفاوت داره پش حتی نوع پیاده سازی و الگوریتم هم می تونه تغییر کنه. حالا شما باید با اون ساختار آشنا باشید و برای هر دو کد بزنید تا بتونید هر دو رو در قالب یک دیزاین پیاده سازی کنید.

در کل پیشنهاد من اینه که فقط نیم نگاهی به این مساله داشته باشید و سعی کلی کد رو تا جایی که امکان داره portable بنویسید و از استانداردهای C (اگر انجین C هست که امیدوارم باشه)‌استفاده کنید نه استاندردهای مایکروسافت. و خیلی خودتون رو درگیر چند پلتفرم نکنید و سعی کنید روی یک پلتفرم نتیجه بگیرید و بعدا کم کم سراغ گزینه های دیگه بروید.

aryasoft2872
سه شنبه 15 آذر 1390, 22:33 عصر
البته در مورد sdk تیم ایرانی اس اس مال پی اس 3 رو داره و میگه هزینه تهیش حدود 15 میلیونه ولی رایگان در اختیار برنامه نویسا میذارنش ولی همونطوری که دوستمون گفتن کسی تو ایران حرفه ای کار نمیکنه کلا ارزش هم نداره این همه دردسر

vice_city
سه شنبه 15 آذر 1390, 22:58 عصر
ممنون میشم اگه درباره اس اس مال کمی توضیح بدین.

jack
چهارشنبه 16 آذر 1390, 11:56 صبح
در مورد گزینه 2 من یک موتور بازی رو به 3 قسمت تقسیم می کنم
1- مدیریت صحنه ( شامل PORTAL,ROAM,PVS,OCTREE,...)
2- مدیریت فرمت فایل (شامل اکسپورتر لازم برای 3DSMAX,MAYA نوشتن کامپایلرهای لازم برای تبدیل یک صحنه به ساختار درختی)
3- نمایشگر یا رندرر ( قابلیت نمایش صحنه در پلتفرم های DIRECT3D , OPENGL)

مورد 1 و 2 در همه موتورها یکی هستش . ولی مورد 3 بستگی به ساختار موتور داره که چه پلتفرم هایی را پشتیبانی کنه . حتی اگر موتور شما فقط یک پلتفرم مثل DIRECT3D رو پشتیبانی کنه بد نیست اگر یک رندرر برای D3D9 داشته باشید و یک رندرر برای D3D10 . تا کامپیوترهای ضعیف بتونن با استفاده از D3D9 بازی رو اجرا کنند . چون بیشتر عملیات یک موتور 3 بعدی روی رندرر است.

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

aryasoft2872
چهارشنبه 16 آذر 1390, 23:33 عصر
ممنون میشم اگه درباره اس اس مال کمی توضیح بدین.

ببخشید هم یک اشتباه تایپی داره هم یک خورده ای بد فهمیدید تیم ایرانی AS-Team (http://www.as-team.ir) منظورم بود و درستش اینه:

"تیم ایرانی ای اس،مال پی اس تری رو عرضه کرده"