Victor G Brusca
Introduction to Video Game Engine Development
Learn to Design, Implement, and Use a Cross-Platform 2D Game Engine
1st ed.
Logo of the publisher
Victor G Brusca
Edison, NJ, USA
Any source code or other supplementary material referenced by the author in this book is available to readers on GitHub via the books product page, located at www.apress.com/978-1-4842-7038-7. For more detailed information, please visit http://www.apress.com/source-code.
ISBN 978-1-4842-7038-7 e-ISBN 978-1-4842-7039-4
https://doi.org/10.1007/978-1-4842-7039-4
Victor G Brusca 2021
Standard Apress
Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights.
The publisher, the authors and the editors are safe to assume that the advice and information in this book are believed to be true and accurate at the date of publication. Neither the publisher nor the authors or the editors give a warranty, express or implied, with respect to the material contained herein or for any errors or omissions that may have been made. The publisher remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
This Apress imprint is published by the registered company APress Media, LLC part of Springer Nature.
The registered company address is: 1 New York Plaza, New York, NY 10004, U.S.A.
To Mamamama and Papi. I love you both very much.
Introduction
This book is, first and foremost, about the design and development of a 2D game engine. The examples and code presented in this text are from the Java implementation of the game engine, but this book includes functionally equivalent implementations of the engine written in both Java and C#. The API-level code is very similar between the two programming languages, so it should be very easy to follow along in C# if you should desire to do so.
This book will cover, at the class level, each piece of the game engine along with explanations and demonstrations. As you review the code through this text, youll begin to see the structure of the design patterns that power the engine. These patterns, or interactions of classes, are what give the game engine life. Its what makes the software an engine as opposed to an implementation of a game.
This book is broken down into three parts. Part 1 of the text, Chapters , we dive into the application-level code. We review, again class by class, the code responsible for loading resources, game settings, preparing the games window and drawing surfaces, and mapping user input from different input sources. Finally, in Part 3, we apply what weve learned and build games from the ground up using only the code weve reviewed in this text and an IDE (Integrated Development Environment).
The game development world is a large and complex place. If youre interested in building the next great games, then you need experience working with advanced game development tools. Learning these tools can be a daunting task to say the least. Youll have to learn at least two complex pieces of software, at least one intricate API, and at least one programming language.
This book is designed to give you experience building and working with game engines, at the code level, by providing an example implementation to review in detail. This book will give you experience working with IDEs (Integrated Development Environments), complex cross-platform APIs (Game engine APIs in Java and C#), game engine design patterns, and building games using the game engine introduced in the text. By the end of this book, youll be able to make your own games directly in code, and youll be poised to take on the next challenges in your game development career.
Acknowledgments
Id like to take the time to acknowledge my wife, Katia, for putting up with me writing and coding at my desk for days on end. Love you, bbg:-*.
Table of Contents
Part 1: .
Part 2:
Part 3: .
About the Author
Victor G 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 of 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.
About the Technical Reviewer
Prasanth Sahoo
is a thought leader, an adjunct professor, a technical speaker, and a full-time practitioner in Blockchain, Cloud, and Scrum working for PDI Software. He was awarded the Blockchain and Cloud Expert of the Year Award 2019 from TCS Global Community for his knowledge share within academic services to the community. He is passionate about driving digital technology initiatives by handling various community initiatives through coaching, mentoring, and grooming techniques.
Prasanth has a patent under his name, and to date, he has interacted reaching over 50,000 professionals, mostly within the technical domain. He is a working group member in the Blockchain Council, CryptoCurrency Certification Consortium, Scrum Alliance, Scrum Organization, and International Institute of Business Analysis.
Part 1 .
The Author(s), under exclusive license to APress Media, LLC, part of Springer Nature 2021
V. G. Brusca Introduction to Video Game Engine Development https://doi.org/10.1007/978-1-4842-7039-4_1
1. MmgBase API Introduction
Part 1 of this book contains a comprehensive review of a 2D game engine written in both Java and C#. Both implementations are included with this text along with full code documentation, 137 unit tests for verifying API functionality, an example program that demonstrates key game engine features, and two complete games that you will build on your own, with a little help from me. Like any good TV cooking show however, there is a finished copy of each game also included so you can work with the expected results.