Hey fun to see Sammy’s CPU on here. If anyone wants to hop on and look at it, connect to mc.openredstone.org with a Minecraft 1.17.1 client. Run /build then /warp CHUNGUS2 to warp to it.
The Open Redstone Engineers server (https://openredstone.org/) is a community of nerds who use Minecraft as our digital logic simulator of choice, and we spend most of our time on there designing and implementing CPUs. I and a few others started it in 2013 and it’s still going strong (though other people at the helm these days). This CPU was made by a member called sammyuri who’s online every now and then.
I didn’t expect to see ORE show up on lobste.rs.
after updating java, right? :)
updating java won’t help you much
(OT) Given your experience, what do you think Minecraft should change to improve performance of in-game CPUs like this?
I don’t think there’s a lot Minecraft proper can or should do. The main problem is that everything in the game takes 1/10th of a second (what we call a redstone tick) to update – so that means a CPU like this has 10 ticks per clock cycle. (For reference, something like an AND gate requires two ticks, so 2/10ths of a second.) There are things Minecraft could do to support more complex circuits without the tick rate dropping further, but ORE already has a lot of server-side plug-ins to improve performance in that respect.
However, another member of ORE, StackDoubleFlow, has been working on a re-implementation of the Minecraft server software: https://github.com/MCHPR/MCHPRS – This reimplementation is written in Rust, and the whole point is to execute redstone circuits at insane clock rates. I would guess that something like this 1Hz CPU could execute at at least tens or hundreds of kHz on MCHPRS.
I think MCHPRS is the next step in cool Minecraft CPUs. I’m working on a CPU with a 16-bit address space in order to be able to write some seriously interesting complex programs. Someone else on ORE is working on a complete RISC-V implementation, including all the ISA extensions necessary to get Linux running on it. The promise of being able to actually do something with the machines is what has gotten me back into making redstone CPUs lately.
(Also, maybe, eventually, there may come a re-implementation of the client. I think we may eventually have re-implemented ourselves out of Microsoft’s grip. Watch this space.)
I wasn’t asked but have you seen papermc ? https://github.com/PaperMC/Paper
it does a lot right
Ah, for some reason my overworked brain read ‘1 MHz’ instead of ‘1 Hz’ and thought this was a CPU designed to run a Minecraft server 😅
Holy shit it has a branch predictor…
I am perplexed by the very compact structure of the processor. What kind of external tools, if any, are used to design things like that?
We use WorldEdit: https://dev.bukkit.org/projects/worldedit. On ORE, we also have a bunch of custom plug-ins to make certain things easier, such as this RedstoneTools plug-in: https://github.com/paulikauro/RedstoneTools
MCEdit is a popular tool for this sort of thing, though I don’t know if it was used as such in this case.
MCEdit also hasn’t been touched for years at this point, and doesn’t work with the newer versions of Minecraft :( There is Amulet (https://www.amuletmc.com/) that is attempting to be a more modern iteration of MCEdit but my experience with it has been mixed.
Whaaa…? Nick Bostrom was right…?! Peace among worlds…?!!?