Live data from Hacker News

Playing “Minecraft” without Minecraft (2024)

lenowo.org

61–70 of 88 posts

Re: Playing “Minecraft” without Minecraft (2024)

#63

Earlier quoted context omitted.

>never provided any sort of modding support Bedrock added support for modding in 2016, 9 years ago, with resource packs and behavior packs. You can make custom entities, custom items, custom blocks, etc. There is also a marketplace available to distribute these to players, built right into the game. Java edition also has had similar things for many years.

I remember when the c++ edition came out, but have not really followed since then. Are all of the servers/mods still written in Java and it was just the desktop client that was rewritten in c++? Or is there a division between Java mods and c++ mods?

two versions still exist in parallel: Java edition for PCs, and Bedrock edition (c++) for everything else

the main modding community is around java edition

Re: Playing “Minecraft” without Minecraft (2024)

#64

I think it's amazing to have a massive commercially successful game such as Minecraft give the fans the ability to be very liberal with what they can do with it. Now we have open-source re-implementaions that are pretty close to vanilla!

no, they don't allow it, they maybe begrudgingly tolerate it. They have a history of false-copyright striking youtube videos, and they've recently started using AI (Tracer AI) to DMCA-spray claims, some of which are obviously nonsensical.

Of course, they are fine with you making youtube videos about their game (itdraws people in) but try making a video about a bit darker topics related to the game and you can quickly find your video striked.

I even found an instance of a project like this one (a unfinished open-source MC clone which is vaguely similar but original assets and code and everything) receiving an LLM-written copyright claim based on "it looks similar and that's protected by our IP"

Re: Playing “Minecraft” without Minecraft (2024)

#65

Earlier quoted context omitted.

I remember when the c++ edition came out, but have not really followed since then. Are all of the servers/mods still written in Java and it was just the desktop client that was rewritten in c++? Or is there a division between Java mods and c++ mods?

two versions still exist in parallel: Java edition for PCs, and Bedrock edition (c++) for everything else the main modding community is around java edition

Spot on. You can also play Bedrock on a PC if that's your poison.

Re: Playing “Minecraft” without Minecraft (2024)

#66
post #27

Earlier quoted context omitted.

At the cost of inner-platform-effecting all the game code. Long-time software engineers know all about the inner platform effect - if not, see [1]. Instead of writing directly what you want, something like: new Block("mymod:mystone").setShape(Shapes.CUBE).setTexture("mymod:stone_texture").setStepSound(Sounds.STEP_ON_STONE)... you now have to do some of this inline (the part that can't be customized in data packs): ne…

Honest question: what’s the alternative to inner-platform-effecting if you still want a system that’s highly user-customizable at runtime?

well, just have a proper code-based API?

not even separate textures are necessary, you could very well use atlases and just stitch them together at runtime with rectpacking and just remap the input texcoords to the new, bigger atlas... boom, mod support with atlases without creating 400 2KB .png's in the game folder.

similarly, blocks can be done in code, and modders can either use that, and optionally you can expose the same API in LUA or whatever if you need a less involved / sandboxed version of mods which can be downloaded from a server or whatever.

Here's an example of shit being done from code, it's fairly terse and you don't need to trawl through 7 files to do anything: (yes I know it doesn't have i18n yet but that won't make it much more complex either)

    SHORT_GRASS = register(new Flower(Blocks.SHORT_GRASS, "Short Grass"));
    SHORT_GRASS.setTex(crossUVs(8, 1));
    SHORT_GRASS.setModel(BlockModel.makeGrass(SHORT_GRASS));
    SHORT_GRASS.transparency();
    SHORT_GRASS.shortGrassAABB();
    SHORT_GRASS.noCollision();
    SHORT_GRASS.waterTransparent();
These are fluent/chainable so I could have put all of them on one line but that's less readable IMO, but your choice really.

For data files (textures, sounds and other assets) you could use a virtual filesystem like Quake did (PhysFS is a good library which vaguely approximates that) and get rid of the stupid amount of folder nesting specifying behaviour, you can just have toplevel folders and use modloader order to disambiguate.

tl;dr: almost anything can be made to work with the most convenient/most sensible method of making stuff instead of using a bunch of awkward and convoluted JSON files you aren't even using! (MC internally generates the JSONs from code, so the data lives through a code -> JSON -> code roundtrip, they aren't even dogfooding their own format lol)

Re: Playing “Minecraft” without Minecraft (2024)

#67
post #24

Earlier quoted context omitted.

MS is slowly killing off Java so they can push Bedrock (much less flexible) on everyone though. And all my daughter's friends use Bedrock :-\. I have a server with GeyserMC running to let them play together but it definitely isn't what it once was.

I find bedrock has much better performance than java. It runs very nicely using the MCPE launcher on linux.

I have the opposite experience, unfortunately. It's not a perfect comparison, but my base M1 MacBook Pro (8GB RAM) gets consistently solid performance out of Java edition, but my M3 iPad Air (also 8GB RAM, but better chip) drops frames constantly in Bedrock.

Re: Playing “Minecraft” without Minecraft (2024)

#68

Earlier quoted context omitted.

its fitting given the Forum this Post is from its running on a camera via uart debug port

I think GP’s point was that it’s talking about LE vs BE while simultaneously explaining what a “play” button is. It reminds me of my “electronics” class back in school (2010): Day 1 was learning how to use a computer mouse. Day 2 was straight into how a CPU works on an electrical level. That’s awesome though, re: serving the site from a camera. Are there details on that somewhere? Edit : Nvm, found it here: https://l…

The second thread has other exciting options !

- samsung galaxy s5

- router

- mips switch

- disposable vape

Re: Playing “Minecraft” without Minecraft (2024)

#69
post #27

Earlier quoted context omitted.

At the cost of inner-platform-effecting all the game code. Long-time software engineers know all about the inner platform effect - if not, see [1]. Instead of writing directly what you want, something like: new Block("mymod:mystone").setShape(Shapes.CUBE).setTexture("mymod:stone_texture").setStepSound(Sounds.STEP_ON_STONE)... you now have to do some of this inline (the part that can't be customized in data packs): ne…

A key part you're missing either willfully or ignorantly is that they're midway through the refactoring to make it data driven, so you have these odd/rough edges. Yes, having to declare json files for your new block in your mod is a pain... Meanwhile what it was built for, resource packs, this actually gives a good amount of power to the pack maker without having to ask the client to run untrusted java code.

It's not data-driven, it's still code-driven, just now the code is written in shitty-JSON-language. This is how the inner platform effect works. See also the configuration complexity clock [1].

[1] https://mikehadlow.blogspot.com/2012/05/configuration-comple...

Re: Playing “Minecraft” without Minecraft (2024)

#70
post #53

Earlier quoted context omitted.

A key part you're missing either willfully or ignorantly is that they're midway through the refactoring to make it data driven, so you have these odd/rough edges. Yes, having to declare json files for your new block in your mod is a pain... Meanwhile what it was built for, resource packs, this actually gives a good amount of power to the pack maker without having to ask the client to run untrusted java code.

I was just watching a cool video on "world gen modders" where the author demonstrated by tweaking just a few values in a custom JSON it was possible to create new kinds of landscapes. At least in their corner it seems like the JSON files are exactly what they want to use to achieve their goals.

It was like that when it was in Java, too. Just tweak just a few values in a custom Java class. Plus you could be as weird as you wanted instead of limited to a very rigid format. You weren't limited to tweaking values.

You can still override it in Java code instead of tweaking values, but it's much more painful because all the existing code is geared towards reading the tweakable values.

Post reply on HN