Fantastic! I had a similar experience in the mid 90s, though I wrote a Zork clone :)
Twenty years later I wrote a Tetris again
41–43 of 43 posts
Re: Twenty years later I wrote a Tetris again
#42I think any re-implementation of something you are fond of is a great exercise. It reminds me of a small project in undergrad for a networking course. Our professor's assignment for the quarter was to implement a basic TCP stack using the UDP protocol. It wasn't perfect and had quirks but it worked for a basic client/server model and gave me a huge appreciate for what happens when we use the internet. I think the hig…
That's basically how I learn new technology is to either partially or fully port my Proximity game (http://briancable.com/proximity) to it. I've used that to learn C#/XNA, Objective-C/iOS, Java/Kindle (sadly never finished, but it looked beautiful on a Kindle), and most recently Pico-8/Lua (still in the process). I'm planning to start working on a 3D version soon, as well, with the goal of getting stronger in my 3D programming and getting it onto a bunch of platforms with a single codebase (using Unity).
Considering the game has been used in at least one book (Actionscript 3 Design Patterns) as a 'learning to code' game and I periodically get emails from students whose teachers have made an A.I. programming exercise for Proximity, it probably makes sense that it's my go-to learn new tech game, considering I've made other games too but don't port any of those.
Re: Twenty years later I wrote a Tetris again
#43I've implemented Tetris 5 or 6 times over the period of 20+ years. This is my standard exercise to learn/try a new platform. I wrote one in C for custom smart phone/PDA prototype we were developing in 1994, then I wrote one in assembly for Zaurus PDA, another one little later for Palm Pilot, few more I do not even remember, and the last one 2 years ago to learn some OCaml (text-based and SDL versions) https://github.…
I can read all the tutorials in the world, but I don't feel comfortable with a new language/platform/toolkit/etc until I've ported Tetris to it.
I go as far as making every implementation replay-compatible for ease of testing (and also because it's just really satisfying watching half a dozen entirely different implementations of the same game running in frame-perfect harmony).
Right now I'm working on a Haskell port, and as a beginner to FP, it's quite a mind-bending experience trying to implement something so familiar in such an alien language.