Hacker Newsnew | past | comments | ask | show | jobs | submit | cl3misch's commentslogin

Wasn't that the Bedrock edition? Or "Minecraft Education Edition"? An alternative C++ version, anyway.

I can't imagine Java Minecraft ever to have run well on a mid-range Raspi.


Well it did used to run on early Raspis. Maybe you don't realise how much less efficient it's gotten? It used to run fine in 256MB with small render distance.

So how did they break that?

* run both server and client when in singleplayer - doubles memory use

* turn byte block IDs into object pointers - octuples memory use for blocks

* make all game content into JSON object trees with huge amounts of indirection - adds about a GB of objects deserialized at startup that used to be simple if/then ladders

* add a whole bunch of code to handle these object trees, don't know how much this adds but probably 100MB of code when you include the raw class files through to the JIT-optimized assembly.


Are you referring to Minecraft Pi Edition that came with Raspberry Pi OS back in the day? The one made in C++ instead of the original Java edition?

> run both server and client when in singleplayer - doubles memory use

When did this change? It's been like that for as long as I can remember. It's actually a very common thing for games to do because it requires less code. Also it doesn't actually double memory use - game content can be shared, textures/meshes/audio is only on the client, etc. The chunk and entity data would need to be duplicated but they should be smaller.


1.3, not beta 1.3. Chunk data was traditionally the biggest part of Minecraft's memory use until they added a bunch more garbage.

Interesting they switched after a couple years!

> Chunk data was traditionally the biggest part of Minecraft's memory use until they added a bunch more garbage.

But that's only really because it is extremely light on assets that are typically large in other games.

I'm a bit indifferent about this. Obviously they made a lot of decisions that aren't good for performance but it's a tradeoff. Notch was most productive working in Java so he could pump out updates quicker, and it helped with modding even though builds were obfuscated. NBT helped maintain backwards compatibility of worlds and probably helped with modding too. If they had done things differently then Minecraft may not have been the huge success that it is.


Yes, Minecraft doesn't have a ton of assets and it does have a lot of block data, so they should have optimized the block data and not worried about the rest. Instead they pessimized the block data.

They even managed to pessimize the assets. They did this by, during startup, pre-converting every possible rendering state of every block in the game into a static 3D model made out of Java objects (Vertex, Face, etc). This wastes about a GB of RAM.

Before Minecraft 1.8, blocks were rendered by running block-specific code for each block to render it in the needed state. One function would append a ladder to a vertex buffer, another function would append a cube to a vertex buffer, another one for stairs, etc. Since the same code block would render any material variant and direction variant of stairs, this didn't use excessive memory.

I know that in 1.8, the biggest single waste of models was redstone dust, because it comes in 16 power levels and approximately 3^4 side connection states (connected, not connected, and connected up the side of a block, but not all combinations are possible) which is over 1000 unique models. Not sure if this is still the case.


> Yes, Minecraft doesn't have a ton of assets and it does have a lot of block data, so they should have optimized the block data and not worried about the rest. Instead they pessimized the block data.

Inefficient but surely beneficial to modding.

> pre-converting every possible rendering state of every block in the game into a static 3D model made out of Java objects (Vertex, Face, etc). This wastes about a GB of RAM.

Alternatively, these are the game's assets, so it isn't a waste. Running the code to generate blocks all the time wouldn't be ideal so caching makes sense but I don't know why they wouldn't lazily populate it.


So it's not a "hub", but a box around extension cables?

This hits a very soft spot for me. My beloved Spelunky 2 has huge input lag "on Linux", which makes it unplayable for me. It's pretty much the reason I keep my Windows 10 install around. I could not come up with a configuration on Linux that avoids the lag.

It's extra infuriating that online sources report the game running flawlessly but seem to ignore input lag.


Inspired by my own comment I looked into it again and came up with this combination in the game's "launch options", which feels much better:

    DXVK_CONFIG="dxgi.syncInterval = 0; dxgi.maxFrameLatency = 1; dxgi.maxFrameRate = 60" gamescope -f --immediate-flips -- %command%
I didn't know about `DXVK_CONFIG` before. It's the DirectX-Vulkan translation layer with its own framebuffer and latency.

I also manually disabled vsync in the game's `local.cfg` XML file.

I love where "gaming on Linux" is going. But I have the feeling the hype on Youtube etc. is in part created by content creators, and doesn't faithfully represent the actual situation (surprise!).


It seems to not support 24h? When I see e.g. 17:35 I want to type 17:35 instead of 5:35. Probably because I very seldomly see 5:35 in real life! Interesting observation by itself, but slightly annoying that I have to convert to 12h for this game.


Interesting! There is no am/pm, but I could definitely add it!


How about a simple light/dark theme where it's 0100 when dark and 1300 when light?

Now when people ask me what time it is and I say 1845, they often follow up with "What time is it really for normal people?"

Quarter 'til 19 of course.


I did the very same thing. Interesting phenomenon. I mainly use "analog watches", well, they're facsimiles of analog watches on digital devices.


> Tools are supposed to be designed around humans

This is a common thing to say, but when during the development of human civilization has this actually been the case? Is agriculture designed around humans more than hunting/gathering? Is industrialized work more designed around humans than agrarian society?

I don't mean to sound pessimistic or technocratic; quite the contrary. But I think we shouldn't project our desire for equanimity onto romantized versions of civilization.


We shape the tools that in turn shape us.


True; I have seen the agentic workflow and I would rather not be shaped by it.

It looks like absolute hell of constant distraction making it impossible to reach a state of flow.


For me, autocomplete is an unbearable distraction. I never took to pair programming either.

I've bounced off Claude Code (et al) multiple times.

But very recently I've had some successes. With some bulk bug fixes, it felt the same as scripting data quality fix ups. With proof of concepts in mind, tried 3 very different ideas.

Two quickly flamed out, revealing that I needed to chew on those ideas (a lot) more. If we're measuring how to "fail faster", I'd score these as useful efforts.

But one has been a very unexpected delight to work on. Almost addictive, like coding feels when you're in the flow.

Any way. The current mania for coding harnesses is total insanity. Mario of Pi.dev fame is spot on and far more insightful and articulate than me.


Is this allowed in Starlink's terms of service? Building a commercial service by selling a part of your antenna connection?


Is anyone in Nigeria going to care?


From the depths of hell in silence

Cast their spells, explosive violence

Russian night time flight perfected

Flawless vision, undetected

(Sabaton)


That's the first thing that came to my mind after reading the title.

It may seem a joke but you actually can learn history with Sabaton.


Moderation in recreational drugs, which definitely rules out fentanyl?

But yeah, what's moderation and what's excessive is subjective.


I can only comment about battery life. It's proportinal to how much tailscale is really being used: If you use tailscale with an "exit node", i.e. all traffic is routed through it and it's working continously, it drains battery. If it's only used for services on your tailnet, e.g. Immich, the impact will be very small.


But that doesn't give you kernel updates, being userspace only?


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: