Activerse Frontier

Activerse Frontier is a 3D Java game engine. You subclass World and Actor, then start a world with Activerse.start. Drawing, audio, and the window are LWJGL (GLFW, OpenGL, OpenAL). Time, stamped input, and the player body step live in a small Rust library, activerse_core, called from Java through the Foreign Function & Memory API.

Games are not inside the engine tree. They sit in cgame/. Sandbox is the voxel world. OptiShoot is the third-person range. Both use the same loop.

Run a game

From the engine repository, on macOS:

./runsandbox.sh
./runoptishoot.sh

On Windows, runsandbox.bat and runoptishoot.bat. Each script compiles the engine, cgame, and the native library, then launches the game. macOS also needs -XstartOnFirstThread, which the shell scripts already pass. Every launch needs:

--enable-native-access=ALL-UNNAMED
--sun-misc-unsafe-memory-access=allow

In an IDE, run Main for Sandbox or OptiShoot.OptiShootMain for the range, with those VM options. JDK 25. Worlds save under saves/<name>/.

If libactiverse_core does not load, the frame clock falls back to System.nanoTime and physics stays in Java. That fallback is a different epoch. Do not mix those stamps with Rust stamps from an earlier run.

Source layout

PathRole
src/main/java/ActiverseEngineWorlds, actors, input, physics, voxels, the frame loop.
src/main/java/ActiverseRenderWindow, meshes, shaders, HUD, UI toolkit.
src/main/java/ActiverseAudioOpenAL device, buffers, sources.
src/main/java/ActiverseUtilsVectors, matrices, logs, config parsers.
cgame/SandboxVoxel game. Entry is cgame/Main.java.
cgame/OptiShootThird-person range. Entry is OptiShootMain.
native/activerse-coreRust crate built as libactiverse_core.
src/main/resources/Activerse.tomlEngine defaults: fps, vsync, fog, render distance.

Where to read next

  1. A world — the classes you subclass.
  2. The clock — the one timestamp everything else uses.
  3. Input, physics, and drawing when you need those systems.
  4. Games and the native core if you are changing Sandbox, OptiShoot, or the Rust step.
  5. Config for toml, ini, and save folders.

JavaDoc is generated in the engine tree, not hosted on this site. From the repository:

bash generate-javadoc.sh

Open docs/index.html. Start at the ActiverseEngine package, then ActiverseEngine.nativecore. The 2D engine has its own wiki at Wiki Hub or the Origin wiki. Frontier does not use that API.