This week was the final programming week as I stated in my last blog post. Of course I stated I’ll continue working on it after finishing my school stuff, but this is what I got for now.

Things done:

  • Improved natural placing of stuff using Poisson Disk Sampling (lots of work to get that to work on both Red Alert and Tiberian Sun, as they use different coordinate systems)

  • Created an “occupyMap” which can tell which tiles are occupied in the map generator and which are free. This is used for example by cliffs to tell where they can be placed

  • Added cliffs! Yay! Some screenshots:

Cliff range next to starting base

Some cliffs in between players

Straight cliffs with jitter=0

Crazy complicated cliff range with max cliffs and cliff jitter

Adjustable settings for cliffs:

  • Amount of cliffs
  • Average size
  • Size variance
  • Jitter (Chance of taking a turn instead of going straight)

My main feedback I kept getting was that maps were too empty. I’m hoping cliffs will make things a lot more interesting. You can now make chokepointy maps, or just maps where cliffs make some natural walls. Note that there’s currently no guarantee that you can reach your enemy. But that should only be a problem if you make some maps with insanely large cliffs.

There’s still a problem with a single tile. Almost every one of the standard cliff tiles fits in a 2x2 area, but this one is 2x1 and needs an offset to fit to the other tile. I’d have to make a whole new offset subsytem just to support this tile! What I’d like to do is send it back to the graphics artists to fix, but I don’t think they would care anymore since they made it in the ’90s. So that’s a thing I’ll have to fix later.

Other stuff I want to do of course is water, paths, rivers and such. There’s also interesting stuff I can do by extending the “occupyMap”, like using it to place cliffs around player spawn areas and such. But I’ll look into that later.

Anyway, I’m gonna fix some of the last stuff now and then work on my documentation. Next week I’ll have to finish my research, and the week after I have to reflect on my work and sins. Deadline is two weeks. ‘till then.