Pro Java 9 Games Development Leveraging the JavaFX APIs

(Michael S) #1
Chapter 4 ■ an IntroduCtIon to Game desIGn: Game desIGn ConCepts, Genres, enGInes, and teChnIques

Game Genres: Puzzle, Board, Arcade, Shooter, or VR


Like everything else we have talked about in this chapter, games themselves can be categorized by using
a “static versus dynamic” approach. Static games aren’t “processor bound” because they tend to be “turn
based” and not “hand to eye coordination based” in nature, so in a sense they are easier to get working
smoothly, as only the programming logic for the “rules” of gameplay and the attractive graphics need to be
put into place and debugged. A significant opportunity also exists for developing new types of game genres
that use a hybrid combination of static and dynamic gameplay in creative ways that have never before been
seen. I’m working on a few of these myself!


Static Games: Strategy, Knowledge, Memory, and Board Games


Since this is a pro Java games programming book at its core, I am going to approach everything from this
important (for game development) static versus dynamic standpoint, and it just so happens to be a pretty
slick way to categorize games into three discrete categories (static, dynamic, and hybrid). Let’s cover the
static (fixed graphics), turn-based games first. These would include the “move-based” or “turn-based”
games such as board games, puzzle games, knowledge games, memory games, and strategy games,
all of which should not be underestimated in their popularity and marketability, especially where families
are concerned. Not all of your game customers are going to be teenage males, and this category of games
is also the most likely to be used for edutainment, a popular buzzword these days where education and
entertainment are fused together to further the success of the education part of that equation. There are a
dearth of fun, effective games for educational content, so this is a significant games business opportunity.
The thing that is important to remember regarding static games is that they have the capability of being
just as fun to play as dynamic games. Static games by their very nature have significantly less processing
overhead, as they do not have to achieve the 60 FPS real-time processing target in order to achieve smooth,
professional gameplay. This is because the nature of the game is not predicated upon continuous motion
but rather on making the right strategic moves. Moves are made when it is your turn to do so, which is why
these types of static games will often be referred to as move-based games.
There can be some form of basic “collision detection” involved in static games, regarding which game
pieces have been moved and to which location on your game board or playing surface. With a static game,
however, there is no danger of overloading the processor with collision detection because the rest of the
game board is static, with the exception of the one piece that is being strategically moved during that
particular player’s turn. Once that process of ascertaining the collision is completed, there is no (real-time)
collision detection needed until the next turn is taken by either the single player (in a single-player game) or
the opponent (in a multiplayer game).
The processing logic for strategy games is more strategy logic–based programming, geared toward
allowing the players to achieve a given end “win” given the right sequence of moves, whereas the dynamic
game programming logic looks more at what collisions are taking place between game sprites. Dynamic
games are focused on point score, which is generated by dodging projectiles, finding treasures, landing on
targets, killing enemies, and completing those types of level objectives in order to get to the next level, where
players can generate even higher point scores.
Complicated strategy games with lots of interrelated rule sets, such as chess, for instance, are even
likely to have far more complex programming logic routines than dynamic games feature. However, since
the execution of the code is not as time sensitive, the resulting gameplay will be smooth, no matter how
powerful the platform and CPU are, because the player is willing to wait for the game to verify the validity
of the move and score it, if appropriate. Of course, the game ruleset logic must be flawless for this type of
game to be perceived as truly professional. Therefore, in the end, both static as well as dynamic games, the
great ones at least, can be difficult to code, albeit for significantly different reasons. Next let’s take a look at
dynamic games, which tend to have high public profiles, appeal to younger player demographics, and tend
to be played individually, instead of by groups, students, or families.

Free download pdf