Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon

22. September 2017


LWJGL, the Light Weight Java Game Library, just released version 3.1.2.  LWJGL is a series of Java bindings for several underlying media APIs such as OpenGL, OpenAL and Vulkan.  This release also added OpenVR and OpenEXR support among other changes and fixes.

Details from the release notes:

This build includes the following changes:

Bindings
  • Added OpenVR bindings.
  • Added Tiny OpenEXR bindings.
  • Added Yoga bindings.
  • bgfx: Updated to API version 41 (up from 34)
  • glfw: Updated to pre-release 3.3.0 version (up from 3.2.1). Includes many fixes and new features:
    • Last error code query (glfwGetError)
    • Requesting attention from the user (glfwRequestWindowAttention)
    • Platform dependent scancodes for keys (glfwGetKeyScancode)
    • Window maximization events (glfwSetWindowMaximizeCallback)
    • Window attribute modification (glfwSetWindowAttrib)
    • Joystick hats (glfwGetJoystickHats)
    • Library initialization hints (glfwInitHint)
    • Headless OSMesa backend
    • Cursor centering control (GLFW_CENTER_CURSOR)
    • macOS: Cocoa hints (GLFW_COCOA_RETINA_FRAMEBUFFER, GLFW_COCOA_FRAME_AUTOSAVE, GLFW_COCOA_GRAPHICS_SWITCHING, GLFW_COCOA_CHDIR_RESOURCES, GLFW_COCOA_MENUBAR)
    • macOS: Vulkan support via MoltenVK
    • X11: Moved to XI2 XI_RawMotion for disabled cursor mode motion input
    • EGL: Added support for EGL_KHR_get_all_proc_addresses and EGL_KHR_context_flush_control
  • jemalloc: Updated to 4.5.0 (up from 4.4.0)
  • LibOVR: Update to 1.14.0 (up from 1.10.0)
  • lmdb: Updated to 0.9.20 (up from 0.9.18)
  • NanoVG: Added support for fallback fonts.
  • nuklear: Updated to 1.37.0 (up from 1.29.1, with the new versioning)
  • OpenAL: Added AL_SOFT_source_resampler extension.
  • stb
    • Updated stb_dxt to 1.0.6 (up from 1.0.4)
    • Updated stb_easy_font to 1.0 (up from 0.7)
    • Updated stb_image to 2.15 (up from 2.13)
    • Updated stb_image_resize to 0.94 (up from 0.91)
    • Updated stb_image_write to 1.05 (up from 1.02)
    • Updated stb_perlin to 0.3 (up from 0.2)
    • Updated stb_rect_pack to 0.11 (up from 0.10)
    • Updated stb_truetype to 1.15 (up from 1.12)
    • Updated stb_vorbis to 1.10 (up from 1.09)
  • tinyfiledialogs: Updated to 2.8.3 (up from 2.7.2)
  • Vulkan: Updated to 1.0.49 (up from 1.0.38)
Improvements
  • MemoryStack: Increased default stack size to 64kb (up from 32kb)
  • Shared library loading can now utilize a ClassLoader specified by the caller. (#277)
  • Significantly reduced DEBUG_MEMORY_ALLOCATOR and DEBUG_STACK overhead in Java 9 using the new StackWalker API.
  • Migrated windows builds to appveyor and updated to Visual Studio 2017 (up from 2015)
  • EGL: The core API now includes javadoc links to the Khronos references pages
  • OpenGL ES: The core API now includes javadoc links to the Khronos references pages
Fixes
  • Assimp: Struct member nullability fixes
  • Linux: Removed dependencies to newer GLIBC versions.
  • LibOVR: Fixed layout of the ovrInputState struct.
  • OpenAL: Removed buffer auto-sizing from alcCaptureSamples. The number of samples must now be specified explicitly, similar to alcRenderSamplesSOFT.
  • Vulkan: Function addresses are now retrieved only once, using the optimal method for each function type.
    • This avoids warnings on pedantic validation layers.
  • Fixed callback invocation bugs on 32-bit architectures.
  • Fixed various javadoc formatting issues (#308)
Breaking Changes
  • Mapped more integer parameters and return values to Java boolean, that were missed while working on #181.
    • Xlib's Bool
    • OpenCL's cl_bool
    • DynCall's DCbool
  • Moved JNI global reference functions from MemoryUtil to the generated org.lwjgl.system.jni.JNINativeInterface.
  • The Vulkan capabilities have been split into two classes: VKCapabilitiesInstance and VKCapabilitiesDevice.
    • Flags for core Vulkan versions exist in both classes.
    • Flags for instance extensions exist only in VKCapabilitiesInstance.
    • Flags for device extensions exist only in VKCapabilitiesDevice.
    • Functions that dispatch on VkInstance or VkPhysicalDevice exist only in VKCapabilitiesInstance.
    • Functions that dispatch on VkDevice and device-derived handles exist only in VKCapabilitiesDevice.
    • Bootstrapping functions can be retrieved with VK.getFunctionProvider().

GameDev News

6. June 2016

 

LWJGL (Light Weight Java Game Library), a set of Java bindings for several low level libraries ( Open GL, ES, Vulkan, OpenCL, GLFW, etc. ) just released version 3.0.0 after 3 years in development.  This is the underlying technology used by LibGDX for desktop support for example.  This release brings several changes, including:

BINDINGS

  • Added support for Java array parameters and HotSpot Critical Natives. (#175)
  • Added Vulkanl bindings. (#50)
  • Added NanoVG bindings. (#99)
  • Added NativeFileDialog bindings.
  • Added par_shapes.h bindings.
  • Added dyncall bindings.
  • Added jawt bindings for AWT/Swing integration. (#125)
  • Added simple OS-specific window creation bindings, for custom window/context creation. (#105)
  • Added missing OpenCL and OpenAL extensions.
  • Fully documented OpenCL and OpenAL.
  • Moved WGL and GLX capabilities to the new WGLCapabilities and GLXCapabilities classes, respectively. Functionality in WGL, GLX and corresponding extensions that does not require a current context can now be used without creating a dummy context first. (#171)

IMPROVEMENTS

  • Added stack allocation APIs (the MemoryStack class and new allocation methods in struct classes and MemoryUtil).
  • Made the implementations of PointerBuffer and Struct/StructBuffer subclasses as lightweight as possible. This makes it easier for escape analysis to eliminate allocations.
  • Minor struct API improvements.
  • Added nullability information to struct members, to protect against buggy code crashing the JVM.
  • All bindings are updated to the latest versions of the corresponding libraries. Notably, GLFW now hasglfwSetWindowIcon and glfwSetWindowMonitor, it now doesn't lack anything compared to LWJGL 2's Display.
  • Refactored callbacks for Java 8. (#182)
  • Added NativeResource interface and made freeable objects usable as resources in try-with-resources statements. (#186)
  • Faster thread-local lookups for the stack and current capabilities. New options in Configuration can be used tocomplete eliminate thread-local lookup in OpenGL, OpenGL ES and OpenAL, when it is known that only a single context will be used, or that all contexts will be compatible (same capabilities and same function pointers).
  • Added memSlice for all buffers types in MemoryUtil. (#179)
  • Refactored the Configuration class for type safety and added more options.
  • JDK 9 can now be used to build and run LWJGL.
  • Javadoc is now generated with JDK 9. The API is fully indexed and search functionality is available. Also made multiple Javadoc formatting improvements.
  • Improved debug diagnostics on startup and when loading the LWJGL shared library fails.
  • Optimized memSet and memCopy for small buffers.

FIXES

  • Stopped using UPX compression for binaries. This eliminates various integration issues and virus scanning false-positives.
  • The SharedLibraryLoader now works with any shared library, not only libraries LWJGL knows about. (#176)

BREAKING CHANGES

  • LWJGL now requires Java 8 to build and run. Certain custom interfaces have been replaced with java.util.functioninterfaces. (#177)
  • Dropped support for Linux x86. (#162)
  • Dropped libffi bindings.
  • Dropped ALDevice/ALContext wrappers from OpenAL and CLPlatform/CLDevice wrappers from OpenCL. (#152)
  • Dropped the getInstance() method from bindings loaded from shared libraries. Function pointers are now stored either in capabilities classes or in a nested Functions inner class.
  • Dropped infrequently used method overloads in bindings. Full javadoc is now generated on (almost) all overloads.
  • Dropped utility classes that were not useful.
  • Added AutoSize support to struct members. Instance setters for the corresponding count/size members were removed to avoid bugs and confusion.
  • Replaced MemoryUtil.memFree(StructBuffer) with StructBuffer.free().
  • Renamed __ALIGNMENT to ALIGNOF in struct classes.
  • Removed org.lwjgl.system.Retainable interface. Closure and FunctionProvider subclasses are now destroyed using.free() instead of .release().
  • Moved xxHash and SSE bindings to the org.lwjgl.util package.
  • Integer-boolean native types (0 or 1 are the only legal values) are now mapped to Java booleans. (#181)
  • Macros without parameters are now generated as static final values, not methods.

You can read more about the release here.

GameDev News ,

8. April 2016

 

In 2013, Google announced the switch from Eclipse to Android Studio as the primary route for Android Development.  Android Studio is a fork of the popular IntelliJ Java IDE from JetBrains.  Yesterday they announced the released of Android Studio version 2.

So, what are the new features in this release?  Well...

  • Instant Run - For every developer who loves faster build speeds. Make changes and see them appear live in your running app. With many build/run accelerations ranging from VM hot swapping to warm swapping app resources, Instant Run will save you time every day.
  • Android Emulator - The new emulator runs ~3x faster than Android’s previous emulator, and with ADB enhancements you can now push apps and data 10x faster to the emulator than to a physical device. Like a physical device, the official Android emulator also includes Google Play Services built-in, so you can test out more API functionality. Finally, the new emulator has rich new features to manage calls, battery, network, GPS, and more.
  • Cloud Test Lab Integration - Write once, run anywhere. Improve the quality of your apps by quickly and easily testing on a wide range of physical Android devices in the Cloud Test Lab right from within Android Studio.
  • App Indexing Code Generation & Test - Help promote the visibility your app in Google Search for your users by adding auto-generated URLS with the App Indexing feature in Android Studio. With a few click you can add indexable URL links that you can test all within the IDE.
  • GPU Debugger Preview - For those of you developing OpenGL ES based games or apps, you can now see each frame and the GL state with the new GPU debugger. Uncover and diagnosis GL rendering issues by capturing and analyzing the GPU stream from your Android device.
  • IntelliJ 15 Update - Android Studio is built on the world class Intellij coding platform. Check out the latest Intellij features here.

 

Of these news features, the 3x improved emulator speed is by far the most exciting to me.  Put simply previous Android emulators have been SLOW.  Painfully, excruciatingly slow.  Heck, the simple fact they can TRIPLE the speed of previous emulators should give you an idea of just how slow it was!  The emulator also has an improved user interface, added drag and drop APK deployment, multi touch support, resizable windows and more.

emu

 

They also increased the speed of APK deployment by a factor of 10.  All told, these improvements alone make this upgrade a no brainer.  You can learn more about the new features of Android Studio 2.0 here.  Android Studio is available for download here.

GameDev News ,

14. March 2016

 

jMonkeyEngine just released 3.1 Alpha 3.  Just recently they released Alpha 2 that decoupled jMonkeyEngine from Netbeans IDE.  This release takes this one step further and adds a few new features. 

About the release:

Without too much fanfare, the JME 3.1 alpha 3 release has been uploaded to the various places, including jcenter. If you reference version="[3.1,)" in your gradle or maven projects then you should get an update automatically when they recheck.

Highlights:

  • SDK was moved to its own project
  • Some cloning cleanup in prep for replacing spatial and control cloning in alpha 4
  • added a cloning util package
  • J3MExporter
  • various other bug fixes

Alpha 4 is scheduled for two weeks and may have some breaking changes. After that if necessary there will be an alpha 5 two weeks after that to resolve any alpha 4 bugs... then we hope for beta.

So if you aren't already, please start using and testing these releases as it's the only way the bugs will get fixed before they break your games.

 

More details are available here.  Nice to see the faster release schedule, let’s hope it keeps up.

GameDev News

1. March 2016

 

jMonkeyEngine is a popular open source 3D game engine written in Java.  I did a “Closer Look at” jMonkeyEngine earlier last year if you want more information.  The big part of this release isn’t really all that flashy, but it is smart.  You see up until now, jMonkeyEngine has been heavily tied to the NetBeans IDE, an IDE used by about 4 people.  (Yeah, hyperbole...).  This has advantages, it makes for a turn key package but at the cost of tying the two together making for slow release schedules from the jME team, as well as adding a lot of complications for developers that want to work in a different IDE such as Eclipse or IntelliJ.  jME 3.1 is all about seperating jME the SDK from jME the toolchain.  This means jME should be easier to get started with for non-NetBeans developers and that future releases should come at a quicker pace.

 

From the announcement:

New Features

  • jME3 Maven artifacts are now available on JCenter! (thanks @davidB and @pspeed42) Note that Nifty-GUI and JBullet still require using the jME3 private Maven repo. Please see the wiki page for more information.
  • LWJGL3 support (beta) (thanks @DannyJo)
  • Improved OpenGL 3.2 core profile support
  • JOGL backend improvements to support new unified renderer backend
  • New constructors for lights: #297
  • Ability to toggle lights on or off: #393
  • Allow to set min / mag filter in J3M files: #295
  • Support bounding spheres with light culling: #362
  • Allow overriding dead zone per joystick axis: @46794e2
  • Add support for non-public constructors in networking serialization: @50b2f76
  • Rendering performance improved (less GL calls)

Fixed Bugs

  • Fix physics angular factor deserialization: #383
  • Fix GImpactCollisionShape for native bullet: #188
  • Fix BetterCharacterControl flickering: #391
  • Fix crash on ARM8 android devices: #378
  • Fix framebuffer crash on some OpenGL drivers: @78d2d6e
  • Fix regression in Node.collideWith(): @31cab67
  • Fix native bullet ray cast / sweep test crash: @86439c2
  • Fix clone method for lights: @6c4e801
  • Fix collideWith method for BatchNode: @1073eba
  • Fix broken culling when using negative scaling: @495e0cf
  • Fix FXAA quality regression: @4a37a8f
  • Fix lighting color ramp feature: @01227d3
  • Fix network client and server running in same JVM: @2c33712
  • Fix various race conditions in networking
  • Blender Loader various fixes

Other

  • ColoredTextured.j3md is now deprecated

GameDev News ,

Month List

Popular Comments