Recently, I remembered some of the earliest PC games that I used to play when I was younger.
At first I was just trying to make a list of all the games I could remember, but then I decided to try playing some of them, and I was really surprised by how good some of them are.
Of course, they look old now, and the graphics are nothing compared to modern games, but they're still really good for their time.
One thing I noticed is how much problem solving was involved in playing them.
The games, of course, told you what you were supposed to do, but as a kid, being new to computers and not that fluent in English, it wasn't as easy as it was supposed to be.
I remember getting stuck on some parts for a long time and spending hours trying different things until something worked.
Looking back now, I think this was actually a pretty good way for kids to learn problem solving.
Those games weren't supposed to be educational, but you learned some important skills and patterns of thinking because you wanted to beat a mission and keep playing.
If something didn't work, you tried something else. If you thought you missed something, you went back and checked again.
I never thought of any of this as learning when I was a kid. I just wanted to keep playing, but that's how it was useful.
Now I'm playing some of these games again, except there is a different problem: getting them to run in the first place.
Most of them were made for Windows computers from almost 25 years ago, and I am trying to run them on a modern MacBook. That has turned into its own little project.
I went from wanting to play these games again for nostalgia to debugging them.
And what's interesting is that you go from trying to solve one small problem and end up having to decompile part of the game, check APIs and compatibility, and figure out what game engine the game was built on.
So in a strange way, these games are still teaching me problem solving. But instead of beating levels, I'm having to figure out how to make them run.
I'll probably keep experimenting with more of them, and I'll put some of the fixes and other things I make along the way on my GitHub: https://github.com/mdarwish0523