Introduction to video game engine development.$nBrusca,$pimplement, and use a cross-platform 2D game engine : learn to design, implement, and use a cross-platform 2D game engine
معرفی کتاب «Introduction to video game engine development.$nBrusca,$pimplement, and use a cross-platform 2D game engine : learn to design, implement, and use a cross-platform 2D game engine» نوشتهٔ Victor G Brusca، منتشرشده توسط نشر Apress : Imprint: Apress در سال 2021. این کتاب در 382 صفحه، فرمت pdf، زبان انگلیسی ارائه شده است. «Introduction to video game engine development.$nBrusca,$pimplement, and use a cross-platform 2D game engine : learn to design, implement, and use a cross-platform 2D game engine» در دستهٔ برنامهنویسی قرار دارد.
کتاب «Introduction to Video Game Engine Development» نوشتهٔ ویکتور جی. بروسکا (Victor G. Brusca) راهنمایی جامع و گامبهگام برای طراحی و پیادهسازی یک موتور بازی دوبعدی (2D) از صفر است. این کتاب با تکیه بر دو زبان برنامهنویسی جاوا و سیشارپ، به شما نشان میدهد که چگونه با درک عمیق از سطوح پایین و بالای یک موتور بازی، بنیانی محکم برای ساخت بازیهای خود فراهم کنید. اگر به دنبال درک واقعی از نحوهٔ کارکرد موتورهای بازی و ساختار آنها هستید، این منبع میتواند نقطهٔ شروعی ایدهآل برای شما باشد.
دربارهٔ کتاب —
کتاب «Introduction to Video Game Engine Development» که در سال ۲۰۲۱ توسط انتشارات Apress منتشر شده، به عنوان یک دورهٔ آموزشی عملی برای ساخت موتور بازی دوبعدی شناخته میشود. رویکرد منحصربهفرد این کتاب در آن است که شما را با دو مسیر یادگیری موازی روبرو میکند: یکی با استفاده از زبان جاوا و محیط توسعهٔ NetBeans به همراه فریمورک گرافیکی جاوا، و دیگری با زبان سیشارپ، محیط Visual Studio و فریمورک مونوگیم (MonoGame). این کتاب در سه بخش اصلی سازماندهی شده است و هر بخش به لایهای از موتور بازی میپردازد. بخش نخست به معرفی دقیق و کلاسبهکلاس رابط برنامهنویسی سطح پایین (Low-Level API) اختصاص دارد و مباحثی همچون ترسیم اشیاء، پخش صدا و رندر متن را پوشش میدهد. در بخش دوم، با رابط برنامهنویسی سطح میانی (Mid-Level API) آشنا میشوید که وظایفی مانند بارگذاری منابع، مدیریت ورودی کاربر و ترسیم صحنهٔ بازی را بر عهده دارد. در نهایت، بخش سوم کتاب شما را در ساخت یک بازی کامل، یعنی پیادهسازی یک نسخهٔ کلون از بازی «پونگ» (PongClone)، به صورت گامبهگام راهنمایی میکند تا با استفاده از موتوری که ساختهاید، یک بازی کامل را از پایه پیادهسازی کنید. این ساختار لایهلایه و عملی، کتاب را به منبعی استثنایی برای درک فرآیند توسعهٔ موتور بازی تبدیل کرده است.
دربارهٔ نویسنده
ویکتور جی. بروسکا (Victor G. Brusca) یک توسعهدهندهٔ نرمافزار با بیش از چهارده سال تجربه در ساخت برنامههای کاربردی و رابطهای برنامهنویسی چندسکویی (Cross-Platform) است. تخصص اصلی او در زمینهٔ توسعهٔ بازی و موتور بازی بر روی پلتفرمهای گوناگونی همچون جاوا، اندروید، آیاواس، ایکسباکس ۳۶۰، ویندوز فون و وب بوده است. او که به نگارش کدهای مستند و منظم شهرت دارد، پیش از این نیز کتابی با عنوان «مقدمهای بر جاوا از طریق توسعهٔ بازی» (Introduction to Java Through Game Development) تألیف کرده و تجربیات عملی خود را در اختیار برنامهنویسان قرار داده است. آثار او با هدف پر کردن شکاف بین تئوری و عمل در زمینهٔ توسعهٔ بازی نوشته میشوند.
چرا باید «Introduction to Video Game Engine Development» را بخوانید؟
آموزش عملی و پروژهمحور: با مطالعهٔ این کتاب، تنها تئوری نمیآموزید، بلکه با پیادهسازی یک موتور بازی کامل و سپس ساخت یک بازی با آن، تجربهای دست اول کسب میکنید.
آشنایی با معماری لایهای موتور بازی: کتاب با تفکیک دقیق لایههای مختلف یک موتور بازی، درک عمیقی از نحوهٔ تعامل کلاسها و مسئولیتهای هر بخش به شما میدهد.
یادگیری دو زبان با یک کتاب: امکان دنبال کردن مثالها با جاوا یا سیشارپ، این کتاب را به منبعی منعطف برای طیف وسیعی از برنامهنویسان تبدیل کرده است.
ایجاد پایهای محکم برای کار با موتورهای پیشرفته: درک مفاهیم بنیادین ارائهشده در این کتاب، شما را برای کار با موتورهای قدرتمندتر و حرفهایتر مانند یونیتی (Unity) و آنریل (Unreal) آماده میسازد.
پوشش کامل چرخهٔ توسعه: از طراحی کلاسهای سطح پایین گرفته تا مدیریت ورودی، بارگذاری منابع و در نهایت ساخت بازی، تمام مراحل کلیدی در این کتاب پوشش داده شده است.
این کتاب برای چه کسانی مناسب است؟
این کتاب برای برنامهنویسانی با سطوح متوسط تا پیشرفته طراحی شده است که به دنبال درک عمیق از نحوهٔ ساخت و کارکرد موتورهای بازی هستند. اگر با اصول برنامهنویسی شیءگرا آشنا هستید و میخواهید دانش خود را وارد حوزهٔ چالشبرانگیز و جذاب توسعهٔ بازی کنید، این کتاب راهنمایی کامل برای شماست. همچنین برای توسعهدهندگانی که با موتورهای بازی کار کردهاند اما از نحوهٔ پیادهسازی داخلی آنها بیخبرند، فرصتی عالی برای کندوکاو در لایههای زیرین و معماری این سیستمها فراهم میآورد.
سوالات متداول
آیا برای مطالعهٔ این کتاب به پیشزمینهٔ خاصی در زمینهٔ گرافیک یا بازیسازی نیاز است؟
پیشنیاز اصلی این کتاب، آشنایی با مبانی برنامهنویسی و مفاهیم شیءگرا است. شما نیازی به دانش قبلی در زمینهٔ گرافیک یا موتورهای بازی ندارید، زیرا کتاب تمام مفاهیم پایهای را از صفر توضیح میدهد. با این حال، انتخاب یکی از دو زبان جاوا یا سیشارپ و آشنایی اولیه با آن، به شدت به درک بهتر مطالب کمک میکند.
آیا مثالهای کتاب به صورت کامل در دسترس هستند؟
بله، ساختار کتاب به گونهای است که با مرور کلاسها و کدهای نمایشی، شما را در طول فرایند ساخت موتور و بازی همراهی میکند. تمامی کدهای مثال و پروژههای تکمیلی را میتوانید در منابع همراه کتاب بیابید و به صورت عملی با آنها کار کنید.
تفاوت این کتاب با کتابهای مشابه در چیست؟
تمرکز اصلی این کتاب بر ساخت یک موتور بازی دوبعدی از ابتدا و با رویکردی آموزشی و لایهلایه است، در حالی که بسیاری از کتابهای دیگر مستقیماً به آموزش کار با موتورهای آماده میپردازند. همچنین ارائهٔ مثالها به دو زبان جاوا و سیشارپ، انعطافپذیری بالایی به مخاطب میدهد و آن را از بسیاری آثار مشابه متمایز میکند.
Start your video game development journey by learning how to build a 2D game engine from scratch. Using Java (with NetBeans as your IDE and using Java’s graphics framework) or by following along in C# (with Visual Studio as your IDE and using the MonoGame framework), you’ll cover the design and implementation of a 2D game engine in detail. Each class will be reviewed with demonstration code. You’ll gain experience using the engine by building a game from the ground up. -------------- Introduction to Video Game Engine Development reviews the design and implementation of a 2D game engine in three parts. Part 1 covers the low-level API class by class. You’ll see how to abstract lower-level functionality and design a set of classes that interact seamlessly with each other. You’ll learn how to draw objects, play sounds, render text, and more. In Part 2, you’ll review the mid-level API that is responsible for drawing the game, loading resources, and managing user input. Lastly, in Part 3, you’ll build a game from the ground up following a step-by-step process using the 2D game engine you just reviewed. -------------------- On completing this book, you’ll have a solid foundation in video game engine design and implementation. You’ll also get exposure to building games from scratch, creating the solid foundation you’ll need to work with more advanced game engines, and industry tools, that require learning complex software, APIs, and IDEs. --------------------- What You Will Learn - Gain experience with lower-level game engine APIs and abstracting framework functionality - Write application-level APIs: launching the game, loading resources, settings, processing input, and more - Discover cross-platform APIs in the game engine projects written in both Java and C#/MonoGame - Develop games with an SDK-based game engine and simplified tool chain focused on direct control of the game through code - Master creating games by using the game engine to build a game from the ground up with only code and an IDE --------------------------- Who This Book Is For Those of you out there with some programming experience, moderate to advanced, who want to learn how to write video games using modern game engine designs. ------------------- Victor Brusca is an experienced software developer specializing in building cross-platform applications and APIs. He regards himself as a self-starter with a keen eye for detail, an obsessive protection of systems/data, and a desire to write well-documented, well-encapsulated code. With over 14 years' software development experience, he has been involved in game and game engine projects on J2ME, T-Mobile SideKick, WebOS, Windows Phone, Xbox 360, Android, iOS, and web platforms. Table of Contents About the Author About the Technical Reviewer Acknowledgments Introduction Part 1 Chapter 1: MmgBase API Introduction Game Engine SDK Overview Packages/Namespaces Base Classes Helper Classes Advanced Classes Widget Classes Screen Classes Animation Classes Other Classes Setting Up Your Environment Installing the NetBeans IDE Installing the Visual Studio IDE Chapter 2: Base Classes Base Classes: MmgObj Class Fields Support Method Details Main Method Details Demonstration: MmgObj Class Base Classes: MmgColor Static Class Members Class Fields Support Method Details Main Method Details Demonstration: MmgColor Class Base Classes: MmgRect Static Class Members Class Fields Support Method Details Main Method Details Demonstration: MmgRect Class Base Classes: MmgFont Enumerations Class Fields Support Method Details Main Method Details Demonstration: MmgFont Class Base Classes: MmgSound Static Class Members Class Fields Support Method Details Main Method Details Demonstration: MmgSound Class Base Classes: MmgPen Static Class Members Class Fields Support Method Details Main Method Details Demonstration: MmgPen Class Base Classes: MmgVector2 Static Class Members Class Fields Support Method Details Main Method Details Demonstration: MmgVector2 Class Base Classes: MmgBmp Static Class Members Enumerations Class Fields Support Method Details Main Method Details Demonstration: MmgBmp Class Chapter Conclusion Chapter 3: Helper Classes Helper Classes: MmgApiUtils Static Class Members Demonstration: MmgApiUtils Class Helper Classes: MmgHelper Static Class Members Demonstration: MmgHelper Class Helper Classes: MmgScreenData Static Class Members Enumerations Main Method Details Demonstration: MmgScreenData Class Helper Classes: MmgFontData Static Class Members Main Method Details Demonstration: MmgFontData Class Helper Classes: MmgDebug Static Class Members Helper Classes: MmgBmpScaler Static Class Members Demonstration: MmgBmpScaler Class Helper Classes: MmgMediaTracker Static Class Members Demonstration: MmgMediaTracker Class Chapter Conclusion Chapter 4: Other Classes Other Classes: MmgCfgFileEntry Enumerations Class Fields Support Method Details Main Method Details Demonstration: MmgCfgFileEntry Class Other Classes: MmgEvent Static Class Members Class Fields Support Method Details Main Method Details Demonstration: MmgEvent Class Other Classes: MmgEventHandler Class Review Demonstration: MmgEventHandler Class Chapter Conclusion Chapter 5: Advanced Classes Advanced Classes: Mmg9Slice Class Fields Support Method Details Main Method Details Demonstration: Mmg9Slice Class Advanced Classes: MmgContainer Static Class Member Enumerations Class Fields Support Method Details Main Method Details Demonstration: MmgContainer Class Advanced Classes: MmgLabelValuePair Static Cass Members Class Fields Support Method Details Main Method Details Demonstration: MmgLabelValuePair Class Advanced Classes: MmgLoadingBar Class Fields Support Method Details Main Method Details Demonstration: MmgLoadingBar Class Advanced Classes: MmgSprite Static Class Members Class Fields Support Method Details Main Method Details Demonstration: MmgSprite Class Advanced Classes: MmgDrawableBmpSet Class Fields Demonstration: MmgDrawableBmpSet Class Chapter Conclusion Chapter 6: Widget Classes Widget Classes: MmgTextField Static Class Members Class Fields Support Method Details Main Method Details Demonstration: MmgTextField Class Widget Classes: MmgTextBlock Static Class Members Class Fields Support Method Details Demonstration: MmgTextBlock Class Widget Classes: Scroll Pane Classes Static Class Members Class Fields Support Method Details Main Method Details Demonstration: MmgScrollHor Class Widget Classes: MmgMenuContainer Class Fields Support Method Details Main Method Details Demonstration: MmgMenuContainer Class Widget Classes: MmgMenuItem Static Class Members Class Fields Support Method Details Main Method Details Demonstration: MmgMenuItem Class Chapter Conclusion Chapter 7: Animation Classes Animation Classes: MmgPulse Class Fields Support Method Details Main Method Details Demonstration: MmgPulse Class Animation Classes: MmgPositionTween/MmgSizeTween Static Class Members Class Fields Support Method Details Main Method Details Demonstration: MmgPositionTween Class Chapter Conclusion Chapter 8: Game Screen Classes Game Screen Classes: MmgSplashScreen Static Class Members Class Fields Support Method Details Main Method Details Demonstration: MmgSplashScreen Class Demo Review: Static Class Members Demo Review: Class Fields Demo Review: Support Method Details Demo Review: Main Method Details Game Screen Classes: MmgLoadingScreen Class Fields Support Method Details Main Method Details Demonstration: MmgLoadingScreen Class Demo Review: Static Class Members Demo Review: Class Fields Demo Review: Support Method Details Demo Review: Main Method Details Game Screen Classes: MmgGameScreen Class Fields Support Method Details Input Method Details Main Method Details Demonstration: MmgGameScreen Class Chapter Conclusion Part 2 Chapter 9: MmgCore API Introduction Runtime API Overview Game Engine Settings Game Resource Loading Classes Game Screens/Worker Threads Static Entry Point/Windowing Classes Chapter 10: Static Main Entry Point Static Main Entry Point: MmgApiGame Static Class Members In Depth: MmgApiGame Static Main Entry Point: MainFrame Class Fields Support Method Details Main Method Details In Depth: MainFrame Static Main Entry Point: GamePanel Static Class Members Enumerations Class Fields Support Method Details Input Method Details Main Method Details In Depth: GamePanel Topic: Launching a Game Launching a Game: Java Execute the Default Static Main Execute the Default Static Main with Arguments Execute the Default Static Main with Native Lib Path and Arguments Execute Target Static Main with Arguments Execute Central Main with Target Main and Args All MmgCentralMain Execution Commands Launching a Game: C# Execute the Default Static Main Execute the Default Static Main with Arguments Execute Central Main with MmgTestScreens and Args Execute Central Main with MmgApiGame and Args All MmgCentralMain Execution Commands Chapter Conclusion Chapter 11: Dynamic Settings Dynamic Settings: DatConstantsEntry Class Fields Main Method Details In Depth: DatConstantsEntry Dynamic Settings: GameSettingsImporter Class Fields Support Method Details Main Method Details Demonstration: GameSettingsImporter Class Dynamic Settings: DatExternalStrings Static Class Members Demonstration: DatExternalStrings Class Dynamic Settings: GameSettings Static Class Members Demonstration: GameSettings Class Chapter Conclusion Chapter 12: Event Handlers Event Handlers: GenericEventMessage Class Fields Support Method Details Main Method Details Demonstration: GenericEventMessage Class Event Handlers: GenericEventHandler Demonstration: GenericEventHandler Class Event Handlers: LoadResourceUpdateMessage Class Fields Support Method Details Main Method Details Demonstration: LoadResourceUpdateMessage Class Event Handlers: LoadResourceUpdateHandler Demonstration: LoadResourceUpdateHandler Class Event Handlers: HandleMainMenuEvent Static Class Members Class Fields Main Method Details Demonstration: HandleMainMenuEvent Class Chapter Conclusion Chapter 13: Resource Loading Resource Loading: RunResourceLoad Class Fields Support Method Details Main Method Details Demonstration: RunResourceLoad Class Topic: Accessing Explicit Resources Topic: Accessing Auto Load Resources Topic: Accessing Game-Specific Resources Chapter Conclusion Chapter 14: Game Screens Game Screens: RunFrameRate Static Class Members Class Fields Support Method Details Main Method Details Demonstration: RunFrameRate Class Game Screens: ScreenSplash Static Class Members Class Fields Support Method Details Main Method Details Demonstration: ScreenSplash Class Game Screens: ScreenLoading Static Class Members Class Fields Support Method Details Main Method Details Demonstration: ScreenLoading Class Game Screens: ScreenMainMenu Class Fields Support Method Details Main Method Details Demonstration: ScreenMainMenu Class Game Screens: Screen Class Fields Support Method Details Main Method Details Demonstration: Screen Class Chapter Conclusion Part 3 Chapter 15: Game Build Introduction PongClone Game Outline PongClone General Game Specifications DungeonTrap Game Outline DungeonTrap General Game Specifications Game Resources Chapter 16: PongClone Project Setup Setting Up a New Project: Java/NetBeans IDE Setting Up a New Project: C#/Visual Studio IDE Setting Up Core Code: C# and Java Chapter 17: PongClone Main Menu Screen PongClone: ScreenMainMenu Code Review Chapter 18: PongClone Game Screen PongClone: ScreenGame Class Header and Fields PongClone: ScreenGame Support Methods PongClone: ScreenGame Input Methods PongClone: ScreenGame Main Methods PongClone: Register ScreenGame Chapter 19: Conclusion Accomplishments Acknowledgments Where You Go From Here Add to the PongClone Game Add to the DungeonTrap Game Add to the Game Engine API Learn Cross-Platform Coding Build More Games and Have Fun Saying Goodbye Index