Hallå my pals!
Jonas here with another issue of Indie Notebook to get some ideas out of my noggin, and to inspire you to do the same.
Hell of a wordy Shiny Dime today. I knew the story I wanted to tell but I had to peel and peel to figure out what was in there. It was a painful head-scratcher.
Rule yourself in
One of my childhood friends used to tell me, “You will live in a cardboard box on the street when you grow up,” because I didn’t care about my grades or about getting a good job. I was sure that would lead me to a dull, predictable life. To my friend’s dismay (or jealousy) my dreams were all about going on adventures and making stuff. I wanted to make a comic diary about my adventures as a penniless hitchhiker and create peculiar video games from a weird house built out of scrap parts on a tiny island. I was sure I would one day make a sensational comic inspired by my adventures. The plan I deemed the most unlikely was to find enough IQ points to make a video game. I saved up money for a cheap little PC to play games on. It was strong enough to handle the Minecraft alpha. I hung out on many cool summer nights in that world. One day I discovered how to reskin the game by going into the source files and changing the textures. I redrew the blocks on a big texture sheet, then I would start the game to see how it felt, shut it off, and adjust it, again and again. I did this for hours every day when I was out of school. Repainting that world was intoxicating. The guy who made Minecraft came from a small village just an hour from my hometown, so I thought that if he could make a game then maybe I could too. I wanted more. I downloaded Game Maker, a software/game engine known for being one of the best entry-level tools (for gamemaking). It had a simple programming language with both visual coding as well as traditional scripting. By following some tutorials online I got a little superhero version of myself to run back and forth on my screen. It gave me a deep insight into how cavemen must have felt when they found out how to make fire. I made my little guy run back and forth, back and forth. The little guy had some issues though, when I ran into a wall the character would jitter back and forth and he had a tendency to get stuck on walls. Pretty pathetic for a superhero. I hardly understood any of the code I had gotten out of the tutorial. I went back to reskinning Minecraft. Drawing comic strips was much more in my comfort zone because there were no bugs to fix in them. Yet still, there was little to no sense of logic to them. I knew about The Hero’s Journey, having a message, being clear - but the idea of following these rules made me sick to my stomach. I didn’t want to do what everyone else was doing. It just seemed like another formula you were supposed to follow. I thought, “What’s the point of making creative work if it’s just another set of rules I have to follow? I don’t want to fill in templates.” So I tried to break every convention, to be completely original, and to say what nobody else had ever said. And I couldn’t figure out how to do it. I kept noodling comic ideas, but none of them led anywhere and I hopelessly tried to code some basic games, now in Unity3D (a more advanced game engine than Game Maker). Neither comics nor games were working for me. I didn’t know what to fill my comic panels with and I didn’t get how to code. My struggle with making video games felt less personal, it felt more like I was battling a machine, rather than my own essence, so I kept returning to and bashing my head against my computer. It was a brawl. When I was away from the computer I plotted how I could beat it in the next fight. I followed more tutorials, and I copied scripts, character by character, line by line until I noticed I was skipping or misplacing symbols. I began to recognize which signs were supposed to go where. And regardless of how much time I put into my games, they were still glitchy and unreliable messes. If-statements were nearly all I knew about programming and I was using them for basically everything, like this…
if(GetKey(LeftArrow)) Player.WalkLeft();
if(GetKey(RightArrow)) Player.WalkRight();
What’s going on here is when both keys are held down at the same time my little guy starts to erratically flip back and forth, because he doesn’t know whether he should walk left or right. I attempted to fix it by being more specific.
if(GetKey(LeftArrow) && WalkingRight == false) Player.WalkLeft();
if(GetKey(RightArrow) && WalkingLeft == false) Player.WalkRight();
I added another condition to the if-statement, “only walk left if you’re not already walking to the right.” Which only kinda worked. My if-statements constantly grew in length and complexity along with the project. And simultaneously introduced more bugs. There was no way to finish a game this way. I was missing something. There had to be a better way. Then I saw the reason behind a few lines I had always found needlessly complicated.
InputDirection = -LeftArrow.value + RightArrow.value;
Player.position = new Vector2(position.x + InputDirection.x, position.y);
I create an Input Direction by adding the values of my arrow keys together.
Left arrow = -1
Right arrow = +1
So if I press both keys at the same time, the input direction will equal 0. Meaning, “stand still.” No need for ever-growing if-statements to make sure this behavior stays intact. The magic of math.
Bit by bit I felt like coding was less like giving the computer instructions to follow and more like solving a puzzle. A puzzle where principles can help me along the way.
Now I was glued to my computer. Soon I had a new little guy running around on a three-dimensional city street. The little fella was jumping, tossing physics objects, and climbing lamp posts like a nimble lizard. I experimented. My experiment shaped into a weird mix of Super Mario Odyssey, Animal Crossing, and GTA. Which is a huge or impossible ordeal even for most experienced game devs. I dreamt too big. By now I was studying 2D Graphics in a game dev school, and I was surrounded by advice from teachers and students. The most recurring advice was to not “over-scope” game projects. To keep them small and feasible. Try to design games so simply that they almost seem too easy to make.
I brainstormed the simplest mobile game I could think of. Just a little guy dodging water droplets and collecting fruit. It would just take a few weeks to complete it. I went down a couple false paths, trying out exciting ideas that made the project too big or something completely different. When I realized what I was doing I circled back and made it the simplest possible version of itself. It took six months of almost constant work. But I shipped it, and 30 people bought it. I felt sad that it wasn’t a financial success and at the same time, I was happy that I had finally figured out how to make games.
But I had not just made a game, I had also changed as a person. I was no longer just that kid who was full of daydreams, and who just wanted to go against every convention that existed. I learned how to use advice and conventions to fulfill one of my dreams. I got it all wrong as a kid, rules don’t control me - I can use rules as a tool to get where I’m going.
Getting into game-making was perfect for me because it’s a medium where I could play around with what I used to hate so much - rules. You design a game by bending its rules to express what you want to say. And to my initial dismay, there is no way to get a game done by simple brute force. You need to learn the “rules”- the principles and best practices to get it done.
Since finishing my first game I’ve realized that writing, just like coding, needs to follow some principles and structures to make sense and to see the light of day. I embraced this and learned how to write stories by hunkering down, reading books about it, analyzing other stories, and adopting some principles.
I’m making comics again.
Thank you for reading Indie Notebook! The best way to support me right now is by sharing this newsletter with a friend.
Take care and have a creative week.
Love the final line, hehe. It comes out of the blue - and yet it doesn’t.
It’s interesting to read about that coding example, as an outsider to coding. It makes a lot of sense.
There is so much one can do with programming. So cool.
Lovely story, relatable yet so different :) I really enjoy these kinds of stories.
> The most recurring advice was to not “over-scope” game projects.
I think telling a passionate person this is harmful. Imagine if someone had told Hayao Miyazaki to be less amitious with his films. If one is willing to work that hard, I want to see what they accomplish in 10 or 20 years. I like to let that inner child free and not quash them.