*takes a deep breath - Renamed Generic world structure interfaces to the following scheme: {Block,Tile,Chunk,World}Generic{,Stack,Reference}{RO,WO} (e.g. GenericWritableChunk -> ChunkGenericWO) - RO is Read Only, WO is Write Only - Generic writable interfaces no longer extend their read-only counterparts (thus Write Only) - TileGenericStack{RO,WO} are now interfaces; AbstractList is only introduced by final implementations - TileGenericReferenceRO now has a WO counterpart - Fixed compilation issues with the previous commit - Declared some additional functionality for Generic interfaces - Old ChunkData and WorldData renamed to DefaultChunkData and DefaultWorldData - Now considered to be an implementation detail; references will be minimized - Introduced TileDataStack{,RO}, TileDataReference{,RO}, ChunkData{,RO}, WorldData{,RO} interfaces - Suffix -RO indicates Read Only, no suffix means read-write - To be used in place of DefaultChunk and DefaultWorld - Designed to support wrappers and "fake" implementations - May need some refinement (fix return/parameter types, ...) - Surface world generator is now implemented poorly (WIP) - Should compile. May work fine. Unless Java inheritance rules have screwed me over.
Progressia
A free, open-source sandbox survival game currently in early development.
Description
The game has barely begun development so much of its features are yet to be implemented.
In broader terms, Progressia is a challenging game about survival, exploration and engineering in a realistic voxel sandbox environment. The game is heavily inspired by Minecraft technology mods, Factorio, Vintage Story and Minetest. Progressia's main unique features will include highly composite items and blocks, a realistically-scaled world, temperature mechanics and a parallelism-capable server.
System requirements
- GNU/Linux (x64, arm32 or arm64), Windows XP or later (x64 or x86) or MacOS (x64)
- Java 8 or later
- OpenGL 2.1 or later
- Probably about 0.5 GiB RAM
- Less than 1 GiB of storage space
See Build Guide for compilation requirements.
Contributing
All contributors welcome. Please contact Javapony in Telegram or join our Discord server for details or help.
Building
On GNU/Linux and MacOS:
$ git clone https://github.com/OLEGSHA/Progressia.git
$ chmod +x gradlew
$ ./gradlew buildLocal
On Windows:
git clone https://github.com/OLEGSHA/Progressia.git
gradlew.bat buildLocal
Alternatively use Linux/MacOS steps in a Bash shell.
For a more in-depth explanation, solutions for common problems and tips for IDE configuration please see the Build Guide.
Libraries
- LWJGL (GitHub) – OpenGL, OpenAL, GLFW and STB libraries ported to Java
- OpenGL – a low-level graphics interface
- OpenAL – a low-level audio interface
- GLFW (GitHub) – a minimalistic OpenGL-capable windowing library
- STB (GitHub) – a collection of various algorithms.
stb_vorbis
is used
- Guava (GitHub) – a generic utilities library
- Trove4j (BitBucket) – optimized primitive collections
- java-graphics/glm (GitHub) – GLM ported to Java. Maven Central contains an outdated version, a custom repository used instead
- OpenSimplex2 (GitHub) – a minimalistic highly optimized noise generator
- Log4j (GitHub) – a logging library