What if I made a Minecraft-style game?
Well, that is a question many ask from themselves.
I ask it from myself too, in the sense of writing everything from the ground up again, to get a cleaner, faster and a more awesome codebase.
But how much work is actually involved?
This is the result of me researching whether re-doing everything would make any sense.
—
Okay, I then end up writing a voxel rendering thing, with a bunch of block types. A virtually infinite one. “Omg this works so neatly!”
It really isn’t a large job. I could do it in three days.
Then a terrain generator. A day, or so?
Hmm, we definitely need lighting. An optimized implementation will likely take, say, two days.
Now what do you need more? “Oh well, these maps need to be saved somewhere…”. That’s a day.
And then the voxel data needs to be sent over the network. I’d call that two days.
Oh lol, now we have the protocol but no proper server? A day…
This thing needs some kind of a menu to input the server address. A day.
Now, there is actually something to play with your friends. But it’s only a few static blocks and very simple, other players are drawn as trollface sprites.
A breaking animation to blocks is definitely required. Figuring out and implementing a decent system might take a day.
Clouds, sun, moon, a slightly better skybox. A day.
A fluid model for water and lava becomes necessary. At least a day spent.
Animating flowing fluids. An another day.
Currently there is no inventory at all. Implement inventory and crafting. In a day.
Implement and draw different tool types. A day.
Glass, fences, doors, something else. A day. At least.
Improve terrain generator, add more natural blocks. A day.
No tool or block is visible in HUD. Tool requires a 2d->3d extrusion thingy. Also, well tuned view bobbing is needed. Two days of boring and annoying stuff.
Other players still look like trollface sprites. Draw a placeholder sprite-based player model from left, right, top, bottom, front, back, implement it in game. Transfer wielded tool through network and draw tools of other players, animated, based on the code from the HUD thing. At least a day.
This sword is awesome! Oh crap, there exists no mobs at all.
Implement some kind of a server-client synchronized entity system. In two days.
Implement dropping items on ground as entities. A day.
Implement and draw (using the same stuff as drawing an another player) a mob, using some fairly dumb system, with some reasonable reactions to hitting them with the sword or hand. A day.
Oh, talking about the hand, the hand is not shown in HUD yet. Also, there probably are many small things to add and fix at this point. A day.
—
At this point we’d be somewhere near what Minetest currently is. Partly better, partly worse. That’s 27 days of development, assuming the developer has my experience.
For somebody who hasn’t created something like Minetest before… it’s going to take a bit longer. 8)
—
Then you’ll definitely need a sound system and sounds. Better and more mobs. And the list goes on…