Coder Social home page Coder Social logo

dector / chunkstories Goto Github PK

View Code? Open in Web Editor NEW

This project forked from hugobros3/chunkstories

0.0 1.0 0.0 96.44 MB

Advanced blocky game engine written in Kotlin

Home Page: http://chunkstories.xyz

License: Other

Shell 0.07% Java 16.32% Kotlin 82.98% GLSL 0.62%

chunkstories's Introduction

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, exercice some empathy, verbal restrain and try to understand where others are comming from. Polite arguments are fine, but keep it about the points not about the people.

chunkstories's People

Contributors

alexanderkjall avatar gbui avatar hugobros3 avatar landru27 avatar mchorse avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.