A complete 3D game development suite written purely in Java.

Overview

jMonkeyEngine

Build Status

jMonkeyEngine is a 3-D game engine for adventurous Java developers. It’s open-source, cross-platform, and cutting-edge. 3.2.4 is the latest stable version of the jMonkeyEngine 3 SDK, a complete game development suite. We'll release 3.2.x updates until the major 3.3 release arrives.

The engine is used by several commercial game studios and computer-science courses. Here's a taste:

jME3 Games Mashup

Getting started

Go to https://github.com/jMonkeyEngine/sdk/releases to download the jMonkeyEngine SDK. Read the wiki for a complete install guide. Power up with some SDK Plugins and AssetPacks and you are off to the races. At this point you're gonna want to join the forum so our tribe can grow stronger.

Note: The master branch on GitHub is a development version of the engine and is NOT MEANT TO BE USED IN PRODUCTION, it will break constantly during development of the stable jME versions!

Technology Stack

  • Java
  • NetBeans Platform
  • Gradle

Plus a bunch of awesome libraries & tight integrations like Bullet, NiftyGUI and other goodies.

Documentation

Did you miss it? Don't sweat it, here it is again.

Contributing

Read our contribution guide.

License

New BSD (3-clause) License. In other words, you do whatever makes you happy!

Comments
  • BitmapText right-to-left line wrapping not working

    BitmapText right-to-left line wrapping not working

    Line wrapping of a right to left text should be handled differently than left to right text. BitmapText wraps the right to left text in the same way it does for the left to right text.

    See the forum for more info: https://hub.jmonkeyengine.org/t/how-to-display-a-right-to-left-text-with-wrap-mode-with-bitmaptext/42148

    bug 
    opened by Ali-RS 71
  • Jdk 11 Build Support

    Jdk 11 Build Support

    OK, this PR adds build support for JDK 11. This has been tested on both JDK 8 and JDK 11.

    Can everyone please look over this and TEST it on both JDK 8 and 11 to confirm that it works for them, and on Linux, OS X, and Android if you have them (I have only tested on Windows 10).

    Take note, this does NOT add modules to JME3, it simply makes it able to compile using JDK 11.

    I would love some feed back, let me know if I forgot anything.

    Current Platforms Tested:

    • [x] Windows 10
    • [x] Linux
    • [ ] OS X
    • [x] Android

    Thank you, Trevor Flynn

    opened by tlf30 64
  • moving hosting of artifacts out of jcenter (to maven central)

    moving hosting of artifacts out of jcenter (to maven central)

    EOL of bintray/jcenter is planned for 2021/05/01 as explained in Service End for Bintray, JCenter, GoCenter, and ChartCenter | JFrog.

    Proposed plan to move the release artifact out of bintray:

    • [x] Prepare hosting on maven central (via OSS sonatype), (see OSSRH Guide)
      • [x] create user account for release manager on https://issues.sonatype.org/
      • [x] request groupId org.jmonkeyengine project on oss.sonatype see Producers:
        • [x] create a ticket on OSSRH
          • summary : hosting of org.jmonkeyengine
          • description: Request to host artifacts from jMonkeyEngine, currently hosted on bintray/jcenter (but not yet sync)
          • groupId: org.jmonkeyengine
          • project Url: https://jmonkeyengine.org/
          • scm: https://github.com/jMonkeyEngine/jmonkeyengine.git
          • usernames: add davidb (to be able to sync from bintray) and user account previously created
          • already synced : None
        • [x] create a TXT record in your DNS referencing your OSSRH ticket number and your groupId will be approved on OSSRH
    • [x] request maven central sync on bintray (via the old bintray UI)
      • eg: https://bintray.com/jmonkeyengine/org.jmonkeyengine/jme3-core/#central
      • if existing artifacts don't match the requirements, sync will failed
    • [x] update release workflow
      • [x] replace into scripts deploy release to bintray by deploy release to oss.sonatype (see deploy via Gradle )
      • [x] update doc for release manager
    • [x] update documentation about repository where are hosted artifacts (README, wiki,...)
    • [x] update dependencies of artifact that depend on jmonkeyengine
    buildscript Documentation 
    opened by davidB 50
  • Added PBR Terrain shaders

    Added PBR Terrain shaders

    I've added all the shader files necessary for "AfflictedPBRTerrain.j3md" as well as "AfflictedAdvancedPBRTerrain.j3md" and I have also updated the paths to the vert/frag/glslib files accordingly.

    enhancement 
    opened by yaRnMcDonuts 45
  • FBX Importer fixes and updates

    FBX Importer fixes and updates

    Here is the original topic: https://hub.jmonkeyengine.org/t/fbx-importer/30309

    Changes:

    • Added support of FBX 2016-17 (7.5)
    • Fixed rotation orders (reverse the order, use only for Lcl Rotation)
    • Fixed animations transformation (proper conversion from parent space to bone space, proper use of rotation order and other transforms)
    • Implemented Segment Scale Compensate property from Maya (most cases) aka InheritType
    • Implemented loading bind pose from frame 0
    • Properly load all animations from animation layers
    • Reworked units size (still no program uses it properly to test)
    • Tons of testing with animations and different models
    opened by Eirenliel 42
  • CONTRIBUTION.md should be updated to specify what code style should be applied to PRs

    CONTRIBUTION.md should be updated to specify what code style should be applied to PRs

    Following : https://github.com/jMonkeyEngine/jmonkeyengine/issues/1056 It seems that the common agreement is that we should use netbeans style, if that is the case, we should write that down on CONTRIBUTION.md and provide settings for at least the most common ides.

    This link contains the configurations for eclipse and other compatible editors (eg vscode) https://we.tl/t-jcnutcbB4U

    Since these days, many people use idea, someone should also check if the default idea style is ok for us or if the configuration provided above can be applied (with extensions or whatever) or if there is another way to define and export the style.

    Documentation 
    opened by riccardobl 40
  • Move SettingsDialog and ErrorDialog in jme3-awt-dialogs module

    Move SettingsDialog and ErrorDialog in jme3-awt-dialogs module

    This PR removes SettingsDialog and ErrorDialog from the internal code, since they do not work properly in some platforms when AWT is initialized in the same thread of GLFW. ErrorDialog also causes issues with mouse release on fullscreen apps in linux.

    SettingsDialog is turned into a standalone class for developers that still wish to use it, by doing so we make it easier to replace with something else, eg. a configurator that takes settings from an external launcher with commandline arguments or environment variables

    AppSettings settings=new AppSettings(true);
    if(SettingsDialog.showDialog(settings)){
      app.setSettings(settings);
      app.start();
    }
    

    ErrorDialog is replaced by an error message handler that can be configured by the developer to show/log/send the error message in the most appropriate way.

    Eg. reimplementing the ErrorDialog to reproduce the current behavior will look like this:

    JmeSystem.setErrorMessageHandler((message)->{
       ErrorDialog.showDialog(message);
    });
    

    By default on desktop ErrorDialog is not used and the error is only printed to System.err. On android the behavior remains the same since the current error reporting is reimplemented using a default error message handler.

    opened by riccardobl 36
  • Added a SpotBugs Implementation, which does not cause tasks to fail …

    Added a SpotBugs Implementation, which does not cause tasks to fail …

    …and so is purely optional

    So this is a controverse topic, specifically because the opinions on static analysis tools vary. Let me outline the reason behind this change: In the future we might have a bot comparing the spotbugs results of a PR with the "expected" results, highlighting additions or removals. This should be purely supportive, just a hint when reviewing a PR.

    Since SpotBugs needs to be run on .class files and since some folks might want to run it locally, I've decided to add it as a gradle plugin, which adds the spotbugsMain task to the root project and all (expect native) subprojects.

    One Cautious Word: I had to upgrade the android build tools, because they supplied an outdated Guava Version, which caused spotbugs to fail. I straight upgraded to the latest version released in december and compatible with our current gradle version (it requires our current gradle version as minimum). I did NOT check the android build after that, but the android compilation succeeded so at worst it's runtime errors which we might have to check in the future.

    enhancement buildscript 
    opened by MeFisto94 34
  • Fix #1843 (java.util.zip.ZipException in HttpZipLocator)

    Fix #1843 (java.util.zip.ZipException in HttpZipLocator)

    Fix #1843

    Reported on the forum: https://hub.jmonkeyengine.org/t/httpziplocator-questions/45859

    
    com.jme3.asset.AssetLoadException: An error occurred loading Walk.gltf
    	at com.jme3.scene.plugins.gltf.GltfLoader.loadFromStream(GltfLoader.java:181)
    	at com.jme3.scene.plugins.gltf.GltfLoader.load(GltfLoader.java:106)
    	at com.jme3.asset.DesktopAssetManager.loadLocatedAsset(DesktopAssetManager.java:272)
    	at com.jme3.asset.DesktopAssetManager.loadAsset(DesktopAssetManager.java:388)
    	at com.jme3.asset.DesktopAssetManager.loadModel(DesktopAssetManager.java:439)
    	at asset.TestHttpLocator.simpleInitApp(TestHttpLocator.java:33)
    	at com.jme3.app.SimpleApplication.initialize(SimpleApplication.java:240)
    	at com.jme3.system.lwjgl.LwjglWindow.initInThread(LwjglWindow.java:548)
    	at com.jme3.system.lwjgl.LwjglWindow.run(LwjglWindow.java:662)
    	at java.base/java.lang.Thread.run(Thread.java:833)
    Caused by: com.google.gson.JsonIOException: java.util.zip.ZipException: invalid code lengths set
    	at com.google.gson.internal.Streams.parse(Streams.java:62)
    	at com.google.gson.JsonParser.parse(JsonParser.java:84)
    	at com.jme3.scene.plugins.gltf.GltfLoader.loadFromStream(GltfLoader.java:123)
    	... 9 more
    Caused by: java.util.zip.ZipException: invalid code lengths set
    	at java.base/java.util.zip.InflaterInputStream.read(InflaterInputStream.java:164)
    	at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:270)
    	at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:313)
    	at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:188)
    	at java.base/java.io.InputStreamReader.read(InputStreamReader.java:177)
    Caused by: com.google.gson.JsonIOException: java.util.zip.ZipException: invalid code lengths set
    
    	at com.google.gson.stream.JsonReader.fillBuffer(JsonReader.java:1295)
    	at com.google.gson.stream.JsonReader.nextNonWhitespace(JsonReader.java:1333)
    Caused by: java.util.zip.ZipException: invalid code lengths set
    
    	at com.google.gson.stream.JsonReader.consumeNonExecutePrefix(JsonReader.java:1576)
    	at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:534)
    	at com.google.gson.stream.JsonReader.peek(JsonReader.java:425)
    	at com.google.gson.internal.Streams.parse(Streams.java:46)
    	... 11 more
    
    
    
    com.jme3.asset.AssetLoadException: An error occurred loading Stand.gltf
    	at com.jme3.scene.plugins.gltf.GltfLoader.loadFromStream(GltfLoader.java:181)
    	at com.jme3.scene.plugins.gltf.GltfLoader.load(GltfLoader.java:106)
    	at com.jme3.asset.DesktopAssetManager.loadLocatedAsset(DesktopAssetManager.java:272)
    	at com.jme3.asset.DesktopAssetManager.loadAsset(DesktopAssetManager.java:388)
    	at net.jmecn.HelloArmature.model(HelloArmature.java:321)
    	at net.jmecn.HelloArmature.initScene(HelloArmature.java:257)
    	at net.jmecn.HelloArmature.simpleInitApp(HelloArmature.java:114)
    	at com.jme3.app.SimpleApplication.initialize(SimpleApplication.java:240)
    	at com.jme3.system.lwjgl.LwjglAbstractDisplay.initInThread(LwjglAbstractDisplay.java:139)
    	at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:221)
    	at java.base/java.lang.Thread.run(Thread.java:833)
    Caused by: com.google.gson.JsonIOException: java.util.zip.ZipException: invalid distance too far back
    	at com.google.gson.internal.Streams.parse(Streams.java:62)
    	at com.google.gson.JsonParser.parse(JsonParser.java:84)
    	at com.jme3.scene.plugins.gltf.GltfLoader.loadFromStream(GltfLoader.java:123)
    	... 10 more
    Caused by: java.util.zip.ZipException: invalid distance too far back
    	at java.base/java.util.zip.InflaterInputStream.read(InflaterInputStream.java:164)
    	at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:270)
    	at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:313)
    	at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:188)
    	at java.base/java.io.InputStreamReader.read(InputStreamReader.java:177)
    	at com.google.gson.stream.JsonReader.fillBuffer(JsonReader.java:1295)
    	at com.google.gson.stream.JsonReader.nextNonWhitespace(JsonReader.java:1333)
    	at com.google.gson.stream.JsonReader.consumeNonExecutePrefix(JsonReader.java:1576)
    	at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:534)
    	at com.google.gson.stream.JsonReader.peek(JsonReader.java:425)
    	at com.google.gson.internal.Streams.parse(Streams.java:46)
    	... 12 more
    

    After comparing the two zips (one generated by www.ezyzip.com and one by linux archive manager both from the same contents and with the same compression level), I noticed that their entry offsets are different in HttpZipLocator.

    Following it, I found that the "extraLen" (Central directory (CEN) header extra field length field offset) used here has different values on these two zip files:

    https://github.com/jMonkeyEngine/jmonkeyengine/blob/5ae543cc6f35cd93b53eb511cb912f91e210749f/jme3-core/src/plugins/java/com/jme3/asset/plugins/HttpZipLocator.java#L239

    in the zip file created by www.ezyzip.com (and also in the JME's "wildhouse.zip" that is on google storage), that value is 0 (which is why HttpZipLocator does not show an error) but in the zip file that @icyboxs uploaded and also I created in the Linux archive manager that value is non-zero (36 bytes).

    Removing the "extraLen" fixed the issue.

    opened by Ali-RS 31
  • JME3 missing support for MacOSX_ARM64

    JME3 missing support for MacOSX_ARM64

    Native library support can be expanded to include arm64 support for Apple Silicon Macs. The architecture name starts with "arm", and there is no 32 bit to support on macOS ARM. I already have tested lwjgl built for fat binaries, for use with Minecraft, it only required either Azul's Zulu builds of Java, or possibly Amazon's builds, but I haven't tested the latter.

    I tried an existing built application jar with the arm64 java, but obviously, it failed when it unpacked its i386/x86_64 libopenal.dylib and couldn't load it. Technically, you can even use lipo to bundle the ppc32 and ppc64 builds into it as well? Or does arm64 supporting lipo disable support for even i386? I guess that could mean that those get bundled into yet another binary in the jar.

    enhancement 
    opened by kode54 31
  • Revived broken android examples

    Revived broken android examples

    Revived Broken android examples, through a runnable android module, to run :

    • Load the module ```jme3-android-tests``` inside android studio
    • Change/Update/Downgrade dependencies & run on emulator or a physical device
    Android buildscript 
    opened by Scrappers-glitch 30
  • Fix #1892 (TestChooser does not show classes list when run with java 8)

    Fix #1892 (TestChooser does not show classes list when run with java 8)

    Happens that java 8 adds "/" at the end of the directory name when reading from the jar filesystem. This patch checks if there is a "/" appended at the end of the directory name and removes it!

    Resolves issue #1892

    opened by Ali-RS 0
  •  TestChooser does not show classes list when run with java 8

    TestChooser does not show classes list when run with java 8

    From the IDE it works just fine but when I run the JME examples jar file I extracted from jME3.6.0-alpha1.zip (downloaded from https://github.com/jMonkeyEngine/jmonkeyengine/releases/tag/v3.6.0-alpha1) with java 8 it does not show the class list. Running with java 11 and 17 it works fine.

    Screenshot_2023-01-05_14-19-26

    bug 
    opened by Ali-RS 1
  • incorrect Nifty GUI layout in full-screen LWJGL v3 context

    incorrect Nifty GUI layout in full-screen LWJGL v3 context

    I believe I found a regression in JME 3.6. It occurs when Nifty GUI is running in full-screen LWJGL v3 context. Nifty seems to believe the mouse cursor is about 100 pixels above where it appears onscreen.

    I've observed this phenomenon in several apps. It is particularly noticeable in the TestIssue1013 app of jme3-examples. Clicking on the "Restart Context" button has no effect. In order to highlight the button, the cursor must be placed about 100 px above the button. Clicking in that area of the GUI will trigger a restart.

    JME 3.5.2 doesn't have this issue, but I've found it in "master" branch as far back as May 2022. I'm attempting to determine which commit introduced the regression.

    opened by stephengold 9
  • Fix #1773 (Wrong particle position when `worldSpace` flag equals to true)

    Fix #1773 (Wrong particle position when `worldSpace` flag equals to true)

    Fix the wrong particle position when using the EmitterMeshVertexShape or EmitterMeshFaceShape and worldSpace flag equal to true. The old code was interpolating particles' position toward the emitter world position and this was only working fine for EmitterPointShape but in the other shapes, this was causing particles to not keep the shape because they were being dragged toward the emitter position. The new code calculates the distance vector from the emitter's last location to the current emitter location and subtracts it from the particle's position to generate a hypothetical position that is used for interpolation.

    Resolves issue #1773

    opened by Ali-RS 0
  • TestJoystick crashes on startup?

    TestJoystick crashes on startup?

    I just downloaded the latest release 3.5.2-stable, unpacked the zip and ran it on my Ubuntu 20.04 system. On startup a window appeared asking to to choose the test, and I picked TestJoystick. Then a window asking for display settings appeared, in which I just clicked Continue. After that I am back to the console with the below output.

    $ ./jMonkeyEngine3.jar 
    Dec 31, 2022 11:54:57 AM com.jme3.system.JmeDesktopSystem initialize
    INFO: Running on jMonkeyEngine 3.5.2-stable
     * Branch: HEAD
     * Git Hash: 8ab3d24
     * Build Date: 2022-04-21
    Inconsistency detected by ld.so: dl-lookup.c: 111: check_match: Assertion `version->filename == NULL || ! _dl_name_match_p (version->filename, map)' failed!
    $
    

    Is this an issue with my installation, or is it with JME? What could I look at to get further information?

    opened by HiranChaudhuri 4
Releases(v3.6.0-alpha1)
  • v3.6.0-alpha1(Jan 1, 2023)

    A non-production release, for development and testing only, not intended to be used in any product. Largely untested, without complete/reliable documentation, and without SDK support. Vital features may be missing. The feature set, API, and serialization format might change before the next release.

    Changes relative to v3.5.2-stable:

    • Potential breaking changes:

      • Use OpenGL 3.2 as default by @riccardobl in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1752
      • BlendAction: resolve slow-motion side effect caused by stretching actions by @Ali-RS in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1848
      • move SettingsDialog and ErrorDialog to new jme3-awt-dialogs module by @riccardobl in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1876
      • JmeSurfaceView: Package migration by @Scrappers-glitch in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1819
    • New features:

      • jme3-lwjgl3: add a WindowSizeListener by @Ali-RS in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1711
      • #1734 actions based vr input by @richardTingle in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1735
      • Separate concept of window size from default framebuffer size by @riccardobl in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1750
      • Add FOR macro to GLSL preprocessor and J3MD by @riccardobl in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1758
      • Android: Implemented AndroidNativeBufferAllocator - Deprecated AndroidBufferAllocator by @Scrappers-glitch in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1821
      • Add GL debug capabilities by @riccardobl in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1790
      • Add java types to VarType and type checks to MatParam by @riccardobl in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1797
      • Some enhancement to new animation system by @Ali-RS in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1845
      • Added a Loop tween to Tweens factory class. Supports looping by count… by @Ali-RS in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1846
      • Added Tweens.cycle() and Tweens.invert() methods by @Ali-RS in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1849
      • Add instance culling function in InstancedGeometry by @Ali-RS in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1865
      • Implementation of a glTF extension loader for KHR_texture_transform by @manuelrmo in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1869
    • Bugs and defects addressed:

      • RenderState: fixed 'backStencilStencilFailOperation' field serializat… by @Ali-RS in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1719
      • LwjglWindow:assign new thread to mainThread field. by @Ali-RS in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1722
      • Chase cam can rotate fix on re-enable by @tlf30 in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1692
      • fix and test for issue 1723 (more serialization bugs in RenderState) by @stephengold in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1726
      • Fix NullPointerException in AnimLayer.update() by @capdevon in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1730
      • AlAudioRenderer: update OpenAL state when dry filter is re-applied by @stephengold in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1728
      • Cross-platform fix for issue 1745 (mouse input scaling) by @riccardobl in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1753
      • Fix error 1280 in MacOS when querying GL_FRAMEBUFFER_SRGB_CAPABLE_EXT by @riccardobl in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1749
      • Fix issue 1705 (serialize 6 mesh subclasses) by @stephengold in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1754
      • solve issue #1761 (AssertionError in ALAudioRenderer) by @stephengold in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1762
      • solve issue #1780 (built-in matdefs/shaders lack core-profile support) by @stephengold in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1781
      • Fix draw/read buffer selection for framebuffers (FrameBuffer.setTargetIndex(int)) by @riccardobl in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1786
      • Add toggleable framebuffer mipmaps generation. Fix #1788 by @riccardobl in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1791
      • work around missing reshape() callbacks from LWJGL v3 (issue #1793) by @stephengold in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1794
      • JmeSurfaceView: Fixed duplicate app destruction. by @Scrappers-glitch in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1801
      • solve issue #1798 (filtered scenes are squeezed) by @stephengold in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1812
      • solve issue #1813 (glTF loader loses keyframes) by @stephengold in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1815
      • refactor to avoid invoking AppSettings.getBoolean() directly by @stephengold in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1796
      • JmeSurfaceView: Removed explicit nullifying GlSurfaceView onDestroy by @Scrappers-glitch in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1802
      • solve issue #1809 (GltfLoader is not thread-safe) by @stephengold in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1810
      • Fix issue #1839 by @Lukas-Habring in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1840
      • SettingsDialog: LAF fix by @Scrappers-glitch in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1827
      • Fix #1843 (java.util.zip.ZipException in HttpZipLocator) by @Ali-RS in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1842
      • Fix #1850 (JmeSystem.writeImageFile() throw java.nio.BufferUnderflowE… by @Ali-RS in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1851
      • Fix: make the stencil test functions usable. by @zzuegg in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1866
      • Fix #1871 (vertex colors not loaded in gltf models) by @tonihele in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1873
      • Fix #1867 (LightFilter gets applied even if not needed) by @zzuegg in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1872
      • Fix #1412 (GltfLoader does not support AO packed in MetallicRoughnessMap) by @manuelrmo in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1880
      • Fix #1882 (J3MLoader always generates mips ignoring MinFilter) by @Ali-RS in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1884
      • Made Gltf extension loaders non-static to avoid concurrency issues by @Ali-RS in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1886
      • Fix #1883 (Image class wrongly setting GL mips flags inside the constructor) by @Ali-RS in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1885
    • General improvements:

      • avoid invoking the newly-deprecated BitmapText 2-arg constructor by @stephengold in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1709
      • rename local variables for clarity by @stephengold in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1715
      • clarify some non-javadoc comments by @stephengold in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1712
      • rename method arguments for clarity by @stephengold in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1716
      • downgrade or delete unnecessary library dependencies by @stephengold in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1714
      • Test post water 1699 by @bob0bob in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1707
      • LwjglCanvas: initialize OpenCL for LWJGL2 by @AmiroooTheWalnut in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1720
      • account for world transform in TerrainQuad.setNormalRecalcNeeded() by @yaRnMcDonuts in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1741
      • Vector2f: save 2 trig calculations in rotateAroundOrigin() by @stephengold in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1731
      • Configure circular deps as warning on eclipse by @riccardobl in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1747
      • GlfwMouseInput: scale mouse coords only if Retina AppSetting is true by @stephengold in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1746
      • Add simple math methods to Vector3f by @yaRnMcDonuts in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1744
      • TerrainQuad: publicize fixNormals() by @stephengold in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1738
      • Add simple math methods to Vector4f by @yaRnMcDonuts in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1755
      • Add simple math methods to Vector2f by @yaRnMcDonuts in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1756
      • rename private variables by @stephengold in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1736
      • rename more method arguments for clarity by @stephengold in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1742
      • Add set methods and constructors to ColorRGBA that take in a Vector param by @yaRnMcDonuts in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1757
      • JoyButtonTrigger: clarify that the constructor arg is not an axis ID by @stephengold in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1765
      • jme3-nifty should account for gamma correction by @stephengold in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1764
      • TestPostWater: avoid using the deprecated BitmapText constructor by @stephengold in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1766
      • RenderDeviceJme: CachedTextKey.equals() lacks a type check by @stephengold in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1768
      • Refactoring of the initialization code of the 'particleMesh' variable. by @capdevon in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1769
      • InstancedGeometry: added a field to keep track of all instance data b… by @Ali-RS in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1772
      • avoid use of deprecated methods (mostly Class.newInstance()) by @tonihele in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1774
      • Remove print statements from FBX plugin by @wyskoj in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1777
      • re-organize jme3-jbullet sourcecode by @stephengold in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1817
      • Update the Gradle wrapper version to 6.9.2 by @tonihele in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1820
      • jme3-plugins: rename the TrackData.checkTimesConsistantcy() method by @stephengold in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1818
      • AreaUtils: Migrated package to com.jme3.util by @Scrappers-glitch in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1826
      • Update README.md to include Exotic Matter by @entrusc in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1838
      • Improved code readability: ParticlePointMesh and ParticleTriMesh by @capdevon in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1831
      • Added setter for FilterPostProcessor.depthFormat by @JosiahGoeman in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1841
      • #1569 Fix license file to be better detected by GitHub by @b0n541 in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1855
      • docs(README) - fix: broken link in README.md by @kaaquist in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1858
      • Clean up the display modes parsing by @tonihele in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1844
      • BlendableAction: Fix JavaDoc for setMaxTransitionWeight & replace assert with IllegalArgumentException by @mrxz in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1881
      • Lots of JavaDoc improvements

    New Contributors

    • @AmiroooTheWalnut made their first contribution in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1720
    • @wyskoj made their first contribution in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1777
    • @entrusc made their first contribution in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1838
    • @Lukas-Habring made their first contribution in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1840
    • @JosiahGoeman made their first contribution in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1841
    • @b0n541 made their first contribution in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1855
    • @kaaquist made their first contribution in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1858
    • @manuelrmo made their first contribution in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1869
    • @mrxz made their first contribution in https://github.com/jMonkeyEngine/jmonkeyengine/pull/1881

    Full Changelog: https://github.com/jMonkeyEngine/jmonkeyengine/compare/v3.5.2-stable...v3.6.0-alpha1

    Source code(tar.gz)
    Source code(zip)
    jME3.6.0-alpha1.zip(235.38 MB)
  • v3.5.2-stable(Apr 21, 2022)

  • v3.5.1-stable(Mar 20, 2022)

    A production-quality JMonkeyEngine 3.5 patch release with the following changes relative to 3.5.0-stable:

    • Bugs and defects addressed:

      • various built-in shaders don't support core profile (issue #1780, PR #1781)
      • AssertionError in ALAudioRenderer (issue #1761, PR #1762)
    • General improvements:

      • enabled native physics for "Apple Silicon" Macs (issue #1528, b40a91d2)
      • added LWJGL v3 natives for "Apple Silicon" Macs (issue #1528, de2e2d38)
    Source code(tar.gz)
    Source code(zip)
    jME3.5.1-stable.zip(415.42 MB)
  • v3.5.0-stable(Jan 23, 2022)

    A production-quality release of JMonkeyEngine with the following noteworthy changes relative to v3.4.1-stable:

    • Upgrade considerations (potential breaking changes):

      • explicitly requires Java v8 or higher (issue #1661)
      • cannot create a GL window on armhf (issue #1710)
      • to use the "jme3-lwjgl3" library in a Gradle build, you'll need Gradle v6.3 or later
      • more precise return types for 13 clone() methods (issue #1676, PR #1683)
      • changed the semantics of FastMath.sphericalToCartesianZ() (issue #1349, PR #1573)
      • deleted the Weights class, which was deprecated in v3.4 (issue #1620, PR #1632)
      • protected the no-arg constructor of TransformTrack (PR #1531)
    • New features:

      • enhancements to SurfaceView for Android (PR #1650), including:
        • optional binding to activity lifecycle
        • added listeners for "layout drawn" and "renderer started"
        • new DestructionPolicy applied when exiting an activity
        • add full stack trace and a "copy log" button to the error dialog
        • added settings for "show error dialog", "exit on Esc pressed", and "show Esc exit prompt"
        • added the getGlEsVersion() method
      • determine the maximum supported width for lines (issue #1555, PR #1643)
      • support for additional compressed texture formats (issue #1619, PR #1621)
      • texture flipping for certain RGTC formats (PR #1629)
      • app settings to position the initial window in LWJGL v3 (issue #1668, PR #1670)
      • a color-adjustment filter (issue #781, PR #1665, a9e88b0)
      • RectangleMesh class for custom quads (PR #1701)
      • calculateD() and calculateNormal() methods in Rectangle class (PR #1701)
      • CenterQuad mesh in jme3-core (PR #1704)
      • added getNbMorphTargets(), setKeyframesWeight(), and setNbMorphTargets() to the MorphTrack class (PR #1608)
      • made getOffsetTransform() and getAttachmentsNode() accessible to subclasses of Joint (PR #1536)
      • distinguish ARM macOS/Windows from other platforms (issue #1528, PR #1530)
      • Platform.getOs() to determine the generic OS name (cc753524)
      • convert inner class Layer to a top-level class (issue #1566, PRs #1656 and #1730)
    • Bugs and defects addressed:

      • LWJGL v3 hangs while creating a window (issues #1193, #1514, and #1558; PRs #1690 and #1722)
      • incorrect cursor position on macOS with Retina (issue #893, PRs #1607, #1746, and #1753; c44d74b)
      • Right-to-Left and cursive fonts displayed incorrectly (issue #1158, PR #1685)
      • incorrect VirtualIndexBuffer for a LineLoop mesh (issue #1603, PR #1605)
      • ChaseCamera won't rotate after being re-enabled (PR #1692)
      • ineffective audio filters (issue #1699, PRs #1707 and #1728)
      • NullPointerException in reloadJoysticks() when joystick lacks buttons (issue #1739, PR #1740)
      • LwjglCanvas doesn't initialize OpenCL for LWJGL v2 (PR #1720)
      • sphericalToCartesianZ() doesn't reverse cartesianZToSpherical() (issue #1349, PR #1573)
      • null-pointer exceptions while loading erroneous glTF models:
        • in GltfLoader.findChildren() (PR #1471)
        • in SkinningControl.getAttachmentsNode() (issue #1612, PR #1639)
      • cryptic crash when more than 16 textures are used (issue #37, PR #1574)
      • error 1280 in macOS querying GL_FRAMEBUFFER_SRGB_CAPABLE_EXT (PR #1749)
      • fromJmeKeyCode() returns garbage for unknown keys (issue #1596, PR #1638)
      • serialization bugs:
        • CartoonEdgeFilter class (issue #1640, PR #1647)
        • RenderState class (issues #1718 and #1723; PRs #1719 and #1726)
        • ShaderNodeVariable class (PR #1585)
        • Torus class (PR #1586)
        • SkeletonInterBoneWire, SkeletonPoints, SkeletonWire, ArmatureInterJointsWire, Surface, and CenterQuad (issue #1705, PR #1754)
      • typo in the value returned by LodGenerator.toString() (cfa497d)
      • typos in logger/exception messages (PRs #1584 and #1737, 3beca2b4)
    • General improvements:

      • upgraded LWJGL to v3.3.0 (PR #1659)
      • faster asset loading on Android devices (issue #1622, PR #1627)
      • faster writing of MJPEG files (PR #1592)
      • more efficient logging (issues #1672 and #1680, PRs #1673 and #1682)
      • un-deprecate AndroidBufferImageLoader (PR #1660)
      • numerous javadoc improvements
      • improvements to examples and tests
    • New deprecations:

      • Quaternion.negate() (PR #1702)
      • BitmapText(BitmapFont font, boolean rightToLeft) (PR #1685)
      • CenterQuad mesh in jme3-vr (3097f05)
    Source code(tar.gz)
    Source code(zip)
    jME3.5.0-stable.zip(415.41 MB)
  • v3.5.0-beta9(Jan 17, 2022)

  • v3.5.0-beta7(Jan 16, 2022)

    A non-production release for development and testing, which will hopefully lead to a "stable" release.

    Noteworthy changes relative to 3.5.0-beta6:

    • Bugs and defects addressed:

      • inaccurate mouse positions on non-Apple systems with HiDPI (issue #1745, c44d74b4)
      • NullPointerException in reloadJoysticks() when joystick lacks buttons (issue #1739, PR #1740)
      • invalid shader path in "ContrastAdjustment.j3md" (a9e88b0)
    • General improvements:

      • javadoc (various PRs and commits)
    Source code(tar.gz)
    Source code(zip)
    jME3.5.0-beta7.zip(415.41 MB)
  • v3.5.0-beta6(Jan 10, 2022)

    A non-production release for development and testing, which will hopefully lead to a "stable" release.

    Noteworthy changes relative to 3.5.0-beta5:

    • Bugs and defects addressed:

      • NullPointerException in AnimLayer.update() (PR #1730)
      • LwjglCanvas doesn't initialize OpenCL for LWJGL2 (PR #1720)
      • ineffective audio filters (issue #1699, PRs #1707 and #1728)
      • more serialization bugs in RenderState (issue #1723, PR #1726)
    • General improvements:

      • javadoc (various PRs and commits)
    Source code(tar.gz)
    Source code(zip)
    jME3.5.0-beta6.zip(415.40 MB)
  • v3.5.0-beta5(Dec 29, 2021)

    A non-production release for development and testing, which will hopefully lead to a "stable" release.

    Noteworthy changes relative to 3.5.0-beta4:

    • Bugs and defects addressed:

      • SimpleApplication.stop(true) causes deadlock (issue #1721, PR #1722)
      • ChaseCamera won't rotate after being re-enabled (PR #1692)
      • RenderState is serialized incorrectly (issue #1718, PR #1719)
      • typo in the value returned by LodGenerator.toString() (cfa497d)
    • General improvements:

      • javadoc (various PRs and commits)
    Source code(tar.gz)
    Source code(zip)
    jME3.5.0-beta5.zip(415.37 MB)
  • v3.5.0-beta4(Dec 17, 2021)

    A non-production release for development and testing, which will hopefully lead to a "stable" release.

    Noteworthy changes relative to 3.4.1-stable:

    • Upgrade considerations (potential breaking changes):

      • explicitly requires Java 8 or higher (issue #1661)
      • more precise return types for 13 clone() methods (issue #1676, PR #1683)
      • changed the semantics of FastMath.sphericalToCartesianZ() (issue #1349, PR #1573)
      • deleted the Weights class, which was deprecated in v3.4 (issue #1620, PR #1632)
      • protected the no-arg constructor of TransformTrack (PR #1531)
      • to use the "jme3-lwjgl3" library in a Gradle build, you'll need Gradle v6.3 or later
    • New features:

      • enhancements to SurfaceView for Android (PR #1650), including:
        • optional binding to activity lifecycle
        • added listeners for "layout drawn" and "renderer started"
        • new DestructionPolicy applied when exiting an activity
        • add full stack trace and a "copy log" button to the error dialog
        • added settings for "show error dialog", "exit on Esc pressed", and "show Esc exit prompt"
        • added the getGlEsVersion() method
      • determine the maximum supported width for lines (issue #1555, PR #1643)
      • support for additional compressed texture formats (issue #1619, PR #1621)
      • texture flipping for certain RGTC formats (PR #1629)
      • app settings to position the initial window in LWJGL v3 (issue #1668, PR #1670)
      • a color-adjustment filter (issue #781, PR #1665)
      • RectangleMesh class for custom quads (PR #1701)
      • calculateD() and calculateNormal() methods in Rectangle class (PR #1701)
      • CenterQuad mesh in jme3-core (PR #1704)
      • added getNbMorphTargets(), setKeyframesWeight(), and setNbMorphTargets() to the MorphTrack class (PR #1608)
      • made getOffsetTransform() and getAttachmentsNode() accessible to subclasses of Joint (PR #1536)
      • distinguish ARM macOS/Windows from other platforms (issue #1528, PR #1530)
      • convert inner class Layer to a top-level class (issue #1566, PR #1656)
    • Bugs and defects addressed:

      • LWJGL v3 hangs while creating a window (issues #1193, #1514, and #1558, PR #1690)
      • Right-to-Left and cursive fonts displayed incorrectly (issue #1158, PR #1685)
      • incorrect cursor position on macOS with Retina (issue #893, PR #1607)
      • incorrect VirtualIndexBuffer for a LineLoop mesh (issue #1603, PR #1605)
      • sphericalToCartesianZ() doesn't reverse cartesianZToSpherical() (issue #1349, PR #1573)
      • null-pointer exceptions while loading erroneous glTF models:
        • in GltfLoader.findChildren() (PR #1471)
        • in SkinningControl.getAttachmentsNode() (issue #1612, PR #1639)
      • cryptic crash when more than 16 textures are used (issue #37, PR #1574)
      • fromJmeKeyCode() returns garbage for unknown keys (issue #1596, PR #1638)
      • serialization bugs:
        • CartoonEdgeFilter class (issue #1640, PR #1647)
        • ShaderNodeVariable class (PR #1585)
        • Torus class (PR #1586)
      • typos in logger/exception messages (PR #1584, 3beca2b4)
    • General improvements:

      • upgraded LWJGL to v3.3.0 (PR #1659)
      • faster asset loading on Android devices (issue #1622, PR #1627)
      • faster writing of MJPEG files (PR #1592)
      • more efficient logging (issues #1672 and #1680, PRs #1673 and #1682)
      • un-deprecate AndroidBufferImageLoader (PR #1660)
      • javadoc (issues #1648 and #1597; PRs #1581, #1599, #1620, #1642, #1646, #1651, #1653, #1650, #1663, #1666, #1684, #1689, #1698, and #1706; 4db02fae, 8075eeb5, ac8696e, e79340a, and f40f21a5)
      • examples and tests (issues #1290, #1630, and #1687; PRs #1570, #1594, #1610, #1625, #1631, #1635, and #1697; 7c5fe46c and 9d8bd88)
    • New deprecations:

      • Quaternion.negate() (PR #1702)
      • BitmapText(BitmapFont font, boolean rightToLeft) (PR #1685)
      • CenterQuad mesh in jme3-vr (3097f05)
    Source code(tar.gz)
    Source code(zip)
    jME3.5.0-beta4.zip(415.35 MB)
  • v3.4.1-stable(Dec 4, 2021)

    A production-quality JMonkeyEngine 3.4 patch release with the following changes relative to 3.4.0-stable:

    • Bugs and defects addressed:

      • crashes while deleting native objects (issue #1614, PR #1617)
      • can't recover from a disconnected audio device (PR #1593)
      • Android devices can't load assets whose names start with "/" (issue #352, PR #1577)
      • assertion failure while loading a valid glTF model (issue #1089)
    • General improvements:

      • faster asset loading of AWT-based texture assets (PR #1613)
      • improved performance in Node.java (issue #1672, PR #1673)
    Source code(tar.gz)
    Source code(zip)
    jME3.4.1-stable.zip(436.03 MB)
  • v3.5.0-alpha1(Nov 14, 2021)

    A non-production release, for development and testing only, not intended to be used in any product. Largely untested, without complete/reliable documentation, and without SDK support. Vital features may be missing. The feature set, API, and serialization format might change before the next release.

    Changes relative to v3.4.0-stable:

    • Potential breaking changes:

      • explicitly requires Java 8 or higher (issue #1661)
      • deleted the Weights class, which was deprecated in 3.4 (issue #1620, PR #1632)
      • changed the semantics of FastMath.sphericalToCartesianZ() (issue #1349, PR #1573)
      • protected the no-arg constructor of TransformTrack (PR #1531)
    • New features:

      • determine the maximum supported width for lines (issue #1555, PR #1643)
      • support for additional compressed texture formats (issue #1619, PR #1621)
      • texture flipping for certain RGTC formats (PR #1629)
      • added getNbMorphTargets(), setKeyframesWeight(), and setNbMorphTargets() to the MorphTrack class (PR #1608)
      • made getOffsetTransform() and getAttachmentsNode() accessible to subclasses of Joint (PR #1536)
      • distinguish ARM macOS/Windows from other platforms (issue #1528, PR #1530)
    • Bugs and defects addressed:

      • crashes while deleting native objects (issue #1614, PR #1617)
      • incorrect cursor position on macOS with Retina (issue #893, PR #1607)
      • can't recover from a disconnected audio device (PR #1593)
      • Android devices can't load assets whose names start with "/" (issue #352, PR #1577)
      • incorrect VirtualIndexBuffer for a LineLoop mesh (issue #1603, PR #1605)
      • sphericalToCartesianZ() doesn't reverse cartesianZToSpherical() (issue #1349, PR #1573)
      • assertion failure while loading a valid glTF model (issue #1089, PR #1608)
      • null-pointer exceptions while loading erroneous glTF models:
        • in GltfLoader.findChildren() (PR #1471)
        • in SkinningControl.getAttachmentsNode() (issue #1612, PR #1639)
      • cryptic crash when more than 16 textures are used (issue #37, PR #1574)
      • fromJmeKeyCode() returns garbage for unknown keys (issue #1596, PR #1638)
      • serialization bugs:
        • CartoonEdgeFilter class (issue #1640, PR #1647)
        • ShaderNodeVariable class (PR #1585)
        • Torus class (PR #1586)
      • typos in logger/exception messages (PR #1584, 3beca2b4)
    • General improvements:

      • faster asset loading:
        • of AWT-based texture assets (PR #1613)
        • on Android devices (issue #1622, PR #1627)
      • faster writing of MJPEG files (PR #1592)
      • javadoc (issue #1648; PRs #1581, #1599, #1620, #1642, #1646, and #1651; 4db02fae, 8075eeb5, ac8696e, and f40f21a5)
      • examples and tests (issues #1290, #1630; PRs #1570, #1594, #1610, #1631, and #1635; 7c5fe46c and 9d8bd88)
    Source code(tar.gz)
    Source code(zip)
    jME3.5.0-alpha1.zip(414.58 MB)
  • v3.4.0-stable(May 30, 2021)

    A production-quality release of JMonkeyEngine with the following changes relative to v3.3.2-stable:

    • Upgrade considerations (a.k.a. potential breaking changes):

      • Gamma correction is enabled by default. In apps that default the setting (don't explicitly enable/disable it), scenes may appear brighter or darker than expected. (discussion, 6ade1a027e584b808a00fa96a98713167b6b3348)
      • Vsync is enabled by default. In apps that default the setting (don't explicitly enable/disable it), the frame rate and CPU/GPU usage may be lower than expected. (discussion, f34e660f03beea74107ed957aca032358dc6b3e4)
      • Maven artifacts aren't available from JCenter. Obtain them from the Maven Central Repository instead. (issue #1468, discussion)
      • The "jme3-bullet", "jme3-bullet-native", and "jme-bullet-native-android" libraries (physics using native Bullet) were removed from the Engine. For 3-D physics, use "jme3-jbullet" or Minie. (PR #1474)
      • The "jme3-blender" library (Blender importer) was removed from the Engine. To import 3-D models from Blender, use glTF as an intermediate format. (discussion, 221acaadfe565a7f112b9df74226ae9bec7dbab7)
      • Setters that had previously been deprecated to no-ops were removed. (PR #1510)
      • Utility classes that previously could be instantiated were made non-instantiable. (420b959e9d029a9d10c087767a04e5c991874af6, 1031e03d7249e090a606cd8f2fb5f33f7645a400, 145cc1bbdd766326e6ca9bf1722fbdb6460f6697)
      • Protected the no-arg constructors for Camera (issue #1461, PR #1464) and InstancedNode (6402aad4521d40f8d29e60369cf053bb125d0a70).
      • Added range checks to IndexBuffer.put() methods. (issue #1427)
      • The "jme3-jogl" library (JOGL backend) was removed from the Engine. If you must use JOGL instead of LWJGL, contact JogAmp. (discussion, PRs #1339 and #1368)
      • The "jme3tools.navigation" package was removed from the "jme3-desktop" library. If you need this package, it's available from the "jMonkeyEngine-Contributions" project. (issue #1430, PR #1450)
    • New features:

      • material definitions for physically-based rendering (PBR) of terrain (PR #1478)
      • map keys for non-US keyboard layouts when using LWJGL v3 (issue #942)
      • de-saturation for materials based on "Unshaded.j3md" (PR #1449)
      • embed a JME application in a custom UI design on Android devices (PR #1494)
      • extensions to JoystickCompatibilityMappings (PR #1483)
      • flesh out the new animation system:
        • more getters/setters for Action (PR #1489) and AnimComposer (PR #1376)
        • a factory class to generate animations programmatically (issue #1453, PR #1507)
        • incorporate animations into cinematic cutscenes (PR #1508)
        • more methods to create and manipulate armature masks (issue #1499, PR #1504)
        • capability to remove morph targets from a Mesh (PR #1378)
      • enhance the glTF importer:
        • handle "unlit" materials (PR #1463)
        • handle URIs (PR #1396)
        • handle lights defined using the "KHR_lights_punctual" extension (PR #1443)
      • LWJGL v3 support for Linux-on-ARM and 32-bit Windows (discussion, 67119862d10fb0be8b98e930cc35fa0e6fd017cf)
      • more ways to look up appstates by ID (a79be13ac83fdf421e00e6ca0c189d8f361b00d7)
      • LightControl support for spotlights (PR #1466)
      • combine GlowColor and GlowMap in a single Material (PR #1444)
      • add fromRGBA255() and chainable setters to the ColorRGBA class (a057a6d74d25a4f8bc769f9d72c98ead4d28492c, 37f1e7fabeae39d94acb1448d017c4e4ddda4edf)
      • serialize final fields across a network (PR #1505)
      • more getters/setters for Camera (PR #1492), EnvironmentCamera (issue #1447, PR #1481), and Renderer (PR #1482)
      • pack ambient-occlusion (AO) data into the metallic roughness map of a PBR material (PR #1403)
      • handle named groups when importing 3-D models in OBJ format (PR #1369)
      • a unified mechanism to manage the render targets of a FrameBuffer (PR #1401)
      • depth-only copy of a FrameBuffer (PR #1400)
      • performance profiling of render() and postRender() methods (PR #1485)
    • Bugs addressed:

      • no sound on Android devices (issue #1239, PR #1475)
      • inaccurate frame rate when using LWJGL v3 (issue #1455)
      • LWJGL context restart issues (PR #1526, issues #844 and #1445)
      • OGRE importer doesn't set the initial pose (issue #1395)
      • jme3-jbullet depends on unavailable Maven artifacts (PR #1541)
      • cloning a Joint (issue #1469, PR #1470)
      • logic error in Transform.interpolateTransforms() (issue #1394)
      • crashes in TransformTrack.getTranslations() and getRotations() (PR #1532)
      • crashes while compiling shaders (PRs #1456 and #1458)
      • crash while importing from glTF (PR #1442)
      • crash with NegativeArraySizeException (PR #1377)
      • assertion failure in TouchTrigger.touchHash() (PR #1448)
      • wrong center location for a spherical LightProbe (PR #1440)
      • animation uses wrong easing function (PR #1397)
      • material parameter of type IntArray not set (issue #1564, PR #1565)
      • incorrect import of UTF-8 data (issue #1436, PR #1437)
      • unable to locate OpenAL library (issue #1383, PR #1432)
      • multiple issues involving iOS devices (PR #1473)
      • multiple issues involving instanced geometries (PRs #1457 and #1467)
      • gamepad split into 2 input devices (PR #1454)
      • SSAO interferes with transparent unshaded materials (discussion, PR #1512)
      • FXAA filter disables transparency (discussion, PR #1517)
      • can't generate mipmaps for cubemap faces (issue #1222, PR #1409)
      • bounding-sphere merge yields NaN (issue #1459, PR #1465)
      • LOD causes terrain patches to disappear (issue #1382, PR #1418)
      • crash while de-serializing a WireFrustum (issue #1462)
      • crash in LogicalOggStreamImpl (issue #1244, PR #1480)
      • crash while cloning a TerrainPatch (issue #1391)
      • MorphControl doesn't override JmeCloneable/Savable methods (issue #1548, PRs #1549 and #1553)
      • incomplete serialization of TerrainQuad (PR #1476)
      • inaccurate de-serialization of DistanceLodCalculator (issue #1381, PR #1385)
      • checkSetParam() warning while creating sky (issue #1414, PR #1438)
    • General improvements:

      • javadoc (issues #1275, #1366, #1370, #1388, #1428; PRs #1373, #1374, #1386, #1429, #1451, #1493, #1511, #1519, #1521, #1522, and #1550)
      • ported "jme3-examples" apps to the new animation system (issue #1452; PRs #1333, #1487, #1500, #1503, and #1515)
    • New deprecations:

      • LightNode class (issue #1033, PR #1042)
      • com.jme3.anim.Weights class (PR #1523)
      • 15 methods in the FrameBuffer class (PR #1401)
    Source code(tar.gz)
    Source code(zip)
    jME3.4.0-stable.zip(436.04 MB)
  • v3.4.0-beta4(May 12, 2021)

    A non-production release for development and testing, which will hopefully lead to a "stable" release.

    Noteworthy changes relative to 3.4.0-beta3:

    • Bugs addressed:
      • MorphControl doesn't override JmeCloneable/Savable methods (issue #1548, PR #1549)
      • diagnostic messages from TestMusicPlayer (issue #1544, PR #1547)
      • crash in TestManyLocators (issue #1543, PR #1546)
      • crash in TestAppStates (issue #1542, PR #1545)
    Source code(tar.gz)
    Source code(zip)
    jME3.4.0-beta4.zip(436.04 MB)
  • v3.4.0-beta3(May 8, 2021)

    A non-production release for development and testing, which will hopefully lead to a "stable" release.

    Noteworthy changes relative to 3.4.0-beta2:

    • Bugs addressed:
      • LWJGL context restart issues (PR #1526, issues #844 and #1445)
      • AnimEvent.onStop() kills prior event on the same Layer (PR #1537)
      • failed assertion in TestAnimMigration (issue #1533, PR #1534)
      • crashes in TransformTrack.getTranslations() and getRotations() (PR #1532)
      • jme3-jbullet depends on unavailable Maven artifacts (PR #1541)
    Source code(tar.gz)
    Source code(zip)
    jME3.4.0-beta3.zip(436.05 MB)
  • v3.4.0-beta2(Apr 25, 2021)

  • v3.4.0-beta1(Apr 13, 2021)

    A non-production release for development and testing, which will hopefully lead to a "stable" release.

    Noteworthy changes relative to 3.3.2-stable:

    • Upgrade considerations (a.k.a. potential breaking changes):

      • Gamma correction is enabled by default. In apps that default the setting (don't explicitly enable/disable it), scenes may appear brighter or darker than expected. (discussion, 6ade1a027e584b808a00fa96a98713167b6b3348)
      • Vsync is enabled by default. In apps that default the setting (don't explicitly enable/disable it), the frame rate and CPU/GPU usage may be lower than expected. (discussion, f34e660f03beea74107ed957aca032358dc6b3e4)
      • Maven artifacts aren't available from JCenter. Obtain them from the Maven Central Repository instead. (issue #1468, discussion)
      • The "jme3-bullet", "jme3-bullet-native", and "jme-bullet-native-android" libraries (physics using native Bullet) were removed from the Engine. For 3-D physics, use "jme3-jbullet" or Minie. (PR #1474)
      • The "jme3-blender" library (Blender importer) was removed from the Engine. To import 3-D models from Blender, use glTF as an intermediate format. (discussion, 221acaadfe565a7f112b9df74226ae9bec7dbab7)
      • Setters that had previously been deprecated to no-ops were removed. (PR #1510)
      • Utility classes that previously could be instantiated were made non-instantiable. (420b959e9d029a9d10c087767a04e5c991874af6, 1031e03d7249e090a606cd8f2fb5f33f7645a400, 145cc1bbdd766326e6ca9bf1722fbdb6460f6697)
      • Protected the no-arg constructors for Camera (issue #1461, PR #1464) and InstancedNode (6402aad4521d40f8d29e60369cf053bb125d0a70).
      • Added range checks to IndexBuffer.put() methods. (issue #1427)
      • The "jme3-jogl" library (JOGL backend) was removed from the Engine. If you must use JOGL instead of LWJGL, contact JogAmp. (discussion, PRs #1339 and #1368)
      • The "jme3tools.navigation" package was removed from the "jme3-desktop" library. If you need this package, it's available from the "jMonkeyEngine-Contributions" project. (issue #1430, PR #1450)
    • New features:

      • material definitions for physically-based rendering (PBR) of terrain (PR #1478)
      • map keys for non-US keyboard layouts when using LWJGL v3 (issue #942)
      • de-saturation for materials based on "Unshaded.j3md" (PR #1449)
      • embed a JME application in a custom UI design on Android devices (PR #1494)
      • extensions to JoystickCompatibilityMappings (PR #1483)
      • flesh out the new animation system:
        • more getters/setters for Action (PR #1489) and AnimComposer (PR #1376)
        • a factory class to generate animations programmatically (issue #1453, PR #1507)
        • incorporate animations into cinematic cutscenes (PR #1508)
        • more methods to create and manipulate armature masks (issue #1499, PR #1504)
        • capability to remove morph targets from a Mesh (PR #1378)
      • enhance the glTF importer:
        • handle "unlit" materials (PR #1463)
        • handle URIs (PR #1396)
        • handle lights defined using the "KHR_lights_punctual" extension (PR #1443)
      • LWJGL v3 support for Linux-on-ARM and 32-bit Windows (discussion, 67119862d10fb0be8b98e930cc35fa0e6fd017cf)
      • more ways to look up appstates by ID (a79be13ac83fdf421e00e6ca0c189d8f361b00d7)
      • LightControl support for spotlights (PR #1466)
      • combine GlowColor and GlowMap in a single Material (PR #1444)
      • add fromRGBA255() and chainable setters to the ColorRGBA class (a057a6d74d25a4f8bc769f9d72c98ead4d28492c, 37f1e7fabeae39d94acb1448d017c4e4ddda4edf)
      • serialize final fields across a network (PR #1505)
      • more getters/setters for Camera (PR #1492), EnvironmentCamera (issue #1447, PR #1481), and Renderer (PR #1482)
      • pack ambient-occlusion (AO) data into the metallic roughness map of a PBR material (PR #1403)
      • handle named groups when importing 3-D models in OBJ format (PR #1369)
      • a unified mechanism to manage the render targets of a FrameBuffer (PR #1401)
      • depth-only copy of a FrameBuffer (PR #1400)
      • performance profiling of render() and postRender() methods (PR #1485)
    • Bugs addressed:

      • no sound on Android devices (issue #1239, PR #1475)
      • inaccurate frame rate when using LWJGL v3 (issue #1455)
      • OGRE importer doesn't set the initial pose (issue #1395)
      • cloning a Joint (issue #1469, PR #1470)
      • logic error in Transform.interpolateTransforms() (issue #1394)
      • crashes while compiling shaders (PRs #1456 and #1458)
      • crash while importing from glTF (PR #1442)
      • crash with NegativeArraySizeException (PR #1377)
      • assertion failure in TouchTrigger.touchHash() (PR #1448)
      • wrong center location for a spherical LightProbe (PR #1440)
      • animation uses wrong easing function (PR #1397)
      • incorrect import of UTF-8 data (issue #1436, PR #1437)
      • unable to locate OpenAL library (issue #1383, PR #1432)
      • multiple issues involving iOS devices (PR #1473)
      • multiple issues involving instanced geometries (PRs #1457 and #1467)
      • gamepad split into 2 input devices (PR #1454)
      • SSAO interferes with transparent unshaded materials (discussion, PR #1512)
      • FXAA filter disables transparency (discussion, PR #1517)
      • can't generate mipmaps for cubemap faces (issue #1222, PR #1409)
      • bounding-sphere merge yields NaN (issue #1459, PR #1465)
      • LOD causes terrain patches to disappear (issue #1382, PR #1418)
      • crash while de-serializing a WireFrustum (issue #1462)
      • crash in LogicalOggStreamImpl (issue #1244, PR #1480)
      • crash while cloning a TerrainPatch (issue #1391)
      • incomplete serialization of TerrainQuad (PR #1476)
      • inaccurate de-serialization of DistanceLodCalculator (issue #1381, PR #1385)
      • checkSetParam() warning while creating sky (issue #1414, PR #1438)
    • General improvements:

      • javadoc (issues #1275, #1366, #1370, #1388, #1428; PRs #1373, #1374, #1386, #1429, #1451, #1493, #1511, #1519, #1521, and #1522)
      • ported "jme3-examples" apps to the new animation system (issue #1452; PRs #1333, #1487, #1500, #1503, and #1515)
    • New deprecations:

      • LightNode class (issue #1033, PR #1042)
      • com.jme3.anim.Weights class (PR #1523)
      • 15 methods in the FrameBuffer class (PR #1401)
    Source code(tar.gz)
    Source code(zip)
    jME3.4.0-beta1.zip(433.53 MB)
  • v3.4.0-alpha7(Apr 6, 2021)

    A non-production release, for development and testing only, not intended to be used in any product. Largely untested, without complete/reliable documentation, and without SDK support. Vital features may be missing. The feature-set, API, and serialization format might change drastically before the next release, if there is one.

    Source code(tar.gz)
    Source code(zip)
    jME3.4.0-alpha7.zip(221.00 MB)
  • v3.4.0-alpha6(Apr 1, 2021)

    A non-production release, for development and testing only, not intended to be used in any product. Largely untested, without complete/reliable documentation, and without SDK support. Vital features may be missing. The feature-set, API, and serialization format might change drastically before the next release, if there is one.

    Source code(tar.gz)
    Source code(zip)
    jME3.4.0-alpha6.zip(220.95 MB)
  • v3.4.0-alpha4(Mar 22, 2021)

    A non-production release, for development and testing only, not intended to be used in any product. Largely untested, without complete/reliable documentation, and without SDK support. Vital features may be missing. The feature-set, API, and serialization format might change drastically before the next release, if there is one.

    Source code(tar.gz)
    Source code(zip)
    jME3.4.0-alpha4.zip(220.81 MB)
  • v3.4.0-alpha3(Mar 16, 2021)

    A non-production release, for development and testing only, not intended to be used in any product. Largely untested, without complete/reliable documentation, and without SDK support. Vital features may be missing. The feature-set, API, and serialization format might change drastically before the next release, if there is one.

    Source code(tar.gz)
    Source code(zip)
    jME3.4.0-alpha3.zip(219.13 MB)
  • 3.4.0-alpha1(Mar 13, 2021)

    A non-production release, for development and testing only, not intended to be used in any product. Largely untested, without complete/reliable documentation, and without SDK support. Vital features may be missing. The feature-set, API, and serialization format might change drastically before the next release, if there is one.

    Source code(tar.gz)
    Source code(zip)
    jME3.4.0-alpha1.zip(216.67 MB)
  • v3.3.2-stable(Apr 27, 2020)

    A production-quality JMonkeyEngine 3.3 patch release with the following changes relative to 3.3.0-stable:

    • low-risk bugfixes in the libraries
    • improvements to tests and examples
    • improvements to javadoc and code formatting

    NOTE

    This release supersedes any JMonkeyEngine release named "3.3.1-stable". Release snafus necessitated a gap in the official release numbering. We apologize for the inconvenience.

    Source code(tar.gz)
    Source code(zip)
    jME3.3.2-stable.zip(280.53 MB)
  • v3.3.0-stable(Mar 30, 2020)

  • v3.3.0-beta2(Mar 24, 2020)

    A non-production release for development and testing. This is the second feature-freeze "beta" leading up to an official release.

    Changes since beta1:

    commit + 1e7e12ee6983ae65619c3f93551b9a3c4b871565
        Fix for resizing the window (issue 1191) (#1308)
        * Listen for framebuffer size callbacks and set the resolution from that
        * Also check the window size on the framebuffer size callback
    
    commit + f0e09b2a9e9edf0d859993fe1c2a8a376dc0c31d
        main.yml: add Gradle-wrapper validation to several jobs
    
    commit + 1198908555f1c730afb00d0e58e90bacf78699d5
        Lwjgl3 restart input handle (#1268)
        * Reinit inputs on context restart
        * Added test issue from issue #1013
        * Verify that the inputs are already initialized
    
    commit + fecd018fae78dede2e6744c1ebf4eb96d1a61f18
        BufferUtils: resolve issue #1288 (rewrite isDirect()) (#1299)
    
    commit + b102eabb564da37c2d2530f494b112294201d700
        Fixes issue #1286
    
    commit + 836455826bc61254d10428f9bbce391b65d996fe
        Fix openal-soft dead link
    
    commit + 3c93e50d99924c00fc6058cb6b97ffaff1e54511
        Update link for stb_image.h
    
    commit + 78779ffe0ad37f93e0799a6c70f690cb2a48dee7
        Removed extra PostShadow Technique from PBRLighting.j3md (#1273)
    
    commit + 9002d088e71c19d51257ccfb8e827582b8500089
        Issue 801 (#1269)
        * Test case for issue #801
        * Reset the context with the initial values
    
    commit + 753c3cc1739f98fa93890d02791fe58a865739ba
        PreShadow & PostShadow Support for PBRLighting.j3md (#1265)
        * Update PBRLighting.j3md
        * Create PreShadowPBR.frag
        * Create PostShadowPBR.frag
    
    commit + 55a36abe9d2a257c9a1df46eed1e23cce2ad59da
        Fixes #1261 - Clone the Terrain Picker, so that loading a terrain from file still works (after cloning, the picker would have the wrong terrain quad instance)
    
    commit + 17fbedd5fe73c3a341905b855e772953c8557fbe
        Fixes Bullet-Native Artifacts not containing natives when not building from cpp source and not using the build target.
    
    commit + 2e30b24438c2b968720483e5aadfcba80358efa7
        Fix #1236 non-lvalue cannot be out parameter
    
    Source code(tar.gz)
    Source code(zip)
    jME3.3.0-beta2.zip(280.54 MB)
  • v3.3.0-beta1(Dec 22, 2019)

  • v3.3.0-alpha5(Sep 21, 2019)

    A non-production release, for development and testing only, not intended to be used in any product. Largely untested, without complete/reliable documentation, and without SDK support. Vital features may be missing. The feature-set, API, and serialization format might change drastically before the next release, if there is one.

    Change log 3.3

    Source code(tar.gz)
    Source code(zip)
    jME3.3-alpha5.zip(261.62 MB)
  • v3.2.4-stable(Jul 13, 2019)

    A v3.2 patch release with various fixes since v3.2.3:

    • issue #1065 (ClassCastException in Uniform)
    • issue #1120 (scaled GImpactCollisionShape doesn't collide properly)
    • issue #1135 (ConeJoint causes rigid body to vanish)
    • issue #1106 (color-space warning from Blender importer)
    • issue #1113 (ParticleEmitter when setParticlesPerSec() is invoked on every update)
    • issue #1037 (HullCollisionShape performance)
    • pull request #1052 (default textures in j3md)
    • issue #1125 (CollisionShape doesn't match TerrainQuad)
    • issue #1121 (PQTorus bounds)
    • issue #1060 (bt32BitAxisSweep3 not implemented)

    PLUS new tests, fixes to tests, and improvements to the JavaDoc.

    Source code(tar.gz)
    Source code(zip)
    jME3.2-stable.zip(242.73 MB)
  • v3.3.0-alpha2(May 22, 2019)

    A non-production release, for development and testing only, not intended to be used in any product. Largely untested, without complete/reliable documentation, and without SDK support. Vital features may be missing. The feature-set, API, and serialization format might change drastically before the next release, if there is one.

    Change log 3.3

    Source code(tar.gz)
    Source code(zip)
    jME3.3-alpha2.zip(256.91 MB)
  • v3.3.0-alpha1(Mar 21, 2019)

    A non-production release, for development and testing only, not intended to be used in any product. Largely untested, without complete/reliable documentation, and without SDK support. Vital features may be missing. The feature-set, API, and serialization format might change drastically before the next release, if there is one.

    Change log 3.3

    Source code(tar.gz)
    Source code(zip)
    jME3.3-alpha1.zip(230.79 MB)
  • v3.2.3-stable(Mar 18, 2019)

    A 3.2 patch release with various fixes since 3.2.2:

    • issue #1003 (loading multiple GLB files)
    • pull request #839 (add texture formats R16F, R32F, RG16F, and RG32F)
    • pull request #980 (onJoyButtonEvent() called on every update)
    • issue #1029 (sphere-sphere collisions not reported in native Bullet)
    • pull request #1012 (fix Node.depthFirstTraversal() with DFSMode.PRE_ORDER)
    • issue #981 (update Nifty version to 1.4.3)
    • pull request #974 (update LWJGL3 version to 3.2.1)
    • issue #997 (cloning UpdateControl throws IllegalArgumentException)
    • issue #1004 (RagdollUtils can't handle 16-bit bone indices)
    • issue #1027 (return type of PhysicsSpace.rayTest() and rayTestRaw())
    • many jme3-examples issues:
      • issue #982 (TestManyLocators crashes)
      • issue #983 (TestMusicStreaming crashes due to missing asset)
      • issue #985 (TestAssetLinkNode throws AssetLoadException)
      • issue #988 (assertion failure in CubeField)
      • issue #992 (HelloCollision throws AssetLoadException)
      • issue #993 (TestGltfLoading throws AssetNotFoundException)
      • issue #994 (wildhouse.zip not found)
      • issue #998 (TerrainGridTest throws AssetLoadException)
      • issue #1026 (TestPhysicsCharacter spins Sinbad too fast)
    • AND numerous new tests and improvements to the JavaDoc, diagnostic messages, and imports.
    Source code(tar.gz)
    Source code(zip)
    jME3.2-stable.zip(238.77 MB)
Owner
jMonkeyEngine
jMonkeyEngine is a developer friendly game engine written in Java. || Archive: https://github.com/jMonkeyEngine-archive
jMonkeyEngine
A Forge mod based on the EssentialsX plugin suite

A Forge mod based on the EssentialsX plugin suite. Wiki (WIP) | Discord (WIP) | Website (WIP) | | | | Disclaimer: Mod is in early development. Note: I

Gigawhat 6 Aug 4, 2022
Desktop/Android/HTML5/iOS Java game development framework

Cross-platform Game Development Framework libGDX is a cross-platform Java game development framework based on OpenGL (ES) that works on Windows, Linux

libgdx 20.9k Jan 1, 2023
A Java game development framework that deploys to JVM, HTML5, Android and iOS.

PlayN PlayN is a cross-platform Java game development library written in Java that targets HTML5 browsers (via GWT), desktop JVMs, Android and iOS dev

null 237 Dec 9, 2022
Cross-platform Java game development framework.

Features Kronos is a open source, cross-platform game development library with a robust ecosystem. Listed below are current and planned (*) features:

Temps 0 Dec 19, 2022
Jetserver is a high speed nio socket based multiplayer java game server written using Netty and Mike Rettig's Jetlang.It is specifically tuned for network based multiplayer games and supports TCP and UDP network protocols.

Note New version of Jetserver is called Nadron and is in a new netty 4 branch of this same repo. JetServer is a java nio based server specifically des

Abraham Menacherry 1.2k Dec 14, 2022
A small game written in Java to review words.

这是一个实现网络连接的助记单词游戏 项目的具体功能: 实现多个用户通过网络连机进行游戏 通过对随机下落的六级词汇的补全,在游戏中提高用户的单词水平 记录每次游戏的成绩和情况(答对、答错、未答) 运用的技术及难点: 技术: 运用JavaSwing对游戏进行图形化开发,运用JavaSocket实现C/S

JavaW 2 Feb 2, 2022
A simple memory game written in java.

What's this? A simple memory game written in java. How to play Download the latest release. Ensure that a compatible java runtime is installed (optima

Patrick260 1 Jun 26, 2022
A high-level cross-platform 2D game development API

mini2Dx A high-level game development API for LibGDX inspired by Slick Website Wiki Community Javadoc Downloads Goals The main objective of mini2Dx is

null 492 Dec 24, 2022
BattleShip-Game - This repository contains the code of the BattleShip (Bataille Navale) game programmed in Java.

Bataille Navale Auteur : SABIL Mohamed Amine Comment générer la documentation ? Placez vous dans le sous-dossier src : pour générer la documentation d

Mohamed Amine SABIL 1 Jan 4, 2022
Othello PvP (2-Player) Game Application created in Java using Swing and AWT, for playing the Othello game

Othello PvP (2-Player) Game Application created in Java using Swing and AWT, for playing the Othello game, a simple game that played on an 8 by 8 checkered board with 64 double-sided black and white discs. The game is easy to learn, but it takes time to master and develop winning strategies.

Soumyadeep Pal 1 Feb 28, 2022
My Game Engine tested via my Cubecraft Game

My Game Engine tested via my Cubecraft Game Install: mvn -P {your OS name} clean install mvn -P mac clean install mvn -P linux clean install mvn -P wi

null 30 Oct 3, 2022
The game is a 2D side scrolling system, where a player moves left, right, vertically or diagonally to traverse the game.

The game is a 2D side scrolling system, where a player moves left, right, vertically or diagonally to traverse the game.

Ravi Mandal 7 Sep 11, 2022
A simple puzzle game made with Unity to practice the game engine

A simple puzzle game made with Unity to practice the game engine.

Eyüb Salih Özdemir 1 Mar 30, 2022
A basic representation of the 0-player game, "Game-of-Life", a simple example of basic cellular automata

Game-Of-Life-Basic A basic representation of the 0-player game, "Game-of-Life", a simple example of basic cellular automata. A cellular automaton is a

Nikhil Narayanan 5 Oct 27, 2022
LWJGL is a Java library that enables cross-platform access to popular native APIs useful in the development of graphics (OpenGL, Vulkan), audio (OpenAL), parallel computing (OpenCL, CUDA) and XR (OpenVR, LibOVR) applications.

LWJGL - Lightweight Java Game Library 3 LWJGL (https://www.lwjgl.org) is a Java library that enables cross-platform access to popular native APIs usef

Lightweight Java Game Library 4k Dec 29, 2022
A shitty discord token grabber written in Java

JarGrabber A Discord token grabber that exfiltrates tokens to a webhook written in Java As usual, this code and tool should not be used for malicious

Matt 4 Nov 11, 2021
Sequel to Heavy Armaments Industries, a mod for mindustry written in Java

Sequel to Heavy Armaments Industries, a mod for mindustry written in Java

Eschatologue 78 Dec 30, 2022
Golden Axe (1989) game implemented in java using only standard libraries (Java 2D, Swing, AWT & Java Sound API)

Golden Axe (1989) game implemented in java using only standard libraries (Java 2D, Swing, AWT & Java Sound API), so no external libraries required. Video: https://youtu.be/uevIVLNhQqs

Leo 101 Jul 21, 2022