Tag Archives: modding

Feature Completeness*

* For certain definitions of complete

It has been about a week now since I released Fairy Factions version 0.5.2 (not a beta) to the overwhelming silence of the unadvertised void. We’ve had about 100 downloads since then and no error reports, so I’m going to count that as a win.

This week, I will be composing an MCF thread and building a new wiki (or something) for documenting the mod in an attempt to actually attract more people to using it. I’ve never really cared about mod install rates before (with the notable exception of SMB’s AutoPackager – which he totally wrote because I asked him to, btw). But I want people to see this mod. It straddles the line very nicely between vanilla style play and heavy modding, and I think it would make a lot of people smile.

I have commitments for German and Italian translations, so that is also a thing that should get the ball rolling 😉

Fairy Factions 0.5.2 Features

But what exactly do I mean by “feature complete”? I mean that the current mod is stable on 1.7.10 and has all of the standard features from the original 1.2.5 mod that people would expect:

  • Fairies spawn as tribal factions in the world, surrounding a queen.
    • Except sometimes, lone fairies spawn as well.
  • Fairies come in a variety of subclasses: normal, guard, scout, rogue, healer, queen…
  • Fairies will fight back if attacked, but if you either kill the queen or kill everything in a group except the queen, the remaining fairies may be persuaded to join you.
  • Tamed fairies may be carried on your head, and will grant minor powers of flight (eventually they get tired).
  • Tamed fairies may be renamed by handing them a piece of paper, and may have their hairstyle changed by using shears on them.
  • Tamed fairies will generally follow their leader (but they’re not great at it), so can be assigned to a post by placing a sign down with their name on it.
  • Posted fairies will perform a variety of tasks based on tools provided in a chest near their sign:
    • A hoe will allow them to farm wheat, carrots, and potatoes.
    • An axe will allow them to chop any vanilla trees.
    • A fishing pole will allow them to fish in a nearby body of water of sufficient size.
    • Shears will allow them to collect wool from sheep.
    • Appropriate feed will allow them to breed animals.
  • Posted fairies will also attempt to farm sugarcane, but they’re terrible at it.
  • Posted fairies are also somewhat protected from poaching by other players.

Oh, and there’s also a fairy spawn egg now, because yay spawn eggs.

It works well, I’m happy, and my kids are happy.

But we can do more.

Plans for 0.5.3

I have already started on porting the mod to MC1.8.9 (since I don’t expect a stable Forge release for 1.9 to land for a bit longer – as it only formally released today). My port is making decent progress, and I’m mostly down to rendering issues before I can start testing it. My plan with MC 1.8 is similar to that for MC 1.7 – I am going to get it running and stable with as few changes as necessary, as quickly as possible.

So far, the only planned new feature will be ensuring that rabbit breeding works 😉 I can’t see how that could possibly end badly.

Whenever the 1.9 Forge update drops (hopefully in a couple of weeks), I plan on giving it the same treatment (adding support for farming beets, etc…).

Beyond that, I can’t say… but we do have a bunch of actual new features planned that I will be compiling somewhere public for people to discuss/vote on for when the time comes. At the very least, we want to add a lot of compatibility with other mods and would like to address the question of how fairies spawn and are tamed (especially in peaceful mode).

Fairy Factions

After several months of headaches and confusion, I am happy to announce the beta release of my official update to KodaichiZero’s Fairy Factions mod.

2016-02-18_12.00.00

What was Fairy Factions?

Fairy Factions was an adorable utility mod for Minecraft 1.2.5 from back in 2012. It populated the world with little tribes (factions) of fairies that you could tame and use to defend your base and automate simple farming tasks.

It was very popular among a small subset of the community – and was easily my 5-year-old’s favorite thing in the game at the time.

But it didn’t last very long. The mod author quit modding and things were never updated to Minecraft 1.3.

So it’s back now?

Yes, it is back. As I mentioned, my daughter was a MASSIVE fan of the Fairy mod back when I introduced it to her. For years now, she has bemoaned its disappearance from our servers, occasionally loudly. And she has, on more than one occasion, asked me if I could write my own alternative version. We actually sat down some time in 2014 to work on something like that – writing design notes and building a rudimentary 3d fairy model. Unfortunately, I had to bail on the project because of real life… and more so than any other project I’ve left undone… that one really bothered me.

Fast forward to November 2015. I saw Kodaichi post something on a forum (I don’t remember what he was saying or what forum it was)… but I decided to contact him about the mod, and after a brief email exchange, he agreed to let me continue work on the mod and sent me the last working version of the code.

I spent the next 6 weeks porting the mod to Minecraft 1.7.10 and had a proof of concept build ready just in time to show it to her on Christmas morning. She was suitably happy, but I was also unfortunately not able to just hand over the keys to the mod because there were 2 showstopper bugs that prevented it from being more than a novelty to look at.

Fast forward a bit more to mid February 2016, I figured out what was going on in both cases and was able to finally soft-launch playable alpha builds of the mod. A couple of builds and a couple of days later, the mod is actually useful and stable enough that I’m going a bit more public with it and declaring the latest build a beta 🙂

Screenshots

2016-02-22_15.37.45 2016-02-22_15.35.13 2016-02-18_14.31.26 2016-02-18_12.16.33 2016-02-18_12.12.38

Licensing and stuff

My first priority is to get the mod running and useful for people, after that we can worry about adding features and porting it to Minecraft 1.8 (and eventually to 1.9).

I have a bit more information on plans for the project on the mod’s CurseForge site. I’ll get around to creating an MCF thread when I get around to it, probably when I declare the port 100% feature complete.

All source code (including that for the original version of the mod) is available on GitHub at https://github.com/allaryin/FairyFactions. We have agreed to release the project under the Apache 2.0 license and I plan on managing official releases for the foreseeable future.

Kodaichi’s original fiction and IP for the mod is not part of the remake, and is not being open sourced. Where there is need for further fiction and design, I plan on taking care of it. In fact, my daughter and I have several thematic changes planned for the mod’s future that will distinguish us nicely from any further projects Kodaichi may launch.

Carnivora

I’ve been threatening to do it for a while now – and finally gave up and released my “first” Minecraft mod. Of course, I have been modding MC for years now, and my code has made its way into many people’s games… but never through a project that I started myself.

One of the big things I’ve always wanted to do is make ranching better. For years, I’ve been offended by the way Mojang implements 1/4 of a feature before moving on. Chickens lay eggs, but you can’t eat them. Traditionally, sheep are only good for wool, and cows are the only source of leather. It’s sad, really.

MC1.8 FINALLY makes sheep edible, but nobody in the modded MC community plays on 1.8. Everything is still on 1.7.10, which is fine by me.

My new mod (for MC1.7.10) is called Carnivora, and it encourages you to eat more meat. The build that I have published today is version 0.1 and it only adds 4 things to the game:

  1. Sheep drop mutton, which can be cooked and eaten.
  2. Squid drop calamari, which can be cooked and eaten.
  3. Eggs may be cooked and eaten.
  4. Zombie meat may be cooked into leather.

Calamari

Mutton

Eggs

I know, I know. There’s nothing really original here. But this is a baseline, I am going to building up from there. Everything in the mod can be turned off completely in the config file. So if you already have a good zombie smelting mod, then you can use their implementation instead. My feelings will not be hurt in the least.

Plans

I will be adding animal hide drops to pigs, wolves, and horses. None of these will be vanilla leather, but may be processed into it. I might also make cows drop hide instead of leather.

Hides will probably be craftable into some very crude but durable armour, but I’m not sure – I want them to be useful for something. At the very least, you should probably be able to hang them on walls or use them for flooring.

I will be adding a meat grinder, a sausage machine, and a smoker for processing animal products. Grinding meat will allow you to get more meals out of a single animal, and sausages are just plain cool.

I will be adding meat drops to other animals, which will probably be disabled by default. I am looking for other ways to use bones that aren’t silly, and if so will add other sources of bones to the game. I would also like to add fat as a resource, but am not sure how I will utilize it yet.

Other than that, I may add a few more things – but these are the core goals. I don’t want the mod to bloat, so it will remain smallish. Lots of other ideas have come up in discussion. Some of these ideas have been formally attached to other mod concepts we have in the works.

Credits

I am releasing the mod under the MCUpdater banner, and like all other Team MCU mods is Apache licensed. I’m doing all of the development on a public Github repo and am hosting downloads on our server at mods.mcupdater.com in addition to the normal Curse listing.

So far, all art is by Zenth, the Extrabiomes artist. I promise not to tear him away from working on EBXS stuff any more than I do myself… 😉

Finally, I do not plan on creating an MCF thread for the mod any time soon. We may eventually create something but it would likely be for all Team MCU content, not just one mod. If you want to contact us, we hang out on IRC at esper.net in #MCUpdater. For bug reports or PR’s, see the project on Github.

Links

minecraft modding environment quickstart

This is adapted from something I wrote for the EbXL team, but it applies to any active mod development.

NB: I am assuming a moderate degree of technical ability here. If you don’t understand what I’m talking about and can’t Google the missing pieces for yourself… I’m sorry.

I have been working for ages (read over a year) on a tutorial on fully customizing and massaging a modding environment capable of handling multiple mods at once. But the community shift to backing Gradle has thrown enough kinks into the process that I’m largely unmotivated to work very hard on it any more.

But it has been long enough – I just need to put something out there. So here we go, a quickstart for using Eclipse to compile an existing mod.

While some people recommend IDEA, I can’t get used to it. I used IDEA for the entirety of EbXL’s 1.6 to 1.7 port and hated every minute of the process… so am personally giving up – and going back to Eclipse (a decade of experience trumps all else in this case).

Step 0: Install tools

I’m not in a position to go into details on this right now. But suffice it to say that you need modern versions of:

  • git
  • eclipse – a current version of the Java IDE (Juno or above, anything else is WAY too old; J2EE version is unnecessary)
  • jdk – Oracle’s OpenJDK (others are not guaranteed to work). Ideally, your mod will compile against Java 7 or 8, but it is probably best to use 7 for now as that is what most players should have installed – but you should probably refrain from using anything that doesn’t work in Java 6, just in case.

Continue reading minecraft modding environment quickstart

extrabiomesxl – add-ons and mod focus

The following is cross-posted from my original post at the EBXL dev blog.

We’re kind of awash with ideas and plans here at EBXL headquarters. And it’s getting to be a problem. See… we want to provide all of these features, but in so doing we risk damaging the focus of the mod. Eventually every large mod has to choose whether or not to stick to their original plan or go the kitchen sink route and start implementing tangential features that stray further and further from the core.

My strawberries are a good example of this dangerous border territory.

Is it appropriate for a biome mod to provide decorative flowering plants? Of course. Is it appropriate for those plants to also be useful? Absolutely. But how useful? How many systems can they provide before those systems start to get in the way of what was previously largely aesthetic?

It doesn’t make sense not to provide edible plants here and there… but it also doesn’t make sense to inundate the player with 30 new types of fruit and a system for mixing custom beverages out of them. Strawberries themselves are appropriate for inclusion in the mod, but certain features that I wanted to implement with them were not.

But I AM going to write those features. And I’m going to write lettuce, onions, and tomatoes too… I’m just not putting them all in EBXL Core.

When we release our 1.7.x build of the mod, we will be introducing the concept of official EBXL add-ons. These will be mods developed by the team that implement things that we want to see but also realize that some people may not – so we aren’t going to force them on you. The main mod will continue to provide all of the functionality that it traditionally has – but it will also serve as a launching point for any add-on mods that we release.

In general, these add-on mods will be released separately from the main mod, and should maintain compatibility with a number of EBXL Core versions. Add-ons will also typically increase the complexity and difficulty level of the world in various ways.

Right now, we have 2 submods that we’re talking about implementing – with numerous other ideas that haven’t quite yet been categorized.

Farming Add-on

The first add-on we will release is (for lack of a better name) EBXL Farming. It will eventually grow to be a fully featured food mod with interesting crops and even more interesting ways to use them.

Strawberries will remain in Core, and we will be joined by a handful of other edible wild plants. They will, however, not be farmable. So I will be nerfing Core’s wild strawberry plants and removing the seed recipe. Seeds and reliably renewable sources of custom food will go into the add-on. The add-on will also be adding a lot more edible plants that don’t fit in the main mod.

Similarly, the chocolate recipe will remain in Core. It’s honestly something that Mojang should have implemented themselves in vanilla. But since they didn’t, we’ll provide the recipe ourselves out of all vanilla components. And we’ll continue to provide a recipe for chocolate covered strawberries. But those recipes will just use the vanilla 3×3 crafting grid.

The add-on will introduce new cooking mechanics. This means new machines/tools/etc… that are outside of the scope of the main mod. If you install the add-on, it will optionally disable any vanilla-style cooking recipes that we add to Core in favor of more interesting ones.

If it sounds like I’m being vague, well… maybe I am. The full scope of the farming mod is just a bit too big for this post. I’ll go into more detail when the time comes. But one other thing I will mention is that you won’t need to run electrical wires from a generator in order to can your strawberry jam. Our machines will remain relatively low tech – no plugs involved.

Fantasy Add-on

The second add-on will be EBXL Fantasy (also for lack of a better name). This is were biomes that don’t exist in the real world will go. Like the old Forgotten Nature (Trees++) crystal forest. We’ve not forgotten about it, but crystal trees just don’t fit in a mod that tries to base everything on reality.

I have no clue what else might eventually actually go into this add-on, but we’ve got a laundry list of features that may change the behaviors of existing biomes. Like wasteland. Something will probably happen to it in the fantasy add-on. Probably.

If all goes well, the farming add-on will ship its first public build within hours (or days – but not weeks) of our public 1.7 release candidate. Fantasy is still way out there – we are still just in the planning phase there.

minecraft modding – integrated nei

NB: The following only applies to Minecraft 1.4, the process is a lot simpler in MC1.6+

This is a bit of a non sequitur from my normal content, but truth be told, I’ve just never had a chance to talk about anything Minecraft-related on here yet 😛

One of my least favorite parts of Minecraft modding is the testing and iteration process. If you use MCP’s Eclipse project, rudimentary iteration is simple. You can rebuild and launch a client or server directly from the IDE without having to reobfuscate the code first. This is great for tracking down bugs like forgetting to actually register your blocks and simple stuff like that.

It’s not so great for testing something that requires survival mode mechanics plus arbitrary items that aren’t simply going to worldgen right next to you (ie, almost every real test case).

Case in point, we wanted to test carrots. By making a creative mode world, I was able to spawn a carrot and confirm that I could craft seeds out of it. I was even able to confirm planting the seed and that it grew over time… but I couldn’t test breaking the block to harvest or that the seeds were being consumed on planting…

Normally, I’d use something like NEI for this. But NEI is one of those tricky mods that requires installation in the jarfile. Also, running the game from Eclipse renders it incompatible with obfuscated mods (ie, any distributed mod). After a lot of trial and error and 3 corrupted MCP installs, I finally stopped being stupid and realized that ChickenBones has released his sourcecode (no need to fail miserably at deobfuscating it).

Original source in hand, it was only a few minutes and we had glorious useful NEI for testing. Assuming you have already set up MCP+Forge with Eclipse, the install process goes something like this:

  1. Download source for CCC and NEI (from the thread here).
  2. Decompress somewhere useful.
  3. Link both common and client folders to your project’s build path.
  4. DELETE GuiContainer from MCP’s client src.
  5. Profit.

I put both CCC and NEI in an external/ folder and just copied their common and client source into a single sub-directory for simplicity, but it may be better to leave them separate – especially when working with server code as well.

GuiContainer appears to be the only base class that NEI overrides, so simply ensuring that his version is in the classpath while the vanilla version is not is enough to get things to compile and run.