jMonkeyEngine 3.0 Beginner's Guide

jMonkeyEngine 3.0 Beginner's Guide
eBook: $29.99
Formats: PDF, PacktLib, ePub and Mobi formats
save 15%!
Print + free eBook + free PacktLib access to the book: $79.98    Print cover: $49.99
save 37%!
Free Shipping!
UK, US, Europe and selected countries in Asia.
Also available on:
Table of Contents
Sample Chapters
  • Create 3D games that run on Android devices, Windows, Mac OS, Linux desktop PCs and in web browsers – for commercial, hobbyists, or educational purposes.
  • Follow end-to-end examples that teach essential concepts and processes of game development, from the basic layout of a scene to interactive game characters.
  • Make your artwork come alive and publish your game to multiple platforms, all from one unified development environment.

Book Details

Language : English
Paperback : 352 pages [ 235mm x 191mm ]
Release Date : June 2013
ISBN : 1849516464
ISBN 13 : 9781849516464
Author(s) : Ruth Kusterer
Topics and Technologies : All Books, Game Development, Beginner's Guides, Games, Open Source

Table of Contents

Chapter 1: Installing jMonkeyEngine
Chapter 2: Creating Your First 3D Scene
Chapter 3: Interacting with the User
Chapter 4: Adding Character to Your Game
Chapter 5: Creating Materials
Chapter 6: Having Fun with Physics
Chapter 7: Adding Spark to Your Game
Chapter 8: Creating Landscapes
Chapter 9: Making Yourself Heard
Chapter 10: Showing Your Game to the World
Appendix A: What's Next?
Appendix B: Additional Resources for Fellow jMonkeys
Pop Quiz Answers
  • Chapter 1: Installing jMonkeyEngine
    • Installation requirements for game developers
    • Time for action – installing the jMonkeyEngine SDK
    • jMonkeyEngine SDK at your service
    • Can I work in other Java IDEs?
    • Time for action – running a demo
    • Time for action – creating a project
    • Assets and the art pipeline
    • Time for action – distributing a game
    • Can I sell my jMonkeyEngine game?
    • Summary
    • Chapter 2: Creating Your First 3D Scene
      • A basic template to initialize scenes
      • Time for action – initializing a scene step by step
      • Starting and stopping the application
      • Time for action – starting the application
      • Orient yourself in 3D space
      • Time for action – finding the spot
      • And how do I say that in Java?
      • Time for action – position it!
      • Time for action – scale it!
      • Time for action – rotate it!
      • Time for action – rotate it again, Sam
      • Where am I?
      • Time for action – navigating the scene
      • Populating the scene
      • Time for action – node versus geometry
      • Extending SimpleApplication
      • Make a big scene
      • Time for action – configuring display settings
      • Keeping an eye on your FPS
      • Time for action – checking vital stats
      • Navigating the scene with a mouse and a keyboard
      • Time for action – move it!
      • Summary
      • Chapter 3: Interacting with the User
        • The digital Dungeon Master
        • Time for action – from input to output in slow motion
        • Time for action – pushing the right buttons
        • Time for action – trigger meets mapping
        • Time for action – mapping meets listeners
        • Time for action – listeners meet actions
        • Click me if you can
        • Time for action – pick a brick (using crosshairs)
        • Time for action – pick a brick (crosshairs with ray casting)
        • Time for action – pick a brick (using the mouse pointer)
        • Time for action – pick a brick (pointer with ray casting)
        • How to steer spatials
        • Time for action – you are the CubeChaser
        • Time for action – chase all the cubes!
        • Time for action – get these cubes under control
        • Time for action – get into the right AppState of mind
        • Time for action – call me maybe?
        • Coordinating global game mechanics
        • The beauty of AppStates and controls
        • Summary
        • Chapter 4: Adding Character to Your Game
          • Making a Mesh
          • Time for action – meshing around with cubes
          • Time for action – meshing around with spheres
          • From mesh to geometry
          • Beg, steal, or borrow
          • The right wrench to pound in the screw
          • Time for action – installing the Blender-to-Ogre3D plugin
          • Time for action – sculpting the mesh
          • Time for action – coloring the mesh
          • Time for action – a model for to go, please
          • Time for action – loading a model (just testing)
          • Time for action – loading a model (for real)
          • Managing assets – best practices
          • Time for action – sorting your stuff out
          • Time for action – saving and loading .j3o files
          • Animating a model
          • Time for action – rig, skin, and animate
          • Time for action – loading an animated model
          • Time for action – playing an animated model
          • Time for action – responding to animation events
          • Loading a simple user interface
          • Time for action – displaying text
          • Time for action – loading AngelCode fonts
          • Time for action – loading icons into the GUI
          • Time for action – display interactive status icons
          • Time for action – 3D objects in the 2D GUI?
          • The art pipeline
          • Summary
          • Chapter 5: Creating Materials
            • What is a material?
            • Time for action – unshaded materials
            • Material definitions and shaders
            • Good-bye unshaded, hello lighting!
            • Time for action – no frills, just color
            • Time for action – oooh, shiny!
            • Time for action – illuminated opaque textures
            • Time for action – semitransparent texture
            • Time for action – transparent textures
            • Multimapping
            • Time for action – meet the hover tank
            • Time for action – let the hover tank be groovy
            • Time for action – give your hover tank a shine
            • Time for action – make your hover tank glow
            • Time for action – deep-freeze your materials
            • Different types of textures
            • Time for action – scaling and tiling textures
            • Time for action – lights on!
            • Summary
            • Chapter 6: Having Fun with Physics
              • Solid floors and walls
              • Time for action – fortify the town
              • Time for action – first-person navigation
              • Fun with rigid bodies
              • Time for action – falling bricks
              • Time for action – flying cannon balls
              • Time for action – predict the explosion
              • Dynamic, static, and kinematic
              • Time for action – an elevator platform
              • Time for action – react to collisions
              • Time for action – timing forces correctly
              • My whole world is falling apart
              • LEET skillz – learn from the pros
              • Summary
              • Chapter 7: Adding Spark to Your Game
                • Particle effects
                • Time for action – stir up some dust
                • Time for action – sparks
                • Time for action – fit to burst?
                • Starting and stopping effects
                • Time for action – fire!
                • Time for action – design effects in the SDK
                • Time for action – finding stuff in the scene graph
                • Custom effect textures
                • Scene-wide effects
                • Time for action – welcome to Dark Town
                • Time for action – welcome to Dark City
                • Time for action – this city needs more gloom
                • Time for action – stay focused
                • Time for action – this city needs more glow
                • Time for action — toons and artistic effects
                • Summary
                • Chapter 8: Creating Landscapes
                  • Welcome to Earth
                  • Time for action – climbing a hill
                  • Time for action – let there be grass
                  • Time for action – splat goes the texture
                  • But wait, there's more
                  • Time for action – up hill and down dale
                  • Time for action – go fast and vast
                  • Time for action – plant a tree
                  • Not even the sky is the limit
                  • Time for action – nothing but blue sky
                  • Time for action – sky factory
                  • Time for action – fog of war
                  • Catch the sun
                  • Time for action – let the sun shine in
                  • Still waters run deep
                  • Time for action – simple water
                  • Time for action – take a swim
                  • Summary
                  • Chapter 9: Making Yourself Heard
                    • Please roar into the microphone now
                    • Ambient sounds! They are everywhere!
                    • Time for action – add ambient sound
                    • Time for action – to pre-buffer or to stream?
                    • Time for action – push a button to receive *BAM*
                    • Basic sound APIs
                    • Something's coming from behind!
                    • Time for action – positional audio
                    • A closer look at volume fall-off
                    • Time for action – I spy with my little ear
                    • Sound environments
                    • Time for action – using default sound environments
                    • Time for action – underwater
                    • Summary
                    • Chapter 10: Showing Your Game to the World
                      • Customizing display settings
                      • Time for action – the name of the game
                      • Time for action – make a big splash (screen)
                      • Time for action – window seat or full screen?
                      • Time for action – fine-tuning video settings
                      • Time for action – window, canvas, or headless?
                      • Time for action – reload settings
                      • SimpleApplication options
                      • Time for action – time for a pause
                      • Time for action – hide statistics and FPS
                      • Save, load, and be merry
                      • Time for action – save and load game data
                      • Time for action – save and load display settings
                      • Pre-release checklist
                      • Release checklist
                      • Time for action – build the final release
                      • Summary
                      • Appendix A: What's Next?
                        • Hey, this game is fun!
                        • Some dos and don'ts
                        • Super powers – Go!
                        • Keep it simple
                        • Polishing off the last pages
                        • Summary
                        • Appendix B: Additional Resources for Fellow jMonkeys
                          • Game-development resources
                            • Game-development tips
                            • Game-asset resources
                          • Key input triggers
                            • Mouse
                            • Keyboard
                            • Joystick
                          • Setting up jMonkeyEngine in Eclipse
                            • Downloading the software
                            • Creating a new game project
                            • Setting up dependencies
                            • Setting up the assets folder
                            • Writing a simple application
                          • Best practices for jMonkey networking
                            • What do the client and server do?
                            • Getting your physics in sync
                            • Choosing a server type
                            • Hackers, cheaters, and griefers
                            • Welcome to MonkeyZone

                          Ruth Kusterer

                          Ruth Kusterer became intrigued by Java and open source software while completing her degree in computational linguistics. In 2005, she joined Sun Microsystems, Inc. as a technical writer for where she wrote 100 NetBeans IDE Tips & Tricks. Since 2010, she has been working for CA Technologies, Inc. where she's a senior technical writer for security software. In her spare time, she hangs out on and strives eternally to write the ultimate Java game.
                          Sorry, we don't have any reviews for this title yet.

                          Code Downloads

                          Download the code and support files for this book.

                          Submit Errata

                          Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.


                          - 4 submitted: last submission 25 Jun 2014

                          Errata type: Code

                          Page number: 43

                          The line of code settings.setDepthBits(modes[0].getBitDepth()); 

                          should be settings.setBitsPerPixel(modes[0].getBitDepth());

                          Errata Type: Code

                          Page number: 43

                          Before the code line settings.setTitle("My Cool Game");
                          there should be AppSettings settings = new AppSettings(true); 

                          Errata Type: Technical

                          Page number: 61

                          In step 3, the text says "move the code block that creates the blue cube from
                          the simpleInitApp() method to a custom method called myCube()"

                          Here, the actual method used is myBox(), not myCube(). 

                          Errata type: Code | Page no: 170

                          The code which is:

                          public Geometry makeBrick(Vector3f loc) {
                               Geometry brickGeo = new Geometry("brick", brickMesh);
                               // PhysicsControl with 5f mass, default BoxCollisionShape:
                               brickPhy = new RigidBodyControl(5f); 

                          Should be:

                          public Geometry makeBrick(Vector3f loc) {
                              /** Create a brick geometry and attach to scene graph. */
                              Geometry brickGeo = new Geometry("brick", brickMesh);
                              /** Create physical brick and add to physics space. */
                              brickPhy = new RigidBodyControl(5f);
                              //brickPhy.setFriction(.2f); // try for example .2 versus 20f
                              return brickGeo;

                          Sample chapters

                          You can view our sample chapters and prefaces of this title on PacktLib or download sample chapters in PDF format.

                          Frequently bought together

                          jMonkeyEngine 3.0 Beginner's Guide +    Microsoft SQL Server 2008 R2 Master Data Services =
                          50% Off
                          the second eBook
                          Price for both: €34.10

                          Buy both these recommended eBooks together and get 50% off the cheapest eBook.

                          What you will learn from this book

                          • Create your own worlds and populate them with mobile characters, cities, physical objects, natural landscapes or beautiful under-water scenes.
                          • Add cool sounds and awesome visual effects to draw the player into your interactive world.
                          • Design textured materials and use light and shadow to bring out your game’s unique atmosphere.
                          • Make players shoot, select items, walk or look round by registering and handling user input.
                          • Keep track of the game state and determine how each character makes decisions and responds to attacks.
                          • Make the most of the integrated physics engine and create fast-paced car races, bowling, sports, pool and billiards games.
                          • Understand client-server messaging and create multi-player online games that communicate over a network.

                          In Detail

                          jMonkeyEngine 3.0 is a powerful set of free Java libraries that allows you to unlock your imagination, create 3D games and stunning graphics. Using jMonkeyEngine’s library of time-tested methods, this book will allow you to unlock its potential and make the creation of beautiful interactive 3D environments a breeze.

                          "jMonkeyEngine 3.0 Beginner’s Guide" teaches aspiring game developers how to build modern 3D games with Java. This primer on 3D programming is packed with best practices, tips and tricks and loads of example code. Progressing from elementary concepts to advanced effects, budding game developers will have their first game up and running by the end of this book.

                          From basic concepts and project creation to building a complex 3D Game, you will learn to layout 3D scenes, make them interactive and add various multi-media effects.

                          You will find answers to common questions including best practices and approaches, how game characters can act and interact, how to simulate solid walls and physical forces, how to take it online to play over a network and much more.

                          From Zero to Hero, start your journey to make your game idea a reality.


                          With plenty of practical examples, screenshots and example code, create a complete game step by step. Learn by doing. Less theory, more results!

                          Who this book is for

                          If you have an inventive mind, are experienced in Java, enjoy looking through the smoke and mirrors of VFX and the world of game mechanics then this book is for you.

                          Code Download and Errata
                          Packt Anytime, Anywhere
                          Register Books
                          Print Upgrades
                          eBook Downloads
                          Video Support
                          Contact Us
                          Awards Voting Nominations Previous Winners
                          Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
                          Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software