I sort of had two first computers. At home we got a TI-99/4A. While an interesting machine under the hood, the base console was restricted only to TI BASIC (not even peek and poke for assembly), and fairly slow. We were told no games unless we write them ourselves - which I took as permission to play games as long as I wrote them. I was down for that!
We typed in all the games from the books we had. The first creative change we made was changing the text in Alligator Alley (Oh no! You were eaten! Now the poor alligator has indigestion!) This was a really simple game where you moved a white cursor on a green screen and tried to reach the edge without hitting one of the randomly scattered alligators (you can't see green alligators in a green swamp, you see).
But since it left a trail, I studied it because I thought maybe it could be a start for a Dig Dug clone.
I learned enemy movement - or at least how to move towards the player - from Chase in the Creative Computing book. As a much more full featured game, I spent a lot of time understanding it. The original game was meant to be played on a printer - it displayed the maze, and you entered the direction you wanted to move. So my first bigger task was to make it just update the maze onscreen, and move continuously. This was more than just calling HOME and printing the maze again, as TI BASIC was too slow at printing the maze, and anyway it couldn't HOME, it ALWAYS had to scroll when it PRINTed. But I made it work.
But being limited to TI BASIC and frame rates measured in the seconds per frame left me frustrated. In grade 5, schools in BC started to get Apple 2 computers. I remember the principal proudly rolling that school's first machine into the classroom and then playing Oregon Trail in front of us for half an hour. When I went to the office after school to ask about getting time on the Apple, they declined as I'd never used one before. That struck me as odd - why show us then?
The next year I was at a different school, and they also got their first machine. When I expressed interest, I was paired up with an older student, and we typed in a bouncing ball demo together. I remember that this one included a small assembly language program, POKEd in from BASIC, to play the beeps and boops when it hit a wall. We didn't do much else that I remember, but it was a start.
It had to be the next year, or at least very soon after, that every school suddenly had a computer room, usually with 10-20 Apple's on tables around the room. Furthermore, most schools had the room open in the morning and at lunch to anyone who wanted to learn. So finally, I was able to start learning on a much more open machine. The school libraries had enough books to get started.
To learn assembly in the limited time I had, I wrote out all the assembly opcodes on paper (so I could return the library book), and I hand assembled my test programs at home so I could just type them in when I got to school. I also developed a technique of test-running the programs on paper - a column for each register (the 6502 in the Apple 2 only had the program counter, X, Y, and A. Technically also STatus but I never tracked that one in my testing...) Then I could go through the code and update the state - it was slow but good for the overall logic. And I was used to slow. ;)
One school I was in had a closet full of Timex/Sinclair 1000s. Apparently before the government sponsors Apple2 computer labs across the province, the teachers had gotten together and built a lab of these machines. These were small, Z80-based machines with 3k of RAM (well, I remember 3, but I'm not sure. The ZX81 it was based on had 1k.) They had big 16k expansion packs that made them sort of usable, and even a thermal printer. I played with them a bit, though I didn't learn beyond BASIC. The school sold one to a friend of mine for $20, but I couldn't come up with that much money back then. I did later get a ZX81 gifted to me, and learned that one slightly deeper, but it was harder to find books on how to push this one. And there was no internet yet!
Over time I got to know the base Apple 2 pretty well. I didn't get into ProDOS or most of the features of the Enhanced 2E, but it was neat to watch the machines improve. Most of the first machines were just stock Apple 2 or maybe 2+, but by the end of my time in high school they were all enhanced 2Es.
One day, feeling malicious, I set up a couple of machines on a timer. The next class had a friend of mine in it, and in that class they didn't use the computers. When the timer expired, they started a loud beeping song. The first time successfully flustered the teacher, I'm told. When we did it a second time, the teacher apparently just flipped the switches that turned all the computers off. I figured I could thwart that - I made a cassette recording of the song with a long blank lead, and put a walkman inside one of the Apples instead. Unfortunately, fresh batteries were hard to come by - the walkman batteries died before it went off.
I got really brave in my final year. One friend bragged that his Apple 2 could never catch a virus, so I wrote one for DOS 3.3 (thanks entirely to the amazing Beneath Apple DOS book). Sorry about that. The good news is there's no evidence it's out in the wide world today. ;) If it helps, when I later finally got my own Apple 2+, I found it on all my own disks. I couldn't clean it, because at the time I relied on Copy 2+ to copy the DOS tracks from a clean disk. But that required 128k and I only had 64k. So I patched out the payload and let the virus re-copy itself to all my disks. It would still run, but harmlessly. ;)
I also wanted to leave my mark on the computer lab and the teacher that taught computing. We'd gotten along very well. So I went to the end machine that was usually the last computer people chose to use, and opened up the second drive (again, rarely used). There I disabled the write-protect sensor. Then I took the teacher's master Appleworks disk. Each year he'd make copies of that for the students to use. I used a sector editor to change the copyright text to "Hi Mr Atkinson!" Apparently that generated some amusement the next year.
But, that was towards the end of the Apple2 era, too, that was 1989. The school already had a lab of PCjr machines (whoops). I'm told a year or two after that, the Apples were done.
I stuck with the Apple and the TI for a few more years, though I settled on the now fully expanded TI. I was able to do more with it than the Apple and had a strong affection for the machine. But eventually, I wanted to move on to newer hardware.
Eventually, in 92 or 93, I finally moved from TI to ST, then to Amiga 2000 which I started to learn before declaring being tired of having to always write my own software, and moving to PC. Originally I intended to use OS/2 Warp, but Windows 95 came out and won me over before I installed it. I never learned those machines as deeply as the first two.
So many systems kept me curious, so I've coded unofficially for consoles too. Through emulation I was able to mess around first with the Vectrex. I'd not had a chance to learn the 6809 before, though all I ever built was a spinning star demo. But then the Playstation homebrew scene happened. A replacement flash for the GameShark called Caetla and a cheap ISA parallel port card (meant for cheat code searching) suddenly made it possible to upload your own code to the Playstation. A hack to the Net Yaroze toolchain let you create and run Yaroze code without the Yaroze platform (which was something I had really wanted!) So suddenly I could run my code on a real console. That felt like a dream come true. The first time I burned a CD and the PSX logo came up, indicating successful boot, was a rush like I've rarely, if ever, felt.
Yet for that, there was a lot to learn for the Playstation. Almost all the concepts were far beyond what I'd ever done before. So I never went further than some simple intros. I ported my DOS game Takatron - a Lion King/Robotron mixup - but lacking basic understanding of some features it was far inferior on the Playstation. I did release a Tetris and started a platformer, but got distracted.
The next platform I spent a lot of time on was Dreamcast. This time I got in early - the serial slave CD had just been released and I built a cable instantly. With that I can claim the honor of the first one to run any code that became part of Kallistios - Dan had some test code but didn't have a serial cable, so he sent me the code to test. ;) I didn't do much in the libraries themselves, but that collaboration is where Cool Herders came from. As much as I loved the Dreamcast, I didn't do much else there.
By then everything was exploding. Every platform was open. Every system could be developed for. Growing up I wanted to program everything. It became clear that was no longer feasible!
I ended up writing code for esoteric devices like the Matsucom OnhandPC - a bulky wristwatch with a 16 bit PC inside it. I loved that thing. ;) I ended up coding a game designed by an artist called TunnelX, a greyscale image viewer, and a silly magic trick demo.
When a friend brought over a system he'd developed to upload code to the Atari Jaguar, and showed me a simple full screen rotation demo, I was blown away. That led to a long involvement in that community and the development of the Skunkboard. We did four releases of that and I think there has been at least two since I released it all to the public domain. I never finished a game of note though. I did Martian Attack for a contest - but the contest rules emphasized usage of the hardware. So I made sure there was code on every CPU, split screen palettes, and heavy use of the OP and Blitter together. The game itself wasn't that interesting - just a target shoot with minimal feedback. But the only other entrant was Jungle Jane - a platformer made with stock graphics, which I also didn't find interesting (nor did I see how it was pushing the hardware ;) ). Anyway, since it was just us two who even made anything, we split the prize.
I also ended up doing a lot in the ColecoVision community, although I never really became a noted name there. I was impressed to see it was basically a TI with a different CPU, and I could program it in C and almost have the same code run on each machine. I released Mario Bros through CollectorVision, which got pretty high praise. I also released Mr Chin and Super Demon Attack - the TI version. I didn't like either of these games and did what I could to make them a little more interesting, but they were requests. I'm actually kind of proud of the improvements to Demon Attack (I stole the splitting in two and homing bombs from other versions), but the other versions are still far nicer than the TI one IMO. Finally for my own work, I released an update of Super Space Acer - one of the first attempts at a game I did for the TI.
Super Space Acer I also ported back to the TI and released a special cartridge through ArcadeShopper. But this is when I realized the community didn't have my back. The "UberGROM" cartridge that I'd helped develop was my target, in order to use the extra memory space and the EEPROM capability. But what I didn't know was that the cart wasn't being made anymore, and that the design was proprietary -- even I couldn't make one as I didn't have the layout files. That delayed the game significantly and put a sour taste in my mouth, as I've never made anything I've released proprietary on purpose.
Dragon's Lair is probably seen as my top release for the TI. This was a fully licensed version, and contained the entire laserdisc's worth of video on a cartridge for the unexpanded TI. This was definitely a passion project although I don't think Dragon's Lair is very fun to play... most of the time. (The one scene with the pool and the need to move constantly actually does feel like a game, though it's brief.) I do think it's a technical marvel, though, and lovely to look at, so it was fun to make it work. The documentation at Dragon's Lair Project made it possible to sort out the scenes (and I was very disappointed to not find anything as nicely put together for Space Ace, which I'd have liked to do as well.) Post license interest was still pretty high, but as I put the onus for licensing and distributing any subsequent releases on the people who insisted there was profit to be made, little ever happened. Ultimately we were told the licensing terms had changed and there was no longer profit to be made. I did release all the hardware, software and scripts though. Only the video was not mine to share.
I also ported Super Space Acer to the Gameboy Advance - a platform I'd messed with years back but never released anything for. I ported Cool Herders to it - quite a nice port IMO, but Piko Interactive bought the property and I did it for them. Unfortunately it's their call if it ever sees the light of day. So I used the libraries I wrote to port it there as well, thinking it was a better known platform than the TI and might get some retro collector interest. It did not. ;)
The last thing I've done to date was a Phoenix Wright style engine. I've wanted to make a classic MLP / Phoenix Wright crossover video into an actual game for years. The story is really good, and I thought as a game, more people would give it a chance. With the release of internet hardware for the TI, I decided it was finally feasible to make it happen.
I went all in on this. This game would select 9918A or F18A graphics automatically - why not? I had "infinite" memory through downloading from the web. I converted the music files to TI format. I built a scripting engine that handled graphics, text, music, input, inventory, conditionals, investigation, and cross examination. To keep performance up, I added support for the TI AMS memory expansion system up to 1MB and used it to cache images downloaded and store speech samples. The whole game was broken into scenes that could each specify only the elements they required in order to share the memory resources. When I still ran into memory constraints, I wrote a whole new linker that let me more easily manage where data loaded so the whole base 32k was available to me. When I finally released the first hour of gameplay, there was a good amount of people discussing it and lauding the effort.
But nobody played it. A side effect of the downloading of images and music means I can tell the activity in the server logs. Only one person, weeks later, played more than 5 minutes. Most people loaded the title page and then quit. This was a huge disappointment. I mean, I get people don't care about MLP, but I thought people would at least give it a chance. ESPECIALLY when they were there in the forum telling me they couldn't wait to give it a chance. Honesty is fine, but blowing smoke up my backside is frustrating.
I ported it to Javascript and put it on the web instead. Now the memory restrictions went away, and I don't have to spend hours fiddling with the music to try and get a recognizable variant of it in three square wave voices. It loads screens faster and I was able to expand the decision trees. I've been slowly updating that version instead. I sometimes consider porting back to the TI - I might have to split some of the scenes up a bit more, but it should be feasible. But I'm delaying that decision till I'm done. To be frank, (I'd have to change my name), but nobody's playing that version either. Oh well. ;) /I/ like it. Maybe someday, if I finish it, someone else will come along and clean up the graphics, and we'll get a full version of it.
And so today I'm trying to cast my sights on modern game dev. All the above - all of it - was because I wanted to make games. And I've spent my life writing tools for other people, mostly, while my own games were largely ignored. It's very frustrating. So I've got another learning curve, and I'll see what I can do. I moved to the PC back in 1995 because I wanted to reach more people, but I ended up using the machine to support the tiny communities around the retro machines I loved. But it feels kind of toxic right now, so it's time to do what I was supposed to do twenty years ago, heh.
Anyway, I'm sure I'll change my mind in a couple months, but what the heck. What's life but a series of trying to keep yourself distracted? :)
This link should take you to most things mentioned above: https://harmlesslion.com/things/