Presentation is loading. Please wait.

Presentation is loading. Please wait.

Intro to Java Monkey Engine Download JME loads/ loads/

Similar presentations


Presentation on theme: "Intro to Java Monkey Engine Download JME loads/ loads/"— Presentation transcript:

1 Intro to Java Monkey Engine Download JME loads/ loads/

2 JME Technology JME stands for the java monkey engine: a game engine written in java and built upon LWJGL (light-weight java GL -- a java binding for OpenGL) – OpenGL is a platform independent library for 2D and 3D graphics. – For our purposes, OpenGL is far too low-level for the kinds of graphics programming we'd like to accomplish OpenGL concerns itself with fast, often hardware accelerated, rendering of basic geometric primitives) – We appeal to a game engine to provide additional high-level functionality Note: JME provides audio capability via OpenAL support. JME supports Ogg Vorbis (.ogg) and uncompressed PCM Wave (.wav) formats. – We can use Audicity (http://audacity.sourceforge.net/) to convert other formats to thesehttp://audacity.sourceforge.net/)

3 Game-Level Objects Main Application (SimpleApplication) - A base class from which the custom game inherits – Provides method hooks (i.e., callbacks) to initialize a game (simpleInitApp) update game (simpleUpdate) objects and re-display (simpleRender) objects. – InputManager - A class to manage all device input (e.g., keyboard, mouse, joystick) and present that input to the application for handling. – Display - A class to insulate the game from the device specific characteristics of platform on which the game is being run. The Display also encapsulates the features of window management. – Renderer - An abstraction of the OpenGL state and rendering pipeline as discussed in class. OpenGL is a state-driven system. That is, you define a graphics state as a set of rendering attributes and then send a sequence of geometric data to the renderer which then is drawn subject to the current attributes. – The three classes above are referred collectively as the JME context.

4 The Main Game Loop

5 Game-Level Objects (cont) Main Application (SimpleApplication) - A base class from which the custom game inherits – Scene Graph - A class to manage the objects in the scene – Camera - A class to encapsulate the eye position and its attributes (e.g., field of view, depth of field, up vector, etc.). – Math Library for 3D Graphics (functions to handle vectors, matrices, geometric data, collisions, etc.). – Model Importers - A fully featured game engine provides for importing mesh models from any of several different modeling programs.

6 The Scene Graph A grouping of Nodes in a tree hierarchy according (most of the time) to spatial location. Spatially because … – Game objects are typically located by location – Allows for fast culling – Tree structure natural for many game objects – Easy to express, create tools for this data structure Spatial is an abstract class allowing uniform treatment of: – Node (internal, invisible, grouping class, transformable) – Geometry (leaf, visible—mesh and material— transformable).

7 Beginning a Project In the jMonkeyEngine SDK: Choose File→New Project… from the main menu. In the New Project wizard, select the template JME3→Basic Game. Click Next. – Specify a project name, e.g. "HelloWorldTutorial" – Specify a path where to store your new project, e.g. a jMonkeyProjects directory in your home directory. Click Finish.

8 Understanding the JME App Structure public class Main extends SimpleApplication { public static void main(String[] args) { Main app = new Main(); app.start(); }

9 Understanding the JME App Structure public class Main extends SimpleApplication public void simpleInitApp() { Box b = new Box(Vector3f.ZERO, 1, 1, 1); Geometry geom = new Geometry("Box", b); Material mat = new Material(assetManager, “…"); mat.setColor("Color", ColorRGBA.Blue); geom.setMaterial(mat); rootNode.attachChild(geom); }

10 Understanding the JME App Structure public class Main extends SimpleApplication public void simpleUpdate(float tpf) { //TODO: add update code public void simpleRender(RenderManager rm) { //TODO: add render code }

11 Typical Game Objects Spatial: Spatials are abstract and exist to allow handling of the Nodes and Geometry uniformly. – Node (internal, i.e. has children) contains transformations and links to children (no Mesh or Material--invisible) – Geometry (leaf) contains transformations and visible characteristics, i.e., Mesh and Material

12 Typical Game Objects – Geometry (leaf) contains transformations and visible characteristics, i.e., Mesh and Material Mesh Material – Color (Ambient, Diffuse, Emmisive, Specular) - Base color of an object that is not influenced by a color map – Texture » Color Map » Specular Map » Bump Map (Height Map, Normal Map)

13 Typical Game Objects Distinguished Spatials – rootNode – Camera

14 Getting Started One of the better ways to learn what you can do in JME is to: Examine the JME Tests Complete the JME "Tutorial Series (http://hub.jmonkeyengine.org/wiki/doku.ph p/jme3:beginner)http://hub.jmonkeyengine.org/wiki/doku.ph p/jme3:beginner)


Download ppt "Intro to Java Monkey Engine Download JME loads/ loads/"

Similar presentations


Ads by Google