Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon

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 ,

27. January 2016

 

RoboVM just release version 1.13.0 adding Twitter Fabric support.  RoboVM is a virtual machine that enables you to run Java JVM applications on iOS devices and is commonly used to power LibGDX games on iPhones and iPads as well as recently added support of Apple TV.  This release adds:

Bug Fixes & Enhancements

As always, we squashed bugs, improved performance and added some bells and whistles. Here are the most important changes:

  • Fixed an issue with RxJava in high-concurrent scenarios as well as alignment issues
  • Fixed memory leak in IntelliJ IDEA plugin and RoboVM Studio that would eat up CPU and memory
  • Fixed crash in Android SDK setup on Linux
  • Added automatic installation of HAXM to the Android SDK setup
  • Updated RoboVM Studio to IntelliJ IDEA 15.0.3
  • Updated Android SDK to the latest version for Windows, Linux and Mac OS X
  • Added setting to IntelliJ IDEA plugin/RoboVM Studio to disable automatic setting of language level to 1.8
  • Added various improvements to the device selection dialogs in Eclipse and IntelliJ IDEA/RoboVM Studio
  • Minimized the amount of Gradle demons that are being spawned by IntelliJ IDEA when creating or importing Gradle-based projects
  • Added methods to NSData to retrieve contents without producing garbage
  • Fixed classpath/bootclasspath setup in dynamic frameworks
  • Fixed linking on Linux x86_64
  • Fixed crash in debugger due to wrong JDWP event ordering
  • Updated all 3rd party SDKs used in RoboPods to their latest versions
  • Bindings for all new iOS 9.2 APIs
  • Fixed 30 second watchdog limit on iOS for unit tests. iOS would kill a process that takes longer than 30 seconds to establish a UI run loop. Unit tests do now set up an artificial run loop, while tests are being run on a separate thread.

GameDev News ,

Month List

Popular Comments