Server will be up on irc://irc.newnet.net/CodeJam for today's meeting: 18:00 GMT (2PM Central in the USA) until whenever people all leave for the night.
Still working on my update to the Mine Carts Test. Figured out what I have to do to make it run, turning things into HashSet<T> from List<T> currently and altering some code to make use of it. Trying to figure out how to get rid of int32 ID numbers entirely. Might only do that for Tracks though since for the TrackGroups it is easier to use IDs and I have code in place to reuse empty TrackGroup IDs but not for Tracks since it seems like it might be a pain in the rump to keep a "Destroyed Track ID" List populated. With a Track's neighbors now being referenced directly instead of by ID number, and with HashSet having a good
.Contains(T) method, I should be able to convert Tracks over to a non-ID specific format that would allow for RAM-limited numbers of Tracks to be created at one time.
On to another section of interest then:
Terrain GenerationI think that I can have a base data type for the Toxels (Textured Voxel Blocky things) soon. I am thinking about how to set up the generation of it though. I was thinking primarily that I could do things in this order: Initialization -> Basic Heightmap -> "Subterranean Cave Pockets" -> Water Erosion via precipitate* -> Terrain Smoothing -> Finalization.
*For the water erosion I was thinking of temporarily "breaking" each cube into like 1000 smaller cubes and do the erosion on that. Assuming each Cube is one cubic meter then each sub-Cube would be 10 cm x 10 cm x 10cm. Each sub-Cube would be made up of the same base material as the whole cube with said material's erosion resistance value. During the erosion cycle the precipitate would flow over the top layer first, erode a bit and form small channels that would direct the flow. More and more precipitate would flow through and erode a bit more each time.
This is what I was thinking of when I started writing up stuff on the idea:
Front view of precipitate erosion through a constant material type
Stage 1: Initial flow - No erosion has occurred and the material is unchanged from its original state
_ _ _ _ _ _ _ _ _
| . . . . . . . . |
| . . . . . . . . |
| . . . . . . . . |
|_ _ _ _ _ _ _ _ |
Stage 2: Slight erosion - A small channel is forming in the center along the flow path of the precipitate
_ _ _ _ _ _ _ _
| . . . \_/. . . .|
| . . . . . . . . |
| . . . . . . . . |
|_ _ _ _ _ _ _ _ _|
Stage 3: Moderate erosion - The channel widens to accommodate the larger amount of flow being guided into the channel
_ _ _ _ _ _
| . . \ / . . |
| . . . \_/. . . .|
| . . . . . . . . |
|_ _ _ _ _ _ _ _ _|
Stage 4: Deep erosion - enough flow has gone through the channel to create a chasm in the material, resulting in a sheer face
_ _ _ _ _ _
| . . \ / . . |
| . . .| |. . . |
| . . . \_/. . . .|
|_ _ _ _ _ _ _ _ _|
Those 4 stages are just the start of the erosion system that I dreamed about last night. Sub-Cubes will help this a bit because it takes a lot less flow to begin to deform a 10cm by 10cm by 10cm volume then it does to deform (by the same percentage) a 1m by 1m by 1m volume of material.
Im gonna get back to work on the Track stuffs but I'll check in again at least once before the meeting starts! If anyone has any ideas about this that wants to share them before the meeting please respond here so I can think of a snappy comeback by meeting time >.> heh (jk, probably, unless you are really abrasive then a witty remark is warranted
)
EDIT!!!
Was just informed that I didn't ask for specific feedback about Terrain Generation so here goes:
1) Do you think this is a good approach to Terrain Generation in general?
2) What would you add/remove/change to make it better?
3) Any ideas to how I could go about making those subterranean cave pockets so they look natural without requiring water access through erosion?
4) Anything else that you can think of that might fit with the mechanics of Terrain Generation?
Okay, those are all the questions I can think of at the moment.