Goal of this project was not a final product, but the challenge of programming it. Therefor there is no link to a finished product here, but a report of my development efforts.
A very special aspect of this project was optimization. I could of course give you the fully optimized code here, but thereby the prozess of development would get lost. So I decided to describe the workflow as it really happend (ok, I will keep quiet about my biggest failures) including late changes and re-designs done.
If you want to follow this description (you may call it a tutorial if you like), please be warned about the posibility that you will have to change or delete any line of code you just have written. My apologys for any frustration happening.