A History of Attempts at Learning to Make Games: A New Hope
I don’t remember exactly when it was that I decided I wanted to “work with computers” for a living. For a solid chunk of my life, I wanted to be a veterinarian, thinking “I love dogs, vets hangout with dogs all day, done.” I think it was around the time I realized they deal with sick , suffering and dying animals that I decided to not do that.
Jump to <some point, who knows> and I love video games. Although I have no idea how video games are made, I know there is this thing called “coding” that my older brother is studying, and through coding I could make video games. So now I want to study that and do that. My brother quickly warned me “you’ll probably like this on it’s own, and won’t make any games”.
How dare he!?
Anyways, it’s been about 20 years since that, and I’ve never made a game.
My non-history of non-game coding
If you’ve read enough online stories of well known programmers, you’ll see blog posts of the many amazing things they’ve done with coding since reading up some code examples in a book/magazine/forum, trying it out, and falling in love with it. Particularly, some game developers fell instantly in love, and dove head first into coding the moment they were exposed to it.
This post is not that. That has not been my story. Although today I do enjoy coding at work and on my free time, this isn’t a story of “success” but more a story about constantly dismissing overwhelming opportunities.
I’ve taken different stabs at making games, with different levels of me being engaged and dropping it when I’m not happy with the result. Either a challenge presents itself, or I just cannot figure out to make a game engaging enough for me to stick with it. But I’ve tried before, and by jolly, I’ll try again! (Jump to the end for that)
Klick (a lot) & Play (very little)
My first attempt at making at making a game was not really my own, and the parts that were, I purely saw as me having fun with a computer program.
My brother and a friend were using a software called “Klick & Play” to make games. They were both fans of RPG games, so they were trying to make one, and called it “Journey of the Stars”. I don’t remember much about their game, but I remember that their game took up at least 14 floppies (not the floppy floppies, the hard ones) to store. I know that because every few years we would find one of the floppies, and I remember finding floppy #14. I remember seeing them have fun making the game, so whenever I had my turn at the computer I would also give it a try.
I had a ton of fun making the animations move across the screen, or changing the action that occurred as part of me pressing a key, or changing the existing sample games. It was fun doing all of those things. But non of the games were actually fun to play. I honestly didn’t mind it that much. I don’t think I was fully aware of what making a game could be. I treated it more similar to another “game” I used to play, the Bugs Bunny Cartoon Workshop. In it you were able to make little animations with characters from the WB, and I had a ton of fun with that. As far as I was concerned that’s what I was doing with this! Not really trying to make games… even the sample games weren’t really actually fun! But they were fun to edit and change!
Basic…cally a set of commands
My first “real” try was probably “programming” with basic on my TI-83 some menu based game on 9th grade, with delays and timing being “controlled” by doing ‘sin(cos(sin(cos(sin(…))))’ until the timing of the delay in the calculation felt about right. I put the “programming” in quotes, because it was only years later that I realized that’s what I was doing. As far as I was concerned I was just adding a sequence of commands that allowed limited user input to influence what happened. You know… coding, but I had no idea. Anyways, that didn’t really last, I never got beyond a little toy demo of an idea.
C, the first conscious failure
My next attempt was at my second year of college studying Computer Engineering at Universidad de Puerto Rico Mayagüez . I had my introduction to coding class, coding in C. There is a lot to be said about your first academic exposure to coding be C. I won’t get into it here, but suffice to say, many brilliant people changed majors after this class. Although I grasped it well enough, there were things that confused me. Like why would I want to do "random access” of a file, I would always want to know exactly what I want, what use is it to get something at random! Through a mix of reading ahead of the curriculum, ignoring other classes, and writing tons of example programs (shout out to Bloodshed Dev-C++ and Cygwin!) I got enough of a grasp to think I could make my first game! I thought I’d make an RPG, and start with the overhead world!
By ‘overhead world’ I of course mean a two dimensional array of ascii characters. And by ‘make a game’ I mean print that two dimensional array of ascii characters, and then prompt the player to type in a letter, press enter, and move one of those ascii characters position. I remember being so underwhelmed. Everything about this felt so empty. Coding it up was fun, up until the first time I tried to play the game. I didn’t know anything about graphics, or immediate mode, or input devices, or anything. I basically knew how to print to screen, and read some characters after pressing enter (as long as you didn’t give me too many characters, because I of course used a pretty simple to exploit small character array buffer). I also remember that after making some changes, I broke my ascii map, and nothing would display to the right of the “Player Character” which was basically an ‘O’. I tried and tried to undo, or to fix it, but I knew nothing of version control, so I never found the bug, and broken it stayed.
If this had been a class project, I probably would have changed what I was studying. But I was enjoying the coding we did for class, and I was able to understand it all. So I just put away this attempt at making a game, and kept making more ‘regular’ programs. They didn’t have the same expectation of ‘fun’ and ‘smoothness’ ,so I could make something useful, and have fun while making it.
There was also somebody else taking the class with me that had similar aspirations of wanting to learn to make games. I remember he mentioned that Doom and Quake were coded in C, and the code was available. This was the first experience for both of us coding (definitely mine, not 100% sure his), so we thought to take a look at the code. I couldn’t get it to compile, much less understand the code. I vaguely remember us talking to our professor about it, and I think he also had no idea, so that ended there.
Quick shout out to “Cube 2: Sauerbraten”. Maybe one day I’ll try to modify and understand you again!
Hello Java World
Next semester I took my “Advance” programming course based in Java. I was a ‘wee’ lad, who was still trying to prove himself to the world and to… himself. So I said things like “I prefer C because it lets me control everything” and other silly things like that. Little did I know to appreciate my first exposure to what would end up being my favorite (to this day!) language. Fortunately, as much as I kept trying to convince myself about how much better C was, this course did a good job of showing me how much easier it was for me to do some things in Java than it was in C. At the time I mostly thought it was just because I didn’t know enough C. Many will argue that’s still the case. But I was able to focus on using Java just to do useful fun things.
I also got my first real exposure to an actual graphical interface through Swing. We built out a couple of different UI’s, fairly simple things. But the end project was making a game of Pong! It had to be single player, and you had to be able to beat the computer. That second part was much harder than I could have ever expected. I did it by basically having a ‘percentage’ chance of the computer making the right move, or the wrong move. The result is a very ‘janky’ looking computer paddle that would randomly go up and down, slowly inching towards the position the ball was going to land in. It worked, and it was very fun to code and challenging to fix all the bugs I had. But the end result is a not great looking game being not much fun to play. I should have been able to see beyond that but I wasn’t.
Saddle that with by this point I’m also just enjoying coding in general, and being able to enjoy writing code for programs that did useful things, even if their entire interface was a CLI, and this was probably where I put in the back burner the idea of wanting to focus on making games. I still had it in the back of my mind, and thought here and there the thought came up, I didn’t seriously attempt it again.
Typing this out made me remember that I did run at some point a ‘lua’ runtime on my laptop that was supposed to be a lua runtime that can run on the PSP through homebrew,which included some libraries to manipulate images on the screen and read user input. I was able to get custom coded parallax scrolling effect to work, and that a friend of mine made a really nice looking sprite for me to use. Then my laptop stopped working, and I lost the code and inspiration to keep trying that out.
Quick shout out to “qj dot net”, you were fun to read but not understand most of the time.
Some Java memories with Celia Cruz
I have a couple of very specific memories of working on the Java Pong project which just popped into my mind.
One was hanging out with some friends at one of their apartments, each working on their own version. I had a bug I couldn’t figure out for the life of me. It all looked solid. I remember laying down on the floor defeated, just splayed out almost flat on the floor. I took another look… and one of the probably 5 levels deep if statement stood out as being of. It seemed like it should be at the 4th level instead of the 5th level deep. I moved it up, and now all my code worked! Here is to hoping that I never write code that has 5 levels deep blocks of code, and here is to the inevitability that one day I will foolishly ignore that warning.
Another specific memory me working on either this same project, or a different project the same class, with two friends. We were in the Windows Computer Lab. The lab was called…. I can’t believe I’ve forgotten the name of the lab. Anyways, it was very late at night, maybe past midnight, and the only people there was one person we didn’t know, my two friends and myself. We had been working on this project probably all night, having all kinds of issues, and did not want to keep working on it; but we had to. We had been holed up for a while, probably hungry and tired, and were still pretty far from being done. Out of nowhere, the other person in the lab put on music from Celia Cruz. I definitely remember being extremely annoyed by it. One of my friends, stands up, and starts solo dancing with an intense face of a tired man not letting this project break us. We broke out in laughter. I don’t know why I’ll always remember this.
Honorable Mentions
Here are some other loose things I remember that were loosely related to my interest in making games that I can’t quite remember the timeline of, and were probably very short lived:
Definitely bought a couple of books on how to make games without coding while in highschool. Good times browsing through that computer corner of Borders in “Plaza las America”, in a time before I could easily compare the price with Amazon. My lack of memories of what the tools were shows how much time I spent on them.
I distinctly remember getting a book about making video games with DarkBasic. Kinda remember seeing like a scorpion on screen… and like a rough FF7 clone… I really don’t remember why I never took off using that, it seems like it probably would have been easy and fun to make something with that.
Every JRPG nerd that has even thought about making games has tried RPG Maker. Including me in middle school . But not for long. I distinctly remember having a lot of fun building up my map, renaming the “classes” and characters. Typing the skills they would each have, choosing the sprites, choosing animations for attacks. Then showing my older brother and our (also older) cousin, and my cousin making fun of it, making fun of a typo of one of the classes or something along those lines. My cousin laughed, my brother laughed, and that was the end of that. 🤷♂️
I swear my brother is a very supporting older brother!
But that one time though, 100% fuck him and my cousin for sure.
When I was in high-school, my brother had already started studying computer engineering, and I told him I wanted to learn to make games. He printed out for me a C++ tutorial he found online which was at most a dozen pages or so. I enthusiastically thanked him, saw the first page, and blanked out the rest from memory. I imagine I didn’t make it far…. Is this why I’m still kind of afraid of C++?
See, my brother is a good guy! He tried to help!
The “I’m a Working Adult” Times
Editor's note: I first titled this "The Adult Times" and it just felt innapropriate.
I’ve since have tried to a different capacity a handful of times and dropped it. This is the end of that.
I don’t care what, I don’t care why, or how long, but I want to finish a game, and never stop.
I started typing this out with the intention of being a blog post of the first steps I recently took with Godot. I was doing this to document it, because these “first” steps aren’t really my “first” steps at doing this in Godot, and I always forget what I did before and why.
It instead turned into a blog post into how many times I’ve had an opportunity to do something I enjoy, and I’ve let it pass me by. Well… I’m getting old, and stuck indoors, so enough of that! Lets make a game (ANY GAME) in Godot!
Things I will keep in mind this time
I really want to finally make my first game. It’s not my first time, but it’s the first time I will consciously acknowledge my limits, and not set out the shake the world up. I’m not trying to make my master piece, I’m trying to make my first 100 games that no one will want to play.
I’m not setting out to make a game engine. I’m setting out to make a game.
I’m not setting out to create good looking game assets, I’m setting out to make a game.
I’m not setting out to create a fun game, I’m setting out to make a game.
This one is so important. A constant theme has been me being underwhelmed by how little fun the gameplay has been of what I’ve been doing. That’s okay. Most of the games made are like that. I just need to keep making games until I learn to make a fun one.
I’m not setting out to make a multiplayer game, I’m setting out to make a game.
I’m not setting out to make a game that makes me money, I’m… you know same as above.
I sure hope I stick to this. I hope to have an update at least once a week. That seems like such a small amount, but that would be so much higher than anything I’ve done in the past. Let’s see how it goes.
I’ll be using Godot with C#. I don’t have a ton of experience with C#, but do have a ton of experience with Java. See you next episode, and hopefully this won’t be the last time I post on this topic period :D