Live data from Hacker News

Custom Minecraft Classic client written from scratch in C

github.com

11–20 of 80 posts

Re: Custom Minecraft Classic client written from scratch in C

#13
post #6

I feel like this is one of those projects missing missing an important "Why" section. It's an interesting project, but from the outside, I don't immediately understand why someone has done all this effort. Huge Minecraft classic fans? Programming exercises? Is it about porting to as many platforms as possible? This is the version they are forced to make to not get their pants sued off?

Yeah.

Its seemingly too big for a programming exercise. Minecraft Classic isnt really broken or super limited like the targets of many open source remakes. Its not commercial.

The big selling point seems to be support on really old desktop devices and iOS/Android? Assuming the mobile controls are good.

Re: Custom Minecraft Classic client written from scratch in C

#14
post #6

I feel like this is one of those projects missing missing an important "Why" section. It's an interesting project, but from the outside, I don't immediately understand why someone has done all this effort. Huge Minecraft classic fans? Programming exercises? Is it about porting to as many platforms as possible? This is the version they are forced to make to not get their pants sued off?

Because they can, programming for many is not only a job but also a hobby and passion. Doing something like this you can learn a tons as well and it is a worthy challenge in itself to push your craft.

People re-create classic games all the time, like tetris, for fun.

Re: Custom Minecraft Classic client written from scratch in C

#15
I’m a bit short on time and can’t dig into the code, but maybe somebody can answer this for this or the original version:

In what data structure are the blocks in Minecraft actually stored? And by which mechanism are they quickly retrieved to check which block the player was hitting?

I would think the model partitions the space with an octree and their position jumps from parent node to parent node. Then at each bit we just have to go through 8 elements to find a block and all the entities for this partition.

Re: Custom Minecraft Classic client written from scratch in C

#16
post #6

I feel like this is one of those projects missing missing an important "Why" section. It's an interesting project, but from the outside, I don't immediately understand why someone has done all this effort. Huge Minecraft classic fans? Programming exercises? Is it about porting to as many platforms as possible? This is the version they are forced to make to not get their pants sued off?

I have done something similar for another game.

It started as a fun curious idea to understand more about programming and mechanics in games, but became very quickly extremely addictive.

Paired with big personal problems at that time it provided me with an excellent opportunity to escape and basically not leave my home until I was done.

And I regret none of it. I learned much much much more about engineering than I would have ever done otherwise and with this knowledge I landed very good jobs with good and stable income which eventually brought me out of my personal problems.

Re: Custom Minecraft Classic client written from scratch in C

#17

I’m a bit short on time and can’t dig into the code, but maybe somebody can answer this for this or the original version: In what data structure are the blocks in Minecraft actually stored? And by which mechanism are they quickly retrieved to check which block the player was hitting? I would think the model partitions the space with an octree and their position jumps from parent node to parent node. Then at each bit…

this is the kind of question a co-pilot programming assistant AI should be able to answer with direct quotations of the relevant code

Re: Custom Minecraft Classic client written from scratch in C

#18

I’m a bit short on time and can’t dig into the code, but maybe somebody can answer this for this or the original version: In what data structure are the blocks in Minecraft actually stored? And by which mechanism are they quickly retrieved to check which block the player was hitting? I would think the model partitions the space with an octree and their position jumps from parent node to parent node. Then at each bit…

A bit of searching implies that they are not stored as Octrees due to "performance reasons":

> [...] To understand why octrees are slower for Minecraft games, it isn’t really necessary to invoke such exotic explanations. The underlying reason for the worse performance is purely algorithmic: each time an arbitrary voxel is touched, either when iterating or performing a random access, it is necessary to traverse to the entire height of the octree. Since octrees are not necessarily balanced, this can be as much as log(maximum size of game world)! Assuming the coordinate system is say 32 bit, this brings an added overhead of 32 additional non-coherent memory accesses per each operation that touches the map (as opposed to the flat array, where everything is simply constant time).

https://0fps.net/2012/01/14/an-analysis-of-minecraft-like-en...

Re: Custom Minecraft Classic client written from scratch in C

#19
post #6

I feel like this is one of those projects missing missing an important "Why" section. It's an interesting project, but from the outside, I don't immediately understand why someone has done all this effort. Huge Minecraft classic fans? Programming exercises? Is it about porting to as many platforms as possible? This is the version they are forced to make to not get their pants sued off?

Microsoft’s made account management annoying and shitty and unreliable—like, they make it weirdly hard just to buy the damn game—for MC Classic.

I’d love a way to sidestep them. It’d make my life easier. We already own four or five copies of the game, so I’m not even talking about piracy.

Plus their fucking launcher phones home to any of a whole bunch of IP addresses, refusing to launch the game if those requests fail, which makes allowlist-based management of kids’ connected devices difficult if you want them to be able to play Minecraft and don’t want to have to manually intervene every time they start the game. God damn is that annoying.

(We tried the minecraft-clone plug-in bundle for that one open source engine, and the kids and I both found it off putting and definitely worse in ways that were hard to put my finger on, but were real. Instant rejection by the kids, and I couldn’t blame them)

[edit] though without survival mode or the ability to do multiplayer, this project is also no help to us.

Re: Custom Minecraft Classic client written from scratch in C

#20
post #6

I feel like this is one of those projects missing missing an important "Why" section. It's an interesting project, but from the outside, I don't immediately understand why someone has done all this effort. Huge Minecraft classic fans? Programming exercises? Is it about porting to as many platforms as possible? This is the version they are forced to make to not get their pants sued off?

why should there be a reason to? if there are people that are interested in developing it (even if you solely is the only one interested), who cares?
Post reply on HN