Senior Lecturer, Computing Department Lead at the University of Brighton. Author of #FXGL game engine. #Java #JavaFX #Kotlin open sourcerer. PhD in Computer Science.
Game developers unite around Java and JavaFX! Version 17 of the FXGL game engine brings a number of improvements in many areas.Almas Baimagambetov
The FXGL game engine is now at 11.17. Most of the changes in this release focus on internal code quality and fixes.
Major additions to note:
1. Added download file API to NetService. Using this API developers can download files from any URL. For example, if certain assets are stored remotely.
2. Rotation and scale in 3D now support origin points (pivot points). This is a beneficial addition since some animations will need specific origin points for transformations to achieve the desired effect.Almas Baimagambetov
In order for any technology to grow and improve, community support and feedback are paramount.
To get a general idea of what the community would like to see in JavaFX in the future, I have asked developers to share their thoughts. The collated results are given below.
Each entry also includes links to open-source libraries and other resources that may provide (or help develop) some of the necessary functionalities.Almas Baimagambetov
Game Development is a large field of Computer Science with a lot of underpinning theory behind the concepts and practices used in the industry.
In this short article, we will learn some fundamental basics of these concepts, which will be explored within the context of the FXGL game engine.
However, the concepts themselves are language-agnostic and engine-agnostic.
Please note that the material presented here is deliberately simplified to provide a gentle introduction. Those seeking in-depth coverage are encouraged to pursue further research.Almas Baimagambetov
1. The restored Multiplayer Service allows easy replications of input, events and entities on a remote machine. For example, by just adding a single line of code (see MultiplayerService API), any key or mouse inputs that occur on one end of the connection can be replicated on the other end.
2. The new FPS camera allows easy control of the player (or their “line of sight”) in the context of a first-person 3D game.
3. There is no longer a transitive dependency on the javafx.swing module. This means FXGL users will not need an extra module in their module graph.Almas Baimagambetov
In this article, Almas and Frank show you how to start with an idea for a game and bring it to life in a prototype application. We will then modify the application to run on a Raspberry Pi and on a mobile device.
To give some background, some time ago my 10y old son challenged me to create a Snake-like game with emojis. He selected the emoji images and I “only” needed to do the programming bit, the easy part… Luckily Almas asked me if I had a topic for some pair-programming for his YouTube channel, and his question turned into a three-part series. My son is delighted because his idea is now a real game!
In this tutorial we will make a very simple clone of the classic Pong game using the FXGL game engine.
We will be using the latest (currently 11.15) version of FXGL via Maven or Gradle.
The full source code is available at the end of this page.Almas Baimagambetov
In this article, we comparatively evaluate four different approaches to render particles in JavaFX in terms of runtime performance.
The approaches are Canvas, PixelBuffer AWT, PixelBuffer CPU and PixelBuffer GPU.
The evaluation suggests the following order of approaches from fastest to slowest:
– PixelBuffer GPU (fastest).
– PixelBuffer CPU.
– PixelBuffer AWT.
– Canvas (slowest).Almas Baimagambetov
In a previous post, Getting Started with FXGL Game Development, we already have taken a look at the FXGL game development framework developed by Almas Baimagambetov.
But, this game engine can also be used for other use cases. In this post, we will be building a system monitoring dashboard, which can run on a Raspberry Pi.
The dashboard can be used to keep an eye on any device that can report its state to a queue. And, for me personally, it finally solves the problem of finding the IP addresses of all my Raspberry Pi’s when my router decided to shuffle them.
FXGL is a JavaFX Game Library Engine for Java and Kotlin, created by Almas Baimagambetov.
In this article, you’ll read what FXGL is, what it is good for, what its dependencies are, as well as a complete scenario with a video and code snippets to set up your first FXGL scenario from scratch.