Recently I read a paper on the nature of invention, which went into the factors behind what leads a person to invent. Whether it’s genetics, upbringing, or social status, it attempted to unravel the secret recipe behind what it takes to imagine a novel concept and then make it real.
I am beginning to find that in my own progress with this engine, I can’t seem to make very many steps ahead of where I currently am. Even though I can almost see where everything will go eventually, there are still steps that I genuinely can’t imagine very much at all until I am either a couple steps away from it, or until that step is complete.
As Albert Einstein famously said, “The secret to creativity is knowing how to hide your sources.” We all like to believe that an invention is genuinely out of nowhere—the lightbulb that clicks on above your head. But as far as I can see, that doesn’t happen until all the pieces are there, and then finally intuition kicks in and illuminates the big picture. As another famous saying goes, “There’s nothing new under the sun”, or the bulb in this case.
So to my mind, an “invention” is a natural result of pushing an idea as far as possible, using as many ideas and tools to build from. For instance, after Joseph Campbell compiled the all of the world’s mythologies into one common story, The Hero With A Thousand Faces, someone took all that wisdom of human history and turned into some silly little thing called Star Wars. And we all naturally loved it, because it was a part of us before it was written.
The fact that we absolutely need something to base all of our creations off of is one of the many reasons for building my own engine from scratch, and designing it to be reusable, so that others don’t have to reinvent the wheel again. It takes a long time to reach a solid subconscious understanding of all the possible ways of structuring systems of code. Especially in a system as large and daunting as Microsoft’s Dot Net Framework.
But if given a system to start with, others could take this engine to places I would never imagine. I look at all those possibilities as being far more valuable than anything I could do with this on my own. At the same time, working on a team is my biggest weakness. A community of indie developers working around the same engine is the best option for me, so I’m sure I’m not alone in that.
Of course there is tremendous value in teamwork, and strength in numbers, but to use another phrase, sometimes theres too many cooks in the kitchen.