So I’ve figured out how to improve the interface for the new terrain controllers for Boss Golf, and I added a button to display a grid overlay on top of the terrain, so that you can better gauge how it all looks!
Mainly, the painting tool now has an overlay on the terrain letting you know the area that will be affected. You can see it in action in the gifs below:
And the new grid overlay, which makes understanding the terrain slopes even easier:
That’s it for today’s mini-update! There’s a holiday coming up this week, which I plan to take advantage of to further the development of the AI in the game. Still hopeful to have little AI golfers walking around the course and playing a nice game of golf!
Oh yeah, and as always, you can find the updated demo Here!
I’ve finished coding the improved terrain system and the actions. Now all that’s left is connecting it to the UI!
But first, I’ll give you a preview of what’s coming. First, you have the good old drag to place the decoration:
Select the tree type, drag the tiles and the trees will be placed. Each tile can support up to 4 decoration pieces. Adding anything after that will result in the decorations simply being shuffled around.
If you want to fix it up, I’ve added a trimming tool that currently removes the last placed decoration object from the tile:
Later, I’ll make it so it actually aims at the decoration object you’re aiming at and removes that.
Then, for elevating the terrain, I’ve reworked the previous options to use the vertex directly. For altering the elevation directly, you can either click and drag (for fine-tuning), or simply click and hold (for painting). For each of them, you can choose between 1 vertexes, 4 vertexes (a tile), or 16 vertexes (the tile and the neighbours) as below:
And for painting:
And finally flattening:
As you may have noticed, the decorations nicely go up and down as the elevation is changed. This is part of the update to the decoration system, which makes it work much better than before.
So that’s what I’ve been working on this week! I’ll finish hooking it all up to the UI tomorrow, and perhaps release an updated version of the demo so you can try it out. And then go back to the AI implementation!
(Ah! Forgot to add: I’ll be turning off the water tile for now as it’ll need a deeper reworking. I’ll just replace it with a regular blue tile so that you can still plan on how the water would feel.)
Quick update on the implementation of the new terrain for Boss Golf!
Look at this:
That, my friends, is a massive terrain composed of a 20×20 grid of chunks, each chunk containing 16×16 tiles. That’s roughly 102400 tiles. All much more easily manageable, and with better performance than before. Now I can actually make the terrain surrounding the golf courses so that you no longer can peek at the end of the world!
As explained before, this new system relies more on preprocessing the grid data, so that alterations to vertices and UVs are much more quickly resolved than before. No more loops inside loops inside loops!
Just finished implementing the UV mapping to it, as well as the mapping of surrounding tiles and vertices. No seams when you move vertices between chunks. Already have some plans for new terrain tools too, to give you more possibilities when editing your golf resort course!
Next up is connecting it to the existing controls, and changing how the decoration system works so that placement is handled better and performance is improved.
Another task bites the dust! This time, it’s the possibility of raising/lowering a tile independent of neighbours!
This will allow you to create some nice breaks in the terrain! You can see the functionality below:
As you may notice, you can also move vertices independently after raising a terrain tile. However, they will snap back to normal if they come in contact with another vertex. So as it stands, you need to work the terrain a bit if you want to move things around in a cool manner.
But I thought of a new solution for the vertex height. Instead of using by point, which is kind of hard to know which face you’re actually mostly touching, I could do it by face corner so that I could implement a “independent” lifting based on it, so you wouldn’t need to move the entire face first before getting the freedom to move the vertex. It’ll depend on people’s feedback, as usual!
So there you go! Now only the water system and the putting to go for this week’s tasks!
See you guys tomorrow!
This quick update is about the flattening tool. In the previous incarnation, it was a bit confusing as to how it was actually doing the flattening. Some thought it was averaging, some thought it was going to the max/min of the quad.
In actuality, it was dependent on the vertex closest to your click. Which, looking back now, while functionally good, it wasn’t well represented by the controls.
So, I’ve changed it so that it will flatten the quad to the highest vertex. And I also made it compatible to dragging, as you can see below:
It is always based off of the highest vertex on the first selected quad. Works like a treat, though processing it can be a bit laggy in some cases. I’ll take a look at optimizing it later if we end up going with it.
The vertex and tile height controls will remain as is, as they offer a very good control with the way they are. I envision users using the flatten tool to make a larger area flat, and then using the vertex/tile tools to further refine the terrain as they wish.
Next up; water! Have some ideas about how to tackle rivers/ponds, and am going to begin working on it now. This weekend we’ll have an awesome demo with a lot of new stuff compared to the previous one! Once I can make terrain editing/course building fun, that’s already half the battle!
Thanks for reading!