It's Been Such a Long Time
The timing and terms of Turkey are very up-in-the-air right now. Updates to follow when I know something! So, instead of thinking about all that, I’m very much enjoying Project Jimbo as a pleasant distraction.
On that note, it looks like using Google SketchUp and then importing to Blender would be the best way to create models for the 3D environment. I never have been able to understand how to draw well in Blender, so perhaps SketchUp (and the associated massive library of free 3D models to get started) would be an interesting way to start.
For one reason or another, I spent quite a bit of Thanksgiving holiday time driving in my car alone. During this time I spoke audibly to myself regarding the governing rules necessary to render a field of hexagons that ulimately keeps a rectangular board-like shape, as well as allowing for height changes across the surface. What came out of these monologues may best be described as my 20 Theses of Hexagons, which currently encapsulate what I’m trying to do from a conceptual viewpoint.
Bringing in Google’s fabulous Protocol Buffers pretty much means I have taken care of the “Cell Properties” section. Board Layout and Coordinate System are next.
Being the “3-D Guy” on a project is exceptionally odd for me, and it’s a nice stretch to not be an architecture astronaut for a while. I am impressed on two different poles regarding 3-D programming: in one sense, it is incredible how much even at a low level is abstracted away and fairly simple to accomplish, and then from the artistic side I am floored to observe with more awareness the intricacy and detail that goes into selling a texture, model, fog, water, or shadow using sublime yet somewhat primitive tooling and architecture.
I haven’t had to do so much coordinate system math in ages. One of the most computationally interesting aspects of my hexagon plan involves the scales of the coordinate systems, which actually have become slightly non-Cartesian from an academic standpoint, as the scales on the two axes are proportional but not equal.
This allows the code to “walk down a side” of the hexagon without having to go outside of natural numbers to describe the coordinates.
In other words, a line between (0, 0) and (5, 5) on a Cartesian plane would be 45 degrees above the x-axis. In my program the same measurement would be 60 degrees to account for the natural angle of a diagonal (regular) hexagon side.
It’s all pretty neat. Hopefully I can make some decent strides toward actually rendering contoured terrain soon…