aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Ashby <martin@ashbysoft.com>2023-09-11 22:49:31 +0100
committerMartin Ashby <martin@ashbysoft.com>2023-09-11 22:49:31 +0100
commit592b1d744527d803c974af1b5311fb22c2de3896 (patch)
treeb37bbff67d7386d0c0c5a6ab4544c5395d5b353f
parentd155c57a898b70bd6689e83afa288127820b2921 (diff)
downloadmcl-592b1d744527d803c974af1b5311fb22c2de3896.tar.gz
mcl-592b1d744527d803c974af1b5311fb22c2de3896.tar.bz2
mcl-592b1d744527d803c974af1b5311fb22c2de3896.tar.xz
mcl-592b1d744527d803c974af1b5311fb22c2de3896.zip
Add README.mdHEADmain
-rw-r--r--README.md26
1 files changed, 26 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..2ca56db
--- /dev/null
+++ b/README.md
@@ -0,0 +1,26 @@
+# mcl
+
+Don't use this, it's not very good.
+
+A tiny minecraft launcher. Downloads and launches the current release version of minecraft (java edition). Hacks in support for linux-aarch64.
+
+Lots of missing things:
+
+[ ] Downloading assets
+[ ] Applying runtime config correctly
+[ ] Compatibility with official launcher
+[ ] Support for selecting a version
+[ ] Anything to do with mods
+[ ] Anything to do with login to minecraft account
+[ ] Testing on platforms other than linux
+[ ] Fast downloads
+
+
+## Learning
+
+This project was a learning exercise. Challenges:
+- Zig's stdlib http client only supports TLSv1.3, and Mojang's download servers only support TLSv1.2. Had to resort to libCURL C library. It was an experience.
+- json parsing discriminating based on element type: see the specs for Manifest and Version. Some fields are _either_ a string or an array of strings and that requires zig's escape hatch implementing jsonParse on a type.
+- hacking aarch64 support required some string manipulation
+- general file manipulation etc. etc.
+- it turns out that the pinebook pro is not fast enough to play minecraft \ No newline at end of file