Leaves One

Alan Richard's Blog

Minecraft Server Development Log

I’ve been working on my Minecraft server for a week since final exams ended.

Details?

An Unsuccessful Attempt

A month ago, I came up with an idea that setting up a server with Terraria-like map, and here’s what I made:

Terraria-like platform

I wrote my own plugin for level generation, but it came out to be a huge trouble — there’s way too much to be considered in order to populate a playable and survival-friendly world.

Realizing this, I attempted to add some structures to the map, in this way, at least there would be some explorable stuffs.

Structures

However, there was still a long way to go before it is fully playable.

As I expected, soon no one was willing to play in my server.

“Gap Weeks”

Preparing for final exams is exhausting. My major is drab, and reciting material assigned by my profs was jejune. And finally I made it, I got almost every course an A score.

The Second Attempt — The Mysterious Island

I love the book The Mysterious Island written by Jules Verne. It’s fascinating. And I have a predilection for the idea of surviving on a desert island.

In fact, I did create a themed Minecraft server years ago. Here’s the post of it:

Old Mysterious Island Post

It failed because of lacking in playability.

This time, I made a mixture of Mysterious Island, Harry Potter, and survival challenge — random crafting recipes.

Minecraft, but crafts are random

I thought it would be a stunning survival experience.

This gif shows the prototype I made:

Random Recipes

It randomizes the crafting recipes with specified seed so that every time the server loads, the recipes would stay constant yet mixed-up.

Few of my players complained: Why this? Minecraft recipes are carefully designed so that it allows players to gradually develop. You do this so the gaming experience is no longer smooth!

Well, random recipes are hard, in deed. However, who would like to play vanilla survival again and again without any changes? You crop the wood, covering yourself with diamonds, and beating the ender dragon. Then what? No more interesting things if you are just a typical player. You quit the server, leaving it in your server list and never click it again.

I came to be known that if you rely on players to make every decision for your servers, or even, games, it would only end up in a trite outcome. Players hates obstructions, but these, if cautiously designed, are what make gameplay fun. And making players making choices for you is like allowing them playing a game with cracks — they would get everything they want without difficulty — this is how the game becomes boring and it turns to pall on players.

Steve Jobs said:

Some people say, “Give the customers what they want.” But that’s not my approach. Our job is to figure out what they’re going to want before they do.

Players do not know what they want, in most cases.

Let’s go down the point.

In order to avoid recommitting the same error, I followed my own ideas.

The following are some details about how I crafted the new themed server.

Map of Mysterious Island: Eucalyptus Leaves

Firstly, I adjusted terrain generator so that it generates an unprecedented oceanic map with multiple islands.

I used QGIS for interpreting and rendering the map of islands near the spawn point. The output is amazing.

Then I tested and polished the recipe randomization plugin accordingly. It shuffles the recipes at the server starting stage.

During the public testing, an issue was reported, that by modding the client with recipe looking-up mods, e.g. REI, all the recipes can be viewed even before being discovered. Informed of this, I worked on preventing the server from sending RECIPE_UPDATE packet when player login. But it won’t work, because it is a part of handshaking. For this reason, I finally figured out the way to modify the packet, removing undiscovered recipes from the data being sent.

Finally, from the feedback I received so far, the new Mysterious Island server is successful.

Conclusion

I really enjoy developing a Minecraft server, because I can program how the game works, and people can dive into the server and have fun there. I see people gather, virtually though, because of my ideas.