Skip to content

Releases: bitsusei/TerraModulus

Alpha Stage: Basis of Basics; v0.0.1: Physics

27 Apr 20:36
154e9a2

Choose a tag to compare

This very first Alpha version of TerraModulus Orryx showcases the most basic Physics demonstration of certain potential features in physics of TerraModulus. The visualization of the World is most likely the basic model being used in future development.

Binaries

There are pre-built binaries for Windows and Linux; binaries on macOS and Linux are not tested well, though it runs in my WSL, or else it may have to be built on your own. Note that the binaries are built in with target JVM 17, so JDK of version at least 17 is required.

  • On Windows, download and extract the distribution archive below, browse into lib directory to run the batch file, and it should be running.
  • On Linux, there are some required dependencies that have to be installed on your end, and they include but not limited to (there may also be other dependencies):
    • libode8 version 0.16.6
    • libopenal1 version 1.24.3
    • libsdl3 version 3.4.4

Also note that the binaries are optimized releases, so no debug symbols are included.

Features

Currently, there is no actual implementation of a World that actual gameplays being proposed will reside in. Instead, a purely demonstrative World, possibly referred as a Void World (since an object in it is called VoidGeom whilst it resides in a package called void), is being used during likely the whole Alpha stage.

There are currently just a few menus to display startup screens and rendering of World, but a more complete menu system will be implemented in the next Alpha version.

Basically, performance is not optimized, but there is basic filtering in collision detection algorithm

Functions/Hotkeys

For movement, use W, S, A, D, Shift, Space for directional movement of the sphere.

Other hotkeys include:

  • Q: Query position of sphere
  • R: Query velocity of sphere
  • U: Query gravity of world and gravity mode of (influence to) sphere
  • I: Toggle gravity mode of (influence to) sphere
  • O: Increase world gravity
  • P: Decrease world gravity
  • J: Query friction states
  • K: Toggle friction mode
  • L: Increase friction (for Limited mode)
  • M: Decrease friction (for Limited mode)
  • N: Reset velocity of sphere to zero
  • =: Zoom in camera
  • -: Zoom out camera

Note that querying print logs into the terminal.

Known Issues

  • shaky geometries (cubes) being rendered occasionally when moving around the world
    • most scenarios of it have been fixed by increasing precision during calculations of matrices before passing to OpenGL, but minor pixel displacements may still be noticeable, possibly causing by lack of anti-aliasing or low framerates
  • low framerates during rendering of world
    • this is most likely because of unoptimized rendering, where there may be more than 30k draw calls during a single frame; this would likely be resolved in the next Alpha

Special Notes

  • logos shown during startup are provisional for demonstrative purposes and would not be used in the future
  • currently nothing is being loaded during startup screens
  • initialization of world suspends rendering, causing window not responding before completion of initialization; a trial to initialize objects in background may be done in the next Alpha to resolve this scenario
  • close button of decorator does nothing, so closing the process requires closing the terminal launched, or sending an interrupt code to the terminal

More information about the details of this version, please refer to EFP 11.