All Projects → stackotter → delta-client

stackotter / delta-client

Licence: GPL-3.0 license
An open source Minecraft Java Edition client built for speed.

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to delta-client

SuperShapes
A tiny macOS app showing how to use Satin, Forge, Youi and SwiftUI to visualize super shapes in 3D.
Stars: ✭ 42 (-75%)
Mutual labels:  metal, swiftui
memorize
Stanford University's course CS193p (Developing Applications for iOS using SwiftUI)
Stars: ✭ 20 (-88.1%)
Mutual labels:  swiftui
MetalPlayer
A video player using Metal.
Stars: ✭ 68 (-59.52%)
Mutual labels:  metal
NumberTicker
Robinhood-like Rotating Number View | SwiftUI
Stars: ✭ 34 (-79.76%)
Mutual labels:  swiftui
RealmTaskTracker
SwiftUI version of the MongoDB Realm iOS tutorial
Stars: ✭ 24 (-85.71%)
Mutual labels:  swiftui
sokol gp
Minimal modern efficient cross platform 2D graphics painter in C
Stars: ✭ 228 (+35.71%)
Mutual labels:  metal
stinsen
Coordinators in SwiftUI. Simple, powerful and elegant.
Stars: ✭ 563 (+235.12%)
Mutual labels:  swiftui
UIViewPreviewProvider
Allows displaying UIViews inside the Xcode preview canvas
Stars: ✭ 36 (-78.57%)
Mutual labels:  swiftui
RChat
No description or website provided.
Stars: ✭ 58 (-65.48%)
Mutual labels:  swiftui
AppClipCodeGenerator
App Clip Code Generator macOS App built with SwiftUI
Stars: ✭ 75 (-55.36%)
Mutual labels:  swiftui
Micro
🏎Fast diffing and type safe SwiftUI style data source for UICollectionView
Stars: ✭ 77 (-54.17%)
Mutual labels:  swiftui
LineChartView
An interactive line chart written in SwiftUI with many customizations (colors, line size, dots, haptic feedbacks). Support value and time series.
Stars: ✭ 59 (-64.88%)
Mutual labels:  swiftui
NavigationRouter
A router implementation designed for complex modular apps, written in Swift
Stars: ✭ 89 (-47.02%)
Mutual labels:  swiftui
MetalGlobe
Simple demo project with Metal on Swift
Stars: ✭ 18 (-89.29%)
Mutual labels:  metal
SwiftyUIScrollView
A custom ScrollView wrapper that comes with Pagination and Page Control.
Stars: ✭ 18 (-89.29%)
Mutual labels:  swiftui
ECommerceAppSwiftUI
ECommerce App in SwiftUI
Stars: ✭ 37 (-77.98%)
Mutual labels:  swiftui
LongWeekend-iOS
🏖📱 LongWeekend is iOS Application that supports checking long weekends when taking a vacation in Japan
Stars: ✭ 19 (-88.69%)
Mutual labels:  swiftui
Builder
Demonstrates SwiftUI builder patterns for UIKit and networking.
Stars: ✭ 100 (-40.48%)
Mutual labels:  swiftui
swiftui-app-icon-creator
Create iOS and macOS application icon in Xcode with SwiftUI
Stars: ✭ 58 (-65.48%)
Mutual labels:  swiftui
metal-chests
Better alternative to IronChests
Stars: ✭ 13 (-92.26%)
Mutual labels:  metal

Delta Client - Changing the meaning of speed

Discord

An open source rewrite of the Minecraft: Java Edition client, written in Swift for macOS. 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. 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 with devices usually limited to Bedrock Edition. If there is sufficient interest, a separate renderer and UI could be created to support Linux and Windows as well (likely using the WebGPU graphics API instead of Metal).

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

Installation

Prebuilt

  1. Visit Delta Client's GitHub Actions page and download the DeltaClient.zip artifact from the latest successful build (you must be signed in to GitHub to download the artifact).
  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

Building from source

To build Delta Client you'll first need to install Xcode and the latest version of 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 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. But not now, as that'd slow down development of more important features because it would create more maintenance work.

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 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
    • 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 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 this command: /path/to/DeltaClient.app/Contents/MacOS/DeltaClient. 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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].