Reading issue #331 of A Byte of Coding this morning, I ended up down a rabbit hole, starting on the Stack Machines and Where to Find Them article. Which lead me to how recursion got into programming. Next, On the Origin of Recursive Procedures and finally the Y combinator.
Whew. I love learning about the history of programming and computer development. So nerdy and fascinating to imagine a time when folks didn't even really understand the use and power of recursion, or even the definition of what it was.
I am sad that so much happened from the 60s to the 80s with programming theory and design, and then it just ... stopped. Got super boring. Still programming with text editors. Still cut and pasting code. Still dealing with dumb syntax errors. Why hasn't J. Edwards or The Future of Coding folks or Chris Granger gotten more support to "make things better"? I want the future now! But i also don't want to learn a bunch of new esoteric stuff to get there!
About 5 months later...
Have been trying to get back into "coding for fun". I've been programming since i was ... 11? First on my Vic-20, then the C64 and on to PCs from there. Now working as a programmer I do find that i burn out on programming much more easily, and do not find the fun for post-work relaxation. Especially during these Covid Times. However my down time had turned into hours spend just kind of browsing Reddit or reading Gamedev Mastodon... So, i fired up my kobo, and started borrowing books from the library. It was nice to see that my brain could still read full novels! After reading a couple books, my interest in programming started to perk up again. Not wanting to squash it immediately, i began thinking about how i could program for fun, and keep it fun, or at least stress free. Rather than rushing to my IDE, i began writing, writing about problems that i find interesting, things i'd like to learn. I also realized that i need to keep this project safe from the idea of becoming a game, it needed to be a toy. I don't want to bog my process down with having to make something follow some game-design, or whatever. It is a toy, and a play space for me to experiment. If it is fun, or if you can play a game with it, so much the better. But that isn't the goal. It isn't even a bullet point. Removing the requirements of time, or feeling like i have to work on it, is also important. I am still reading novels, and watching Ted Lasso on TV, and that is fine. Programming is an other activity I can do, when I want to make time for it, not the be all and end all.
So, what is this set of goals i have, for fun personal programming? At least, this is the list at this point in time!
- Networked Multiplayer
- Networked Physics
- Procedural Generation (of whatever, probably the physical area one plays in)
- Programming Blocks
- NPC AI
- Player Actions and Interactions
- Auto-Translated Chat
- Icon based Chat (eg Meadow)
- Photo Mode
I have 1 and 2 working in the prototype. The physics stuff is great, using the state synchronization and authority articles by Glen Fiedler as the basis for my stuff. I've done a fair bit of multiplayer networking and this is the best implementation of rigidbody physics, shared across multiple players, that i have ever done. Best both from a "works better" point, but also that it is a very simple implementation.
Also been noodling with how to select objects in the space, and then how to architect the code that makes a thing do a thing. Like, how to select a box then pick it up. Kick a ball. Move items around the world without picking them up. These are questions that i think are fun to think about. There may be something wrong with me!
Still improving the networked rigidbody code, i think the next thing will likely be some experiment with selecting objects, and then activating an action on them. Like, kicking a ball, or moving a block. Depends on how i'm feeling next time i fire up the project.
Too many to count
Well, i did find some folks to follow using twtxt via the web-y twtxt.net, which is like an updated version of twtxt, but still built on the underlaying file format. Gods help me, i'm now thinking about writing a client for this. I'm about 99.99% sure this will not happen. More likely to look at the txtnish client, as there might be an easier way there for me to hack on it, rather than writing a whole new thing.
Totally going to start celebrating Imbolc! ☀️
Apropos of nothing, i really want some 🍩's. Like, a lot.
Back to the '70s with Serverless
Article about servers and the history of computing, arguing that we have made so little improvement, and been sidetracked down these blind-alleys, into space that has not improved notably since the 70s. I can't help but agree. I have been feeling more and more that computers and computation itself, has been cooped for its own improvement, and not those that would help its users. Us.
Reading a 4 part series about iron, "Iron, How Did They Make It?', in the pre-modern age. Very interesting, especially in thinking about the differences between the reality of making iron and steel, and how it is frequently depicted in video games around crafting and resource management. Notably that iron is actually very prevalent and not difficult to find "in the wild", and the conversion/smelting of it didn't actually use coal, but a lot of charcoal. Anyway, the writing style is very approachable and, dare i say it, fun to read. History, it can be interesting! Lots of other articles that i'm looking forward to reading there too. Oh, and there is a lovely collection of articles setup/indexed for World Builders.