26 June, 2022

Doing the Stroll

Just as Robert Plant wrote, it has been a while here.  Honestly, I'm slightly surprised that it has only been a year since the last post, but here we are.


I still intend to complete my write-ups of the 2019 OMGAM challenge, and have had drafts of the next few saved up here for some time.  But for the moment, we're doing something else.

r/roguelikedev hosts an annual teaching session that runs through the excellent Python TCOD tutorial on how to make your very own "roguelike" game, starting from basically zero coding experience.

I've meant to do this for a couple years, and even started the coding cookies version of this tutorial a while back.  I struggled with this a bit because Dominic CR uses some programming techniques that I don't totally understand, and also the tutorial refers to versions of ROT.js that are a bit out of date and requires some troubleshooting.  I got pretty far with it, but ultimately found that I was copying too much code without really understanding what it did.

I eventually found Jeremiah Reid's Broughlike tutorial which really did teach from very basic principals and truly used zero external dependencies. I found this to be perfect for my learning style and my particular needs, and is exactly what I needed to get past some difficulties I faced in learning JavaScript.

So prepared, I am ready to start the r/roguelikedev tutorial-along which begins in two days.

Now, I want to emphasize that it takes no such preparation for anyone with zero experience to follow along with the Python tutorial.  But I wanted to translate it into native (no libraries) JS and do it in that language, and I needed slightly more than zero JS knowledge to do that.

How much more than zero do I have?  Not much.  JS is a prototypical language, but I have a hard time wrapping my head around what prototypes are.  Despite reading several articles on it, I honestly can't grok the significant differences between OOP, Procedural, and Functional programming paradigms.  When I look at lists of their differentiating factors, all I see are synonymous concepts slightly rephrased.

Why am I using JS then?  Well, it is great for rapid prototyping.  Great for native cross platform applications.  Great for delivering serverless applications.  I don't need a compiler, or even much of a development environment.  I can easily work on the same files from any computer without needing to install any special tools.

So tune in and enjoy watching my folly.  I'll post about my progress, and hopefully complete a little roguelike game by the end of the tutorial.

Also please join the code-along and make your own!  I promise it is easier than you think, even if you've never written a line of code in your life.

No comments:

Post a Comment