eloybermejo

InkCraft

A Minecraft paintball server. Two weeks of summer, one room, and eventually a VPS with actual people on it. 2021.

One summer I decided I was going to run a Minecraft server. Paintball, teams, colour everywhere. I called it InkCraft.

Two weeks of more or less nonstop work, sat alone in my room during the holidays. Finding plugins, installing plugins, configuring plugins, breaking the whole thing, fixing it, breaking it again. Everything I know about reading a badly documented config file from a forum post written in 2016 I learned in those two weeks.

A Minecraft city built in blocks: tower blocks with glass fronts, lit shopfronts and street lamps along a plaza.
The map. Somebody had to place all of those blocks.

It ran on a real VPS, not on my laptop under the desk, and at its best there were more than 20 people on it at the same time. Strangers, playing something I had put together. That part still feels strange to write down. Good times :)

A grid of pixel art avatar icons: blocky faces with brightly coloured hair, sunglasses and different expressions.
Pixel art icons for the Discord. Ranks, roles, emotes, whatever needed one. This was the part I did purely because it was fun.

Configuring other people's plugins got old eventually, so I started writing my own. Spigot, Java, Maven doing the build. That is where a lot of things clicked for the first time:

  • Events and listeners. A server is basically a pile of things reacting to other things. Player hits player, block gets placed, someone joins. You hook in and decide what happens.
  • State that survives a restart. Scores and stats living in memory are gone the second the process dies, so this is where I met databases and serialising config properly.
  • Commands and permissions. Who is allowed to run what, and what happens when someone types it wrong on purpose.
  • Not blocking the main thread. Do something slow where you should not, and everyone on the server freezes at once. You find this out very quickly with 20 people online.

None of it was clean code. But it was the first time I made something other people were using while I watched, and if I broke it, twenty people noticed immediately. Nothing teaches you faster than that :')

← Back