Phew. Weekends, man.

There is a part of this project in which I am very much out of my depth where it comes to coding, and that is the user interface.

In five semesters I somehow managed to avoid a proper instruction on any user interface implementation, including like, interrupts, layering, rendering, resource allocation, or architecture. I’m going to get my letter to come pick up my diploma any day now, and I don’t have some of the skills necessary to take a program from beginning to end.

At least, that – WAS – the case until I started my World Serpent project, because I just… dove into repairing that particular deficiency.

If you’ve seen recent screens of my progress, you’ll know that I’m making windows and drawing spheres in them. Prior to my integration of JOGL, I was only using Swing. JOGL adds an extra special layer of complexity onto things because it has a similar-but-distinct windowing architecture…

I’m getting away from myself.

Over the weekend, I got the sphere to draw and animate inside the new window, yay! I also got the new window to register mouse clicks, yay! Hopefully this morning, I will be able to get my menu to draw over the window with the sphere, and then get the whole thing to properly dispose of resources when the program shuts down!

That’s gripping, I know.

I’m technically very pleased with myself, but it’s rather like passing a 100-piece milestone in a million-piece jigsaw puzzle. Progress, great! Lots of pieces left to go!

So I got mouse clicks, that means the foundation of some basic user interaction. Right now I’m just printing out which button the user clicks, and that’s fine. My next step is translating a “2d click” into a “3d selection,” so a user can interact directly with the hexagons on the sphere.

If I’m feeling really ambitious, I’ll go from that straight into “grabbing the sphere (pausing its rotation) by pressing a button, rotating it according to the mouse movement, and then resuming its rotation from the new point.”

Good thing for me I took that graphics course last fall!