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
| Path | Role |
|---|---|
src/main/java/ActiverseEngine | Worlds, actors, input, physics, voxels, the frame loop. |
src/main/java/ActiverseRender | Window, meshes, shaders, HUD, UI toolkit. |
src/main/java/ActiverseAudio | OpenAL device, buffers, sources. |
src/main/java/ActiverseUtils | Vectors, matrices, logs, config parsers. |
cgame/Sandbox | Voxel game. Entry is cgame/Main.java. |
cgame/OptiShoot | Third-person range. Entry is OptiShootMain. |
native/activerse-core | Rust crate built as libactiverse_core. |
src/main/resources/Activerse.toml | Engine defaults: fps, vsync, fog, render distance. |
Where to read next
- A world — the classes you subclass.
- The clock — the one timestamp everything else uses.
- Input, physics, and drawing when you need those systems.
- Games and the native core if you are changing Sandbox, OptiShoot, or the Rust step.
- 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.