You are browsing as a guest. Sign up (or log in) to start making projects!

Str-F

@Str-F

Joined May 31st, 2026

  • 7Devlogs
  • 2Projects
  • 1Ships
  • 0Votes
Ship Pending review

I made the foundation for a Minecraft client written in Rust, supporting protocol version 776 (Minecraft 26.2). At the moment the client is still in early development and is not yet usable as a game client. It can log in and stay connected, but world, rendering and input are still missing.

One challenging aspect was the difference between normal Ints and VarInts (Minecraft internal data type). VarInts are different from normal Ints, instead of using a fixed byte count for every number it can be different for smaller or bigger numbers, and can save space when sending data over the network. In each byte, the top bit says whether another byte follows, and the other 7 bits carry the number. I walked into that trap when building the teleport confirmation packet of the client and accidentally sent a normal Int instead of a VarInt and the server complained about extra bytes.

I am proud that I wrote all the packets I used by hand and now I understand how the Minecraft protocol works. The Minecraft Wiki helped me with that.

For testing it is very important that you have a running Minecraft 26.2 server and online-mode is disabled. Look at the README for quick start and server setup guide.

  • 6 devlogs
  • 50h
Try project → See source code →
Open comments for this post

4h 4m 7s logged

Added the final touches! cli arguments and configurable asset directory. then I also added the README and LICENSE and published on crates.io!

0
0
1
Open comments for this post

8h 39m 14s logged

I think this will be the last features I added until stardance closes. I implemented the necessary play state packets for the client to join the server fully. also I added that the client can decode and encode compressed packets and I cleaned up the output of the project by using different log levels

0
0
9
Open comments for this post

8h 10m 4s logged

in this devlog I not did too much. I just improved some packet handling, fixed errors, improved error handling. also added requesting status from the server and the keep alive packet so the client does not Time out. I now start with the play state packets implementation

0
0
17
Open comments for this post

5h 19m 10s logged

added handling registry data from server. no the client can receive registry data from the server. if previously said by the client in known packs that every is there the data gets load from file if not it gets send by server.

0
0
35
Open comments for this post

4h 49m 11s logged

Rewrote the Networking threaded in Tokio. also rewrote some function and the architecture is now way more cleaner. enhanced the log writing a bit, next I will start with the gui.

0
0
155
Open comments for this post

19h 3m 6s logged

I got the the first connection to work!! The server now accepts the client joining the server, and the player is really in world joined on the server! (it gets kicked after a while for not responding to more packets). it was really hard to get the decode and encode and all the Minecraft special types like VarInt to work, but they work now! next I will be trying to make it threaded, add the first gui, also I need to implement like 300 more packets fore the client but at the moment only some are importent so yeaa!

0
0
31
Open comments for this post

3h 40m 15s logged

Set up my project and made the first basic UI! I created a new Tauri v2 Project with tailwind and shadcn. Then i set up my basic file tree and started working on the UI. For now i made the basic mail program 3 rows ui. on the left you can create a new email (dont made that yet |: ) and see your foldern (i used fake email data for all the stuff because i didnt do any backend yet). the top bar was very weird to make because i dont wanted the os native title bar so i wanted my own. so i first had to find out how to make the window close and minimize and also let the user drag around the window. and the other two tabs, yea idk just a normal ui i guess.. BUT this should not stay llike this! i reallly want to try making something special. mhhh maybe like an state based mail program. like yk these boards they have where u have rows with new, in progress, done etc. maybe this is a idea, idk yet. ALSO i want to make it fully keyboard only usable and let the user write and read mails from the terminal, yeah terminal! next i will finish the ui and start on the backend. ohh and here is a screenshot of my app by now too!

0
0
5

Followers

Loading…