forge-clj: Bringing the Clojure Programming Language into the World of Minecraft

After months of work, I have finally created the first usable version of forge-clj, which adds support for the Clojure programming language to Minecraft.

Now, you're probably asking, what the heck is Clojure, and why should I care? Well, Clojure is a modern Lisp language. It runs on the JVM like java, but it has a much more fluent and readable syntax (in my opinion), as well as other things, such as the ability to extend the language itself with macros. It also isn't like java, where you have to make a template/file/whatever of literally EVERYTHING. Say goodbye to having to copy and paste the same mod file format, the same block class declaration, and other such things with this (NOTE: Things might get messy if I haven't added something yet). You can read more about the technical details of Clojure itself here, and if you want a good tutorial you could always try Clojure for the Brave and True.

As for forge-clj itself, I'm REALLY proud of how this thing is turning out. I used BedrockMiner's Minecraft modding tutorials in order to figure out what I needed to add and how. I'm proud to say that everything covered in the basic modding tutorials there can be done in forge-clj, without excessive Clojure-Java inter-op and such. Most of these tutorials have been implemented in the test-mod that I use to test the mod, and explain how modding with it will work.

If you're a Minecraft Modder and want to help, tell me what I need to add to make things better. I've covered some basic things already, and have some plans to cover some advanced things, but if there's something convenient from forge that I've overlooked, tell me so that I can wrap around that too.

Checking that the test-mod works in your minecraft installation helps too, as well as making sure everything works (blocks, items, worldgen, etc). Even the average modded minecraft player can help me test this.

Anyways, go check them out now (download links/changelog/etc are on the github pages):

Finally got around to updating THIS thread. I've been using this thread on the minecraft forge forums since I first made this thread. Many new features have been implemented into the API, such as support for GUIs, custom rendering, events, and, uh... a lot of stuff.

I'm currently working on advanced world generation. This is going slow however, since I have to reimplement Minecraft's Chunk Provider in Clojure (so it's not just a simple copy-paste). I've actually already finished the implementation, and just need to fix the MASSIVE number of bugs present.

After that's done, support for custom dimensions is planned.

Oh yeah, and as you might see in the main post, I added tutorials! Very basic ones mind you, there's still a lot that I need to cover in those. But you should be able to use them to implement a simple block and item in Clojure.

Updated forge-clj to Version 0.5.2. I added the ability to make new biomes, and some support for custom Chunk Providers. Unfortunately, I was unable to get a full chunk provider implementation working, due to slowness and general complexity, so if you want to use that, I recommend you make a Java version and reference it from Clojure. And sorry about this update taking so long, I spent a lot of the time trying and failing to reimplement the terrain generator. It's just too performance intensive for Clojure to really handle. I don't think any of the other updates will take this long...

Next up, I'll move on to start implementing custom dimensions. I don't think this will take too long, hopefully.