Software Top Reviews guides you through the process of Minecraft Customisation.
Minecraft is a hugely popular game, which can be played either in single-player mode on your PC or in multiplayer configuration via an internet-hosted game server.
Yet thanks to its far-sighted designer, Minecraft has another ace up its sleeve – a feature that gives anyone the opportunity to build and host their very own, highly customised game server.
In case any readers aren’t familiar with the game, though, let’s take a few moments to revisit Minecraft’s origins and explore the reasons for its success.
Minecraft was devised in 2009 by independent videogames designer Markus Persson. Taking a few ideas from his favourite games, he developed a brand new game where players are placed in a 3D block-based virtual world.
In this interactive world, players can ‘mine’ a host of materials to ‘craft’ all manner of tools, buildings, transportation vehicles, plantations, landscapes and much more. The objects they fabricate and the skills they acquire will help them survive the dark nights – when the baddies come out to play.
Persson split the product into two parts. A client element, which is responsible for handing the user interface, and a multi-user server on which players can play with and against each other.
In essence, Minecraft is a world-sized, screen-hosted Lego-like adventure where you can craft you own blocks which is run of one of the best serves – check out Minecraft Server List. It’s this combination of crafting, imagination-fuelled construction and social interaction that makes the Minecraft concept so engaging and fun to play.
Minecraft was an instant hit and soon developed a global cult following. The exponential sales growth allowed Persson to start up his own Mojang design studio. Total sales now top 13 million.
What the community loved best was the imagination-fuelled construction aspect. In fact, many purchased the game simply to build amazing structures and demonstrate them to fellow enthusiasts in cloud-hosted virtual worlds.
Yet, as I hinted at above, there’s another key feature that explains Minecraft’s popularity.
The Minecraft game has separate client and server elements. In the default scenario, a player runs the client on top of the default server that’s supplied with the game. However, while the client is something you have to pay for, anyone can create and host a Minecraft server.
This means it’s possible to run your own personal Minecraft game simply by installing a server onto your PC. Connect this PC to the internet and anybody who’s purchased a Minecraft client can join in the fun, regardless of where they might live in the world.
There’s a large collection of publicly available Minecraft servers, which cover a wide range of tastes: crafting showcases, complex ecosystems, survival adventures, combat-centric worlds and many more. Head to minecraftservers.org to view a comprehensive list.
At this point, it’s worth pointing out that the Portable edition (for iOS and Android) and the special Raspberry Pi version of Minecraft don’t adhere to this flexible client/server model, so they aren’t a suitable product for modding.
Are you wondering why there’s such a rich and diverse selection of servers to choose from? Well, the key is that servers can be enhanced with special ‘mods’. Mods are additional pieces of code that, when added to the server, enhance and extend the capabilities of the basic game.
Crucially, mods are coded using Java, the same language used for the core Minecraft development. That means there’s no restriction on what the imaginative developer can achieve.
Consequently, a modded server adds a whole new dimension to playing Minecraft.
There’s an impressively large collection of community-created mods to choose from. Mods that add new materials, sophisticated enchantments, advanced crafting techniques, novel creatures and monsters, vehicles for traversing the land, water or sky, plus special user-entered commands to display game information or activate shortcuts and cheats.
However, you’re not restricted to just enhancing your personal server with community-sourced mods. You can also develop uniquely personal mods, install them on your server and then invite the Minecraft world to try them out.
It’s not a five-minute task and will involve a certain amount of Java coding, but the rewards are definitely worthwhile. And once created and deployed for the community to try, you might become a star in the Minecraft modding world.
In the rest of this article, you’ll discover the steps involved in creating your own Minecraft server mods. For reasons that will become clear later, it will focus on the CraftBukkit server and Bukkit API.
All the information should be applicable to any PC-hosted Minecraft server, regardless of whether you use a Windows, Mac OS X or Linux operating system.
What Is A Plug-in?
Now we come to the topic of plug-ins. Essentially, a plug-in is just another way to create a mod. However, to assist with the development process, there are a couple of key differences.
Firstly there’s a customised server that’s specifically designed to make it easy to install plug-ins. Secondly there’s a comprehensive and well-documented programming interface (API), which is tightly integrated with the host server.
Certain other server development strategies often fall short of this ideal. Some are buggy and/or poorly documented. Others only work with a specific version of the game and therefore rely on the developer to ‘fix’ the code when a new version appears – which is a frequent event.
The goal of the plug-in architecture is to make the server customisation process as easy as possible. If fact, it’s possible to add a plug-in with just a click of a mouse or a simple typed command. And plug-ins are one of the key drivers behind the rich variety of Minecraft servers to be found on the internet.
If you’d like to extend the crafting options, introduce a new material, create a creature, build a flying vehicle or anything else your imagination conjures up, using a plug-in will make the whole process that much easier.
Now we understand about servers and the benefits of building a plug-in, let’s cover some of the essential elements for a plug-in development project.
As I mentioned, you can use a Windows, OS X or Linux PC.
You will, of course, need to purchase the Minecraft game for the platform you wish to use. This can be obtained from the main Minecraft website (minecraft.net), which also contains easy-to-follow, platform-specific download and installation instructions.
If you’re a Minecraft newbie then there’s a wealth of instructions and videos on the web, including Minecraft’s own set of getting started videos (minecraft.net/game/howtoplay).
How do you decide which server to use? There are certainly plenty to choose from, each with its own pros and cons. However, the CraftBukkit server (goo.gl/MtfLzq) is the one that stands out. Why? Well, members of the CraftBukkit server development team have joined the core Minecraft development team to work on the first official Minecraft extension programming interface (API).
Strong rumours suggest this API is due to be released quite soon. It appears likely this API will be rather similar to the existing Bukkit API, so if we download this free open-source server now, we’ll have a sneak preview of what’s to come, and any code we write will probably need very little modification when the official API is released.
The Bukkit wiki pages have an impressive list of plug-ins created by existing developers. In fact, there’s so many to discover, the Bukkit team have helpfully put them into an online collection (plugins.bukkit.org), which extends to over 650 pages. Each plugin is placed into a relevant catalogue, such as chatting, mechanics, role-play, téléportation, world editing, admin and developer tools.
You can find the download and installation instructions for the CraftBukkit server at wiki.bukkit.org/setting up a server.
Helpfully, the Bukkit wiki pages provide a comprehensive, step-by- step process description of how to set up a development environment (goo.gl/xNGdwF).
However, here are a few additional tips.
If your focus is on building a basic Minecraft server plugin, you can safely skip the Git and Maven steps. In any case, if you use one of the recommended integrated development environments, it will support both Git and Maven.
I definitely recommend using a fully featured development environment (IDE). An IDE will provide many helpful features, such as colour-syntax source code, a built-in debugger and simple build tools.
Nevertheless, if you’re already a competent Java developer, just go ahead and use whatever editor you’re comfortable with. And if you normally code in a different language, check to see if your preferred editor also supports Java.
The Minecraft game is coded in the Java language, so it needs the Java runtime to work. A version of the Java runtime might have already been installed on your PC. If not, it would have been added as part of the Minecraft installation process.
Mojang: mojang.com Minecraft: minecraft.net Minecraft downloads: minecraft.net/ download
Minecraft Wiki: minecraft.gamepedia.com Bukkit Home: dl.bukkit.org CraftBukkit server: goo.gl/MtfLzq Bukkit Wiki: wiki.bukkit.org Bukkit Javadoc: jd.bukkit.org Bukkit Plugin Catalog: dev.bukkit.org/bukkit- plugins
Bukkit on GitHub: github.com/bukkit GitHub help: help.github.com Java SE SDK: goo.gl/gNExzN Minecraft Plugin book: goo.gl/KH7Jup
However, to build Java plug-ins, you’ll also need the standard edition (SE) of the Java Software Development Kit (SDK). To avoid future complications, the Java SE SDK version you install should be the same as the Java runtime you have on your PC. The reason is that this runtime powers the Minecraft server.
Luckily, there’s a simple way to check the Java runtime version. Open a Window’s command window or Linux/OS X terminal window and type in the following command: java -version
As long as Java is installed correctly, you should see a message similar to the one below: java version “1.7.0_45”
Ignoring the ‘1’, this message tells us the version of the SDK we need is ‘7’. Version 7 will be typically be found on new PCs and when there’s been a recent Java runtime installation. However, older machines may show the version as ‘6’ (1.6) or even ‘5’ (1.5).
The latest Java SE ‘7’ SDK download is available via the Oracle Java site (goo.gl/gNExzN). This page also has a link to the ‘Previous Versions’ page (goo.gl/oxaJSp).
For the budding Minecraft plug-in developer, a key advantage of using the Bukkit server is the extensive and well-documented programming interface (API). Accurate documentation is vital to any coder. The Bukkit website does a professional job, which isn’t always the case with other mod server options.
As you can imagine, with a game as elaborate as Minecraft it’s impossible to cover every single facet of gameplay. Nevertheless, the Bukkit API makes an admirable attempt at delivering a wide cross-section of functionality, including player inventories, materials, enchantments, maps and all manner of in-game events.
Event management is a critical element of game software. Events are triggered continuously (for example, when players and other creatures move and/or interact with the virtual world), and there’s a clock tick event to mark the passage of time.
You’ll need to create classes that listen for events and custom methods, which contain the code that perform your special activities. The event section of the API reference (wiki.bukkit. org/Event API Reference) shows how it’s done.
To access the complete set of JavaDoc-style documentation for the API, hop over to the jd.bukkit.org web page. Here you’ll find JavaDoc for the latest recommended build version, the upcoming release in beta-status and the latest build snapshot, which, as I write, are respectively 1.6.4-R2.0, 1.7.2-R0.2 and 1.7.2-R0.3.
Developers need to be aware that on occasion some of their existing code might fail to run correctly when the next server release appears. It’s always a good idea, then, to take a look at the relevant sections of the beta and snapshot API documentation, even if you’re actually coding against the recommended build.
Open To All
Most importantly, Bukkit is an open-source development. Indications are that this will remain the case, even though it could become an official part of the Minecraft product.
From the developer perspective, open source means there’s full access to the code. For beginners, it means they can discover how the API is actually coded, and it’s a great way to get up to speed with the Java language while picking up coding techniques and best-practice tips.
Bukkit has placed all the code on the GitHub website (github. com/bukkit). There’s source for the CraftBukkit server and the Bukkit server mod API, plus a collection of utilities and developer tools. You can download the complete set as a zip file or you can navigate to the files you’re interested in and read the code online.
Reading And Reference Material
Searching the web reveals masses of information on modding, CraftBukkit and Bukkit plug-ins. Nevertheless, it can take a while to gather all the relevant bits and pieces together.
For many, the written word in book (or, of course, magazine) form often provides both a superior starting point and a handy reference. Unfortunately, there isn’t a huge choice at present, but that’s destined to change quite rapidly if the Bukkit API is announced as the official route to Minecraft mod development.
However, there is one particular book that hits the spot. Written by Andy Hunt, it’s called Learn to Program with Minecraft Plugins. This book starts right at the beginning with setting up the environment and creating the classic ‘Hello World’ Bukkit-API plug-in. There are chapters on Java programming fundamentals, while other chapters explain in detail how to, “Create plug-ins that can change blocks from air to stone, or spawn cows and creepers” or code plug-ins that “React to game events, and even schedule tasks that will run later in the game.”