Swiftpack.co - stackotter/delta-client as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
stackotter/delta-client
An open source Minecraft Java Edition client built for speed.
.package(url: "https://github.com/stackotter/delta-client.git", from: "v0.1.0-snapshot.8")

Delta Client - Changing the meaning of speed

Discord

An open source rewrite of Minecraft Java Edition written in Swift for macOS.

Disclaimer

This client is not at all useable yet. If you're looking for a client to use to play Minecraft today, then this is not for you. But hopefully one day it does get to a useable state.

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. Using Swift means that in the future the client may be able to run on iOS, iPadOS and maybe tvOS. This would allow playing on Java Edition servers, on platforms normally limited to Bedrock Edition.

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.

alt text

Installation

  1. Download the latest release from the releases page (or if you like living on the edge, download a CI build from the latest GitHub action run)
  2. Unzip the download (if it doesn't automatically do so) and open the app inside
  3. You will get a security alert, click ok
  4. Right click the app and click open
  5. You should get another pop-up, click 'Open'
  6. Wait for it to download and process 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

Building

To build Delta Client you'll first need to install Xcode and swift-bundler. Once you've installed both of those, run the following commands in terminal;

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

# Perform a release build, output the .app to the current directory, and show a fancy progress bar in a pop-up window
swift bundler build -c release -o . -p

# If you want to work on it in Xcode
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. However, another developer is working on creating a way for us to easily add support for more Minecraft versions.

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

  • 1.8.9
  • the latest speedrunning version (currently 1.16.1 and may be for a while)
  • the latest stable version

Features

  • ☐ Networking
    • ☑ Basic networking
    • ☑ Server list ping
    • ☑ Encryption (for non-offline mode servers)
      • ☑ Mojang accounts
      • ☐ Microsoft accounts (if you have a Microsoft account and are willing to test logging on for me I can implement this)
    • ☐ 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)
      • ☐ Block entities (e.g. chests)
      • ☑ Chunk culling
    • ☐ HUD
      • ☐ Basic text
      • ☐ Chat
      • ☐ F3-style stuff
      • ☐ Bossbars
      • ☐ Scoreboard
      • ☐ Health, hunger and experience
    • ☐ Items (like in the inventory and hotbar)
    • ☐ Entities
      • ☐ Basic entity rendering (just coloured cubes)
      • ☐ Render entity models
      • ☐ Entity animations
    • ☐ Particles
      • ☐ Basic particle system
      • ☐ Block break particles
      • ☐ Ambient particles
      • ☐ Hit particles
      • ☐ Particles from server
    • ☐ GUI
      • ☐ 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

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. All changes should be made on the dev branch or a branch created from dev.

Servers

We now have an official test server made by @ninjadev64! The address is play.stackotter.dev. To run it cheaply, the server goes to sleep. To join it click play and you'll get a message telling you that it's starting up. Wait around 10 seconds and then click play again and you should be good to go. Alternatively, you can run your own server on your computer (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 download .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 127.0.0.1 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.

To run Delta Client from terminal you can run /path/to/DeltaClient.app/Contents/MacOS/DeltaClient in terminal. This allows you to see the logs as the app is running.

Troubleshooting

As Delta Client is still in development it is expected that you will probably run into some errors. Here are the basic troubleshooting steps you should take if you run into any errors;

First, create an issue on GitHub for the error.

If the error is in app startup, you can try running rm ~/Library/Application Support/dev.stackotter.delta-client/.haslaunched in Terminal to perform a fresh install. Next time the app starts it will perform a fresh install. Your configuration gets wiped but it is backed up in a zip archive in the same folder as .haslauncher

More screenshots

alt text

alt text

GitHub

link
Stars: 46
Last commit: 19 hours ago

Ad: Job Offers

iOS Software Engineer @ Perry Street Software
Perry Street Software is Jack’d and SCRUFF. We are two of the world’s largest gay, bi, trans and queer social dating apps on iOS and Android. Our brands reach more than 20 million members worldwide so members can connect, meet and express themselves on a platform that prioritizes privacy and security. We invest heavily into SwiftUI and using Swift Packages to modularize the codebase.

Submit a free job ad (while I'm testing this). The analytics numbers for this website are here.

Release Notes

Snapshot 8 - Chunk loading improvements (8.8x faster)
8 weeks ago

Chunk mesh preparation is now 8.8x faster than in the previous snapshot. This translates to all chunks in a 10 render distance loading in in roughly 20 seconds instead of over 2 and a half minutes.

Changes

  • Pretty much only changed chunk mesh preparation code

Known issues

  • This release doesn't introduce any new bugs to my knowledge

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics