NOTE: The music-related applications linked on this page have been written in the Java language."Jar" files can be downloaded, then executed with a double-click, assuming you have a working "Java Virtual Machine" (JVM). Visit Java.com for a free JVM.


Graphics and Game Software

First example of SiVi's GUI

Second example of SiVi's GUI

SiVi, a Simplex noise Visualizer & GIF Maker

This tool started with
the goal of helping game
programmers manipulate 
layers of Ken Perlin's 
Simplex Noise, 
to create noise-based
graphic textures. Now
supporting OpenSimplexNoise
SIVI can export jpgs 
and gif animations.

The open source project can be found at github.com/philfrei/SiVi.

Solar plasma gif

Visit the repository for the latest build, and additional information

Application can be downloaded from here.

Image of the puzzle game, Hexara

Hexara

This work-in-progress is a
puzzle game. The task is to
place mystical icons from 
hanging scrolls into a central 
frame while preserving the 
scroll-neighbor relations.
More difficult puzzles can take
20 or 30 minutes to solve.
The background music is generated,
becoming more active as the
puzzle gets closer to being
solved.

Starry Sky

The reusable code is for
making twinkling starry-sky 
graphics with a Perlin-noise 
generated galactic cloud.
You can specify the width 
and height of the rectangle, 
the number of stars, and the
likelihood of asteroids.

No plans currently to take the time to make this code available. This site's home page, the puzzle game Hexara, and the "night" skin in the Drone Maester all make use of this code.

Animated GIF of twinkling stars

Tutorials

Getting Started with JavaFX Game Programming (for-Java-Programmers)

This tutorial has four short lessons, aimed at getting experienced Java game programmers quickly up to speed on JavaFX game programming basics. I emphasize overcoming some common gotcha's, covering the use of Eclipse, a basic overview of the graphics hierarchy, the preferred animation/game loop method, and how to capture keystrokes. Written in Feb 2017, some of the info pertaining to Eclipse has become obsolete, but the basic JavaFX content remains valid. This tutorial has had over 150,000 views!

Packaging Java as a Native Application with a Self-Contained, Custom Runtime: A Manual Walkthrough

This tutorial was written shortly after modular Java and the jlink capability became available, and few tutorials existed that explicitly addressed packaging and distributing a JavaFX program with a custom run-time. [Since writing, JavaFX has been separated from Java and this tutorial does not include the additional steps required to handle that new development. Tools for deriving the module-info.java file have also improved.] As a way to help better understand the process, only command-line tools (javac, java, jlink) are used. Once the program is built, the tutorial includes steps to using InnoSetup 5 (now 6) to package the application as an installable Windows .exe program. The tutorial assumes that the reader has a beginner's level of expertise with command shell operations.