Eloraams Blog

History And Future

Someone in the comments asked me where I was going with RedPower, and for some reason, I ended up replying with an essay-length ramble about the history and inspiration of RedPower. So I’ve decided to repost it here, with a few edits.

If you want to see my inspiration, look at my old 1.501 world video on Youtube. I made that world completely legit, although I used a whole mess of mods to make it possible. They didn’t all work together properly (BC and the Allocator hated each other, IC at the time was full of bugs, the Piston Mod was a glitchy mess, Redstone Advanced was crash-prone), but I had so much fun, that I decided that I wanted to make a single monolithic mod that provided the gameplay experience that I had at that time, except properly integrated and polished.

I started by identifying areas that needed improvement. My earliest modding effort was the redstone pipe for Buildcraft – because at the time, Buildcraft had not added the obsidian pipe, so I used an Allocator, a pressure plate, a chest, and a wooden pipe to detect items. I thought Buildcraft really needed a detector, so I wrote one. Also, at the time, I was using the clocks from Redstone Advanced to run my Buildcraft machines, but they only provided a single speed, and didn’t look very good (a flat texture on the ground). And so I started on my second mod – the Redstone Timer. In that mod, I included the RS Latch, and the Sequencer. The RS Latch was my effort to avoid using a ton of block IDs for all the different timing functions you might use – when combined with the Timer, it allowed almost every single timing function to be realized in 3 logic tiles.

Next up was Redstone Advanced itself. Faenorith had left modding, and RSA was terribly buggy to begin with. If you connected a NOR gate back to its own input, it would promptly crash Minecraft, for example. I figured I could make a set of logic gates that fit the vanilla feel, and so I did. The arcane rules of redstone dust started to frustrate me during that development effort, and so the original version of RedPower Wiring (which was just called RedPower at the time) was born. There were mods out there that solved parts of the problem. Vertical redstone could go up, colored redstone could be isolated. There was a feature request called the Redstone Tunnel Block for hiding wires. I looked at all these partial solutions and imagined a complete solution. The first version had bare wires, insulated wires, and a single color of bundled cable, in addition to cover plates in a couple materials. At first, cover plates could only be placed on wires, but the initial playtesting resulted in so much demand for “free-standing cover plates” that I relented in the next version.

Of course with all that framework I built to make cover plates possible, especially after I made them freestanding, I decided that it was a natural evolution to add a lot more different types of microblocks. There were a few mods out there that I drew inspiration from – the Eighth Block mod was rather neat looking, and Better Than Wolves had a nice approach to slabs, strips, and corners (although I was only vaguely familiar with BTW at the time). So I extended the cover system to include a lot of other types, and I’ve kept extending that. RedPower 2 has nearly doubled the number of microblocks over 1.

That takes us up to the golden age of RedPower 1 – when BC, RP, and IC didn’t have any overlapping functionality, and RedPower was a common footnote in people’s worlds. At this point, IC1 was discontinued, IC2 was on the distant horizon, and Buildcraft was doing its own thing. So I started working on RedPower World, with the intention of adding the materials I needed for future expansion packs. Truthfully, I saw myself working on RedPower Laser and RedPower Advanced Logic next (which is why gemstones feature prominently in the mod), but some of my original inspirations showed up first.

The first thing on my mind was that, with IC on hiatus and the old IC1 cable system in the state it was in, I wanted to use the RedPower wiring technology as a power transmission system. That was when the first hint of what has become Blutricity was born. My plan at the time – which is still the plan – was to provide a way to power a number of machines unique to RedPower, but also to add equivalents of a couple of the basic machines from IC (electric furnaces, compressors, and macerators, specifically), with suitable renamings, graphical upgrades, flavor changes, and different balance, as a stopgap until IC² came out and as a convenience for games without IC. Of course, development ran long, and IC² was released, so I deprioritized the basic machines and went on to more original things.

After that, I looked back to my 1.501 world and asked myself which blocks I really wish I had. There were three that I had designed back then. The first was a machine that would simply break the block in front of it and eject it into a Buildcraft pipe. The second was a machine with an inventory that would place a block from its inventory into the world. The third was a Buildcraft-compatible version of the Allocator. These became the Block Breaker, the Deployer, and the Transposer. The Block Breaker was a response to the unreliable piston-mod glitch cobble generator that I used, which jammed on load every so often. The Deployer was meant to pair with it to make a much simpler version of the reminer that you can see in my 1.501 world. And BC and the Allocator just simply didn’t play nice to begin with.

Tubes were honestly an accident. I had no intention of writing a competitor to Buildcraft’s pipes. I wanted to add a basic transport system called “chutes” so that Machine would stand alone without Buildcraft, but one night, after too much absinthe, in a single sitting, I sprited, designed, and implemented Tubes. I woke up the next morning, a little hung over, to realize that I had a fully functional transport system that avoided my biggest pet peeve of Buildcraft – spilling items. As Buildcraft’s API was big and kept changing, I shelved my original plans to make Machine fully BC compatible and just connected everything to the tube system instead.

Now I’ve reached a critical mass where completeness is calling for a few more basic machines. The Crafting Machine is the next one on the list, solely because Machine can meaningfully automate everything except crafting. But the one I’m most excited about is Frames, which I’m working on next. It’s a little bit like the platforms in BTW, except they can move other blocks, including ones with TileEntities. It’s really the last piece of the basic Machine set, since you can use it with blocks like the Block Breaker to make automated mining platforms, gantries, etc. A sufficiently motivated player could use Frames to build a Quarry. Or a self-propelled tunnel boring machine. RedPower Control (the computer mod) will help a lot for controlling gantry movements and things. A few people have even suggesting using Control with Frames and a Deployer to make an in-world 3D printer.

And there are tons of long-range plans. Light bridges, fusion reactors, holographics, swarm drones… The sky is the limit.