ENGLISH

Introduction to Video Game Engine Development - Learn to Design, Implement, and Use a Cross-Platform 2D Game Engine

Book information

Publisher
Apress
Year
2021
ISBN
9781484270387, 9781484270394
Language
english
Format
PDF
Filesize
5 MB (5004235 bytes)
Edition
1
Pages
382\391
Time added
2021-06-11 19:19:03

Description

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

Similar books

Session C11: Ancient Cultural Landscapes in South Europe – their Ecological Setting and Evolution, Session C22: Gardeners from South America, Session S04: Agro-Pastoralism and Early Metallurgy Sessions, Session WS29: The Idea of Enclosure in Recent Iberian Prehistory, Session C88: Rhytmes et causalites des dynamiques de l'anthropisation en Europe entre 6500 ET 500 BC: Hypotheses socio-culturelles et/ou climatiques: Proceedings of the XV UISPP World Congress (Lisbon 4-9 September 2006) / Actes du XV Congrès Mondial (Lisbonne 4-9 Septembre 2006) Vol.36

Session C11: Ancient Cultural Landscapes in South Europe – their Ecological Setting and Evolution, Session C22: Gardeners from South America, Session S04: Agro-Pastoralism and Early Metallurgy Sessions, Session WS29: The Idea of Enclosure in Recent Iberian Prehistory, Session C88: Rhytmes et causalites des dynamiques de l'anthropisation en Europe entre 6500 ET 500 BC: Hypotheses socio-culturelles et/ou climatiques: Proceedings of the XV UISPP World Congress (Lisbon 4-9 September 2006) / Actes du XV Congrès Mondial (Lisbonne 4-9 Septembre 2006) Vol.36

2010 · PDF

THE BRITISH ARMY IN INDIA: ITS PRESERVATION BY AN APPROPRIATE CLOTHING, HOUSING, LOCATING, RECREATIVE EMPLOYMENT, AND HOPEFUL ENCOURAGEMENT OF THE TROOPS. with AN APPENDIX ON INDIA : THE CLIMATE OP ITS HILLS ; THE DEVELOPMENT OF ITS RESODRCBS, INDUSTRY, AND ARTS ; THE ADMINISTRATION OF JUSTICE ; THE BLACK ACT ; THE PROGRESS OF CHRISTIANITY ; THE TRAFFIC IN OPIUM ; THE VALUE OF INDIA ; PERMANENT CAUSES OF DISAFFECTION, AND OF THE RECENT REBELLION ; THE TRADITIONARY POLICY; MISGOVERNMENT BY NATIVE RULERS ; ANNEXATIONS OF THEIR TERRITORY, ETC.

THE BRITISH ARMY IN INDIA: ITS PRESERVATION BY AN APPROPRIATE CLOTHING, HOUSING, LOCATING, RECREATIVE EMPLOYMENT, AND HOPEFUL ENCOURAGEMENT OF THE TROOPS. with AN APPENDIX ON INDIA : THE CLIMATE OP ITS HILLS ; THE DEVELOPMENT OF ITS RESODRCBS, INDUSTRY, AND ARTS ; THE ADMINISTRATION OF JUSTICE ; THE BLACK ACT ; THE PROGRESS OF CHRISTIANITY ; THE TRAFFIC IN OPIUM ; THE VALUE OF INDIA ; PERMANENT CAUSES OF DISAFFECTION, AND OF THE RECENT REBELLION ; THE TRADITIONARY POLICY; MISGOVERNMENT BY NATIVE RULERS ; ANNEXATIONS OF THEIR TERRITORY, ETC.

1858 · PDF