Wow what a ride

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Wow what a ride

offbyone
I just completed the final project and my mind is still reeling. I can hardly believe the thrill of finally getting Pong running on the CPU emulator -- running on my OS, compiled on my compiler, translated on my translator, and assembled on my assembler. The home stretch was rough, requiring optimizing of multiple OS classes as well as the VM translator in order to get the ball and paddle moving at a respectable speed. But when it all came together the feeling is hard to describe. I don't think I ever imagined a game of Pong could be so satisfying lol.

I took the course as self-study as a hobby. I had very little prior programming experience prior to this (intro course in college), and am in a totally unrelated profession, so making it to the end was a major ordeal. I thought about giving up multiple times, but am so glad I stuck with it. It took about 2 months, with a fairly significant time commitment over that period. I used Python and Visual Studio Code for the software projects. Just had to say thank you to the authors for crafting such an amazing teaching tool. Also thanks to the folks on the forums for providing inspiration, a sense of community, as well as some tips when I got stuck.

The one problem I have now is my mind is so full of code that I can't focus on my every day life anymore!  Now how does one get around that problem? Take care all and best of luck.
Reply | Threaded
Open this post in threaded view
|

Re: Wow what a ride

WBahn
Administrator
A big congratulations to you! Well done!

Reply | Threaded
Open this post in threaded view
|

Re: Wow what a ride

offbyone
Thanks so much. I found many of your responses to other people's questions very helpful when I had similar issues.

I can report that all the supplied software tools worked very well. The only notable bug I encountered is the one reported in this recent post. As mentioned in the related github post I was able to work around the bug by including my custom Output.jack in the StringTest directory when unit testing my String class.

The other funny thing that happened to me was seeing my compiler, which had passed all the Ch 11 tests, subsequently crash and burn on the humble Point.jack teaching example, which happens to have the sneaky string literal ")" as a term.
Reply | Threaded
Open this post in threaded view
|

Re: Wow what a ride

Renslay
In reply to this post by offbyone
Huge congrats! You summarized very well how I felt the same when I finished the course. I also did a long break somewhere in the middle, so it took a couple of months - but it definitely worth it. To this day this was one my most satisfying and memorable journey! My mind is still blown; and I did this course in 2023.

If you want to turn the notch even higher, consider creating the entire Hack computer in some sort of logic gate simulator - like Logisim or Digital (the latter is much faster, I was able to load and run Pong!). Creating the basic computer is quite easy and fun to do; and it can be a nice additional challenge how to add a working Screen chip!

In that way you can say you were able to "getting a high level program that you wrote running on your OS, compiled on your compiler, translated on your translator, assembled on your assembler, run on your HACK machine containing a bunch of chips".

(If you pick up this challange, make sure you use built-in chips on higher hierarchy levels, similarly how you used built-in chips in later Chapters for performance reasons).