evan forry

The Tutorials That Got Me to Make Two Game Prototypes in Two Weeks

I have never considered myself a programmer.

I have a minor in comp-sci and took enough classes to get by, but I never considered real programming a thing I was capable of doing.

I daily drive Linux (NixOS btw), and have for quite some time. I'm capable of editing config files and making simple bash scripts, but beyond that, I can't code at all. I write prose, not code.

That is, until I came across two amazing resources.

In the past, I've tried learning proper coding skills, but nothing has ever stuck. I made it though a few chapters of the Rust Book, but I moved on and didn't have anything to show for it. I tried learning Godot, finished the tutorial game, and promptly uninstalled Godot.

Whenever I've sat down to learn to code, I think I've tried to do too much too quickly. For me, the Rust Book was too in-depth. I could understand well enough what was happening, but I didn't know what to do with that knowledge. Godot and its tutorial was great at letting me do cool things, but I never really understood what was happening under the hood and just felt like a monkey pulling levers.

After not touching code for quite sometime, and experiencing a much needed time of silence, (My post on modernmonk, Herman's Post) I had an idea for a game that I really wanted to make.

I want/ed to make a simple, text-based roguelike focused on exploration instead of combat.

Every other idea I've had for a game has been vastly beyond my capabilities. This one felt like something I could at least make a simple prototype for to test whether it was a fun idea.

So, I set to searching 'How to make a roguelike' (or something similar).

One of the first things I ended up reading was an article by Josh Ge (creator of Cogmind): How to Make a Roguelike

Josh gives a great overview of the process behind making a roguelike, but what was really revolutionary for me was his insistence on taking small steps and focusing on completing the core functionality before branching out into tertiary mechanics.

My first prototype took roughly two and a half days of time focused on the game itself and not learning the language and framework around it. Of those two and a half days, one day was focused entirely on a character creation screen that gave me a lot of trouble, and was entirely unnecessary.

After that day of frustration, I thought about how much I had left to do to really finish character creation, thought about how much time I had until I wanted to have something to show a friend of mine, and then realized I hadn't even begun on the actual game play. It was in remembering Josh's insistence on focusing on core mechanics that I was able to shove character creation to the side and move right into the core gameplay that I wanted to try out.

My first ever game prototype came about by half a day setting up a simple start and end screen as well as figuring out basic gamestating, one day for unyetused character creation, and one day for the core gameplay.

If it wasn't for Josh's article, I would have likely gotten stuck (if I ever began) in the weeds of not vital functionality and not have a single prototype, much less two.

But, I've skipped over something. Sure, Josh's article was vital for scope and project management, but what about the actual coding bit?

After reading Josh's article and gaining the confidence that a small prototype roguelike was within my limited capabilities, I had to decide on what tools I would use to get there.

From my experience with Godot, I wasn't interested in working with an engine. For me, engines obscure too much of what's going on. I like to write code and just run it. I also like to do everything in the terminal. I'd much rather type text than fiddle with a GUI.

So, engines were out, but writing lower level code and implementing absolutely everything myself felt too far out of my reach.

Then I remembered frameworks and LÖVE.

I'd come across frameworks and LÖVE back when I was frustrated with Godot, but never gave them a real shake. (Also, at the time I had an unwarranted dislike of lua simply because it is used everywhere, and I don't like to like popular things.)

This time, however, I decided to give LÖVE a try.

I found Sheepolution's How to LÖVE tutorial (I used the text version, though I assume the video is largely the same) and was blown away by how they helped programming concepts fully click for me.

I breezed though the first half of the tutorial in a day. I was all mostly refresher things, but it was all presented in a way that, for me, everything that I've learned and relearned a million times finally clicked. I've known about and used libraries before, but something about Sheepolution's explanation made me understand them on a much deeper level.

Maybe it was timing, maybe it's lua, maybe it was everything aligning with my brain in a way that it finally clicked, but regardless, I am giving the credit to Sheepolution for an excellent explanation of, general programming, lua, and LÖVE. Thank you.

So, thanks to Sheepolution, I had a passing understanding of lua (I absolutely love lua now, btw. Lua's focus on tables really meshes with how my brain wants to think of programming.) and the LÖVE framework.

All I needed was half of the tutorial and I had enough information to get started on a prototype for (one of) my dream game(s)!

And that brings us back to finishing the first prototype.

From there, I showed my friend the prototype, and freshly off the high of finishing a prototype, thought how I now had the power to make a prototype based on one of our favorite games (Rounds) in an attempt to get more out of a game lacking DLC or a sequel.

And so, the next week, I finished Sheepolution's tutorial, and finished a second prototype. When I showed my friend this prototype, despite it being very rough, we had more fun with it than I imagined we would.

I realize now that I have been teasing some things I have no plans of sharing. This post's call-to-action is not, "Now play my games!" Maybe one day, if/when I have something, I'd consider an alpha build.

For now, my only call-to-action is that you give the article and tutorial that gave me the coding itch a read, and maybe they'll help you get started down the path of making something of your own!


Subscribe to my blog via RSS feed.

#gamedev #programming