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

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

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.

Author(s): Victor G Brusca
Edition: 1
Publisher: Apress
Year: 2021

Language: English
Pages: 382
Tags: java 15 java2d 2d game android engine

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