Blaze4D - Minecraft but with Vulkan using the Rosella engine.

Overview

blaze

Information

Blaze4D is a Fabric mod that changes Minecraft's rendering engine to use the Vulkan Graphics Library, it is currently in Early Development and is NOT intended for use by the faint-hearted. Support for Blaze4D can be found in the #support Discord channel.

Things that don't work

  • Sodium, Iris or Canvas probably don't work yet, so don't bother trying. We're trying to add support for them ourselves
  • Fabulous graphics
  • MacOS
  • F2 screenshots freeze your game
  • AMD gpus
  • Some AMD cpus
  • Mip levels

Community

We have a Discord server where you can track development progress, ask questions, or just hang out in.

Mod Dependencies

Fabric Language Kotlin

Building

  1. Clone the repository (https://github.com/Blaze4D-MC/Blaze4D.git).
  2. Run gradlew build in the project folder.

Optionally, clone Rosella (https://github.com/KilnGraphics/Rosella) into the project folder, and it will be used instead of the copy from Maven.

Contributing

  1. Clone the repository (https://github.com/Blaze4D-MC/Blaze4D.git).
  2. Edit
  3. Pull Request

IntelliJ Idea

  1. Open IntelliJ IDEA
  2. Press Open
  3. Choose the build.gradle.kts file and open it as a project
Comments
  • LWJGL out of date

    LWJGL out of date

    Can't load minecraft 1.17 because of:

    java.lang.NoSuchMethodError: 'org.lwjgl.system.SharedLibrary org.lwjgl.system.Library.loadNative(java.lang.Class, java.lang.String, org.lwjgl.system.Configuration, java.lang.String[])'
    	at org.lwjgl.vulkan.VK.create(VK.java:54)
    	at org.lwjgl.vulkan.VK.<clinit>(VK.java:36)
    	at org.lwjgl.vulkan.VK10.nvkEnumerateInstanceLayerProperties(VK10.java:3999)
    	at org.lwjgl.vulkan.VK10.vkEnumerateInstanceLayerProperties(VK10.java:4056)
    	at me.hydos.rosella.Rosella.getSupportedValidationLayers(Rosella.java:121)
    	at me.hydos.rosella.Rosella.validationLayersSupported(Rosella.java:110)
    	at me.hydos.rosella.Rosella.<init>(Rosella.java:54)
    	at me.hydos.rosella.Rosella.<init>(Rosella.java:49)
    	at net.minecraft.class_1041.handler$zpf000$initializeRosellaWindow(class_1041.java:636)
    	at net.minecraft.class_1041.<init>(class_1041.java:119)
    	at net.minecraft.class_3682.method_16038(class_3682.java:21)
    	at net.minecraft.class_310.<init>(class_310.java:481)
    	at net.minecraft.client.main.Main.main(Main.java:179)
    	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
    	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.base/java.lang.reflect.Method.invoke(Method.java:567)
    	at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:234)
    	at net.fabricmc.loader.launch.knot.Knot.launch(Knot.java:153)
    	at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28)
    

    Compiled with latest 'master' branch.

    opened by YouYouTheBoxx 13
  • Relicense and Maven publishing

    Relicense and Maven publishing

    We require written permission of all non-trivial contributors here. Please post that you permit Kiln Graphics to relicense Blaze4D to LGPLv3 below.

    @burgerguy @hYdos @OroArmor @CodingRays

    opened by ramidzkh 6
  • Add semaphore pool

    Add semaphore pool

    This is just a small utility class providing a semaphore pool. The idea is that any time some operation requires a semaphore it can get one from the pool and then return it after the operation has completed. (for example using a fence and asynchronous callback or some other way). The benefit is that the user doesn't have to worry about ensuring that the operation has completed before resubmitting the semaphore again which can be a headache when you use locally owned semaphores.

    opened by CodingRays 6
  • NOISSUE remove extant error log, blacklist .log files in .gitignore, …

    NOISSUE remove extant error log, blacklist .log files in .gitignore, …

    …and have both OS' upload artifacts.

    PRIOR TO EDIT:

    …and have CI only compile on Ubuntu 20.04, as there's no reason to compile on two OS' when it comes to Java, especially if you're only uploading artifacts from one of them.

    opened by ImperatorStorm 5
  • Tracking issue: Inconsistent descriptor set list updating

    Tracking issue: Inconsistent descriptor set list updating

    https://github.com/Blaze4D-MC/Rosella/blob/89c273d48b6d78c22df356b67199f54e7552963c/src/main/java/me/hydos/rosella/render/renderer/Renderer.java#L418-L425

    Doesn't break/hasn't been reported to break with Intel UHD Graphics 630 Consistently breaks with RX 5700 XT Inconsistently (rarely) breaks with RTX 3060 and GTX 1660

    major bug help wanted 
    opened by ramidzkh 3
  • Make UBOs faster and more dynamic

    Make UBOs faster and more dynamic

    Right now, UBOs don't work with custom values defined in the shader JSON. They're also extremely slow, taking up almost half of the entire frame time to update their descriptor sets and copy them.

    enhancement 
    opened by burgerguy 3
  • Fix vertex strides issues and a device memory leak

    Fix vertex strides issues and a device memory leak

    So i fixed the vertex strides issues by rebinding the main buffer before each draw call with a byte offset. It is an ugly hack but honestly im not sure if it is possible to do this cleanly without some refractors.

    Also the RenderSystemMixin required the remap = false otherwise it would not build for me.

    opened by CodingRays 3
  • Major Bug: Game Flickers alot

    Major Bug: Game Flickers alot

    Current speculated causes:

    • Shaders and Textures are not being applied to the right objects, causing misalignment.
    • Padding is not implemented so more misalignment in the big vertex buffer may happen

    I currently have no clue on a good way to implement padding as Minecraft sometimes has 1 byte of padding or 4 bytes (a float) worth of padding.

    Whichever contributor wants to work on the Padding thing, please assign themselves.

    @burgerguy can you please look into the textures and shaders issue before anything else? its quite important for making progress.

    major bug help wanted 
    opened by hYdos 3
  • Update github actions to use JDK 18.

    Update github actions to use JDK 18.

    The title says it all, Basically makes gradlew run properly instead of outright crashing for saying that JDK 17 is wanted.

    (not sure what to do with the build.gradle.kts file though)

    opened by Kichura 2
  • Block outline and F3 crosshair doesn't work

    Block outline and F3 crosshair doesn't work

    I think this is due to how Minecraft processes LINES and LINE_STRIP, but I've implemented the correct index buffers and vulkan type and it still doesn't work. In renderdoc, all of the vertices turn to NAN going from the vertex to the fragment shader.

    minor bug 
    opened by burgerguy 2
  • [Linux+GTX 1050Ti] Game fails to launch on world_rendering_completeness branch

    [Linux+GTX 1050Ti] Game fails to launch on world_rendering_completeness branch

    Window shows for a split second then immediately crashes on trying runClient via Gradle.

    OS: Arch Linux w/ 5.12.11-zen1-1-zen CPU: AMD FX-8320 Active GPU: NVIDIA GTX 1050 Ti w/ Driver 465.31

    Crash report on world_rendering_completeness branch
    [kjp12@home] ~/IdeaProjects/Blaze4D % JAVA_HOME=~/.jdks/adopt-openjdk-16.0.1 ./gradlew clean build runClient                                                                           [130]
    
    > Configure project :
    Fabric Loom: 0.9.25
    Using project based jar storage
    
    > Task :Rosella:compileKotlin
    w: /home/kjp12/IdeaProjects/Blaze4D/Rosella/src/main/kotlin/me/hydos/rosella/render/model/ModelLoader.kt: (56, 29): Parameter 'scene' is never used
    
    > Task :Rosella:compileJava
    Note: Some input files use or override a deprecated API.
    Note: Recompile with -Xlint:deprecation for details.
    
    > Task :compileJava
    warning: Supported source version 'RELEASE_8' from annotation processor 'org.gradle.api.internal.tasks.compile.processing.TimeTrackingProcessor' less than -source '16'
    /home/kjp12/IdeaProjects/Blaze4D/src/main/java/me/hydos/blaze4d/mixin/texture/RenderSystemMixin.java:23: warning: Cannot find target method for @Inject in com.mojang.blaze3d.systems.RenderSystem
        @Inject(method = "setShaderTexture(ILnet/minecraft/class_2960;)V", at = @At("HEAD"), require = 0, cancellable = true) // ugly hack to get around mixin not remapping properly
        ^
    warning: Supported source version 'RELEASE_8' from annotation processor 'org.gradle.api.internal.tasks.compile.processing.TimeTrackingProcessor' less than -source '16'
    3 warnings
    
    > Task :remapSourcesJar
    :remapping sources
    
    > Task :runClient
    [20:28:34] [main/INFO] (FabricLoader) Loading for game Minecraft 1.17.1
    [20:28:34] [main/INFO] (Fabric|Loader) [FabricLoader] Loading 4 mods:
            - [email protected]
            - [email protected]
            - java@16
            - [email protected]
    [20:28:35] [main/INFO] (mixin) SpongePowered MIXIN Subsystem Version=0.8.2 Source=file:/home/kjp12/.gradle/caches/modules-2/files-2.1/net.fabricmc/sponge-mixin/0.9.4+mixin.0.8.2/ef410951e94c7f4939cc74c86f8df371827818a4/sponge-mixin-0.9.4+mixin.0.8.2.jar Service=Knot/Fabric Env=CLIENT
    [20:28:35] [main/INFO] (Fabric|MixinBootstrap) Loaded Fabric development mappings for mixin remapper!
    [20:28:35] [main/INFO] (mixin) Compatibility level set to JAVA_16
    Completely ignored arguments: []
    [20:28:37] [main/WARN] (FileUtil) Configuration conflict: there is more than one oshi.properties file on the classpath
    [20:28:37] [main/WARN] (FileUtil) Configuration conflict: there is more than one oshi.architecture.properties file on the classpath
    [20:28:48] [Render thread/INFO] (Minecraft) Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', servicesHost='https://api.minecraftservices.com', name='PROD'
    [20:28:50] [Render thread/ERROR] (Minecraft) Failed to verify authentication
    com.mojang.authlib.exceptions.InvalidCredentialsException: Status: 401
            at com.mojang.authlib.exceptions.MinecraftClientHttpException.toAuthenticationException(MinecraftClientHttpException.java:56) ~[authlib-2.3.31.jar:?]
            at com.mojang.authlib.yggdrasil.YggdrasilSocialInteractionsService.checkPrivileges(YggdrasilSocialInteractionsService.java:112) ~[authlib-2.3.31.jar:?]
            at com.mojang.authlib.yggdrasil.YggdrasilSocialInteractionsService.<init>(YggdrasilSocialInteractionsService.java:42) ~[authlib-2.3.31.jar:?]
            at com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService.createSocialInteractionsService(YggdrasilAuthenticationService.java:151) ~[authlib-2.3.31.jar:?]
            at net.minecraft.client.Minecraft.createSocialInteractions(Minecraft.java:670) [[email protected]+hash.1125941807-v2.jar:?]
            at net.minecraft.client.Minecraft.<init>(Minecraft.java:429) [[email protected]+hash.1125941807-v2.jar:?]
            at net.minecraft.client.main.Main.main(Main.java:179) [[email protected]+hash.1125941807-v2.jar:?]
            at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
            at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) ~[?:?]
            at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
            at java.lang.reflect.Method.invoke(Method.java:567) ~[?:?]
            at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:234) [fabric-loader-0.11.6.jar:?]
            at net.fabricmc.loader.launch.knot.Knot.launch(Knot.java:153) [fabric-loader-0.11.6.jar:?]
            at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28) [fabric-loader-0.11.6.jar:?]
            at net.fabricmc.devlaunchinjector.Main.main(Main.java:86) [dev-launch-injector-0.2.1+build.8.jar:?]
    Caused by: com.mojang.authlib.exceptions.MinecraftClientHttpException: Status: 401
            at com.mojang.authlib.minecraft.client.MinecraftClient.readInputStream(MinecraftClient.java:77) ~[authlib-2.3.31.jar:?]
            at com.mojang.authlib.minecraft.client.MinecraftClient.get(MinecraftClient.java:47) ~[authlib-2.3.31.jar:?]
            at com.mojang.authlib.yggdrasil.YggdrasilSocialInteractionsService.checkPrivileges(YggdrasilSocialInteractionsService.java:104) ~[authlib-2.3.31.jar:?]
            ... 13 more
    [20:28:50] [Render thread/INFO] (Minecraft) Setting user: Player187
    [20:28:50] [Render thread/INFO] (Minecraft) Backend library: LWJGL version 3.3.0 build 11
    [20:28:53] [Render thread/WARN] (FileUtil) Configuration conflict: there is more than one oshi.architecture.properties file on the classpath
    ---- Minecraft Crash Report ----
    // I blame Dinnerbone.
    
    Time: 7/16/21, 8:28 PM
    Description: Initializing game
    
    java.lang.RuntimeException: The application requested validation layers but they are not supported
            at me.hydos.rosella.Rosella.<init>(Rosella.java:55)
            at me.hydos.rosella.Rosella.<init>(Rosella.java:49)
            at com.mojang.blaze3d.platform.Window.handler$zzj000$initializeRosellaWindow(Window.java:636)
            at com.mojang.blaze3d.platform.Window.<init>(Window.java:119)
            at net.minecraft.client.renderer.VirtualScreen.newWindow(VirtualScreen.java:21)
            at net.minecraft.client.Minecraft.<init>(Minecraft.java:481)
            at net.minecraft.client.main.Main.main(Main.java:179)
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
            at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.base/java.lang.reflect.Method.invoke(Method.java:567)
            at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:234)
            at net.fabricmc.loader.launch.knot.Knot.launch(Knot.java:153)
            at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28)
            at net.fabricmc.devlaunchinjector.Main.main(Main.java:86)
    
    
    A detailed walkthrough of the error, its code path and all known details is as follows:
    ---------------------------------------------------------------------------------------
    
    -- Head --
    Thread: Render thread
    Stacktrace:
            at me.hydos.rosella.Rosella.<init>(Rosella.java:55)
            at me.hydos.rosella.Rosella.<init>(Rosella.java:49)
            at com.mojang.blaze3d.platform.Window.handler$zzj000$initializeRosellaWindow(Window.java:636)
            at com.mojang.blaze3d.platform.Window.<init>(Window.java:119)
            at net.minecraft.client.renderer.VirtualScreen.newWindow(VirtualScreen.java:21)
            at net.minecraft.client.Minecraft.<init>(Minecraft.java:481)
    
    -- Initialization --
    Details:
    Stacktrace:
            at net.minecraft.client.main.Main.main(Main.java:179)
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
            at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.base/java.lang.reflect.Method.invoke(Method.java:567)
            at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:234)
            at net.fabricmc.loader.launch.knot.Knot.launch(Knot.java:153)
            at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28)
            at net.fabricmc.devlaunchinjector.Main.main(Main.java:86)
    
    -- System Details --
    Details:
            Minecraft Version: 1.17.1
            Minecraft Version ID: 1.17.1
            Operating System: Linux (amd64) version 5.12.11-zen1-1-zen
            Java Version: 16.0.1, AdoptOpenJDK
            Java VM Version: OpenJDK 64-Bit Server VM (mixed mode, sharing), AdoptOpenJDK
            Memory: 1765861752 bytes (1684 MiB) / 2608857088 bytes (2488 MiB) up to 8422162432 bytes (8032 MiB)
            CPUs: 8
            Processor Vendor: AuthenticAMD
            Processor Name: AMD FX(tm)-8320 Eight-Core Processor
            Identifier: AuthenticAMD Family 21 Model 2 Stepping 0
            Microarchitecture: unknown
            Frequency (GHz): 3.50
            Number of physical packages: 1
            Number of physical CPUs: 8
            Number of logical CPUs: 8
            Graphics card #0 name: GP107 [GeForce GTX 1050 Ti]
            Graphics card #0 vendor: NVIDIA Corporation (0x10de)
            Graphics card #0 VRAM (MB): 288.00
            Graphics card #0 deviceId: 0x1c82
            Graphics card #0 versionInfo: unknown
            Graphics card #1 name: RV710 [Radeon HD 4350/4550]
            Graphics card #1 vendor: Advanced Micro Devices, Inc. [AMD/ATI] (0x1002)
            Graphics card #1 VRAM (MB): 256.00
            Graphics card #1 deviceId: 0x954f
            Graphics card #1 versionInfo: unknown
            Virtual memory max (MB): 38342.07
            Virtual memory used (MB): 33049.94
            Swap memory total (MB): 22283.00
            Swap memory used (MB): 9860.08
            JVM Flags: 1 total; -XX:+ShowCodeDetailsInExceptionMessages
            Launched Version: Fabric
            Backend library: LWJGL version 3.3.0 build 11
            Backend API: NO CONTEXT
            Window size: <not initialized>
            GL Caps: Using framebuffer using OpenGL 3.2
            GL debug messages: <disabled>
            Using VBOs: Yes
            Is Modded: Definitely; Client brand changed to 'fabric'
            Type: Client (map_client.txt)
            CPU: <unknown>
    #@!@# Game crashed! Crash report saved to: #@!@# /home/kjp12/IdeaProjects/Blaze4D/run/./crash-reports/crash-2021-07-16_20.28.53-client.txt
    
    > Task :runClient FAILED
    
    FAILURE: Build failed with an exception.
    
    * What went wrong:
    Execution failed for task ':runClient'.
    > Process 'command '/home/kjp12/.jdks/adopt-openjdk-16.0.1/bin/java'' finished with non-zero exit value 255
    
    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
    
    * Get more help at https://help.gradle.org
    
    BUILD FAILED in 59s
    19 actionable tasks: 19 executed
    
    invalid 
    opened by KJP12 2
  • Enable portability features on macOS

    Enable portability features on macOS

    It works, but I'm certain there is a more elegant way to request the PortabilitySubsetFeatures than what I did (which is probably down to me not understanding how the pNext chains are setup)

    opened by The-Minecraft-Scientist 0
  • Build fails , release version 18 not supported

    Build fails , release version 18 not supported

    └─$ ./gradlew build
    Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
    
    > Configure project :mod
    Fabric Loom: 0.12.56
    
    > Task :core:api:compileJava FAILED
    
    FAILURE: Build failed with an exception.
    
    * What went wrong:
    Execution failed for task ':core:api:compileJava'.
    > error: release version 18 not supported
    
    * Try:
    > Run with --stacktrace option to get the stack trace.
    > Run with --info or --debug option to get more log output.
    > Run with --scan to get full insights.
    
    * Get more help at https://help.gradle.org
    
    BUILD FAILED in 6s
    4 actionable tasks: 1 executed, 3 up-to-date
    

    java version

    ┌──(yolo㉿wisebits)-[~/Workstation/Clones/Blaze4D]
    └─$ java --version
    Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
    openjdk 17.0.4 2022-07-19
    OpenJDK Runtime Environment (build 17.0.4+8-Debian-1)
    OpenJDK 64-Bit Server VM (build 17.0.4+8-Debian-1, mixed mode, sharing)
    
    
    opened by maxqxam 1
  • Tracking issue: New Blaze4D Alpha

    Tracking issue: New Blaze4D Alpha

    This is a tracking issue for the first alpha version of the new Blaze4D.

    Steps

    • [ ] Complete systems and API
      • [ ] Emulation rendering #68
      • [ ] (Optional) Custom terrain rendering
      • [ ] Rewrite mod code for release
    • [x] Fix build tool issues
      • [x] Cannot build and bundle core from gradle #69
    • [ ] CI pipelines issues
      • [ ] Fix CI pipelines #70
      • [ ] Automatically build universal jar for all supported platforms
    A-Mod A-Core API A-Core Natives A-Core Assets A-Build 
    opened by CodingRays 0
  • Tracking issue: Emulation rendering

    Tracking issue: Emulation rendering

    Tracking issue for the emulation rendering system.

    Questions

    • [ ] How much do we actually want this system to support? If we want to properly support everything were basically building OpenGL in vulkan. If not many mods or Minecraft features wont properly work.
    • [ ] How much OpenGL state do we need to track? Currently only depth write enable is tracked.
    • [ ] How do we track uniform values? Minecraft uses a mix of updating them on each draw call and keeping them between calls. This makes this really messy as there is no single way we can track everything. It also means that we have to update everything every draw call since we cant know if something has changed or not.
    • [ ] Do we need to support new uniforms for example for mods? This would be hugely complex i don't think this is worth it.
    • [ ] Can we get away with not supporting updating global objects during a frame? If we cant the render code would massively increase in complexity and probably require a partial rewrite.
    • [ ] Minecraft has a lot of places where it handles textures differently. Where and how do we inject?
    • [ ] Minecraft uses a single class for both VBOs and immediate meshes how do we cleanly inject into that?
    • [ ] Currently Minecraft seems to update some uniforms outside of the main render function. What is the deal with that?
    • [ ] How do we detect and eliminate any post processing Minecraft attempts to do?

    Problem description

    Minecraft heavily relies on OpenGL state to render and has no high level abstraction which we could inject into. This also means that many mods directly use low level OpenGL abstraction. Therfore we need to track OpenGL state and pipelines and emulate some subset of it.

    This is heavily dependent on how much we want the emulator renderer to support. Ideally we would want to do as much rendering as possible in dedicated systems however having a powerful fallback system would be very useful to deal with updates or to support mods.

    Current progress

    At the beginning of a frame a new emulator frame is also started. During Minecrafts render function any draw calls, state changes or other actions will be recorder into the emulator frame and processed asynchronously. After all of Minecrafts render code has executed the frame is ended and the emulator will submit it for execution.

    The current system uses a single render pass drawing to a single framebuffer. This massively simplifies the system as all we need to worry about is shaders and pipeline state. However it makes emulating any post processing or more advanced rendering impossible. Considering the complexities of doing a more powerful emulation i don't think its worth it doing any more than this.

    Immediate meshes are uploaded in a special buffer which is reset and reused each frame.

    Textures and VBOs must persist between frames. Therefore they are represented by "global objects". Because of the single render pass used for drawing changes to global objects must happen before or after rendering a frame. To enable this any changes made during a frame will either be reorderd before or after the frame depending on if the global object has been used already in the frame.

    All uniforms Minecraft uses are collected into a single collection of descriptor sets and shared between all shaders. Any uniforms not used by Minecraft is not supported. Every time a draw call is made a new copy of all the descriptors needs to be created.

    A-Mod A-Core Natives 
    opened by CodingRays 0
Owner
Kiln Graphics
Kiln Graphics
A free mixin-based injection hacked-client for Minecraft using Minecraft Forge.

Custom LiquidBounce 1.8.9 build that aims to improve original visuals and bypasses, along with built-in ViaVersion to help you change from 1.8 to 1.17.1 without creating any other version branch.

epic group of paster 123 Jan 2, 2023
A modern engine for modded Minecraft.

Flywheel A modern engine for modded Minecraft. About The goal of this project is to provide tools for mod developers so they no longer have to worry a

null 136 Dec 30, 2022
Minecraft mod running on the TTCp engine to load modules written in JS at runtime - with runtime deobfuscation!

PolyFire ClickGUI opens with NUMROW_0 How to use: Run -jsmodules to initialize Navigate to your .minecraft folder Go to config/pf/modules/ Copy Exampl

Daniel H. 8 Nov 18, 2022
Raven b+ : Raven b3 but better.

Raven B+ A minecraft hacked client made by Blowsy, code deobfuscated and partially remapped by JMRaichDev and improved by me. https://ravenclient.cf/

Kopamed 227 Jan 1, 2023
Atomic 1.18 but it supports meteor

Atomic 1.18 but it supports meteor Downloading You can download this from releases. Download and drag into your 1.18+ mods folder to use. Important Fi

null 6 Feb 19, 2022
Brings back Christmas ender chest textures, but now with a unique texture to avoid confusion.

This mod adds a Christmas texture for the ender chest, correcting a wrongdoing done by Mojang in 22w03a. Should work in any version 1.18.1 or newer.

null 4 Nov 11, 2022
Mindustry 2 - Among Us 2, but it's Mindustry instead of Among Us

Mindustry 2 Among Us 2, but it's Mindustry instead of Among Us. Download a precompiled build here Building for Desktop Testing Install JDK 17 and curl

null 7 Sep 3, 2022
A lightweight but powerful hologram plugin with many features and configuration options.

Decent Holograms A lightweight but powerful hologram plugin with many features and configuration options. Spigot: https://www.spigotmc.org/resources/9

DecentSoftware 112 Dec 29, 2022
Async Await but for Vert.x

hang-around Async Await but for Vert.x One of the main pain points of asynchronous programming is that code flow can be hard to read. With the upcomin

Paulo Lopes 12 Jul 30, 2022
A minecraft mod that allows using minecrafts structure block based test system

MC Tester Mod This mod allows using the automated structure based test system Mojang created for minecraft. The test system is only partially included

2No2Name 21 Nov 11, 2022
Headless Minecraft bot using cabaletta/baritone and 3arthqu4ke/HeadlessForge

headlessbot Headless Minecraft bot using cabaletta/baritone and 3arthqu4ke/HeadlessForge Build & Run Needs Java 8, Docker, Minecraft 1.12.2 and Forge

​ 15 Aug 27, 2022
Squaremap is a minimalistic and lightweight world map viewer for Minecraft servers, using the vanilla map rendering style

squaremap squaremap (formerly known as Pl3xMap) is a minimalistic and lightweight live world map viewer for Minecraft servers. What is squaremap If, l

Jason 204 Jan 3, 2023
using LWJGL to make a mini minecraft (mac also can run)

MineCraft Mini Features MineCraft Lite in Java and OpenGL Physics simulation, water simulation Perlin noise algorithm to generate maps Directional flo

null 1 Jan 4, 2022
A legacy-fabric mod that makes minecraft versions older than 1.13 run using LWJGL 3 instead of the legacy LWJGL 2

A legacy-fabric mod that makes minecraft versions older than 1.13 run using LWJGL 3 instead of the legacy LWJGL 2

Zarzel K. Shih 17 Dec 4, 2022
A Fabric mod that allows using RakNet as Minecraft networking backend.

RaknetFabric A Fabric mod that allows using RakNet as Minecraft networking backend. Features Higher reliability and lower latency under unreliable and

null 75 Jan 3, 2023
Brings marriage to Minecraft servers using commands.

MarriageLab MarriageLab is a plugin that brings marriage to Minecraft servers using commands. It has been tested on Spigot and Paper. Requeriments Thi

Lably Team [Disintegrated] 5 Oct 8, 2021
A mixin based ghost client for Minecraft 1.8.9 built on Minecraft Forge.

A mixin based ghost client for Minecraft 1.8.9 built on Minecraft Forge. Originally designed as a MCP Client (called Tephra), it is now being ported t

Peanut 130 Jan 1, 2023
An efficient map viewer for Minecraft seed in a nice GUI with utilities without ever needing to install Minecraft.

To download it head to the Releases section. To run it: either double click it on it if you have the Java Runtime (JRE) or use the command line (shift

Neil 127 Dec 24, 2022
Small mod for Minecraft Forge 1.16.5 that sends messages of in-game events to a channel in your Discord server. This mod also enables cross-chatting between Minecraft and Discord.

DiscordSync Small mod for Minecraft Forge 1.16.5 that sends messages of in-game events to a channel in your Discord server. This mod also enables cros

AeonLucid 4 Dec 20, 2022