Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Chunk Stories

alt text

What is Chunk Stories ?

Chunk Stories is an advanced Minecraft clone, with a tailor-built engine boasting first-class modding support. It is written in Kotlin and tries to emulate the appeal of the proprietary Java Edition, but as free software and built in a more modern, and a more modular architecture. The engine features modern features such as a Vulkan rendering backend and a traits-based system for entities, and the developpers adopt a pragmatic approach to code complexity and technical challenges.

Why yet another Minecraft clone ?

Not everyone is happy with the direction Minecraft is taking under the direction of Microsoft. While the game is doing very well for now, it's also clear Redmont wants to keep an iron grip over it's modding potential, and refuses to provide a real modding API with a permissive licensing scheme. There is also the issue of the Bedrock edition, which is a dystopian version of the game, complete with paid mods, microtransactions and completely locked-down executables, which threatens to replace the good old Java Edition over time.

In contrast, Chunk Stories is free software and runs on any platform someone can be bothered to port the implementation to.

You didn't answer the question, there already are multiple open minecraft clones!

For the author, Chunk Stories is and always has been a side project, made for fun and to become a better programmer. The author also finds the existing offerings poor, and has the smug belief he can do better, especially in the mods handling department (Yes, that).

To this end, Chunk Stories borrows heavily from one of two best things about the Minecraft modding ecosystem: The Bukkit-style of plugins, and the server-downloadable "resource packs", mixing the two into the idea of a "Mod". Mods are merely zip files with resources ( images, 3d models, sounds, json files ) and code ( inside jars ), and are very simple to both build and use.

Main engine features

  • Uses hjson for content definitions (Blocks, Items, Entities, Particles, etc)
  • Support for hot-(re)loading mods
  • Advanced graphics with a rendergraph-based renderer
    • Vulkan and OpenGL 3.3 backends
    • Very high view distances, to 1km and above via heightmaps
    • Simple data-oriented API for having objects drawn on the screen and passing data to shaders
    • Experimental voxel global illumination*
  • Multiplayer, with dedicated servers and the ability to serve mods
  • Entities use traits to store data and organize their logic
  • DPI-agnostic UI with seamless scaling
  • Sane-ish codebase thanks to years of bikeshedding and refactoring

* some stuff might not be quite done right now

Links

Building

This is for building chunkstories, the core engine. If you are only looking to write mods, you do not have to mess with this at all and should rather follow the mods creation guide on the project Wiki !

Setup

Video tutorial

IMAGE ALT TEXT HERE

Brief Instructions

First you need to clone both chunkstories-api and chunkstories-core as both are needed to compile this. You can try to build from the artifacts in the repo, but only those used in released versions of the games are guaranteed to be present.

  • git clone both chunkstories-api and chunkstories-core
  • in the chunkstories-api folder: ./gradlew install or gradlew.exe installon Windows
  • in the chunkstories-core folder: ./gradlew install or gradlew.exe installon Windows

The local maven repository on your computer (.m2 folder) now contains copies of both the api and core content the chunkstories engine requires. These are not automatically rebuilt when building the implementation as they are completly seperate projects, so keep that in mind.

Gradle Tasks

  • ./gradlew client:shadowJar builds the Client executable (chunkstories.jar)
  • ./gradlew server:shadowJar builds the Server executable (server.jar)
  • ./gradlew converter:shadowJar builds the Map converter executable (converter.jar)
  • ./gradlew launcher:createExe builds the launcher executables (.exe and .jar as well)
  • ./gradlew buildAll builds all of the above

Make it work with OS X

In order to launch ChunkStories on OS X (tested only on 10.11), you need to follow steps above, and use following command line arguments:

# At least 2GB of RAM
java -XstartOnFirstThread -Djava.awt.headless=true -Xmx2G -jar client/build/libs/chunkstories.jar --backend=OPENGL --core=../chunkstories-core/res/

License

The chunkstories implementation is released under LGPL, see LICENSE.MD

Code of Conduct

We haven't yet adopted a CoC as to us it would come off more as a political statement than anything else at this point, given the small size of this project. In general we'd like to not shoot ourselves in the foot by limiting our audience through insufferable polarized politics, and ideally everyone would put their differences aside within this community. So don't be a jerk, exercise some empathy, verbal restraint and try to understand where others are coming from. Polite arguments are fine, but keep it about the points -- not about the people.

You can’t perform that action at this time.