So, finally I’ve posted what will be the last release for a while. For my initial concept of this experiment, it is pretty much considered “done”. I could add and tweak things forever but it wouldn’t get me any closer to a game.
Also, some of the things I could add would make the code even more complicated to follow. For example, mutable terrain is no big deal except that suddenly I have to implement terrain caching, etc. which obfuscates things and causes more sharing between zone implementations than exists now. Right now it’s nice because the zone implementations are pretty independent and IsoTerrainZone is especially straight forward since it just grabs density data and generates a mesh. No worries of pulling mutated data from a cache or from storage, etc…
Anyway…
The big change in this update is the trees are now using instancing. This may be slightly slower on some platforms but the memory usage is much better. Furthermore, I can load all LODs at once for free and just switch between them. When I was batching, I rebuilt the batches every time the LOD changed. So now even crossing from one zone to the next should be much cheaper.
Here are the download links again:
https://simsilica-tools.googlecode.com/svn/trunk/IsoSurfaceDemo/release/IsoSurfaceDemo-Windows.zip
https://simsilica-tools.googlecode.com/svn/trunk/IsoSurfaceDemo/release/IsoSurfaceDemo-Linux.zip
https://simsilica-tools.googlecode.com/svn/trunk/IsoSurfaceDemo/release/IsoSurfaceDemo-MacOSX.zip
Note: since google code is dead now you’ll have to build from source here: GitHub - Simsilica/IsoSurfaceDemo: Technology demo of the IsoSurface terrain library.
…until I get around to pushing a new release up.
Controls are still the same as in this post:
http://hub.jmonkeyengine.org/forum/topic/isosurface-demo-dev-blog-experiment/page/2/#post-289215
…except now you can also hit “p” to fire a projectile.
Oh, and I added video recording. F12 toggles video recording on/off.
Bugs of note:
-really the only one I can think of is that the grass doesn’t always sort properly when it’s in the adjacent tile. As you move around it’s supposed to resort the grass based on your current location. For adjacent tiles it’s only supposed to do it when their relative grid position changes… except when you are close and then it will sort them always. So I think some interaction is causing them to not sort when they are supposed to. At any rate, the visual issue is that the grass looks like it did before I fixed sorting and then will suddenly pop in with correct sorting. A relatively minor issue.
Fun ways to play:
In addition to the bug’s eye view mentioned in a previous post, I’ve found that setting walk mode on but then running around with ctrl-shift pressed can be quite fun. Quickly finding the paths that can be traversed and/or seeking high-ground to jump across large valleys can be quite a challenge… but it’s a skill that improves with practice. Earlier tonight I even managed to on-the-fly jump from one tall hill, skip-bounce on a floating island, and continue on to the next hill… it was exciting enough to make me ‘whoop’ out loud.
This is encouraging because the original game idea was some kind of hover-bike racing game. I would do the terrain a little differently and have more and larger trees… but it’s nice to know that even in this primitive form the rough mechanic is still kind of fun.
Might as well load this post up with some screen shots, too: