This is a set of three shots of my work in progress, imaginatively titled
'Squiggle' for the time being. The bit I'm proudest of is the surfaces (as
shown in all the shots) which can make landscapes (with overhangs and caves
and even complete tunnels) [bottom right], large lava filled caverns [bottom
left, just] or my personal favourite, the asteroid (blob?) in the middle.
They are all completely procedural, and small sections of them can be
regenerated on the fly, which allows bits to be blown away in explosions (or
added, if you can think of a good excuse to add to the landscape - a volcano
perhaps?). The basic principle of it isn't new - though I don't know what it
is supposed to be called - it isn't marching cubes, I know that - you have a
volume of points, either inside or outside the surface, and you make a
really boring, simple, axis aligned mesh of triangles that divides the
'inside' from the 'outside' (not marching cubes - just surround each point
on the surface). Then to get a smooth result, treat the edge of each
triangle as a spring, take a deep breath and let go :o)
The bottom left shot also shows off my GUI, which is pretty and functional,
and was surprisingly easy to write. Most of the program behind it is
entirely mine, from the Vec3f class upwards, and it took a while to get
going seeing as this is my first serious attempt at OpenGL. Other libraries
I do use are:
OpenGL for graphics.
DevIL for texture loading.
SDL for windows and input handling.
And, natrually, a small handful of TOTDs or COTDs, non of which are quite
in the same form as when they were posted.
My thanks to all the patient people in #flipcode, and even one or two of
the impatient ones ;)
My aim, as a means of testing all my libraries and things, was to produce a
finished game, and then post that. I had in mind a 3D version of the classic
'angle and velocity' type game (ala Worms). Unfortunately, I am leaving the
country (and my computer) for the next 5 months or so, and rather than let
this sit gathering dust somewhere I thought I'd share it with the world. It
is running in Linux at the moment, but I do my best to make it portable.
Plans for the near future include models, using
(http://cal3d.sourceforge.net), sound, using
(http://audiere.sourceforge.net) and physics, using my own (yet to be coded)
engine. And then in the afternoon . . .
Any comments and feedback are welcome :)
Andy Newman (aka Squint)