*Waves*
It was about 8 years ago now that I started on my programming journey. A majority of my time was spent gaming. And the majority of my gaming time was spent on Minecraft Beta 1.6 (Java Edition). At that point there wasn’t really even a concept of a “Java” edition. It was just Minecraft.
Though I didn’t know how programming languages worked nor did I understand any of the lingo, I knew one thing– Minecraft was written in Java. Afterall no one would stop talking about how bad Java was hindering the game.
Still, the idea of creating or modifying a piece of software to fit my idea of awesomeness was alluring.
One day, while having a Minecraft session with my close group of friends I had an idea: Luminescent dirt (I’ll come back to this later). What prompted the idea was the fact that at the time there weren’t any sources of “light” in the game that you could place wherever you wanted except a torch.
The drawbacks of the torch were many. One: the torch itself was a very ugly design. Two: the torch would take up an entire “block” so it would limit the type of designs you could create. Three: the warm lighting made everything seem so dark in an already murky game.
“How could I build a dirt castle that was well lit yet wasn’t full of ugly torches?” This was a thought that permeated my brain space for the better half of a month. I’d heard of video game “modding”, so I decided to ask the google lords.
Java Java Java. That’s what I needed to know. I was excited. If I learned Java I could make dirt shine, the sky green, and the world mine. So I set off to learn Java.
I bought a Headfirst Java book from O’reilly; I locked myself in a closet with no internet connection and blazed through the book in a record two weeks. Then, I found a Java course online by Bucky a.k.a. thenewboston on YouTube and went through his course. By the end: I’d gained knowledge about OOP, IDEs, Polymorphism, and various programming topics.
I took to Minecraft equipped with my newfound knowledge and confidence. I immediately hit a brick wall. “How do I actually add code to an existing application?” Ultimately, most of the exercises I had done were written by me and only me. I took to the forums once more.
Aha!–I found a modding guide. There wasn’t much in the way of actually modding things in the game. However, the author of the guide spoke of things such as deobfuscators and decompilers. They also spoke of certain resources that were used in the game. Things like a bitmap file that had all the textures for the objects within the game. Everything clicked in my mind and a giant light bulb appeared above my bear brain and lit up.
I deobfuscated and decompiled the minecraft.jar file, and with my Java knowledge I began to read over all the classes and functions to understand how everything worked together. What I learned about Interfaces and Inheritance came together in a crescendo and the puzzle pieced itself together.
I began adding new items into the game. I added “tornado” blocks that sent you flying miles into the air, “quicksand” that would slowly eat you up and chip away at your life bar, swords that sent out explosive fireballs and even explosive kunais that would tick down a timer and explode (Naruto fans will like this one.)
It was then that I saw the power of programming–that is, the power to change worlds.
And then, finally. I made dirt that shined.