استفاده از واسط برنامه نویسی کاربردی Vulkan برای ساخت بازی های اندرویدی سریع و قدرتمند

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

شانون وودز مدیر برنامه های فنی گوگل در وبلاگ توسعه دهندگان اندروید در مورد Vulkan نوشت: "حتی دقیق ترین توسعه دهندگان هم ممکن است در تنگناهای پیش بینی نشده گرفتار شوند، این موضوع می تواند تا اندازه ای به این دلیل باشد که درایورهای برخی پردازشگرهای گرافیکی می توانند تمام آن اطلاعات را پیش از آن که پردازش شوند تشخیص دهند. به منظور بر طرف کردن بعضی عوامل ایجاد سربار در CPU و این که کنترل آشکارتری روی فرآیند رندر کردن –تولید تصویر از یک صحنه ی مجازی سه بعدی و نمایش آن روی یک نمایشگر دو بعدی– به توسعه دهندگان داده شود، تیم ما تلاش کرد تا یک واسط برنامه نویسی کاربردی که تصاویر گرافیکی را به صورت سه بعدی رندر می کند، یعنی Vulkan را در سیستم عامل اندروید بکار گیرد."

همانند واسط برنامه نویسی Metal شرکت اپل (که برای اولین بار در iOS 8 به کار گرفته شد)، واسط برنامه نویسی کاربردی جدید گوگل که تصاویر را به صورت سه بعدی پردازش می کند، به توسعه دهندگان این امکان را می دهد تا سخت افزاری که بازی آن ها روی آن اجرا می شود را کاملاً به خدمت گیرند. با کمی کدنویسی بیشتر، این ابزارها انعطاف پذیری و قدرت بیشتری را به ارمغان خواهند آورد. هم چنین Vulkan از عهده ی حل مسئله ی سربار CPU –که در آن زمان پردازنده صرف برقراری ارتباط با درایورها، انتقال داده ها و انتظار برای پاسخ ها می شود– بر می آید تا تجربه ی مؤثرتری را ایجاد کند.

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

وودز در پست خود نوشت: "ما به شدت برای کمک به ساخت، سنجش و عرضه ی Vulkan به بازار کار خواهیم کرد، با این وجود هم زمان در پیش برد OpenGL ES هم همکاری خواهیم داشت و از آن پشتیبانی می کنیم. به عنوان یک توسعه دهنده، این موضوع بر عهده ی شما است که کدام API را انتخاب کنید که ویژگی های آن متناسب با نیاز شما باشد: سادگی OpenGL ES یا کنترل آشکار Vulkan. ما در تلاشیم تا عالی ترین تجربه ی توسعه را برای شما فراهم کنیم، بنابراین فرقی نمی کند که شما کدام API را انتخاب کنید."

قدرت زیاد و سرعت بسیار زیاد اجرای کد، یا زمان کد زنی کم تر و مسیر راحت تر به سمت GPU (واحد پردازش گرافیکی) همه از ویژگی های منحصر به فرد Vulkan هستند، ولی در نهایت تصمیم با توسعه دهندگان است که کدام واسط را انتخاب کنند. هم چنین Vulkan یک واسط برنامه نویسی کاربردی یکپارچه را برای موبایل، دسکتاپ، کنسول و پلت فرم های ادغام شدنی فراهم کرده است، که به واسطه ی آن بازی های سازگار می توانند در هر جا اجرا شوند.

این ابزار جدید نیازمند پشتیبانی سخت افزاری در کنار یکپارچه سازی نرم افزاری است، که به معنای آن است که احتمالاً به موقع به Android M نخواهد رسید. با این وجود بیش تر گوشی های موبایل گران قیمت و مدل بالا که در شش ماهه ی اخیر توزیع شده اند باید با این ابزار سازگار باشند: GPU های سری 400 Adreno محصول Qualcomm و Tegra K1 محصول Nvidia از جمله تراشه هایی هستند که می توانند جوابگوی Vulkan باشند.

توسعه دهندگانی که می خواهند کنترل بیش تری روی عملکرد گرافیکی داشته باشند تا به حال امکانی تا این اندازه خوب را نداشته اند: واسط برنامه نویسی کاربردی Metal به نسخه ی OS X 10.11 El Capitan مک افزوده خواهد شد، در حالی که ویندوز 10 واسط برنامه نویسی کاربردی گرافیکی DirectX 12 را با خود به همراه دارد که هدف آن کاهش تداخل درایورها و سربار CPU است.

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

How Google's Vulkan Can Make Android Games Faster And More Powerful

0







  • حامد ارغوان در تاریخ: 1394/05/29

    ازونجایی که من تازه وارد محسوب میشم این سوال رو میپرسم به این ها (OpenGL, Metal, DirectX, Vulkan) رابط گرافیکی برنامه نویسی میگن که برای ساخت بازی یا فضای سه بعدی استفاده میشن! این ها زبان برنامه نویسی هستند یا API؟ بعد درباره ی Unity چطور؟ فرق بین Game Engine با این رابط های گرافیکی چیه؟
    ممنون از مقاله های عالی ای که میزارین!

    نرگس اسدی در تاریخ: 1394/05/30

    Game Engine یک موتور بازی سازی است که برای ساخت و توسعه ی بازی های کامپیوتری استفاده می شود. موتورهای بازی اجزای زیادی دارند از جمله یک موتور برای رندر کردن تصاویر به صورت 2 بعدی و 3 بعدی که Vulkan، DirectX، Metal واسط های برنامه نویسی کاربردی برای موتورهای رندر کردن است. از جمله اجزای دیگر موتور بازی می توان به موتر فیزیکی که یک برنامه ی کامپیوتری برای شبیه سازی و پیش بینی قوانین فیزیکی طبیعت در محیط بازی است، صدا، انیمیشن، هوش مصنوعی، زبان اسکریپتی، شبکه، مدیریت حافظه، برنامه نویسی چند ریسمانی، و .. اشاره کرد. Unity هم یک موتور بازی است.

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