• Stars
    star
    325
  • Rank 129,350 (Top 3 %)
  • Language
    Swift
  • License
    GNU General Publi...
  • Created almost 4 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An open source Minecraft Java Edition client built for speed.

Delta Client - Changing the meaning of speed

Discord

An open source rewrite of the Minecraft: Java Edition client, written in Swift for macOS and iOS (experimental). Currently Delta Client only supports connecting to 1.16.1 servers.

Disclaimers

This client is not finished yet. If you're looking for a client to use to play Minecraft today, then this is not for you. I am NOT responsible for anti-cheat bans, the client has not been thoroughly tested yet and is still deep in development.

This software is not affiliated with Mojang AB, the original developer of Minecraft.

Overview

The main focus of this project is to create a highly efficient Java Edition compatible client written in Swift for macOS. The client also has experimental support for iOS, and is in the process of getting ported to Linux using SwiftCrossUI and eventually Kinzoku (once it is ready).

If you want to have a say in the development of the client or have any questions, feel free to join the community on Discord.

Playing with Delta Client in a Hypixel lobby

Performance

One of the biggest advantages of Delta Client is its performance. Epic comparison graphs are in progress, but for now have some dot-points.

  • Start-up time:
    • M2 MacBook Air: 0.9 seconds (vanilla takes 43 seconds)
    • i5 MacBook Air: 2.7 seconds (vanilla takes ~60 seconds)
  • FPS on 10 render distance in the mountains (bad for fps):
    • M2 MacBook Air (on 1080p monitor): ~120 fps (vanilla gets ~75 fps)
    • i5 MacBook Air: ~70 fps (vanilla gets ~35fps)

Installation

Prebuilt

  1. Visit Delta Client's downloads page and download the latest build from the main branch.
  2. Unzip the downloaded zip archive and open the app inside
  3. You will get a security alert, click ok
  4. Right click the app in finder and select open
  5. You should get another pop-up, click 'Open'
  6. Delta Client will now open and start downloading the required assets (this only has to happen once and should take around 40s with a mediocre internet speed)
  7. You can move Delta Client to your Applications folder for ease of use if you want

To view application logs, click View > Logs in the menu bar while Delta Client is open.

Building from source

To build Delta Client you'll first need to install Xcode 14 and the latest version of Swift Bundler. Please note that using Xcode 13 is ok but you may run into some weird memory corruption issues, so test with Xcode 14 before assuming that it's a Delta Client bug. Once you've installed the requirements, run the following commands in terminal;

# Clone Delta Client
git clone https://github.com/stackotter/delta-client
cd delta-client

# Perform a release build and output the bundled app to the current directory
sh ./build.sh

# If you want to develop Delta Client using Xcode, run the following command
swift bundler generate-xcode-support
# And then open Package.swift with Xcode and you'll be able to build it from Xcode too

Minecraft version support

At the moment the client only supports joining 1.16.1 servers. In the future I plan to support more versions.

Not every version will be perfectly supported but I will try and have the most polished support for the following versions;

  • 1.8.9
  • the latest speedrunning version (currently 1.16.1)
  • the latest stable version

Features

  • Networking
    • Basic networking
    • Server list ping
    • Encryption (for non-offline mode servers)
      • Mojang accounts
      • Microsoft accounts
    • LAN server detection
  • Basic config system
    • Multi-accounting
  • Rendering
    • World
      • Basic block rendering
      • Basic chunk rendering
      • Block culling
      • Block models
      • Multipart structures (e.g. fences)
      • Multiple chunks
      • Lighting
      • Animated textures (e.g. lava)
      • Translucency
      • Fluids (lava and water)
      • Chunk frustum culling
      • Biome blending (mostly)
    • Entities
      • Basic entity rendering (just coloured cubes)
      • Render entity models
      • Entity animations
      • Block entities (e.g. chests)
      • Item entities
    • GUI
      • Chat
      • F3-style stuff
      • Bossbars
      • Scoreboard
      • Health, hunger and experience
      • Hotbar
      • Inventory
        • Basic inventory
        • Basic crafting
        • Inventory actions
        • Using recipe blocks (like crafting tables and stuff)
        • Creative inventory
  • Sound
    • Basic sounds system
  • Physics
    • Physics loop
    • Input system
    • Collision system
  • Interaction
    • Block placing
    • Block breaking
    • Block entity interaction
    • Entity interaction
  • Particles
    • Basic particle system
    • Block break particles
    • Ambient particles
    • Hit particles
    • Particles from server

Contributing

First, please check out the contributing guidelines. Then you can checkout the issues for a place to get started. Make sure to leave a comment on the issue you choose so that people know that someone's already working on it.

Servers

We now have an official testing server (play.deltaclient.app)! However, if you want to mess around to your hearts content you can run a server on your computer for full control (see below).

To start a test server, download a 1.16.1 server jar from here. Then in Terminal type java -jar and then drag the downloaded .jar file onto the terminal window and then hit enter. Wait for the server to start up. Now add a new server with the address localhost in Delta Client and you should be able to connect to it. Keep in mind the server may use a significant amount of resources and slow down Delta Client.

More screenshots

Delta Client being used to view a survival world from a vantage point on a mountain

Delta Client's server selection UI

More Repositories

1

swift-cross-ui

A cross-platform declarative UI framework, inspired by SwiftUI.
Swift
628
star
2

swift-bundler

An Xcodeproj-less tool for creating cross-platform Swift apps.
Swift
294
star
3

swift-macro-toolkit

A powerful toolkit for creating concise and expressive Swift macros
Swift
229
star
4

relativistic-renderer

Swift
21
star
5

swift-css-parser

A lightweight CSS parser for parsing and creating CSS stylesheets
Swift
13
star
6

swift-mixin

An intuitive library for hooking functions in Swift.
Swift
12
star
7

swift-lint-plugin

A SwiftPM plugin that adds a linting command
Swift
10
star
8

the-ctf-book

An interactive course accompanied by a CTF, that brings you right through from beginner to advanced in a variety of fields relevant to hacking.
Python
8
star
9

galah

A scripting language with the goal of being lightweight and embeddable in Swift applications.
Swift
8
star
10

scute

An extensible static site generation tool built with Swift.
Swift
6
star
11

delta-website

The website for Delta Client. Created with svelte.
Svelte
5
star
12

uq-maps-reborn

A new and improved (unofficial) version of UQ Maps with 360 degree imagery and superior walking/accessible navigation instructions.
HTML
5
star
13

swift-image-formats

A Swift library for working with a variety of image file formats.
Swift
4
star
14

maths-problem-gen

A maths problem generator written in Rust
Rust
4
star
15

swift-protobuf-gen

Generate protobuf message definitions from Swift structs
Swift
3
star
16

delta-core

The package that holds the code for DeltaClient. DeltaClient just provides the UI.
Swift
3
star
17

swift-cmark-gfm

A minimal wrapper around cmark-gfm
C
2
star
18

dawn-builds

A collection of scripts for building the Chromium's Dawn library. Also provides prebuilt binaries as releases.
Shell
2
star
19

ctf-replay

Allows downloading of individual ctfs and challenges from the massive `sajjadium/ctf-archives` repo.
Python
2
star
20

swiftpm-workspaces

Vend multiple SwiftPM packages from a single repository
Swift
1
star
21

homebrew-dawn

An unofficial homebrew tap for installing Dawn, a WebGPU implementation
Ruby
1
star
22

texture-viewer

A simple Minecraft block texture viewer for macOS
Swift
1
star
23

delta-plugin-template

The template for Delta Client plugins.
Shell
1
star
24

learn-hacking-resources

Resources for learning hacking; collated and created by the Digital Overdose CTF team
1
star
25

swift-libwebp

A simple Swift wrapper for libwebp.
C
1
star
26

norm-bench

An alternative to WordBench with better crossword setting!
Python
1
star
27

swift-bundler-templates

Swift Bundler's in-built package templates
Swift
1
star
28

delta-bot

The official bot for the Delta Client Discord server
Python
1
star