Things have been speeding up in general with the things I can build and how long it takes to build them. The personal project that took two months before would probably take a couple of weeks if I went back and rebuilt it now, most of which would consist of drawing spritesheets, backgrounds, and other art assets.
Switching to code is easier. I remember mentioning earlier that switching from thinking about a game’s design to how to code it while working on a project is like a weird laggy toggle that took a while to click in my brain, like switching between two languages. This doesn’t happen so much anymore. I find I’m able to think about the design with the code already in mind, putting together potential ways to build what I’m thinking while thinking about it. So even though my JS knowledge is still a work in progress, it’s now easier to grasp concepts and think of solutions on the fly - even if I need to brush up on the actual syntax for those solutions when I get to it.
Timers. Working with them was a giant pain in the butt and still is, but when you get them right and see whatever it is that you need to happen at semi-random intervals happen exactly like it’s supposed to it’s probably one of the best feelings in the world.
Arrays. I had to learn all about pushing, popping, slicing data into and from dynamically generated arrays.
Adjacency arrays. My post about the long road to adjacency pretty much explains it all. This was a mindbender to figure out.
UI elements. I spent a while working out what rules and conditions to set for things like pressing buttons on the screen, to ensure buttons were selected/deselected properly (not just in terms of their behavior but also their animation states). This took a while and is still in progress with the new project (toggling buttons is what I’m working on now. It’s almost there, with a couple of things to work out).
Clean code. Just like I was a little OCD about making sure my cables were neat when building Adam, I’m very particular about making sure my code looks neat, too. And I think it’s getting worse - not only is it about the look of the code, but the structure of it. Things like getting rid of duplicate functions in multiple entities and moving them into one function in the controller class that all of those entities can refer to suddenly seems very important.
Dynamic events. My first project mostly consisted of purely pre-built levels. Things were placed on a screen in preset positions. The only things that were calculated on the fly were a couple of instances of randomized numbers which determined how many batches of an item were to be spawned at intermittent intervals. Both things that are in progress now require more information to be generated on the fly after a level has loaded. I think this in general is going to be my next big challenge coding-wise (like that adjacency problem was before).
Right now my priority is just to keep building. Today I’m working with timers. I’m going to need a lot more coffee.