It’s awful.
It’s a trip seeing this old code through new eyes. I can see why the old Macs crashed so much (beyond the basic “they had no memory protection” explanation). I’m also fond of the 1-bit art, like the author mentions, and I curate a list of accounts on Twitter which post 1-but artwork (if you know anybody who’s missing from the list, let me know): https://twitter.com/i/lists/1578111923324944397
The nice thing about programming for a limited system is that it limits your options. It’s a nice break from the more modern experience where you can do anything by pulling in the right library. I sometimes imagine a world where computational power is frozen, and we simple get better and better software for systems that are well-understood. The thing about these old systems like the Mac 68K machines is that the pace of hardware development was so fast it made you dizzy. If a new processor came out like the 68020 or 80386, then you had maybe a couple years at most to make something that really used it to its full potential. If you waited too long, you’d be competing against a new generation of software written for a new generation of hardware.
I think it's okay to abandon things, and you can certainly learn things and reuse parts from abandoned projects. For me, a breakthrough moment was when I decided to make things so small that I could finish them. It helped me develop the skill of finishing things, which is a separate skill that's hard to learn, because it only happens at the end of a process so long and hard you almost never make it there. All my friends who are making video games start by writing their own engine, and get burnt out somewhere around the point where they're making a level editor. They learn a lot about things like tooling (which, coincidentally, is a lot like what they already knew how to do), but never actually make the game. It'd be like learning stone masonry by building a cathedral—you won't live to see the end. Start so small that you can't fail, then work your way up to bigger and bigger projects.
I probably spent even more time poking around in the resource forks of your games in ResEdit.
I didn't finish much, but I did complete a couple of little shareware games and uploaded them to AOL. I was beyond surprised when a check from far away California appeared in my mailbox many months later.
Those early Mac days really did feel like a special time where anything was possible a solo developer could make a thing and put it out into the world without needing more than creativity and time.
Thank you for writing these posts and sending me down memory lane. I hope you're enjoying your retirement.
None of which means we shouldn't do more of this. You can learn things by trying smaller projects. It's just not a guarantee it will work in the large.
With two days off a week to fulfil with chores, I still don't want to sit in front of a computer screen.
Personally I try to use free hosting services so that I don't have to pay to keep it running when I abandon it. (That could be AWS free tier or blockchain or IPFS etc). Use a public repository so someone else can find it when it's inevitable dropped. I always make sure to have good documentation so that once it's found anyone can get it running.
For instance, leveraging version control systems more extensively or utilizing collaborative platforms might enhance the efficiency and scalability of your projects.
I keep beating this drum but I believe there is a significant amount of pain in software because people shipped first drafts and got stuck with foundational design issues. Once this has gone on long enough, even a greenfield rewrite is hard because both the programmers and the users have internalized the flawed design.
Someone was complaining about always starting projects, but never finishing said projects.
To paraphrase another user's response, it was something like, "Not all projects need to be finished in order for value to be gained. To borrow a concept from Buddhism, perhaps you found what you were looking for all along?"
I think of the few shipped projects I've released or been part of as a shadow of who I am. Same with my resume and work experience. They're a fingerprint of a whole being living a dream life that never manifested, because I never had an early win to build upon. That's why I think UBI might magnify human potential by 10 or 100 fold, to get us from the service economy to agency and self-actualization, producing our own residual incomes.
Oh and I played Pararena a ton!