This week started with a bit more AI, in particular decision making for guests. There’s a ton of decisions they have to make (“Do I want to go on this ride?”, “How much am I willing to pay for this burger?”, “Where should I go next?”, …) so this is somewhat of an ongoing task for the entire duration of development.
AI is quite interesting to do and important to have, but it’s all under the hood - I felt the urge to also work on something that’s a bit easier to show for a change. So I made guests raise their arms on flat rides if they’re enjoying it:
Next, Garret requested a terrain leveling tool. The main challenge turned out to be finding a proper visual representation for it. We started with a simple plane that’d show how high the terrain would be after terraforming:
This turned out to be super confusing though - although you can somewhat forsee the result of the leveling it’s hard to tell which tiles are actually affected, especially when leveling somewhat higher hills.
So we tried highlighting the affected tiles instead:
This felt much better! It doesn’t tell you the final height, but you can easily see the affected tiles. The terrain gets flattened to the height at the location where you start dragging, and since you know where you clicked this is alright. The rendering of the highlighted area was quite buggy though as you can tell from the gif (notice the flickering and how the edges of the highlighted area get stretched). After using a different method for the highlights we ended up with our final version:
Lastly I started writing some calendar code for tracking the current season and how long you’ve been playing the park. We thought it’d be neat if the lighting changes depending on the time of the year - it’s just an experiment so far and will need more work, but this should give you an idea (sped up for demonstration):