I’ve been programming since early 1990s. Fairly early on, I also started building different kinds of games: small quick action blasts, adventure games, car games, space shooters, brain quizzes, and so on. Truth to be told, many of them only reached proof-of-concept or prototype level, but there are e.g. several mobile games available in app stores that I’ve created. And even now, I’m working on some new ideas.
But man has the game development space advanced since then.
In the mid-90s, when I started building first games with proper graphical user interface (instead of manipulating system fonts to look like sprites), I didn’t know what I was getting myself into. I started by reading about game development and graphics programming in books and BBSes (kinda like digital discussion boards in the early days of Internet).
And I learned a lot, starting with simple array of pixels representing the screen, and interpolating lines there. Then calculating circles, drawing rectangles, and filling areas with colors. Reading image files, calculating their transparencies and animating sprites. And after drawing every frame to the “double buffered”-array, it needed to be manually moved to the memory of the graphics adapter. Learning about interruptions (i.e. computer interruptions, used to interrupt the other work the computer is doing to request data from a certain hardware or software components) and using them to utilise joysticks, keyboard and mouse.
After getting my character to walk with smooth animation to where I would click on the screen, automatically avoiding obstacles, drawn either in front or behind the said obstacles, I needed sounds. This was before DirectX or other similar standards was available and it could quickly get quite complex. Usually, the simplest way for indie-developers was to just support one sound card manufacturer. At the time it was either Gravis Ultrasound, or especially SoundBlaster. And so I I built sounds for SoundBlaster.
Finally, after a lot of fine tuning, I could get a proof-of-concept, prototype or even a fully functioning game ready, came the question how I would bring it out to the world to see. But that whole app publishing topic deserves its own blog post.