This post basically details the design process that went on behind what I consider to be a failed project - one that pretty much was a failure from the very beginning, even though it took me weeks to notice.
Some time ago, somebody posted a topic about how they wanted to filter stone and ore. The general conclusion was that there was no valid way to do this and still preserve the stone. So I saw this and thought to myself, "here is something that is missing. I will provide it." But I wanted to make sure my idea was well-thought out, too. So I started asking myself some questions.
What is a fun mechanic I can focus on that is at present unused?
Alternating destinations for item transport. I wanted people to have a point in their system where items can go one of two ways depending on e.g. which water channels are open or what is receiving power.
What can I make that encourages players to do this?
I came up with the Magnet.
Image
Show
Does your current design encourage the use of that mechanic?
Originally, I planned to make it attract items in a 9x9 space below the magnet (to interfere with small builds). It was only after half an hour of sketching ways to use the block that I realized that having a magnet beam wider than 1 block made it possible to pick up items from a nearby channel and drop them outside of the channel, entirely defeating the point. Good catch, I thought.
For similar reasons, I also changed the beam to check block collision bounding boxes so that it never goes past the first solid object; this is to prevent it from lifting items next to a fence and then dropping them on said fence. Hey, I'm a natural at this...except that I could still see the design being abused by pushing items out from under the magnet with a piston, and I had no idea how to prevent that.
So I just decided to push on for the time being. I ran into many, many, many problems with implementation. There were many instances where I had to commit deadly programming sins to work around an issue that could've easily been fixed with a base class edit. I have cursed the Java developers to Hell and back over the whole multiple inheritance thing. But still, even when I make a poor decision and am left with a big mess to clean up, I feel that every problem I have in the code can eventually be solved.
But I don't feel the same way about the problems with my design. Thing is, since I've begun working on this project, I've had plenty of time to ask myself other questions.
Where does it belong in the tech tree?
What new capabilities does it bring to the field?
Does this system obsolete an existing and fun system?
Do other systems make this obsolete?
Is it intuitive?
Is it self-consistent?
Where can the technology go from here? i.e. What can I make next?
What new capabilities do the secondary features add? Are any unintentional?
Do any of its secondary features overshadow its main feature?
Are any of its secondary features particularly prone to be neglected?
What reason do people have to use this system?
For some of these questions, the answers are good. But for a lot of them, the answers are either bad, or "I don't know."
And then there's the biggest question of all: Would I use it?
And I realized that the answer is... no. I didn't even want to playtest it. I didn't see how it could add anything to my world. I felt like just letting it loose into the community's hands and letting other people find the value in it. If I would never want to use it myself, then how, pray tell, did I think it was ever a good idea in the first place?. And I honestly don't know. I suppose I just took the idea and ran with it.
And I know barely anyone would use such a thing to begin with. While there may be no method to sort iron/gold from nonmetals, no such method is needed. You can already sort the metal items out of a mob farm, and without automatic mining, what point is there to automatic separation of ore and stone? This was a losing proposition from the start.
All things considered, the magnet receives failing marks. And unlike the numerous glitches and errors that I currently need to debug, I have no idea how to fix a broken design.
Game design is hard.