Have you heard of Airplane but don’t understand what it is? Let’s fix that! Airplane is an alternative Minecraft Server software that supports the Bukkit API. It’s based upon other mods to the Minecraft Server, but is unique in the optimizations it provides.
One of our defining features is the Dynamic Entity Activation Range, also known as DEAR. Mobs in Minecraft have a lot of behaviors coded into their AI. For example, villagers will wander villages, find jobs, discuss with other villagers, perform their jobs, check if their job still exists, update trades, open doors, summon iron golems, gossip, pick up items, breed, and way more! These AI behaviors add up when you have a lot of mobs and are one of the largest causes of lag on a modern Minecraft Server.
DEAR helps with reducing this laggy decision-making, by limiting their decision-making depending on how far away they are from a player. Mobs closer to the player will act completely normal, but the further they are the less often they make decisions. This works very well for mobs like sheep, where they’ll constantly do the cycle of eating grass -> grass grows back->eating grass -> etc hundreds of blocks away from an actual player witnessing this happening.
If you’re interested in learning more about DEAR, we wrote a whole in-depth article about how it works and how to configure it! Take a look if you need to maximize your mob performance.
Not quite as interesting of a feature, but have you ever noticed your server having a lot of lag every 3-10 seconds? This can be caused by a feature of Java called Garbage Collection, which takes areas in RAM that are unused and cleans them up, so they can be used again.
The Vanilla Minecraft Server creates a lot of allocations, which forces lag spikes from the Garbage Collector to happen more often. Airplane has several patches to reduce these allocations, all without changing a single Vanilla behavior in the Minecraft Server!
Raytracing is used often in the server for things like checking if a player can place a block, if an arrow hit a block or entity, if an explosion will hit an entity, and especially for checking if two entities can see each other. The method for raytracing all these different use-cases is the same, which checks a lot of different factors, even if that factor isn’t being used. For example, when checking if two entities can see each other, it checks every single block for water/java even though it completely ignores the water!
Airplane implements a faster raytracing method for this, which strips down all the features that are unused by the entity view check. This provides nearly 5x faster performance in most cases, especially for heavier mobs like Villagers who constantly check which other Villagers they can see.
Airplane has dozens of other optimizations, doing things like:
And a bunch more! It’s hard to list every single improvement because nearly everything is improved!
Ready to start running Airplane? If you’re already running a Bukkit Server (Spigot / Paper / Tuinity) it’s as easy as downloading and replacing your server.jar!
If you have more questions or need help improving your performance, join the Discord! Our staff & community members can help with any questions you may have.