Pro Java 9 Games Development Leveraging the JavaFX APIs

(Michael S) #1

© Wallace Jackson 2017 73
W. Jackson, Pro Java 9 Games Development, https://doi.org/10.1007/978-1-4842-0973-8_4


CHAPTER 4


An Introduction to Game Design:


Game Design Concepts, Genres,


Engines, and Techniques


Let’s build on the knowledge of the new media assets that we learned about in the previous two chapters here by
taking a look at how these powerful pixels, frames, samples, and vectors can be utilized to create pro Java 9 games
as well as IoT applications and why (or why not) to use these in certain types of pro Java 9 game development
genres and scenarios. We will take a look at high-level game concepts, basic game design genres, and game design
optimization concepts, as well as open source game engines that are available for the Java platform, including
physics engines such as JBox2D, JBullet, Jinngine, and Dyn4J, and 3D game engines such as LWJGL and JMonkey.
The first thing that I want to cover is the underlying concept of static (fixed) versus dynamic (real time)
as it applies to game genres and game design as well as to game optimization. I have already covered the
concept of static (images, rendered static 3D imagery) versus dynamic (digital video, 2D and 3D animation,
interactive 3D, digital audio) in Chapter 2 (image versus audio-video) and Chapter 3 (rendered 3D versus
3D animation versus interactive 3D). This simple concept is a great way to classify game genres and is a
foundational principle underneath game optimization, as you will see. In this chapter, we get a high-level
overview of gameplay design, new media incorporation, and what different game design approaches and
strategies might cost in memory footprint and CPU processing cycles.
The reason why this is important, and why we are “prethinking” all of these game design factors here in the
first part of the book, is because you should want your game to play smoothly across all of the different platforms
and consumer electronics devices that are used to play your game, even if those devices feature a single-core
processor. Single-core processors are actually exceedingly rare these days. Entry-level consumer electronics
devices now feature DualCore (two-processor), QuadCore (four-processor), HexaCore (six-processor), or
OctaCore (eight-processor) CPUs. The opposite of smooth gameplay would be classified as stilted or jerky
gameplay, which is not a good user experience (UX). User experience results from your combination of user
interface design, game concept, and new media asset and code optimization, as well as from how much each
individual user is interested in, and intrigued by, your gameplay design.
The next thing I will cover are the different aspects or components of game design and development.
These include the concepts, techniques, and “lingo” of game design and development that I want to make
sure you are up to speed on. These include topics such as 2D sprites, 3D models, artificial intelligence,
layers, levels, collision detection, physics simulation, background plate animation, gameplay logic, game
design, user interface, and similar game design and development aspects that can be thought of as game
“components,” as each one adds different attributes and capabilities to professional Java 9 games. Finally,
I’ll get into the different types, or genres, of games that you could design and develop, just to get the left and
right sides of your brain firing at the same time, and then I will explore some of the technical issues and asset
and code optimization considerations of how the genres differ from each other.

Free download pdf