Minecraft Spotlight - SnoGro

Welcome to the Friday Minecraft Spotlight! In this issue we will cover SnoGro, a weather plugin created by jase3905 and FeedDante.

No matter how often it snows in the world of Minecraft, the snow will never build up; resulting in a flat and even layer of snow that is the same across all wintry biomes. This plugin aims to solve this, by making use of existing thicker layers of snow.

Since the plugin is hooked into the weather system, it is not necessary to use the provided commands; snow will build up automatically in snowy biomes. If you would like, you could still use them to create snow in other biomes. Controlled by an algorithm, snow will build up gradually, taking cliff edges and border regions into account as well.

Simply follow these steps and your players will be enjoying this plugin in no time!

  1. Download the latest version of SnoGro from here or here.
  2. Place the "SnoGro.jar" file in the "plugins" folder, located in your server's main directory.
  3. Start or reload your server.
  4. Check if the "SnoGro" folder has been added to the "plugins" folder successfully.
  5. Open the "config.yml" file found in the folder mentioned above to configure the plugin.
  6. Reload your server to load your new configuration.
  7. Enjoy your newly installed plugin!

The configuration file allows you to set various restrictions to snow caused by storms and the use of commands.

We also had the opportunity to interview jase3905 and FeedDante, creators of SnoGro. Read on to learn more about the development process behind the plugin!

How did you get into Minecraft?
FeedDante and myself both discovered Minecraft at separate times. For me, my best friend mentioned an "infinite block game that lets you terraform and build" back in 2010. I had been dreaming of a game like Minecraft, ever since I found that game worlds don't need to be static (which I had been shown with Red Faction from 2001 and its GeoMod engine mechanic). That was enough to get me hooked.
For FeedDante, it was relatively similar; his friends thought they should try it, started their server, and they had a blast.
Which server do you play on, and would you like to tell us more about it?
If FeedDante or myself actually PLAYS minecraft, it tends to be on our own private servers with close friends, though we don't actively manage them.

What made you decide to become a plugin developer?
Lack of plugins, or rather, lack of our ideas coming to fruition in the form of a plugin. I hadn't an ounce of programming experience at the time, but I still took a whack at it. My first (miserable) attempt at a plugin was what is now called ColorKeys. It eventually became what it was by the immense help of dak393 and FeedDante.

Dante's first plugin was a path-finding multi-directional railway system that changed the orientation of track intersections. This allowed him to set his destination on a large network of railways, and he could get from point A to point B (or even point Q to point G, and anything in between) flawlessly every time
What was your motivation for this specific project?
For FeedDante, he loves to tackle a challenge, and to fiddle with code. This was an excuse to do both.

I myself have always been fascinated with algorithms. When applied with pre-existing objects (whether in the real world or Minecraft), the result can be somewhat awe inspiring. With SnoGro specifically, it was simple; stormy weather can last AGES, but the snow stays at 5 inches (1/8 of a 1 meter block). With this limitation, I thought it would be beautiful to make an algorithm that would dynamically build up snow, depending on its surrounding.
How did the community respond to the plugins first public release? 
The first general response was that there was potential, but that it was a resource hog. That, and the snow had a nasty habit of replacing some blocks that it wasn't supposed to (and may still, with the recent block additions with the 1.6 MC update).
Roughly how long did it take to finish the first working version of SnoGro?
That depends on what you mean by "working". The first version that had the core of the algorithm working was up and running within an hour or two (it's actually a really simple concept). As for versions that hooked into weather, behaved normally, and didn't consume a lot of resources, I believe it was within a couple weeks.
Have you come across any challenges during development and, if any, how did you handle them?
As far as my role goes in programming SnoGro, it took a lot of tweaking to get the algorithm working just right. There were so many circumstances for determining the snow's surroundings that we had not accounted for. We would find snow growing flawlessly in one area, but sporadically in others.

For FeedDante, some bugs would drive him to be as persistent as possible so that he could understand the issue and resolve it. Other times, the bugs will be such a nuisance that it will convince him to go back to the drawing board to find a work around.

What was your favourite development tool for this project?
Eclipse is my IDE of choice, and FeedDante is extremely particular about formatting, so he just does it manually in Notepad++.
Have you learned anything new from this project?
With every plugin comes new challenges, and with them new knowledge. For our plugin ColorKeys there was a LOT to learn, with GolfCraft it was editing entities (i.e. turning arrows into bouncing snowball "golf balls"). For SnoGro, it was implementing the Bukkit scheduler to run threads.
What stage of SnoGro's development process did you enjoy most?
For myself, it was the mistakes. It was a hoot seeing how changing a variable from 1 to 2 would accidentally pile block after block of snow, all the way up to the skytop before I realized there was an issue and stopped the server.

For FeedDante, it was conservation and efficiency. Once the bulk of it was finished, all the fine tunings were what was fun.

And what is your favourite aspect of the plugin itself?
Once everything was said and done, it was the mysticism of walking through a forest while it's snowing.
Are you currently working on any other plugins or updates?
FeedDante and myself are currently working on a Magnum Opus of sorts; CityScape. Essentially, it's our version of the single player mod Millenaire, but with the ease of use that you find with Bukkit plugins. Some features include Village Generation, NPC's with roles, Village expansion, and upgrading with contributions from the players (as well as self-sustainability with NPCs gathering resources themselves). CityScape is currently in alpha, and can be found here: http://dev.bukkit.org/bukkit-plugins/city-scape/
In addition to your Minecraft plugins, have you ever released any custom content for other games?
As far as modding for other games go, both Dante and myself have experience modding the Elder Scrolls franchise, but we haven't released anything.

Aside from modding pre-existing games, we have also delved into other venues. We were programming for Android for a while, releasing a 20 questions game called Guess Again. Sadly, however, it was not much of a success since we do not have a server to process all the data required. Therefore, each phone has to sort through the increasingly large database itself, looking for the right questions to ask. This results in excruciating load times or outright failures.

Aside from that however, we have also explored creating new projects from scratch for Windows and Linux, neither of which have gotten too far off the ground.
Aside from your own projects, what are some of your favourite plugins from other authors and why?
I would have to go with WorldEdit, and Citizens because they make CityScape possible. I also have to mention Factions, because there's nothing quite like the experience of building a meaningful empire in Minecraft.
FeedDante's favorites would have to be WorldEdit as well, but also Redstone Chips and MinecartMania. MM has slowly faded, but if it weren't for it he would not have had the motivation to make his first plugin.

Do you have any advice for other upcoming plugin developers?
Never give up, never surrender! The more you work on your plugins, the better they will become, and the more ideas you will generate, leading to better plugins, and more of them. Your programming experience doesn't end with Minecraft if you don't want it to. If manipulating games to do your bidding interests you, then there's so much to be discovered.
Having reached the end of the interview, we would like to thank jase3905 and FeedDante for taking the time to answer our questions and of course for developing the plugin in the first place!

SnoGro is an excellent plugin that brings more variety into snowy biomes. Snow will build up automatically in certain regeions or on demand using the available commands.

Thanks to MadPixel for the Minecrafter font.


Posts Quoted:
Clear All Quotes