Pro Java 9 Games Development: Leveraging the JavaFX APIs 1st Edition by Wallace Jackson – Ebook PDF Instant Download/DeliveryISBN: 1484209737, 9781484209738
Full download Pro Java 9 Games Development: Leveraging the JavaFX APIs 1st Edition after payment.

Product details:
ISBN-10 : 1484209737
ISBN-13 : 9781484209738
Author: Wallace Jackson
Use Java 9 and JavaFX 9 to write 3D games for the latest consumer electronics devices. Written by open source gaming expert Wallace Jackson, this book uses Java 9 and NetBeans 9 to add leading-edge features, such as 3D, textures, animation, digital audio, and digital image compositing to your games. Along the way you’ll learn about game design, including game design concepts, genres, engines, and UI design techniques. To completely master Java 3D game creation, you will combine this knowledge with a number of JavaFX 9 topics, such as scene graph hierarchy; 3D scene configuration; 3D model design and primitives; model shader creation; and 3D game animation creation. With these skills you will be able to take your 3D Java games to the next level. The final section of Pro Java 9 Games Development puts the final polish on your abilities. You’ll see how to add AI logic for random content selection methods; harness a professional scoring engine; and player-proof your event handling. After reading Pro Java 9 Games Development, you will come away with enough 3D expertise to design, develop, and build your own professional Java 9 games, using JavaFX 9 and the latest new media assets. What You’ll Learn Design and build professional 3D Java 9 games, using NetBeans 9, Java 9, and JavaFX 9 Integrate new media assets, such as digital imagery and digital audio Integrate the new JavaFX 9 multimedia engine API Create an interactive 3D board game, modeled, textured, and animated using JavaFX Optimize game assets for distribution, and learn how to use the Java 9 module system Who This Book Is For Experienced Java developers who may have some prior game development experience. This book can be for experienced game developers new to Java programming.
Pro Java 9 Games Development: Leveraging the JavaFX APIs 1st Table of contents:
Chapter 1: The Different Faces of Java: Create a Java 9 Development Workstation
Java Dichotomy: Versions Used in Various Platforms
Java Development Workstation: Required Hardware
Prepare a Workstation for Java 9 Game Development
Downloading and Installing the Oracle Java 9 JDK
Downloading and Installing the Oracle Java 8 JDK
Installing the Oracle NetBeans 9.0 (Development) IDE
Installing the Apache NetBeans 9 (Development) IDE
Installing New Media Content Production Software
Downloading and Installing InkScape for SVG Digital Illustration
Downloading and Installing GIMP for Digital Image Compositing
Downloading and Installing Audacity for Digital Audio Editing
Downloading and Installing DaVinci Resolve 14 for Digital Video
Downloading and Installing Blackmagic Fusion for Visual Effects
Download and Install Blender for 3D Modeling and Animation
Download and Install Terragen for 3D Terrain or World Creation
Downloading and Install Daz Studio Pro for Character Animation
Other Open Source New Media Software Packages
Organizing Quick Launch Icons in Your Taskbar Area
Summary
Chapter 2: An Introduction to Content Creation: 2D New Media Asset Fundamentals
Game Design Assets: New Media Content Concepts
Digital Imaging Concepts: Resolution, Color Depth, Alpha, Layers
Digital Image Resolution and Aspect Ratio: Defining Your Image Size and Shape
Digital Image Color Theory and Color Depth: Defining Precise Image Pixel Colors
Digital Image Compositing: Using Alpha Channels and Transparency with Layers
Representing Color and Alpha in Java Game Logic: Using Hexadecimal Notation
Digital Image Object Masking: Using Alpha Channels to Composite Game Sprites
Smoothing Digital Image Composites: Using Anti-aliasing to Smooth Image Edges
Digital Image Data Optimization: Using Compression, Indexed Color, and Dithering
Digital Video or Animation: Frames, Frame Rate, Loops, Direction
Digital Video Compression Concepts: Bit Rate, Data Streaming, SD, HD, and UHD
Digital Video Data Footprint Optimization: Important Settings for Video Codecs
Digital Audio Concepts: Amplitude, Frequency, Samples, Waves
Converting Analog Audio to Digital Audio Data: Sampling, Accuracy, and HD Audio
Digital Audio Asset Playback: Captive Audio Playback vs. Streaming Audio
Digital Audio Assets in JavaFX: Digital Audio Codec and Data Format Support
Digital Audio Optimization: Start with CD Quality Audio and Work Backward
Summary
Chapter 3: Advanced 3D Content Rendering: 3D Asset Concepts and Principles
Interactive 2D Assets: 2D Vector Content Concepts
Points on a Plane: 2D Vertices, Model Reference Origin, Pivot Point, Dummy Point
Connect the 2D Dots: Vector Lines and Spline Curves Connect Your 2D Vertices
Filling the Shape Interior: Color Fills, Gradients, and Patterns
Interactive 3D Assets: 3D Vector Content Concepts
The Foundation of 3D: The Geometry of the Mesh
Points in Space: Origins of the 3D Vertex
Connect the 3D Vertices: Edges Bridge 3D Vertices
Creating the Surface: Three Edges Form Polygons, Four Edges Form Quads
Specify the Direction the Surface Is Facing: The Concept of Surface Normals
Smoothing the Surface: Using Smoothing Groups to Make Polys Look Like Splines
Skinning Your 3D Model: 2D Texture Mapping Concepts
Texture Map Basics: Concepts, Channels, Shading, Effects, and UVW Coordinates
Texture Map Design: Shader Channels and Shader Language
Texture Map Orientation: Texture Map Projection Types and UVW Coordinates
Animating Your 3D Model: Keyframes, Motion Curves, and IK
Linear Animation: Tracks, Keyframes, Looping, and Ranges
Nonlinear Animation: Motion Paths and Motion Curves
Character Animation: Skeletal, Muscles, Skin, Forward, and Inverse Kinematics
Procedural Animation: Physics, Fluid or Cloth Dynamics, Particle Systems, Hair
JavaFX 3D Support: Geometry, Animation, and Scene Packages
JavaFX API 3D Modeling Support: Points, Polygons, Mesh, Transforms, Shading
JavaFX API 3D Animation Support: Timeline, KeyFrame, KeyValue, Interpolator
Summary
Chapter 4: An Introduction to Game Design: Game Design Concepts, Genres, Engines, and Techniques
High-Level Concepts: Static vs. Dynamic Gaming
Game Optimization: Balancing Static Elements with the Dynamic
2D vs. 3D Rendering: Static vs. Dynamic Under the Hood
Game Components: 2D, 3D, Collision, Physics, and AI
2D Sprites: The Foundation of Arcade-Style Gaming
3D Models: The Foundation of the Role-Playing Style of Gaming
Collision Detection: The Foundation of Game Asset Interaction
Physics Simulation: The Foundation of Gameplay Realism
Artificial Intelligence: The Foundation of Your Gameplay Logic
Java Engines: Game, Physics, and Inverse Kinematic
Game Engines: JMonkey and the Lightweight Java Game Library
Physics and Collision Engines: Jbox2D, JBullet, Dyn4j, Jinngine
Inverse Kinematics and Robot Engines: JRoboOp and JavaFX-IK
Game Genres: Puzzle, Board, Arcade, Shooter, or VR
Static Games: Strategy, Knowledge, Memory, and Board Games
Dynamic Games: Arcade, Shooter, Platform, and Action Games
Hybrid Games: An Opportunity to Leverage JavaFX Creatively
Summary
Chapter 5: A Java Primer: Introduction to Java Concepts and Principles
Writing Java Syntax: Comments and Code Delimiters
Java Packages: Organizing the Java API by Function
Java Classes: Java Structure to Modularize the Game
Nested Classes: Java Classes Living Inside of Other Classes
Inner Classes: Different Types of Nonstatic Nested Classes
Java Methods: Core Logic Function Java Constructs
Declaring Your Method: Modifier, Return Type, and Method Name
Overloading Your Methods: Providing Unique Parameter Lists
Constuctor Methods: Turning a Java Class into a Java Object
Creating a Java Object: Invoking the Class Constructor Method
Creating a Constructor Method: Designing and Coding a Java Object Structure
Java Variables and Constants: Values in Data Fields
Fixing Data Values in Memory: Defining a Data Constant in Java
Java Modifier Keywords: Access Control and More
Access Control Modifiers: Public, Protected, Package, or Private
Java Public Modifier: Variables or Methods That Exist Independently of Instances
Java Protected Modifier: Variables and Methods Allow Access by Subclasses
Java Private Modifier: Fields, Methods, or Constructors Allowed Local Access
Java Package Private Modifier: Variables, Methods, or Classes in the Package
Non Access Control Modifiers: Final, Static, and Abstract
Java Final Modifier: Variable Reference, Method, or Class Cannot Be Modified
Java Static Modifier: Variables or Methods That Exist Independently of Instances
Java Abstract Modifier: Classes or Methods to Be Extended or Implemented
Java Volatile Modifier: Advanced Multithreading Control Over Your Data Fields
Java Synchronized Modifier: Advanced Multithreading Control Over Methods
Java Data Types: Defining Data Types in Applications
Primitive Data Types: Character, Numbers, and Boolean
Reference Data Types: Objects and Arrays
Java Operators: Manipulating Data in the Application
Java Arithmetic Operators: Basic Mathematics
Java Relational Operators: Making Comparisons
Java Logical Operators: Processing Groups and Opposites
Java Assignment Operators: Assigning a Result to a Variable
Java Conditional Operator: Set One Value If True, Another If False
Java Conditional Control: Loops or Decision Making
Decision-Making Control Structures: Switch – Case and If – Else
Looping Control Structures: While, Do – While, and the For Loop
Java Objects: Virtualizing Reality Using OOP in Java
Coding the Object: Turning Your Object Design into Java Code
Extending a Java Object Structure: Java Inheritance
The Java Interface: Defining the Class Usage Pattern
What’s New in Java 9: Modularity and Project Jigsaw
The Definition of a Java 9 Module: A Collection of Packages
The Properties of Java Modules: Explicit, Automatic, or Unnamed
An Example of a Java 9 Module Hierarchy: JavaFX Modules
The Purpose of Java 9 Modules: Secure, Strong Encapsulation
Creating a Pro Java 9 Game Module: Using the Exports Keyword
Resource Encapsulation: Further Module Security Measures
Summary
Chapter 6: Setting Up Your Java 9 IDE: An Introduction to NetBeans 9
New NetBeans 9 Features: Java 9 Module Integration
Java 9 Support: Modules, Ant, Java Shell, Multirelease
IDE User Experience: More Information and Intelligent Coding
Java Code Profiling: Completely Redesigned Java Profiling Suite
Primary Attributes of NetBeans 9: An Intelligent IDE
NetBeans 9 Is Intelligent: Put Your Code Editing in Hyperdrive
NetBeans 9 Is Extensible: Code Editing with Many Languages
NetBeans 9 Is Efficient: Organized Project Management Tools
NetBeans 9 Is UI Design Friendly: User Interface Design Tools
NetBeans 9 Is Not Bug Friendly: Squash Bugs with the Debugger
NetBeans 9 Is a Speed Freak: Optimize Your Code with a Profiler
Creating the Pro Java 9 Game Project: JavaFXGame
Compiling a Pro Java 9 Game Project in NetBeans 9
Running Your Pro Java Game Project in NetBeans 9
Summary
Chapter 7: Introduction to JavaFX 9: Overview of the JavaFX New Media Engine
Overview of JavaFX: From SceneGraph Down to OS
The JavaFX Scene Package: 16 Java Scene Classes
JavaFX Scene Class: Defining Dimension and Background Color
JavaFX Scene Graph: Organizing Scenes by Using Parent Nodes
JavaFX Scene Content: Lights, Camera, Cursor, Action!
JavaFX Scene Utilities: Scene Snapshots and Anti-aliasing
Scene Subpackages: Nine Scene-Related Packages
The javafx.graphics Module: 18 Multimedia Packages
JavaFX Animation for Games: Using javafx.animation Classes
The JavaFX Animation Class: A Foundation for Animation Objects in JavaFX
The JavaFX Timeline Class: An Animation Subclass for JavaFX Properties Timeline Management
The JavaFX Transition Class: Animation Subclass for Transitions and Special Effects Application
The JavaFX AnimationTimer Class: Frame Processing, Nanoseconds, and Pulse
JavaFX Pulse Synchronization: Asynchronous Processing for Your JavaFX Scene Graph Elements
Harnessing JavaFX Pulse Engine: Extending AnimationTimer Superclass to Generate Pulse Events
JavaFX Screen and Window Control: Using javafx.stage Classes
Using the JavaFX Stage Object: Creating a Floating Windowless Application
Adding a StageStyle Constant: Using the .initStyle(StageStyle style) Method Call
JavaFX Bounds and Dimensions: Using javafx.geometry Classes
JavaFX Input Control for Games: Using the javafx.event Classes
JavaFX UI Elements: Using the javafx.scene.control Classes
JavaFX Business Charting: Using the javafx.scene.chart Classes
JavaFX Media Control: Using the javafx.scene.media Classes
JavaFX Web Rendering: Using the javafx.scene.web Classes
Other JavaFX Packages: Print, FXML, Beans, and Swing
Summary
Chapter 8: JavaFX 9 Scene Graph Hierarchy: A Foundation for Java 9 Game Design
Game Design Foundation: Primary Function Screens
Java Class Structure Design: Game Engine Support
JavaFX Scene Graph Design: Minimizing UI Nodes
JavaFX Design: Using VBox, Pos, Insets, and Group
JavaFX Pos Class: Generalized Positioning Using Constants
JavaFX Insets Class: Providing Padding Values for Your UI
JavaFX VBox Class: Using a Layout Container for Your Design
JavaFX Group Class: High-Level Scene Graph Node Grouping
Scene Graph Code: Optimize the JavaFXGame Class
JavaFX Object Declarations: Global Class Access for Methods
Scene Graph Design: Optimizing the BoardGame .start() Method
Add Scene Graph Nodes: addNodesToSceneGraph()
Adding New UI Scene Graph Nodes to createBoardGameNodes()
Adding the New UI Design Nodes in addNodesToSceneGraph()
Interactivity: Creating the BoardGame Button UI Control
Testing Your BoardGame: Process the Scene Graph
Summary
Chapter 9: JavaFX 9 User Interface Design: The Front End for Java 9 Game Design
UI Design Foundation: Finishing the Scene Graph
JavaFX 9 UI Compositing: ImageView and TextFlow
JavaFX Image Class: Referencing Digital Imagery in Your Design
JavaFX ImageView Class: Display Digital Images in Your Design
JavaFX TextFlow Class: Use Text Objects (Content) in a Design
Coding the User Interface: A UI Compositing Pipeline
Instantiating the Compositing Layers: .createBoardGameNodes()
Adding UI Backplate to Scene Graph: addNodesToSceneGraph()
Asset Load Methods: loadImageAssets() and createTextAssets()
Creating SplashScreen Assets: Using 3D Assets in a 2D Pipeline
Adding Image Assets to Your Project: Using the src Folder
A Method for Loading Image Assets: .loadImageAssets()
A Method for Creating Text Assets: .createTextAssets()
Using a Button.setMaxWidth() Method: Making Buttons Uniform
Using StackPane Background: Leverage All Compositing Layers
Using TextFlow: Setting Up Your Information Overlay Object
Using StackPane: Add More Digital Image Compositing Layers
Finishing Up Your UI Design Object Creation and Configuration
Summary
Chapter 10: User Interface Design Interactivity: Event Handling and Imaging Effects
Event Handling: Adding Interactivity to Your Games
Types of Controllers: What Types of Events Should We Handle?
Java and JavaFX Event Packages: java.util and javafx.event
JavaFX ActionEvent Class: Created from the java.util.EventObject Superclass
JavaFX Input Event Classes: The javafx.scene.input Package
The KeyCode Class: Using Enum Constants to Define Keys Players Use for Game
The KeyEvent Class: Using KeyEvent Objects to Hold KeyCode Constants
Adding Keyboard Event Handling: Using KeyEvents
Finishing Your UI Design: Coding the Event Handling
Special Effects: The javafx.scene.effects Package
Creating Special Effects: Add a createSpecialEffects() Method
Drop Shadows: Adding Drop Shadows to Your TextFlow Object
Color Adjust: Adjusting Hue, Saturation, Contrast, and Lightness
Summary
Chapter 11: 3D Scene Configuration: Using the PerspectiveCamera and PointLight
Use a 3D Camera: Adding Perspective to 3D Games
JavaFX Camera Class: An Abstract Superclass Defining Camera
JavaFX PerspectiveCamera Class: Your 3D Perspective Camera
JavaFX ParallelCamera Class: Your 2D Space Parallel Camera
Adding a PerspectiveCamera to Your Scene: Using .setCamera()
StackPane UI Testing: Making Sure Everything Else Still Works
Implementing the Start Game Button: Hiding Your UI
Using 3D Lighting: Adding Illumination to 3D Games
JavaFX LightBase Class: An Abstract Superclass Defining Light
JavaFX AmbientLight Class: Lighting Your 3D Scene Uniformly
JavaFX PointLight Class: Lighting Your 3D Scene Dramatically
Adding Light to the Game’s 3D Scene: Using PointLight Objects
Summary
Chapter 12: 3D Model Design and Primitives: Using JavaFX 9 Shape3D Classes
JavaFX Shape3D Superclass: Primitive or MeshView
JavaFX Sphere: Creating Sphere Primitives for Your 3D Games
JavaFX Cylinder: Creating Cylinder or Disk Primitives for Games
JavaFX Box: Creating Boxes, Posts, and Planes for 3D Games
Using Primitives: Adding Primitives to Your JavaFXGame Class
Shape3D Draw Mode Property: Solid Geometry and Wireframe
Shape3D Face Culling Property: Optimize the Rendering Pipeline
JavaFX Mesh Superclass: Construct a TriangleMesh
JavaFX Mesh Superclass: Your Raw 3D Model Data Container
JavaFX MeshView Class: Format and Present Your 3D Mesh Data
JavaFX VertexFormat Class: Define Your 3D Vertex Data Format
JavaFX TriangleMesh Class: Create a 3D Polygonal Mesh Object
Summary
Chapter 13: 3D Model Shader Creation: Using the JavaFX 9 PhongMaterial Class
JavaFX Material Superclass: i3D Shader Properties
JavaFX PhongMaterial: Phong Shading Algorithm and Attributes
Implementing PhongMaterial: Assigning Color and Power Values
Using External Image Assets: Creating Texture Maps
Using External Third-Party Software: Creating Maps Using GIMP
Using Texture Maps in a PhongMaterial: Shader Special Effects
GameBoard Texturing: Creating a GameBoardSquare
Getting Ready to Create the GameBoard: Code Reconfiguration
Creating Your Game Board Square Diffuse Texture: Using GIMP
Summary
Chapter 14: 3D Model Hierarchy Creation: Using Primitives to Create a Game Board
Primitive Creation Method: createGameBoardNodes()
Preparing to Position Gameboard SceneGraph Nodes
Coding a Phong Shader Creation Method: createMaterials()
Finishing Your GameBoard Construction: Quadrants 2 Through 4
Changing Cameras: Using the ParallelCamera Class
Summary
Chapter 15: 3D Gameplay UI Creation: Using the Sphere Primitive to Create a UI Node
Finish Your 3D Assets: Topic Quadrants and Spinner
Creating Your Quadrant and Spinner Diffuse Color Texture Maps
Texture Mapping the 3D Game Board Quadrants: The Java Code
Use Google to Resolve JavaFX Anomalies: Using StackOverflow
Creating a 3D User Interface Element: A 3D Spinner Randomizer
Enhancing the 3D Spinner Texture Map: Increasing Resolution
Summary
Chapter 16: 3D Game Animation Creation: Using the Animation Transition Classes
Animating the 3D Assets: The Animation Superclass
Automated Object Animation: Transition Superclass
Animating 3D Object Rotation: Using the RotateTransition Class
A RotateTransition Example: Set Up Your RotateAnimation Asset
Animating Node Movement: Using the TranslateTransition Class
TranslateTransition Example: Set Up Translate Animation Assets
Merging Animation Properties: Using a ParallelTransition Class
ParallelTransition Object: Merge rotSpinner and moveSpinnerOn
Summary
Chapter 17: i3D Game Square Selection: Using the PickResult Class with 3D Models
Select Your 3D Assets: The PickResult Class
The MouseEvent Class: Trapping Mouse Clicks on 3D Primitives
Implementing Spinner UI Functionality: Mouse Event Handling
Using java.util.Random: Generating a Random Spin
Random Quadrant Selection: Using Random with Conditional If()
Summary
Chapter 18: 3D Gameplay Design: Creating Your Game Content Using GIMP and Java
Design Your Gameplay: Create Quadrant Definitions
Game Board Quadrant: Creating Game Quadrant Content (GIMP)
Game Board Squares: Creating Game Squares Content in GIMP
Summary
Chapter 19: Game Content Engine: AI Logic with Random Content Selection Methods
Coding a Random Spin Tracker: Remainder Operator
Implementing Spin Tracker Functionality: Create Empty Methods
Populating Quadrants After a Spin: OnFinished() Event Handling
Texture Map Management: Coding a resetTextureMaps() Method
Summary
Chapter 20: Coding Gameplay: Set Up Gameplay Methods and Animated Camera View
Select Game Content: selectQSgameplay() Methods
Game Board Square Interaction: OnMouseClick() Event Handling
Camera Animation: Position Game Board After Select
Summary
Chapter 21: Questions and Answers: Finishing the Setup Methods and Digital Audio
Finishing the Gameplay: Adding a qaLayout Branch
Adding Another Organization Layer: The createUInodes() Method
Implementing the New Q&A User Interface in Your JavaFXGame
Tweaking the Q&A Panel: Refining the createQAnodes() Settings
Adding Answer Button Content to setupQSgameplay() Methods
Digital Audio for Games: Using the AudioClip Class
Implementing AudioClip: Add Digital Audio Asset Sound Effects
Finding Free for Commercial Use Digital Audio: 99Sounds.org
Data Footprint Optimization: Use Audacity to Create Game Audio
Use toExternalForm() to Load a URI Reference as a String Object
Triggering Spinner Audio Playback in createSceneProcessing()
Camera Animation Audio: Matching Audio Length to Animation
Summary
Chapter 22: Scoring Engine: Creating the Score UI Layout and Scoring the Content
SplashScreen Render Bug: Hide UI Panels on Startup
Scoreboard UI Design: A createScoreNodes() Method
Adding Your Score UI Container Design Elements: Text Objects
Scoring Engine: Logic to Calculate Score on Answer
Score UI Testing: Displaying Higher Integer Numbers
Completing the Gameplay: Add Answers and Score
Summary
Chapter 23: Completing the Gameplay Code and Player Proofing Your Event Handling
Finishing Gameplay: Populating Gameplay Methods
Add Answer Options: Finishing the setupQSgameplay() Methods
Player-Proofing Code: Controlling Player Event Usage
Let’s Play Again Button: Resetting Player Event Handling
Camera Zoom Back Out: Another ParallelTransition
Finishing the Play Again Button: resetTextureMaps()
Quadrant-Level Protection: squareClick per Quadrant
Summary
Chapter 24: Optimizing Game Assets and Code, and Game Profiling Using NetBeans
Optimizing Texture Maps: Converting to 8-Bit Color
Creating Indexed Color Textures: Changing Color Mode in GIMP
NetBeans 9 Profiler: Testing Memory and CPU Usage
Implementing Indexed-Color Imagery: Adding a Path
Optimizing Audio: Use 16-Bit at a Lower Sample Rate
Java Game Code Optimization: Leverage Java Tricks
Future Expansion: Add Digital Video and 3D Models
People also search for Pro Java 9 Games Development: Leveraging the JavaFX APIs 1st:
programming java game
java programming a game
developing a game in java
a game programmer
project b9 games
Tags: Pro Java 9, Games Development, Leveraging, JavaFX APIs, Wallace Jackson


