Pages

Sunday, November 4, 2012

Minecraft


MINECRAFT!


The newest addition to the growing list of services I host on my home network is a Minecraft server. We started with a Bukkit server a while ago, but we were not satisfied with the lack of support for the larger mods (IC2, BC, RP2, etc.) and moved off of Bukkit.

While Bukkit had some very nice mods that allowed us to do some cool things, it was clearly developed for large scale servers. In particular, we struggled with the permissions. Nearly every action had to be granted permission for each user on the server. Which would have been fine if I was running a larger server, but I personally know everybody and normally play with them over my TeamSpeak server.
  • Minecraft 1.2.5
  • MC Forge 
  • Trees++ 
  • BuildCraft 
  • Additional BuildCraft Objects 
  • Forestry 
  • Industrial Craft 2 
  • IC2 Nuclear Control 
  • RailCraft 
  • RedPower 2.0pr5b2 

While we had built up a pretty decent house (complete with 22 basement levels!), once we moved into the nether, we realized how little we had left of the game, and how much of a grind the rest of the game would be. Enter Industrial Craft. Initially, we were reluctant to add IC2 since it required us making a new world (we had explored quite a ways around our house which meant the new ores would have been kilometers away). Tiptoeing into the world, we quickly forgot anything about the old world. We had moved from the iron age to the industrial revolution with a server upgrade.

Now, we have solar powering most of our day-to-day power needs with nuclear power (Mark II-12, 70eu/t) for more intensive power needs. We have an almost self-sustaining, automatic, wood, rubber, wheat, peat, and mushroom farm with Forestry. Cirkumspekt has taken a penchant for bees and has even started a tutorial series on beekeeping.

I wish somebody would make some kind of auto-updater for mods, or at least a feed for when mods are updated. Keeping up with all of the mods can be a challenge, especially considering an update for one mod might break something else. I'd try my hand at making this updater, but I don't know enough web stuff to know where to start.

Mutual Effort

After me and Cirkumspekt playing for a few months, our younger siblings wanted to get into the action. I set up a server for them (named it Wood Puncher hehe), both to let them get decent at doing stuff in MC and to allow me some time to set up a new server with more and better mods Cirkumspekt and I had wanted for a while.

I updated and added mods, here's the list installed. (Forgive the raw list of file names, I was lazy and just dumped the directory contents.) It should be noted we are still on MC 1.2.5 since Redpower 2 hasn't been updated yet.
  • 1.2.5_Jammy_Furniture_Mod_Client_V3.6.zip
  • buildcraft-C-additionalbuildcraftobjects-f312@94bc2214-100.zip
  • buildcraft-client-A-core-2.2.14.zip
  • buildcraft-client-B-builders-2.2.14.zip
  • buildcraft-client-B-energy-2.2.14.zip
  • buildcraft-client-B-factory-2.2.14.zip
  • buildcraft-client-B-transport-2.2.14.zip
  • buildcraft-client-DA-additionalpipes-2.1.3.zip
  • creative+(v0.3.2).zip
  • extrabiomes-xl-2.2.7-ssp.zip
  • forestry-client-A-1.4.8.7_bc2.2.jar
  • IC2NuclearControl_client_v1.1.11.zip
  • industrialcraft-2-client_1.103.jar
  • InvTweaks-1.41b-1.2.4.zip
  • mod_ironchests-client-3.8.0.40.zip
  • Railcraft_Client_5.4.7b.zip
  • RedPowerControl-2.0pr5b2.zip
  • RedPowerCore-2.0pr5b2.zip
  • RedPowerLighting-2.0pr5b2.zip
  • RedPowerLogic-2.0pr5b2.zip
  • RedPowerMachine-2.0pr5b2.zip
  • RedPowerWiring-2.0pr5b2.zip
  • RedPowerWorld-2.0pr5b2.zip
  • Treecapitator.ML.1.2.5.r01.zip
  • usefulfood_v1.0.0-client.zip
  • [1.2.5]ReiMinimap_v3.2_05.zip
Regarding mods, why are block IDs such a pain to fix? Each time I added a new mod (I incrementally added each one to fix IDs) I would have to find a new unused segment of IDs to allocate by hand to the new mod's config file. This is not good design. There should be a file with all of the blocks in the world and their ID number. For example:

GUID=[block number];[block name]
"vanilla.stone"=1;"Stone"
"vanilla.dirt"=2;"Dirt"
"vanilla.wood"=3;"Wood"
"ic2.generator"=251:1;"Generator"
"ic2.macerator"=251:2;"Macerator"
"forestry.apatite"=185:4;"Apatite"

And so forth. Adding any additional information as needed in more columns. The GUID would be mod creator specified (or Mojang), the block number would be handled entirely by the Minecraft code, and the block name would be the string the player sees in NEI or whatever (specified by mod creator/Mojang).

Advantages:
  • Saves are cross-config compatible
  • No more ID conflicts
  • IDs are not assigned by the mod itself. MC handles the ID internally.
  • You don't have all the mods installed that your friend does? No problem. MC just uses a placeholder block (e.g. the ugly purple block) for when it doesn't have a block handler for a block ID.
  • Mostly backwards compatible with previous versions of MC and mods.

In any case, I got everything working for the most part. I couldn't find 32x32 texture packs for several mods, but it works. Since the config files are completely different from the files all of my users were using beforehand, I created a script to install another MC copy in another folder, and configuring MagicLauncher to handle the two different configurations. All I have to say about that is that Batch handles file paths with spaces in them horribly. After finishing the script, I can distribute other packs to my users easily. I can even have different versions of MC.

Within ten minutes of playtime, I was already hearing of complaints about how there's three different types of copper and tin ore... I had forgotten to turn off generation of those ores. It was too late to change it since I had pre-generated a ~300 block radius around the spawn to reduce the lag as people explored.

I'll post scripts and maybe some tutorials of some redstone contraptions I've devised later.

No comments:

Post a Comment