I decided earlier this month that I still wasn’t satisfied with the way Tetzle looked. For one thing, the pieces were too small when zoomed all of the way in. I also realized that I did miss the bevels. However, I was never very happy with the old bevels, so I designed new ones for the entire piece. Plus, I decided that a new color scheme was in order, since the white background was so blinding. The result of all of these changes can be seen in this screenshot:
I had to change the puzzle file to track what bevel each tile has, so old puzzle files can no longer be played with the new Tetzle. In fact, the file format has changed so much that puzzles from version 1.2 can not be played in the development version. I am thinking about trying to add a converter, but a big problem is that there is no way of knowing what bevel a tile is supposed to have.
Along the way I also decided to improve my use of OpenGL. I had been using the incredibly slow and deprecated immediate mode, because all of the starter tutorials online told you how to use that. I now use vertex arrays, and will use vertex buffer objects and vertex array objects if they are available. And, to top it off, I also added basic shaders to imitate the fixed function pipeline so that Tetzle will run on OpenGL 3+ without compatibility mode.