وبلاگ بلیان

Multiplayer Game Programming: Architecting Networked Games (Game Design)

معرفی کتاب «Multiplayer Game Programming: Architecting Networked Games (Game Design)» نوشتهٔ Josh Glazer و Sanjay Madhav، منتشرشده توسط نشر Addison-Wesley Professional در سال 2015. این کتاب در 384 صفحه، فرمت pdf، زبان انگلیسی ارائه شده است. «Multiplayer Game Programming: Architecting Networked Games (Game Design)» در دستهٔ برنامه‌نویسی قرار دارد.

بازار بازی‌های مولتی‌پلیر امروزه به کسب‌وکاری چندمیلیارد دلاری تبدیل شده و برخی عناوین، ده‌ها میلیون بازیکن را به خود جذب می‌کنند. کتاب «Multiplayer Game Programming: Architecting Networked Games» نوشتهٔ جاشوا گلیزر و سنجی مدهو، راهنمایی عملی و سرشار از کد برای توسعه‌دهندگانی است که می‌خواهند معماری شبکه‌ای بازی‌های خود را از پایه و به شکلی حرفه‌ای طراحی کنند. این مرجع ارزشمند از انتشارات Addison-Wesley Professional، با تکیه بر تجربهٔ عمیق نویسندگان در صنعت بازی و تدریس در دانشگاه کالیفرنیای جنوبی (USC)، شما را در مسیر خلق سیستم‌های شبکه‌ای مقیاس‌پذیر و قابل‌اعتماد همراهی می‌کند.

دربارهٔ کتاب —

کتاب «Multiplayer Game Programming» رویکردی کاملاً عملی و مبتنی بر کد دارد و خواننده را با چالش‌های مهندسی یک بازی مولتی‌پلیر آشنا می‌سازد. نویسندگان با مرور مفاهیم اساسی شبکه و برنامه‌نویسی شبکه از دیدگاه یک توسعه‌دهندهٔ بازی آغاز می‌کنند و سپس به موضوعات پیشرفته‌تری مانند مدیریت انتقال داده، به‌روزرسانی اشیاء بازی در سراسر شبکه، و سازماندهی دستگاه‌های متصل به بازی می‌پردازند. یکی از نقاط قوت اصلی این کتاب، ارائهٔ مثال‌های کد کامل برای دو بازی نمونه است: یک بازی اکشن و یک بازی استراتژی هم‌زمان (RTS) که به مخاطب امکان می‌دهد مفاهیم را در عمل مشاهده کند. رویکرد نویسندگان در این کتاب، از لایه‌های پایین‌تر شبکه‌های مبتنی بر پروتکل اینترنت و کار با سوکت‌های برکلی شروع شده و تا مباحث سطح‌بالاتری مانند میزبانی سرور در فضای ابری و استفاده از قابلیت‌های شبکه‌ای موتورهای بازیسازی مشهوری همچون Unreal 4 و Unity ادامه می‌یابد. همچنین به مباحث حیاتی همچون غلبه بر مشکلات تأخیر و نوسان شبکه، مقیاس‌پذیری، امنیت در برابر تقلب، و پیاده‌سازی خدماتی مانند هم‌یابی بازیکنان (Matchmaking) و جدول امتیازات پرداخته شده است. محتوای این کتاب حاصل تجربهٔ تدریس نویسندگان در دوره‌های برنامه‌نویسی بازی‌های مولتی‌پلیر در دانشگاه USC بوده و به‌عنوان منبعی بی‌نظیر هم برای دانشجویان و هم برای برنامه‌نویسان شاغل در این حوزه توصیه می‌شود.

دربارهٔ نویسنده

جاشوا گلیزر، یکی از بنیان‌گذاران و مدیر ارشد فناوری استودیوی بازیسازی Naked Sky Entertainment است و سابقهٔ همکاری و مشاوره با شرکت‌های بزرگی همچون Epic Games (بر روی موتور Unreal)، Riot Games (برای بازی League of Legends) و THQ را در کارنامه دارد. او همچنین به‌عنوان مدرس پاره‌وقت در دانشگاه کالیفرنیای جنوبی (USC) به تدریس دوره‌های برنامه‌نویسی بازی‌های مولتی‌پلیر می‌پردازد. سنجی مدهو، نویسندهٔ دیگر کتاب، مدرس ارشد دانشگاه USC است و از سال ۲۰۰۸ دوره‌های متعددی در زمینهٔ برنامه‌نویسی بازی و موتورهای بازی را تدریس کرده است. او پیش از این به‌عنوان برنامه‌نویس در شرکت‌های معتبری چون Electronic Arts، Neversoft و Pandemic Studios فعالیت داشته و روی عناوین شناخته‌شده‌ای مانند Medal of Honor: Pacific Assault و The Saboteur کار کرده است. مدهو همچنین نویسندهٔ کتاب دیگری با عنوان «Game Programming Algorithms and Techniques» نیز هست.

چرا باید «Multiplayer Game Programming» را بخوانید؟

  • مرجعی جامع و عملی: این کتاب صرفاً به مباحث تئوری نمی‌پردازد، بلکه با ارائهٔ کدهای اجرایی و مثال‌های کامل، دانش فنی لازم برای پیاده‌سازی سیستم‌های شبکه‌ای یک بازی را در اختیار شما قرار می‌دهد.
  • آموزش گام‌به‌گام و ساختاریافته: محتوای کتاب از مفاهیم پایه‌ای شبکه تا مباحث پیشرفته‌ای چون معماری سرویس‌های ابری را در بر می‌گیرد و به‌گونه‌ای طراحی شده که مخاطب را در یک مسیر یادگیری منسجم هدایت کند.
  • ارائهٔ راهکار برای چالش‌های دنیای واقعی: موضوعاتی همچون مقابله با تأخیر، از دست رفتن بسته‌های داده، امنیت در برابر تقلب‌های نرم‌افزاری و مقیاس‌پذیری بازی‌های بزرگ، از مهم‌ترین دغدغه‌های توسعه‌دهندگان است که در این کتاب به آن‌ها پرداخته شده است.
  • استفاده از تجربهٔ صنعتی و آموزشی: نویسندگان با بهره‌گیری از سال‌ها تجربهٔ خود در صنعت بازی‌سازی و تدریس در دانشگاه، محتوایی را ارائه داده‌اند که هم از اعتبار علمی و هم از کاربرد صنعتی بالایی برخوردار است.
  • همراه با پروژه‌های تکمیلی و کدهای منبع: کدهای منبع سی‌پلاس‌پلاس تمام مثال‌های کتاب به‌صورت آنلاین در دسترس است و مدرسان نیز می‌توانند از اسلایدهای ارائه و برنامهٔ درسی نمونه برای تدریس استفاده کنند.

این کتاب برای چه کسانی مناسب است؟

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

سوالات متداول

آیا این کتاب برای برنامه‌نویسانی که با زبان سی‌شارپ کار می‌کنند نیز مفید است؟

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

آیا این کتاب صرفاً بر روی مباحث شبکهٔ سطح پایین تمرکز دارد؟

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

آیا برای درک مطلب این کتاب، به تجربهٔ قبلی در ساخت بازی‌های شبکه‌ای نیاز است؟

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

**The Practical Guide to Building Reliable Networked Multiplayer Games** Networked multiplayer games are a multibillion dollar business: some games now attract tens of millions of players. In this practical, code-rich guide, Joshua Glazer and Sanjay Madhav guide you through every aspect of engineering them. Drawing on their immense experience as both game developers and instructors, the authors lead you through building a robust multiplayer architecture, and creating every engine-level system. You’ll learn through in-depth working code examples for two complete games: an action game and a real time strategy (RTS) game. First, Madhav and Glazer review the essentials of networking and network programming from the standpoint of game developers. Next, they walk through managing game data transmission, updating game objects across the network, and organizing the devices that join your game. You’ll learn how to ensure reliable performance despite the Internet’s inherent inconsistencies, and how to design game code for maximum security and scalability. The authors conclude by addressing two increasingly crucial issues: incorporating gamer services and hosting your games in the cloud. This guide’s content has been extensively tested through the authors’ multiplayer game programming courses at USC. It is equally valuable both to students __and__ to working game programmers moving into networked games. Coverage includes * How games have evolved to meet the challenges of networked environments * Using Internet communication protocols and standards in game development * Working with Berkeley Socket, the most widely used networking construct in multiplayer gaming * Formatting game data for efficient Internet transmission * Synchronizing states so all players share the same world * Organizing networking topologies for large-scale games * Overcoming latency and jitter problems that cause delays or lost data * Scaling games without compromising performance * Combating security vulnerabilities and software cheats * Leveraging the networking functionality of the popular Unreal 4 and Unity game engines * Integrating gamer services such as matchmaking, achievements, and leaderboards * Running game servers in the cloud **About the Website** C++ source code for all examples is available at **__github.com/MultiplayerBook__** . Instructors will also find a full set of PowerPoint slides and a sample syllabus. Multiplayer Game Programming is a detailed investigation of networked multiplayer game engineering. A guided tour through the trials and challenges of building a robust multiplayer architecture, this book provides explanations and in-depth working examples of all the engine-level systems needed in a multiplayer game.
دانلود کتاب Multiplayer Game Programming: Architecting Networked Games (Game Design)