I love procedural content generation. I enjoy Minecraft, and contributed to its development. It’s a fun… Game? Toy? Software?
Minecraft is a fun software.
And it does a lot of things right. It has a consistent abstracted graphical style. It encourages the players imagination. But it also blindly incorporates luck, refuse to give players abilities afforded to the AI, and tends to seem to suffer quite a bit from designer hubris. Overall, it like it, but I also want to improve on it.
“But Minecraft is fine!” you may say, “Why change anything?” Because Minecraft, though enjoyable, is only a first step. Listed below are a few of its shortcomings, and how I intend to address them. I’ll start with a simple observation, which nevertheless seems to have mostly avoided mention so far.
Minecraft, as a tool, is a…
Terrible Paint Program:
Minecraft has three fundamental play modes. Adventure, Survival, and Creative. Adventure doesn’t allow you to alter the terrain at all, and is basically a super-low-res FPS with terrible shooting mechanics. Survival allows you to change things… given enough patience. This is like a paint program where you can only put down a pixel if you first erase it from somewhere else.
Creative allows you to “freely” alter stuff… but it’s pretty bad at this. Specifically, it’s like a paint program where the “brush” has a maximum speed, and only draws one voxel at a time. This has some attraction for OCD satisfaction, but for accomplishing creative efforts it is maddeningly insufficient.
The first thing to change is to make a…
Usable third-person mode:
The view in Minecraft is explicitly bound to the “player character”. While this affords congruity, it also complicates both planning and execution. The player character can only move so fast, which means that the view can’t jump to distant locations. This prevents the user from comparing and examining places they have already discovered, or quickly editing large objects (especially in creative mode).
An ability to “hop back” to former locations, if nothing else as a means of emulating player character memories, would be invaluable. And while we’re at it, include some means of viewing both horizontal and vertical cut-away sections. This would allow Minecraft to behave like a third person platformer, and greatly aid user perception of the world. Add to that the ability to zoom in and out to view things both up close and far away, and different display modes to show various information about the in-game world, and we’d be really getting somewhere.
Of course, even if you can see what you’re doing, you can’t change things very quickly. If only the user had access to…
Minecraft uses procedural techniques to make the environment, but the user is stuck interacting one voxel at a time. Oh, certainly, you can spill lava and water (a short distance anyway) and force massive trees to grow, but this is the extent of the users power. Minecraft employs procedural tools itself, but does not expose those tools to the player, nor allow the player to make their own.
Uplift is designed around putting malleable procedural tools in the hands of the user. Whether from simple “flood fill” markers and shifting bulk materials, to erosion and mass wasting, to containers and vehicles, to plant and animal design (and their equivalent social structures), Uplift aims to enable the player with all the techniques used to generate and shape the world.
Of course, once the world is shaped in Minecraft, it mostly just sits there doing nothing. It would be so much more interesting if there were…
Minecraft blocks are (on the whole) static. Again, water, lava, and seedlings are among the few exceptions. For a game about mining, it has precious little collapse and cave-in simulation, and no attempt at simulating static material strength. Water does not erode soil, plants do not spread, and even animals hardly affect the landscape. The blocks, once generated, stay put.
One of the reasons for this is that getting things arranged in the first place is a huge pain (as noted above), but another reason is that it appears to have been inspired by adventure games, more than creative sandbox simulations. For a really interesting emergent simulation, blocks need to be able to act without user intervention.
Of course, active blocks will rapidly result in huge amounts of calculations, and slow the simulation to a crawl, which is why, if you have lots of active blocks, you also need to incorporate…
Abstraction is where you watch what’s going on for a little while, say “okay, I get it” and then record the basics. What went in, what came out, what changed, and how long it took. Then, the next time the same situation comes up, you just apply the abstraction instead of simulating the whole thing again in detail. This allows very complex simulations to be abstracted into simple formulas, allowing the computers resources to be employed elsewhere. Minecraft, despite being itself a rather abstract setting, does no in-game abstraction. Uplift will do it quite often.
And naturally, with all this abstraction going on, you’d probably like to view things at…
Minecraft has a constant time rate, and a constant voxel size. You can’t speed things up, or slow them down, and you can’t zoom out to deal with whole cities at once, or zoom in to address fine details. The closest Minecraft comes to various scales is that sleeping changes the time of day, but far from skipping forward in time, this is more akin to moving the sun to a different part of the sky. It is all placebo (aside from burning down the zombies, which I have to say, is quite handy). In any case, Uplift is designed around multiple spatial scales, each running their own abstracted simulations at different time rates, and allowing for large jumps in both time and space.
With all this flexibility, there will probably be a broad range of interactions the user would like to try out, which will profit greatly from…
Minecraft has (as noted above) three modes, and a handful of “difficulty” levels. Sadly, it has very little configuration outside of these. The code for the crafting system (remember the second half of the game’s title?) is built on an ascii template scheme which would be super easy to expose as text files and allow the user to modify as they wish. But it’s not exposed, for whatever reason. It would certainly be nice to be able to turn off just creepers, while leaving spiders active (or the inverse), but these blatantly obvious options are nowhere to be seen.
Minecraft also refuses access to the controls which drive the procedural world generation (see above (Note, Minecraft 1.8 exposed a large number of world gen options during world creation. Excellent improvement!)) along with monster generation, world size, material properties, or any other aspect of the mechanics. In this respect, Minecraft is true to its presumption to being a “game” in that the rules are the same for everyone. But as a toy, it falls far short. Instead of gluing together a “game” out of parts, and then demanding that everyone use those parts in the same way, Uplift is designed around making a bunch of “toys” available that are interesting both alone and together, and then allowing the user to play whatever games with as many (or as few) of them as they wish.
And as long as the toys can be used in any combination, why not let the user modify the toys themselves, or make their own…
Minecraft doesn’t support mods. Mods are made, to be sure, but the consistent philosophy conveyed to the community is that, while Mojang won’t send lawyers, they also aren’t interested in sending instructions. There is no API, no .cfg files, no fundamental architecture to build on. Compared to a game like KSP, it is woefully mod antagonistic.
The closest it has come is exposing the save file format, which is great and all, but simply allows the community to make map editing tools (which are all so far superior to “creative” mode that one wonders why “creative mode” isn’t re-named “self-guided tutorial” mode) without changing the way the game plays.
Uplift is a platform first, and conceived as not only configurable, but inherently mod-ifiable as well. Like the venerable Cortex Command, Uplift’s core systems will be on-par with mods, and exposed in a similar manner.
So although they are both fundamentally voxel sandboxes…
Uplift is quite different from Minecraft
In a lot of ways. Of course, there will be many minor differences as well. Uplift simulates geological processes, where Minecraft only generates their rough outcomes. Minecraft is practically unlimited in level size, where Uplift will present a strictly limited world scope. Uplift is free to distribute, where Minecraft is “protected” by IP laws and DRM.
Still, I’m taking many of the lessons learned from Minecraft and carrying them in to Uplift. I certainly wouldn’t have come up with the idea if Minecraft had never existed, and I’ve greatly enjoyed playing Minecraft over the years. On the whole, I’m glad Minecraft was made.
But now, for me at least, the time has come to move on.