/mc173

A work-in-progress (70%) Minecraft beta 1.7.3 server made in Rust.

Primary LanguageRustApache License 2.0Apache-2.0

Minecraft Beta 1.7.3

A work-in-progress Minecraft beta 1.7.3 server made in Rust. This project split the server crate from data structure and logic crate, the latter is made to be used be developers.

Logic

Crates.io Total Downloads

The logic crate mc173 provides the core data structures such as worlds, chunks and entities, but also the behaviors for blocks, items and entities. It also provides a lot of utilities related to Minecraft.

Server

Crates.io Total Downloads

The server crate mc173-server is an implementation of the Notchian server protocol, it is built on top of the logic crate and has threaded networking, it also defines protocol structures.

Roadmap

There is a lot of work to be done in order to provide a fully functional server on parity with the Notchian server, in order to properly achieve this work, the following roadmap summarize implemented and missing components and in which order we should work on them. The priority of each feature is defined by its order in the list.

  • World and chunk data structures
  • World serialization
    • Chunk data
    • Block entity data
    • Entity data
    • Level data
  • Blocks
    • Definitions
    • Item drop
    • Tick scheduling
    • Placing
    • Breaking
    • Redstone (partial)
    • Clicking (partial)
  • Items
    • Definitions
    • Inventory data structure
    • Crafting
      • Definitions
      • Tracker
    • Use/place behaviors
    • Break behaviors
  • Entities
    • Entity data structures
    • Entity behaviors (80%)
  • Server
    • Protocol
    • Network threading
    • Block breaking
      • Long block breaking
      • Instant block breaking
      • Block breaking duration check
    • Players inventory is stored server-side
    • Players can be linked to any entity type
    • Worlds serialization
      • Non-persistent player entities
      • Player entities saved appart
    • Player window
      • Left and right click support
      • Player inventory crafting grid
      • Crafting table
      • Chest
      • Furnace
      • Dispenser
      • Shift-click on items
    • Entity tracking
      • Client-side spawn
  • Lighting engine
  • World generation