
Using Target-based Development
توسعه بازیهای ویدئویی معمولاً ما را به یاد موتورهای بازیسازی سنگین مانند آنریل انجین یا یونیتی میاندازد. اما لذت واقعی برنامهنویسی زمانی آشکار میشود که بتوانید با کدهای خود، از سختافزارهای محدود و ارزانقیمت مانند کامپیوترهای تکبُرد (SBCs مانند رزبری پای)، بالاترین کارایی گرافیکی را استخراج کنید. این سبک از برنامهنویسی، شبیهساز دقیقی از توسعه بازی برای کنسولهای خانگی است؛ جایی که مهندس نرمافزار باید یاد بگیرد چگونه با مدیریت بهینه حافظه و پردازنده، از بروز گلوگاهها (Bottlenecks) جلوگیری کند.
کتاب The Fundamentals of C/C++ Game Programming (Second Edition) یک راهنمای کاملاً عملی، سرگرمکننده و پروژه-محور برای کسانی است که میخواهند بدون وابستگی به موتورهای آماده، بازیسازی را از صفر و در لایه سختافزار تجربه کنند. پس از گذشت ۸ سال از ویرایش اول، این نسخه با حذف خطاهای پیشین، بهروزرسانی ابزارها و انتقال به استانداردهای مدرنتر گرافیکی نگارش شده است.
اگر میخواهید تفکر مهندسی خود را در حوزه بازیسازی تقویت کنید و کدهایی بنویسید که مستقیماً با پردازنده گرافیکی (GPU) ارتباط برقرار کنند، این کتاب بهترین نقطه شروع است. دلایل کلیدی برای مطالعه این کتاب عبارتند از:
مهاجرت به فناوری OpenGLES 3.1: در این ویرایش، استفاده از نسخه قدیمی OpenGLES 2.0 به شدت کاهش یافته و تمرکز اصلی بر روی ماشینهای قدرتمندتر با قابلیت پشتیبانی از OpenGLES 3.x معطوف شده است که به شما امکان میدهد کارهای گرافیکی سه بعدی (3D)، رندرینگ متن و UI را بسیار راحتتر و با فشار کمتر بر روی CPU انجام دهید.
پشتیبانی دوگانه از رزبری پای و ویندوز: اگرچه هدف اصلی و پایه کتاب سختافزارهای Raspberry Pi 4B ،400 و نسخه قدرتمند Raspberry Pi 5 است، اما تمام کدهای کتاب به لطف کتابخانه محبوب GLFW، روی سیستمعامل Windows و توزیعهای دسکتاپ لینوکس (مانند اوبونتو و دبیان) نیز قابل اجرا و شبیهسازی هستند.
انیمیشنها و مدلهای سه بعدی مدرن: کتاب از سیستمهای قدیمی و منسوخشده MD2/3 فاصله گرفته و شما را وارد دنیای پیچیدهتر و جذابتر سیستمهای ریگبندی شده (Rigged Systems) و استانداردهای مدرن انیمیشن مانند FBX و DAE میکند.
بهینهسازی واقعی عملکرد: نویسنده در بخشهای مکمل آنلاین کتاب، پروژههای نیمهکاره و بهینهنشده را کالبدشکافی کرده و با تغییر ساختار پروژه، راههای عملی جلوگیری از هدررفت حافظه و افزایش چشمگیر نرخ فریم (FPS) را آموزش میدهد.
در ویرایش اول کتاب، ابزار VisualGDB به عنوان گزینهی اصلی معرفی شده بود؛ اما در ویرایش دوم، از ابزار رایگان و قدرتمند مایکروسافت یعنی Visual Studio for Linux (VS4L) استفاده شده است. این ابزار به شما اجازه میدهد پروژه خود را در محیط ویندوز کدنویسی کنید، اما کامپایل و اجرای آن را به صورت مستقیم روی رزبری پای (لینوکس) از طریق تپچینهای کراسپلتفرم انجام دهید. همچنین این ابزار به ساخت نسخه استاندارد ویندوزی از پروژهها نیز کمک میکند.
کلمات کلیدی:برنامه نویسی در این کتاب بر پایه هسته اصلی زبان C++ و استفاده از استاندارد C++17 (جهت سازگاری با کتابخانه ریاضی گرافیکی GLM) استوار است و آگاهانه از درگیر شدن در پیچیدگیهای بیش از حد ویژگیهای پیشرفته C++ دوری میکند تا تمرکز شما بر منطق بازیسازی حفظ شود.
با بهروزرسانی سیستمعاملهای رزبری پای (نسخههای Bullseye و Bookworm)، سیستم نمایش پیشفرض لینوکس از Xorg به سمت Wayland حرکت کرده است. از آنجایی که Wayland چالشهای جدیدی برای کامپایل کدهای گرافیکی مستقیم ایجاد میکند، این کتاب از شما میخواهد که از طریق تنظیمات رزبری پای (raspi-config)، سیستم نمایش خود را روی Xorg/X11 تنظیم کنید تا کدهای گرافیکی بدون مشکل اجرا شوند (هرچند راهحلهای Wayland نیز در سایت پشتیبان کتاب بهروزرسانی میشوند).
دانشجویان و برنامهنویسان تازهکار C++: افرادی که مفاهیم اولیه این زبان را میدانند و میخواهند کاربرد عملی آن را در یک حوزه جذاب مانند بازیسازی یاد بگیرند.
توسعهدهندگان سیستمهای امبدد و SBCها: کسانی که علاقهمند به استخراج رندرهای گرافیکی شگفتانگیز از بردهای رزبری پای هستند.
بازیسازانی که میخواهند فراتر از موتورها بروند: مهندسانی که تمایل دارند نحوه مدیریت بافتهای فشرده (Compressed Textures)، مدیریت حافظه GPU و معماری داخلی موتورهای بازی را درک کنند.
(نکته: اگر کاملاً در C++ تازه کار هستید، نویسنده پیشنهاد میکند ابتدا کتاب Beginning C++ Through Game Programming نوشته مایکل داوسون را به عنوان پیشنیاز مطالعه کنید).
نمونه چاپ کتاب موجود نیست.
نظرات کاربران (0)