I am still working on the game world grid components, and now more specifically, the map array which brings them all together.
The difficult part has been that, even though the player can only move on or between flat grids, I have long-planned for the grounds of the house to look more interesting. The net result has been to reserve some map array values to signify non-traversible parts of the landscape, and something less elegant for the handful of landscape grids which connect two or more elevations.
One purpose of all that effort, including splitting some grid squares into triangles, is to keep my options open if it turns out that it is more efficient to describe some landscape graphics with vector objects, rather than flat bitmaps. The more immediate purpose is to have a full wireframe ready for fixing the camera focal points before compositing such bitmaps.
While the point projection library which I wrote long ago isn't part of the game yet, it does use reasonably fast 16-bit integer maths. Progressing to wireframes will require Bresenham's line algorithm, already part of the game code, plus a routine to clip lines passing the edges of the projection window.Clipping is simply a variation on the line intersection problem for the point projections, but finding the solution may involve swearing. In summary: something old, something new, something borrowed, something blue.
Email: comments at arbitraryfiles.com