I am working on a special version of Minecraft for Cyberix [rss]

stephenson from excavate-construct >30d ago #p18202 >>quote
#1: render distance and a bit of LOD

my mod will be special in the case where i'm removing the ability to turn up the render distance


Finite worlds that loop around.png


Finite worlds that loop around.png

dont know if i'll ever need to make it go as far like in the screenshots though since i want to cap the render distance at 6
i want to make the game more eerie and mess with early game progression a tad bit and mod the server
whenever i play multiplayer with people it just felt a tad unfair that i can't play the game at a high render distance without slowing down to an unenjoyable fps count meanwhile other people are capable of playing at the highest render distance with all sorts of things bolted onto their game to increase their graphical fidelity

in some cases having a lower render distance was strategically disadvantaging, like PVP or Factions servers which I used to play on a tad bit too much

here's my first prototype


old lods.png


old lods.png



#2 - Finite seamless worlds
i also have thought of the idea of finite worlds

but in official implementations (including console edition and indev), finite worlds are jarring and annoying when they end

so instead, my idea is to just make it so it loops around, so if you go straight forward for a while you'll come back to where you started. this is implemented and works great so far, i just need to fix a few parts of the game that still use
raw euclidean coordinate comparisons



farlands LOD.png


farlands LOD.png


maybe i won't remove infinite worlds entirely but it won't be the default. i'd likely replace it with preset or custom sizes, but itd still generated in realtime like an infinite world so time to load in is still fast compared to classic or indev which generates it all at once
also i think it should be a fixed render distance of 6 chunks or lower if i havent mentioned that already

#3 - gameplay enhancements

I think forcing a render distance cap also helps change up your games playstyle and makes it feel more medieval and primitive. what fun is it being able to magically influence the weather and see your base thousands of blocks away versus having to scout out and explore for it if you get lost?

How about setting up a house after traveling for a bit? You'd need to establish markers so you can find your way back if you detour.
Not just torches, though. that'd get disorienting.

#3.1 - mobs

the game also just gets too easy especially if you already know how the game works
I want to make progression more gradual and give an actual reason for building in the game because currently its very hard to remain motivated alone when the only danger consists of getting touched by a creeper who happened to w+m1 through your open door and it can all be solved by spamming torches

i dont want to delve into any pathfinding stuff yet, but i will make it so mobs are naturally attracted toward player structures and players and will wander and linger towards them
i also want night to be hellish and make it so underground mobs despawn faster and aggressively at night and hordes of them cover the surface

#3.2 - light is no longer safe
i also want to make torches useless against preventing mobs from spawning somehow
i find it funny how to this day there is no true explanation as to why mobs spawn
they could've easily made it so something like the dragon or the wither was atleast part of whatever metaphysical thing was causing mobs to spawn
so my idea is simply to try and lean in on that idea and make them spawn regardless of if torches are present

Im gonna make it so mobs always spawn in an opportunistic manner
Torches will work as intended if you are near them, but if the torch is outside of your render distance (which is capped to 6 btw), mobs WILL spawn in the fog
and because mobs will be naturally attracted to you, they will come to you
and because mobs will spawn and despawn aggressively in order to force more encounters, you will be attacked more often

#3.3 - players spawn with half their health bar
this makes taking damage more punishing in the earlygame
players will be able to increase their max health permanently in the world by eating golden apples, similar to terraria and heart crystals
to become stronger you must risk life and limb to find gold and craft the apple

#3.4 - tool rebalance

wooden tools have very little durability and break within a couple uses
stone tools and beyond require string to craft, which means you will have to fight spiders or go into caves and break cobwebs for string. This means wood tools should definitely stay relevant for a while but you'll have to maintain a heavy supply while they are

stone tools will likely have a little bit less durability but that might be it

#3.5 - ore rebalance
iron and coal spawn deeper in caves which means that if you want to get torches on your first night, you'll need to go quite deep into caves or make a furnace and smelt wood into charcoal. i don't really see anyone legitimately use the wood into charcoal trick very often so that should encourage it
iron spawning deeper also makes stone tools very relevant for a while

#3.6 - random spawns
deaths spawn you in random positions around the world instead of at a static spawn point
if you want to get back to your base then you'll have to be lucky or simply loop around the world and hope you find it
this also encourages world markers and natural exploration for the purpose of setting up dedicated paths and markers to find ones way back to base

yeah thats pretty much it


#3.7 - moon cycles
Moon cycles ported from beta 1.8 to Alpha that make night light vary in brightness but also difficulty. New Moon is the hardest and darkest but so is the Full Moon (but its the brightest moon though so you can see in it), the difficulty change would simply probably be a simple pendulum style math from 1 to 1
more monsters spawn and they're faster and generally just more effective


#4 - graphical updates
I do want to add colored lights and shaders like >>3590

#5 - multiplayer updates
alpha multiplayer sucks hot ass and has terrible latency even on LAN
modern minecraft uses netty for networking so i'm going to update alpha to use netty

i dont really have any other comment that's pretty much it
this mod assumes you've played minecraft before (i have)
if you haven't played minecraft before then this mod will be incredibly unforgiving (intentional)

unrelated


notch billionaire.mp4


notch billionaire.mp4 (click to play)
Attachments:
Finite worlds that loop around.png (536.12 KB)
old lods.png (175.61 KB)
farlands LOD.png (652.94 KB)
notch billionaire.mp4 (2.02 MB)
Replies: >>18251 >>18724
lucid ## OPERATOR >30d ago #p18251 >>quote
>>18202
Will update the server to this once a public release is made.
Anonymous >30d ago #p18629 >>quote
[AutoMod] action=keep R:8 E:7 N:6 C:8 | The user is discussing technical implementation details for a Minecraft mod. The post is relevant and shows clear progression in their coding approach.
i'm now recoding this in C
I am also adding lua modding


minecraft C version lua.png


minecraft C version lua.png


Here's what I had achieved before I gave up trying to optimize 17 year old swedish man java code


minecraft overhaul sunrise across the gravel beach and ocean.png


minecraft overhaul sunrise across the gravel beach and ocean.png



minecraft overhaul sunset through the mountains bottom.png


minecraft overhaul sunset through the mountains bottom.png



anyway

i'm adding an all powerful lua modding api on par with that of gmod to my riced out version of minecraft alpha

there are 3 layers of api:

and the part where you can do everything in java in lua is layer 3 for the power users

layer 1 and 2 i will need to manually update the game to add wrappers around common functions
beginner level -> intermediate level -> power user level


I have a strong feeling that this mod is going to make a huge chunk of golden age mods just stop existing as scattered independent forks but it's also going to create some kind of renaissance because we're now going to be doing shit that has never been done seriously in minecraft before

like now that i think about it

Fabric? Mixin hell and version incompatibilities off the board
Forge? Fabric but ancienter and with an even worse API
ModLoader? Literally zero API and manual editing of decompiled code compatible with only one version of the game and is just class replacement with less steps

So what if instead you had a version of minecraft with modding implemented NATIVELY and gave you a framework in which you could turn it into anything?

Because I'm planning on establishing a gamemodes framework so people can make their own mini-games within Minecraft just like gmod


i'm going to be doing shit that has never been done seriously in minecraft before outside of custom servers and their plugin ecosystems which those have their own limitations


i feel most people unfamiliar with the old game nowadays look at golden age minecraft and they either do one of two things:

1 - dayyymn unc that shit ANCIENT where are my axolotoz and swimming and nether fr fr i need my fuckin elytraa and BED bro 😭

2 - holy epik!!! this is so fucking retro!!! so nostalgic!!! holy fuck!!! my nostalgia meters are off the charts its so frutiger aero type (proceeds to play the game for 15 minutes before logging off forever because they lack the drive to actually play on the sandbox voxel game and make things in the sandbox voxel game)


I have a feeling the lua modding api would be able to satisfy both kinds of people, because then you no longer are constrained to 'my version' of minecraft survival

if you really want to make the game play like modern or beta or whatever then you could very well do that if you wanted to. However if you wanted to play something other than Minecraft then you could play an entirely different gamemode within the engine
I recall reading old Notch blog where he said he wanted minigames in minecraft
"fortress' was one of them, i oughta find out where he said all of this from because I'd probably use those as a perfect start to custom gamemodes within minecraft using the lua modding api because i dont remember the details
Just like in Gmod how 'sandbox' can get boring for some people after a while, you have zombie survival, TTT, darkrp, prop hunt and many other things
Minecraft only had this to a degree contained entirely within multiplayer servers
But that wasn't exactly native
so
i have lots of good ideas

This will also have a built-in irc client bridged to a Cy-X because i like to frequent it since there isn't going to be a multiplayer immediately because i'm effectively rewriting the entire game

i have plans for an alternative multiplayer architecture anyway that'll let me sidestep code duplication without introducing any of the issues that happened when mojang tried something similar in 1.3.1

Projects like Luanti/Minetest and ClassiCube do exist but their attempts at replicating Minecraft kind of suck (except for ClassiCube, but they *REALlY* don't want to do any kind of 'survival' stuff)
I have yet to see a minecraft reimplementation with modding that's as accessible and flexible as GMod's API.. And that is where i shall step in

Here's what the game looks like WITHOUT lua modding, so you can get an idea as to how modder friendly I'm planning on making this:



minecraft C version with no mods.png


minecraft C version with no mods.png


i have no intent on respecting mojang auth because it's microsoft auth now and microsoft has betrayed me 4 times in 4 unique ways. This game will be freeware/shareware.

I am not using any code from Mojang or the original 0.0.11a, so the only thing they hold copyright over are the textures which can easily be swapped out in a default build

I plan on bringing the game to Alpha-level parity along with reimplementing the same features that I had implemented in my original java mod, and then letting the modders do whatever they want to with the rest.

But what should we call it? If I want to publish this on Steam or Itch.io or anywhere else in the future, or generally give ourselves a identity that isn't "Minecraft: Cyberix Edition", what it be named??

Here are some of my unoriginal ideas:

LuaCraft
RootCraft
WurzelCraft
Here are some slightly original-unoriginal ideas based off of something I saw here:
Cyberbrix
Cybrix/CybriX (too close to Cyberix? It is kind of catchy)
Cyblocks
>Cyblox
>Cyberblox

generics:
RootMod
Voxelua

right now the exe is about 1 megabyte so I can upload it to Cyberix directly whenever I achieve something nice

I'm not going to hold the C build hostage this time,
because this is what i get for not using git because i'm scared of it eating my storage:
i broke too much of it while trying to optimize it and now it's very sad

so i'm going to constantly shit out builds and also keep tarred backups!
let me know what you think
Replies: >>18654 >>18680
Anonymous >30d ago #p18654 >>quote
[AutoMod] action=keep R:9 E:8 N:7 C:9 | The user presents a clear, structured roadmap for developing a Minecraft mod. The points are logical and ambitious for a technical forum. The writing is direct and engaging.
wurzelcraft 5.mp4
wurzelcraft 5.mp4
>>18629
look at me with my draggable VGUI panels!!!
the roadmap here is:

1 - the obvious fundamentals of the alpha minecraft video game
2 - implement resource/asset loading, so mods can package their own assets and use them
^ this is very important
^ maybe have a built-in source engine model loader so one could theoretically use hl2 assets and enjoy those
3 - begin leeching off GMod by creating polyfills/compatibility libraries and straight up just porting whatever's available to make porting GMod addons to the game incredibly easy
^ i plan on making it so porting is so easy it'll probably be a selling point for playing the game

im focusing on optimizing the current lua stack and what i have now in C and i've been able to restore 1.2k fps while in the main menu whereas before it was 500 fps

now im working on the same in-game because the lua guis appear to either be unoptimized themselves, or are calling C functions that might be unoptimized

the goal is to achieve fps akin to having no lua enabled which is fairly simple, just gotta look at the sky and compare and profile

theoretically speaking, if this turns out to be as great as i want it to be, how hard would it be to start convincing golden age modders to move over and start making their mods on my engine instead of working with archaic notch code?
Attachments:
wurzelcraft 5.mp4 (3.39 MB)
Replies: >>18681
Anonymous >30d ago [FI] [VPN] #p18680 >>quote
[AutoMod] action=keep R:8 E:8 N:7 C:9 | The post is a genuine engagement with the thread and shows appreciation for the OP's work. It's well-written and fits the context perfectly.
>>18629
Oh hi the Minecraft Overhaul guy! I was looking for the updates when I first saw your posts. I never knew that you're the guy from Cyberix! It's really nice to see you.

>I am recoding this in C
Holy fuck that's tough work, my respects. Are you just rewriting some parts that was written in Java, then add bindings to functions that you're reimplemented in C (to displace the Java code altogether) or it's a complete rewrite?

>I have a feeling the lua modding api would be able to satisfy both kinds of people, because then you no longer are constrained to 'my version' of minecraft survival
I am already curious and eager to try it out. What you've done with graphics and visuals already captivates me but Lua modding thing is very very interesting. Forge or fabric they all suck and pain in the ass it's true. I dream of custom servers that load Lua code directly so each server is completely new custom minigame (like Roblox or Gmod), and you can alter and change everything. But it will be hard to isolate and sandbox everything I think so that no one could hack your PC by just connecting to the server that would be bad, so I'm thinking of something like minimaps with all custom Lua scripts models textures and functionality baked in so that there's basically no limits and you can do whatever you desire. And in Minecraft yay!!

>I plan on bringing the game to Alpha-level parity along with reimplementing the same features that I had implemented in my original java mod, and then letting the modders do whatever they want to with the rest.
I geniuinly think that can be bad idea and that can amplify "my own version" of minecraft thing for the worse. When you keep things minimal without giving enough foundation everyone will just implement their own "version" and that'll ruin the fun because they will all be partially incomplete, boring and shit. And there's little actual incentive to build something big because there's not enough people that are into the game to justify the effort. Basically chicken and the egg problem. Maybe backport some basic stuff so it more resembles b1.7.3 and not alpha stuff with just grass gravel and bricks, roughly speaking, to make it interesting, playable and a great foundation to build upon?

>But what should we call it? If I want to publish this on Steam or Itch.io or anywhere else in the future, or generally give ourselves a identity that isn't "Minecraft: Cyberix Edition", what it be named??
I dunno, Cyberix theme would be cool but I think it's too much. I don't mean or want to insult you ofc, but the names you suggested are all kinda sucky.
>LuaCraft, Voxelua
Too generic and boring, links to Lua but we already have Luanti and I don't want to see any other Lua-in-name related block games. And I think that "Minetest" was way better.

>WurzelCraft
I dunno why but for me this associates with german sausage (yeah it's ridiculous I know).

>Cyberbrix
That sounds like some stupid ass android-tier block game tbh.

I personally think that you should keep the Minecraft Overhaul name (and I've already used to it), but I don't know how to avoid trademark infringement. Maybe MCOverhaul? Ahh that's so hard so hard to pick a nice name...

>i broke too much of it while trying to optimize it and now it's very sad
oh I get the feeling. but git is literally made for managing the hassle of your software versioning. I am afraid of using git so I just YOLO things but the code I'm working with is too small to lose and I can quickly rewrite something I broke. With something like a big game? Nah I won't risk it even if it means that I need to actually figure out how to use that stupid git.

>so i'm going to constantly shit out builds and also keep tarred backups!
Yaaay your project is so cool can't wait!!! I was actually trying to search for "Minecraft Overhaul" on the web to find out whether you do updates and where but obviously found nothing. And you're here on Cyberix! I'm so happy rn :3
Yeah at least tar your backups I do that too sometimes.
Replies: >>18682
Anonymous >30d ago [FI] [VPN] #p18681 >>quote
[AutoMod] action=keep R:9 E:8 N:7 C:9 | This is a direct, relevant response to a technical discussion about Minecraft modding. The critique is sharp and offers concrete, actionable suggestions for improvement.
>>18654
>look at me with my draggable VGUI panels!!!
Did you really implement it all yourself? That looks impressive, like really. But why are you not using something like microui? It is very small library (1100sloc) that you can easily drop into your C codebase and have immediate-mode gui straight away (without the hassle of writing your own custom microtoolkit), and you can easily learn and extend it to suit your needs. I'd never write gui myself when microui exists and it's mostly 90% of what I already want, so useful. Also also pls add transparency please if its possible.

>maybe have a built-in source engine model loader so one could theoretically use hl2 assets and enjoy those

That's at least 1 week of work IF you know all the source model stuff AND you're willing to spend countless hours trying to navigate through that goddam steam developer website to try to figure out how that works. And I think that high poly hl2 assets will ruin the aesthetic of MC and will look too uncanny in the game.

>im focusing on optimizing the current lua stack and what i have now in C and i've been able to restore 1.2k fps while in the main menu whereas before it was 500 fps

good. is your game singlethreaded like the original one?

>theoretically speaking, if this turns out to be as great as i want it to be, how hard would it be to start convincing golden age modders to move over and start making their mods on my engine instead of working with archaic notch code?

Oh boy it would be hard. It will be already hard do convince people to play your minecraft version, yet alone do mods for it. Your idea with portatibility can work out great here to minimize the friction between downloading and playing the game, so that people can just download and run and play even on literally any pc, and minimizing friction for modding and publishing mods can bring amazing results, I guarantee. Wish you all of luck!!!
wurzel >30d ago #p18682 >>quote
[AutoMod] action=keep R:9 E:8 N:7 C:9 | The user provided a direct, concise answer to a complex technical question. The response is direct and addresses the core technical debate effectively.
wurzelcraft wangblows.png
wurzelcraft wangblows.png
wurzelcraft no lua mods.png
wurzelcraft no lua mods.png
wurzelcraft lua mods.png
wurzelcraft lua mods.png

>>18680 >Are you just rewriting some parts that was written in Java, then add bindings to functions that you're reimplemented in C (to displace the Java code altogether) or it's a complete rewrite?
complete rewrite

>everyone will just implement their own "version" and that'll ruin the fun because they will all be partially incomplete, boring and shit. And there's little actual incentive to build something big because there's not enough people that are into the game to justify the effort. Basically chicken and the egg problem. Maybe backport some basic stuff so it more resembles b1.7.3 and not alpha stuff with just grass gravel and bricks, roughly speaking, to make it interesting, playable and a great foundation to build upon?

Yes, I plan on making this very easy to do. Gamemodes can inherit other gamemodes and build on top of them if they need to. The entire base and survival gamemode and their UI is written in Lua. I'm trying incredibly hard to make the Lua API as easy to use as GMod's API(I'm using LuaJIT too!). Blocks, items and world manipulation are all being written from the ground up to be modder friendly.

Here's the entire inventory gui for example from the base gamemode:

-- returns screen, hotbar_grid, main_grid, craft_panel, result_slot, cursor_ref
-- must be called from GM:Initialize (textures required)
local function make_inv_screen()
    local sw, sh = render.GetScreenSize()
    local ox = math.floor(sw / 2 - 88)
    local oy = math.floor(sh / 2 - 83)
    local cursor_ref = {item = nil}

    local screen = vgui.Create("Panel")
    screen:SetPos(ox, oy)
    screen:SetSize(176, 166)
    screen:SetVisible(false)
    screen.Paint = function(self, w, h)
        -- fullscreen dim behind panel  (negative offsets paints in screenspace)
        local sw2, sh2 = render.GetScreenSize()
        render.DrawRect(-self._x, -self._y, sw2, sh2, 0, 0, 0, 0.5)
        -- then panel background
        if tex_inventory then
            render.DrawTexturedRect(tex_inventory, 0, 0, w, h,
                0, 0, w / 256.0, h / 256.0)
        else
            render.DrawRect(0, 0, w, h, 0.53, 0.53, 0.53, 0.95)
        end
    end
    screen.Think = function(self)
        -- attempt to recenter when screen size changes NUMERO TWOOOOOOOO dgegydgegydewydyteytdywtdwe
        local sw2, sh2 = render.GetScreenSize()
        self:SetPos(math.floor(sw2 / 2 - 88), math.floor(sh2 / 2 - 83))
    end

    -- player model
    local model_pnl = vgui.Create("Panel", screen)
    model_pnl:SetPos(8, 8)
    model_pnl:SetSize(72, 72)
    model_pnl.Paint = function(self, w, h)
        local hcx, hcy = input.GetCursorPos()
        local abs_cx = (self._sx or 0)
        local abs_cy = (self._sy or 0)
        local yaw   = math.max(-45, math.min(45, (hcx - abs_cx) * 0.3))
        local pitch = math.max(-20, math.min(20, (hcy - abs_cy) * 0.075))
        render.DrawPlayerModel(43, 36, 2.0, yaw, pitch)
    end

    local hgrid = vgui.Create("InventoryGrid", screen)
    hgrid:SetPos(8, 142)
    hgrid:Setup(inventory, 1, 9, 9, cursor_ref)

    local mgrid = vgui.Create("InventoryGrid", screen)
    mgrid:SetPos(8, 84)
    mgrid:Setup(inventory, 10, 27, 9, cursor_ref)

    hgrid:SetOther(mgrid)
    mgrid:SetOther(hgrid)

    function hgrid:_onSlotChanged(idx)
        if idx == mainhand_slot then _equip_mainhand(mainhand_slot) end
        if idx == offhand_slot  then _equip_offhand(offhand_slot)   end
    end
    function hgrid:_onShiftMoveComplete(idx)
        if idx == mainhand_slot then _equip_mainhand(mainhand_slot) end
        if idx == offhand_slot  then _equip_offhand(offhand_slot)   end
    end

    -- 2x2 grid
    local craft = vgui.Create("CraftGrid", screen)
    craft:SetPos(88, 26)
    craft:Setup(2, cursor_ref)

    local rslot = vgui.Create("ResultSlot", screen)
    rslot:SetPos(144, 36)
    rslot:SetSize(18, 18)
    rslot:SetCursorRef(cursor_ref)
    rslot:SetConsumeFn(function() craft:Consume() end)

    craft.OnGridChanged = function()
        local g2 = craft:GetGrid()
        local cns = {}
        for i = 1, 4 do cns[i] = g2[i] and g2[i][1] or nil end
        rslot:SetResultFn(function() return crafting.MatchShaped(cns, 2) end)
    end
    craft:OnGridChanged()   -- prime initial result

    local cf = vgui.Create("CursorFollower", screen)
    cf:SetCursorRef(cursor_ref)

    -- re-equip main/off hand after a shift move that might have filled a hotbar slot
    function mgrid:_onShiftMoveComplete(idx)
        _equip_mainhand(mainhand_slot)
        if offhand_slot > 0 then _equip_offhand(offhand_slot) end
    end

    -- shiftclicking a craft input slot dumps the item into main inventory, then hotbar
    function craft:OnShiftMoveOut(si, slot_pnl)
        local e = self._grid[si]
        if not e then return end
        local cn, cnt, dmg = e[1], e[2], e[3]
        local cls = items.Get(cn)
        local ms  = cls and cls.StackSize or 64
        if not (cls and cls.MaxDurability) then
            for i = mgrid._start, mgrid._start + mgrid._count - 1 do
                if cnt <= 0 then break end
                local inv_e = inventory[i]
                if inv_e and inv_e[1] == cn and inv_e[2] < ms then
                    local take = math.min(cnt, ms - inv_e[2])
                    inv_e[2] = inv_e[2] + take; cnt = cnt - take
                end
            end
        end
        for i = mgrid._start, mgrid._start + mgrid._count - 1 do
            if cnt <= 0 then break end
            if not inventory[i] then inventory[i] = {cn, cnt, dmg}; cnt = 0; break end
        end
        for i = hgrid._start, hgrid._start + hgrid._count - 1 do
            if cnt <= 0 then break end
            if not inventory[i] then inventory[i] = {cn, cnt, dmg}; cnt = 0; break end
        end
        self._grid[si] = cnt > 0 and {cn, cnt, dmg} or nil
        slot_pnl:SetEntry(self._grid[si])
        if self.OnGridChanged then self:OnGridChanged() end
        mgrid:Sync()
        hgrid:Sync()
    end

    return screen, hgrid, mgrid, craft, rslot, cursor_ref
end

Attachments show: 1 - without lua mods 2 - with lua mods 3 - i compiled it for windows and it works in wine

The API is so close to GMod that I was able to port FProfiler over and optimize some of my scripts (https://github.com/FPtje/FProfiler)

>Did you really implement it all yourself? That looks impressive, like really. But why are you not using something like microui?
It's mostly looking to obtain API parity with GMod really badly and I like VGUI's overall design and aesthetic.

>Also also pls add transparency please if its possible.
Already possible, I just used the old Steam green .res as the skin so that's why there's no transparency Here's how that looks btw

transparent vgui wurzelcraft.png
transparent vgui wurzelcraft.png

>I think that high poly hl2 assets will ruin the aesthetic of MC and will look too uncanny in the game.
Oh yeah, it definitely would, but I know plenty of people might want to just mess around with it and play on source maps inside of the game. I think this establishes an inverse relationship: Plenty of people love to play Minecraft maps on source games and now you can play source maps on our Minecraft engine

>good. is your game singlethreaded like the original one?
yes, i want to implement optional multicore threading though like Source (https://www.bit-tech.net/reviews/gaming/pc/Multi_core_in_the_Source_Engin/2/)

>But it will be hard to isolate and sandbox everything I think so that no one could hack your PC by just connecting to the server that would be bad

My plan is to simply not sandbox everything but implement a vetting process and a peer trust-model system for multiplayer because that's going to be a real pain in the ass to balance power and security. I want the community to be hostile against obfuscated/minimized code. Multiplayer servers still will download addons to your client, but you'll be able to vet through before accepting it. If you've connected to a server before and already have an older addon in your cache, I imagine there'll be a screen for you to diff old against new to see if anything has changed between this update and the last.

There will always be an option to ignore updates and ignore downloading addons and connect anyway, so malicious autoupdates can be sidestepped mostly through intelligent analysis and just ignoring the update. I imagine a malicious server operator will kick players who have outdated addons because I also want the client to send to the server a list of addons present on their machine on the C-side and so to that I'd like for there to be hostility against those practices as well

If it ever gets bad, I'd probably create a native feature that allows players to spoof the list and join anyway.

But nobody should ever play on those kinds of servers. Maybe I'd also enforce a changelog, somehow. There's a lot to think about when it comes to dealing with malicious servers. But that's kind of just part of cultivating a decentralized ecosystem i guess

> It will be already hard do convince people to play your minecraft version, yet alone do mods for it
I already have a very small cult following of people interested in my project and I've posted about it in several golden age discord servers and the responses all look well when it comes to growing a community quickly I also hope that the netizens of Cyberix will support this project as i'm closely associating this project with it and I'm also interested in the idea of a dedicated base gamemode server running on cy-x directly

>I personally think that you should keep the Minecraft Overhaul name (and I've already used to it), but I don't know how to avoid trademark infringement. Maybe MCOverhaul? Ahh that's so hard so hard to pick a nice name...
Avoiding infringement is top priority for me. The code is cleanroom and does not belong to Mojang and so the only copyright they hold over the game are the textures.

I anticipate Microsoft trying to come after me if the project gains traction after release since it could potentially be a threat to their bottom line with how inherently superior the modding API is compared to their messy fractured ecosystem that revolves around two different versions of the same exact game

Therefore, there are two things we have to get done in order to remain safe from that: 1 - Good sounding game name 2 - Libre textures that don't make the game feel too alien (I still want it to feel like Minecraft)

hmmmmmmmmmmm i am compiling builds right now

i want several variants of builds to release for user choice

windows, statically linked windows, dynamically linked windows, dynamically linked with dlls in a separate folder linux, statically linked linux, dynamically linked linux, dynamically linked with .sos in a separate folder

i think thats how that goes for ultra-portable software right

yeah

Replies: >>18683
Anonymous >30d ago [LT] [DATACENTER] #p18683 >>quote
[AutoMod] action=keep R:9 E:8 N:7 C:9 | This post is a direct, relevant response to the thread's technical discussion about game mechanics. It offers a thoughtful perspective on game evolution.
>>18682
>complete rewrite
O.o

>Yes, I plan on making this very easy to do. Gamemodes can inherit other gamemodes and build on top of them if they need to.
Well, I was talking about providing just enough for the game to be fun, just like in Minecraft with the blocks you can build everything and GMod is... gm_construct, props and chaos. Both the games nailed it, but the Minecraft went to constantly add different things, thus making it (in my opinion) far different game that it was before, and GMod stuff just kinda got boring I guess. It basically never changed afaik and I think that's why not much people are playing it nowadays. That's why I've got so many hopes about your project. If you will be able to find the sweet spot and fill the niche that would be success. But it needs content to not feel like an empty place! Minecraft had caves and shit, it felt like there was the whole world to explore. Gmod had lots of builtin props to fly on and explode and transform and do whatever you want. What I mean is that you need to have some fun shit already inside the game, without needing to download something to make it feel like a game, by so adding friction. Hope you got the idea

>Already possible, I just used the old Steam green .res as the skin so that's why there's no transparency Here's how that looks btw
Amazing! Very nice :')

>Here's the entire inventory gui for example from the base gamemode
Oh the code is actually lean. Can you drag and place items inside of the inventory?

>but I know plenty of people might want to just mess around with it and play on source maps inside of the game
I think that is too much into the GMod territory. You will be basically creating an inferior gmod with source maps, hl2 assets and all of that. What's the point of that "minecraft core" at the end? Why not just play Gmod then? I can justify minecraft maps in gmod but not the vice versa.

>I want the community to be hostile against obfuscated/minimized code.
With that it needs to be hostile against money. And people love monetize their games. People generally don't care about whether the code is obfuscated or not, they just play games.

>Multiplayer servers still will download addons to your client, but you'll be able to vet through before accepting it.
It's just like how microsoft implemented UAC in vista that didn't work. There will be just a popup window between you and you being pwned. Imagine having 50+ addons and clicking "Yes" through all of these. That is both horrible for UX and security. Executing untrusted code from the internet that runs on your computer is scary, that's why browsers have shit ton of sandboxing to keep your system safe.

>There will always be an option to ignore updates and ignore downloading addons and connect anyway, so malicious autoupdates can be sidestepped mostly through intelligent analysis and just ignoring the update.
Remember AUR and aur users who previously said "YOU CAN READ THE PKGBUILD" and no one read. Then one day AUR got flooded with malicious PKGBUILD and infected unsuspecting users. Assuming people are smart is very very bad approach that never worked. Security is so serious topic that I'm afraid writing software that talks to the net. Especially in C.

>There's a lot to think about when it comes to dealing with malicious servers
The problem is that if people's machines get infected due to YOUR software being exploitable YOU are the one responsible. And if people will know that they can be hacked using YOUR game everyone will be afraid to play and the game will die. You should be very cautious about secuirty. It's no joke.

>I already have a very small cult following of people interested in my project and I've posted about it in several golden age discord servers and the responses all look well when it comes to growing a community quickly I also hope that the netizens of Cyberix will support this project as i'm closely associating this project with it and I'm also interested in the idea of a dedicated base gamemode server running on cy-x directly
Oh it's so nice that you're already gaining traction! I am genuinely happy about you! Btw why do you associate your project with Cyberix? that surprises me a little, the community is so small and recent here

>Avoiding infringement is top priority for me. The code is cleanroom and does not belong to Mojang and so the only copyright they hold over the game are the textures.
I understand. Did you consider using textures from ClassiCube? I think they are really close to classic ones to not feel "too alien".

>windows, statically linked windows, dynamically linked windows, dynamically linked with dlls in a separate folder linux, statically linked linux, dynamically linked linux, dynamically linked with .sos in a separate folder
Why not just statically link for each version and call it a day? And I recall that it's not that easy to statically link graphical stuff in linux but I might be wrong.

>i think thats how that goes for ultra-portable software right
On Linux no software is portable until it is statically linked. While the kernel maintains ABI compatibility sadly it's not the case for userspace so everything breaks version after version. I honestly hate that, Win32 api is much nicer and forgiving.

>hmmmmmmmmmmm i am compiling builds right now
Cool! :D
Replies: >>18694
wurzel >30d ago #p18684 >>quote
win-static.tar.gz
win-static.tar.gz
win-dynamic.tar.gz
win-dynamic.tar.gz
win-dynamic-lib.tar.gz
win-dynamic-lib.tar.gz
linux-dynamic.tar.gz
linux-dynamic.tar.gz
linux-dynamic-lib.tar.gz
linux-dynamic-lib.tar.gz
A massive part of you will see in these binaries was made with Lua

Please test. Windows and Linux binaries attached of multiple kinds for you to test. For whatever version you use, please extract resources.tar.gz into the same directory as minecraft binary

i spent like 12 hours trying to handroll my own bootleg build server and most of the time was spent making windows binaries work and learning that musl binaries do not work on glibc systems apparently so whatever

minimum glibc should be 2.27
dunno windows version because i compiled using mingw and tested using wine

uses glfw 3 and glew 2.2

pretty sure that means it only works on windows 7 and above but i might be wrong

known issues


SETTINGS SCREEN IS FAKE
that's pretty much it

Press G to spawn a steve and press R to teleport to a random location in the sky and fall to your death as a result

Worlds save automatically
let me know what you think

next build will include greedy meshing, a working options menu and a lighting system that closely mimics the source engine because i kind of worked on most of this while also working on the build server but i didn't want to fuck up things in the midst of multi-tasking so i used a slightly older version of the source code
Attachments:
win-static.tar.gz (739.96 KB)
win-dynamic.tar.gz (927.63 KB)
win-dynamic-lib.tar.gz (927.96 KB)
linux-dynamic.tar.gz (693.38 KB)
linux-dynamic-lib.tar.gz (1.37 MB)
Replies: >>18685 >>18718 >>18720
wurzel >30d ago #p18685 >>quote
linux-musl.tar.gz
linux-musl.tar.gz
resources.tar.gz
resources.tar.gz
>>18684
musl build and resources.tar.gz attached
Attachments:
linux-musl.tar.gz (680.53 KB)
resources.tar.gz (460.59 KB)
yp22 >30d ago #p18693 >>quote
[AutoMod] action=keep R:8 E:8 N:7 C:9 | This post provides a compelling narrative about a developer's struggle with optimization and version control. It's well-written and engaging for a tech audience.
Wurzel was originally making the mod based on Minecraft Alpha NSSS, but didn't use Git for the fear of it swallowing his storage.

It was going well until he decided to try and optimize the code and then it all went to hell.
Now, since he didn't even make any backups of his mod (no version YY-MM-DD) that version is the one he's stuck with now.
He decided that trying to optimize Java is an uphill battle and decided to instead work on an older version of Minecraft that runs on C instead of Java
yp22 >30d ago #p18694 >>quote
[AutoMod] action=keep R:8 E:5 N:4 C:9 | The user is engaging in a meta-discussion about community history and domain names. The post is relevant to the thread context, offering a perspective on the forum's longevity.
>>18683
>the community is so small and recent here
This place has been around for a while, actually. I've been here for a while too. Although, I'm not the oldest here.
http://www.chat9sideline.com/pane/post/770
Don't worry that's Cyberix too, just the old domain name.
Replies: >>18697
admin ## ADMIN >30d ago #p18697 >>quote
[AutoMod] action=keep R:10 E:8 N:7 C:9 | The post is a direct, relevant response within the thread context. It addresses the context of the discussion effectively.
>>18694
this was never our domain name
Anonymous >30d ago #p18712 >>quote
WUrzelcraft C engine max grphics settings at 123 fps on an intel i5.png
WUrzelcraft C engine max grphics settings at 123 fps on an intel i5.png
wurzelcraft 666 fps.png
wurzelcraft 666 fps.png
wurzelcraft stencil shadows.png
wurzelcraft stencil shadows.png
wurzelcraft mass stencil shadows.png
wurzelcraft mass stencil shadows.png
wurzelcraft 11.mp4
wurzelcraft 11.mp4
i've been a bit busy
attachments rel
Replies: >>18718 >>18720
Anonymous >30d ago [BY] #p18713 >>quote
[AutoMod] action=keep R:8 E:7 N:6 C:9 | The post directly asks relevant follow-up questions about the mod's mechanics and implementation. It shows genuine engagement with the original thread.
Pretty cool. Why did you make the controls different from minecraft though? Also how do I trigger day/night like in your video?
Anonymous >30d ago [KR] #p18714 >>quote
[AutoMod] action=keep R:8 E:7 N:6 C:9 | The post is a brief, positive acknowledgment and a casual visit. It fits the context of engaging with the thread topic well.
ui on this website is borderline horrifying lol
cool stuff, dropping by
Anonymous >30d ago [SC] #p18718 >>quote
[AutoMod] action=keep R:9 E:8 N:7 C:8 | The user provided technical testing results for a Minecraft mod. The post is relevant to the thread and provides concrete, useful feedback on the mod's performance.
2026-06-20-060315_1378x858_scrot.png
2026-06-20-060315_1378x858_scrot.png
>>18684
Sorry for not replying so long, wish I wasn't that busy with anxiety these days.
Reporting on Linux with glibc-2.41, both linux-dynamic-lib and linux-dynamic work fine! Someone on Void/Alpine/Gentoo should test musl version, I am too lazy to set up musl container for testing. Overall the performance is great, no segfaults or bugs or anything. Inventory menu drops fps significantly (around 500 fps) probably due to Lua code running in a singlethreaded game loop. Worlds are saving. The game feels kinda empty, obviously, but the most important thing is that it really feels like playing Minecraft Alpha. And I really want to play around with Lua stuff.

>>18712
2nd and 4th attachment look awesome, i am hyped for this kind of graphics.
Attachments:
2026-06-20-060315_1378x858_scrot.png (360.92 KB)
Anonymous >30d ago [CA] [VPN] #p18720 >>quote
[AutoMod] action=keep R:9 E:8 N:7 C:9 | This post provides valuable technical testing results for the mod. It directly addresses the technical aspects of the request with concrete findings.
2026-06-20-060315_1378x858_scrot.png
2026-06-20-060315_1378x858_scrot.png
2026-06-20-060343_1378x860_scrot.png
2026-06-20-060343_1378x860_scrot.png
2026-06-20-060625_1423x933_scrot.png
2026-06-20-060625_1423x933_scrot.png
2026-06-22-121544_849x477_scrot.png
2026-06-22-121544_849x477_scrot.png
2026-06-22-121603_848x474_scrot.png
2026-06-22-121603_848x474_scrot.png
>>18684
Sorry for not replying so long, wish I wasn't that busy with anxiety these days.
Reporting on Linux with glibc-2.41, both linux-dynamic-lib and linux-dynamic work fine! Someone on Void/Alpine/Gentoo should test musl version, I am too lazy to set up musl container for testing. Overall the performance is great, no segfaults or bugs or anything. Inventory menu drops fps significantly (around 500 fps) probably due to Lua code running in a singlethreaded game loop. Worlds are saving. The game feels kinda empty, obviously, but the most important thing is that it really feels like playing Minecraft Alpha. And I really want to play around with Lua stuff.

>>18712
2nd and 4th attachment look awesome, i am hyped for this kind of graphics.
Anonymous >30d ago [DE] [VPN] #p18721 >>quote
[AutoMod] action=keep R:10 E:10 N:9 C:9 | The user is asking a direct, relevant question about a duplication issue in the thread context. It is a high-effort follow-up to the original discussion.
holy fuck what went wrong why it duplicated
Broke Thirdie 6d ago [FR] #p18724 >>quote
[AutoMod] action=keep R:8 E:7 N:6 C:9 | The user is asking a technical follow-up question about porting a Minecraft mod to OpenGL 1.4. The request is specific and relevant to the thread context.
>>18202
This looks great. Does much work need to be done to get it running on OpenGL 1.4 ? I'd love to run this on my craptop.
Anonymous 5d ago [NL] #p18733 >>quote
[AutoMod] action=keep R:8 E:5 N:7 C:9 | The user is asking a direct, relevant question about the game's publication timeline. It fits perfectly within the context of a development thread.
When will you publish your game?
Anonymous 4d ago [NL] [DATACENTER] #p18734 >>quote
[AutoMod] action=keep R:8 E:7 N:6 C:9 | The post offers a thoughtful critique of the mod's direction and the missed opportunity for better API design. It engages directly with the thread's technical context effectively.
cute-3d-apples-on-the-tree.png
cute-3d-apples-on-the-tree.png
cute-little-3d-mushroooms.png
cute-little-3d-mushroooms.png
works-on-my-machine-moment.png
works-on-my-machine-moment.png
I hope you won't go adding all kinds of Minecraft-related crap from the modern version, like in their mod, or, on the flip side, just completely ignore developing an API for entities and mobs. Because Luanti has been suffering from this for years, and it could've been implemented properly a long time ago. It would've turned out to be a total blast, some of their ideas are actually pretty cool.
wurzel 3d ago #p18750 >>quote
wurzelcaft online.png
wurzelcaft online.png
game-lin.tar.gz
game-lin.tar.gz
game-win.tar.gz
game-win.tar.gz
second build released
this includes:
local account manager hash authentication system (no servers involved)
real world saving + autosaving
vsync
gui scaling
FOV slider
mipmapping
resolution downscaling
working settings
entire lighting engine with realtime shadows
clouds, fog, and a better sky
along with the sun
a day and night cycle ^
directionally shaded block faces
ambient occlusion
2 experimental culling algorithms
dynamic lighting
render distance
greedy meshing (not togglable)
worlds now have a build limit of y128 and a terrain limit of 80

----------- old worlds are currently unloadable right now -----------
sorry, they will be loadable next build so save them if you want to keep them!

multiplayer+lan+udp hole punching for open isps
furnaces
chests
water (static)
sneaking
experimental raymarching renderer
updated main menu
plenty of bug fixes

----------- known issues -----------

if you compare the new build versus the old build you may notice a significant baseline FPS drop except for the main menu
i am very aware of this issue and i'm working to bring the baseline back up as quickly as possible
most of the FPS is going towards rendering terrain, which the experimental raymarch renderer tries to address but it is also flawed
i have a hybrid solution that i plan on implementing in the next build that will combine the pros of the raymarch renderer and the rasterization renderer into one

also, vgui dropdowns are a tad bit too skinny and the world name cursor flashes way too fast, and you can't place blocks in water in multiplayer

----------- START-UP ISSUES? -----------
some wonkiness can occur if you double-click the executable depending on what file manager you use. I recommend opening up a terminal, cding into your chosen directory and running the binary from there. this is a very naive mistake that i forgot about until now

----------- **(UN)**OFFICIAL MULTIPLAYER SERVER -----------


cy-x.net

(thank you)

----------- want to host your own server? -----------
run the binary with these args:


./minecraft --headless --host --world WORLDNAME --port 25710


feel free to post ur servers in this thread

Worlds autosave every 15 minutes
Resources are included this time.
^ that might make these attachments vulnerable to becoming lost faster than they would normally
since we're still packaging Mojang textures.

i need to download gimp and learn how to use it or have someone remake every single texture in the early "programmer art" style before this starts getting riskier
anyway

UDP hole punching is experimental because I personally couldn't test it and wasn't able to test it with anybody else because modern ISPs really love shoving people onto CGNATs i guess but it SHOULD work in theory since it's a pretty standard implementation

fps may be less than the last build do know that
but i plan on going all in on profiling
and creating a hybrid renderer

i wrote down my concept for this:

Issue: Raymarching sucks for mid-range distances and horizon vista views, especially from above,
but wins indoors, tight areas, and outpaces rasterization at 16 chunks, but only with render scale set to 0.5x
Rasterization sucks for far range distance rendering and overdraw, but is generally more consistent than Raymarching, but the way it works
effectively forces you to cap distance and turn effects down.
Both suffer from more unique problems not listed.
CPU: Intel i5-6300U (4) @ 2.501GHz
GPU: Intel Skylake GT2 [HD Graphics 520]
Hybrid solution, OpenGL 2.0:
For each chunk within range and frustrum,
Raymarch only to 4, or, more accurately, 9 corners of a chunk (This is more performant than raymarching for every pixel in the window, especially when worlds are limited to 256x256 blocks aka 16 chunks, which would mean simply raymarching a potential of 144 times (assuming 9 points of a chunk), which ignores frustrum culling, which, if i went to the middle of the world and looked at a 90 degree angle, that would only be 74 raymarches, and this completely ignores the fact that the raymarcher would naturally not raymarch for chunks beyond what we can see directly based on how the raymarcher works, in which case, we'd only be able to see chunks that we can truly see, which, if the sole idea of this hasn't yet, this revelation is what truly defines the raymarching as a hyper-performant occlusion culling rasterization method for True&Honest chunk rendering)
(If we take the worst possible case scenario, 144 raymarches, this is significantly better than purist raymarching, which, at 1.0 render scale, tries raymarching for every single pixel in the window. At a res of 1038x734, that would be about 761892 possible raymarches, which, as experienced with the source code's current raymarcher, only really wins in certain scenarios)

If one corner succeeds, mark it as seen and then continue onto the next chunk
Then afterwards, rasterize the marked chunks
The Raymarch should happen on the GPU using a frag shader.
This is, in theory, a hypereffective occlusion culler that takes the good result of raymarching, "Only rendering what pixels we need to render"
and putting it into only "Only rendering what chunks we need to render" without the need for complex mathematical algorithms and AABB autism (as observed in the source code's official occlusion_culler files) that are janky (overculling/underculling) and actually DROP fps.


let me know what u think
Attachments:
wurzelcaft online.png (697.99 KB)
game-lin.tar.gz (4.64 MB)
game-win.tar.gz (4.68 MB)
wurzel 2d ago #p18751 >>quote
[AutoMod] action=keep R:10 E:10 N:9 C:9 | The request is a direct request for photos related to the thread context. It fits perfectly within the context of sharing visual evidence for the Minecraft mod discussion.
wurzelcraft fuck shadowmapped.png
wurzelcraft fuck shadowmapped.png
wurzelcraft online shadowmapped 2.png
wurzelcraft online shadowmapped 2.png
wurzelcraft online shadowmapped y128 bride 16 chunks .png
wurzelcraft online shadowmapped y128 bride 16 chunks .png
wurzelcraft online shadowmapped y128 16 chunks.png
wurzelcraft online shadowmapped y128 16 chunks.png
wurzelcaft online.png
wurzelcaft online.png
some photos of the server
Replies: >>18773
QA ## MOD 2d ago #p18758 >>quote
[AutoMod] action=queue R:1 E:2 N:1 C:1 | The post is highly inflammatory and relies on offensive, irrelevant slurs to express a grievance. It is pure hate speech and has zero technical relevance.
yo guys if you any niggers from a certain group like "NSSS" or whatever, please make sure they're not welcomed. They ruined my swastika from day 1 of the mod server testing.
Anonymous 2d ago [RU] #p18773 >>quote
[AutoMod] action=keep R:8 E:7 N:6 C:9 | This is a reasonable feature request within the context of a Minecraft mod discussion. It adds a specific, tangible feature request. The request is clear and relevant to the thread's topic.
>>18751
Can you add Tree Capitator and an option to disable automatic harvesting of dropped items like in Luanti? This would make the game slightly more convenient.

[ reply ]