It was curiosity that started me into games. I feel fortunate to have grown up in the 80s/90s when advancements in games could still wow me. I haven't felt that level of wow-factor in a game in a long time, mostly because graphics have already come so far nothing really comes as shocker anymore because nothing feels impossible. The first time I discovered I could make a graphics scene greater than 320x200 with 16 colors in DOS (640x480x 256k) I was like oh my god this is awesome! Now, someone could say they made a game that's 8k with 64-bit color and I'd probably be like, why? But it was that cool, omg what can I do next feeling that kept me engaged with game development. I branched into software more out of necessity and an ego of I could do that better.
My first time doing any sort of actual game development was with Amiga's SEUCK. Then some friends introduced me to QBasic, where I ran a semi-successful website that managed to be ranked high up on the QB100 webring. (do web rings even exist anymore?) The website would look like absolute crap by today's standards, but keep in mind HTML had only really been around in wide use a few years about that time.
In highschool, I took classes in C++ and Pascal. Pascal I excelled at and become a sort of unofficial teacher's aid. With 35 kids in the classroom and only 34 books, I'm the kid who didn't get a book (due to me being dead last in the alphabet no matter where I am). I asked the teacher if he had other books on pascal, he's like sure but you can't follow along with the rest of the class. I took the book and told him as long as it covers the same material I don't need it to be in the same order of instruction. I studied at home mostly then would help out other students during class. In that particular course, some of our tests had to be hand-written. Yup, write pascal code by hand on a piece of paper, including every stinkin' curly bracket! I believe it was to teach us not to rely on compiler errors to proof-read our programs for us. Btw, we worked on PCs with a cyrix 133 cpu
In college, the primary language at the time was java, but I believe the school has shifted to .NET since then. Bored with typical homework exercises, I asked my teacher about writing a chat program in java. I learn by not doing pointless homework assignments but by programming something functional, something practical. Solving the puzzles along the way is how I learn. He said the task would be quite advanced and beyond in the Java 2 class. Needless to say, he didn't offer much help. I don't recall how long it took me (I barely learned to create a blank applet by that point) but I wrote my chat program. Developed a separate java library to handle AOL's TOC protocol then a client to show it off. And it worked. You could sign into my chat program using your aol login. A lot of the protocol information I was able to find online, but some required reverse engineering and deciphering packets using wireshark. Years later, I ported the network library to C#.NET simply to familiarize myself with the language. (which I believe both languages are still available for download on my website). My only other major java project was an iTunes clone, which I started when it was released for Apple but prior to Windows support. I learned A LOT about gui development by doing that project. Though you couldn't sync an ipod or buy from the store, you could actually browser the store, broadcast and stream over bonjour, listen to shoutcasts, and it supported more playback codecs than the real itunes. Amusingly, my program was even more responsive when browsing a very large library than iTunes. I did begin early work on adding music visuals but never quite got it off the ground. Fourier transforms confused me.
In the middle of all this, I discovered DarkBasic around '99 I think. It was amazing at the time, as an average programmer like myself could make 3D games without learning more complicated C++ and scene graphs and shading techniques etc... DB started to feel a bit dated (mostly due to being stuck on DX9 I'm sure), so I'm glad AppGameKit was created. AppGameKit window apps are also a bit friendlier than trying to do a windowed program with DBP. The only drawback to having something like this available back then was I believe it actually stunted my learning in some areas. With a tool that made things so easy, there's aspects of a professional language I never really learned. You'll never see a company hiring for a DBP developer. So in hindsight, I do wish I took more time to learn C++ and create games from scratch that way.
Oh, as for why do I do this? As a kid, it was just curiosity and I felt it was neat. 15-20 years ago, I decided I wanted to be a programmer and turn a hobby I enjoyed into a living. Unfortunately, thanks to career counselors pushing everyone they know into IT because that's the big money field, the market became flooded with people who really had no true interest in it in the first place. And on top of that, technology has advanced far enough that it's made learning so much easier. So much so, that what I once consider a special skill set no longer feels that special anymore. Still, I'm happy to have learned to program through books and deconstructing existing code before the internet blew up and every answer was only a click away. Before video tutorials on everything imaginable existed. Because in the end, when I figured something out, I didn't just simply know how to do it, I understood why I was doing it. My future focus is on getting into cyber security as career. I did do JSP developement professionally for a short time, but I think for the moment programming will be just a hobby.
And holy crap I wrote a lot. That's almost as long as Raven's posts!