Striking is integrated!

Striking is integrated!

Hello folks!

I’ve finished the reintegration of the new striking physics back into the game! Now you are again able to build up your hole and play it to your hearts desire.

madness

madness2

madness3

Next up is changing the physical attributes of the ball depending on the surface it is rolling on, and adding the rotational forces back in from the curve maker. This weekend I will update the alpha build to contain the shooting mechanics back.

Then it’s back to AI!

Oh and later on I’ll elaborate on the plan for the alpha, and a bit more on the scope of the game.

Stay tuned!

Striking has been fixed for good!

Striking has been fixed for good!

Heyo folks! Long time no see!

Today’s update on Boss Golf is a short one.

After wrestling with the physics engine I was finally able to solve the striking for good on Boss Golf.

Before, there were issues where if you stroke uphill, the striking maker would crash by trying to do some funky impossible math. Then I got it working better, but the display wasn’t working as expected, and there were still some edge cases that made things all kinds of wrong.

But now, finally, it is done. The striking is working perfectly; you can strike from any angle, from any distance, and it will always solve it according to plan.

shooting_fixed

Now that that’s done, I can reintegrate it into the game, and allow you to play the with your holes again!

There’s still some smoothing to be done when it comes to friction and whatnot, however, but that is easier to smooth out than the calculations for the striking proper.

So there you go! I’ll update the alpha this week with the striking. If you haven’t signed up for it, go do it now!

That’s all for now, folks!

New Home Page!

New Home Page!

Hello folks!

I’m pleased to announce the release of our new home page: Boss Golf

This page will now strictly become the development blog for the game. Our home page will now contain more information regarding release dates, testing, rewards etc.

In anticipation for the release of the AI demo, I’ve also decided to improve the pipeline for testing the game. Moving to a closed alpha system so that I can keep better track of how things are, and get better feedback from the fans.

If you are interested in alpha testing Boss Golf, please check out the information on our closed alpha page!

That’s all for today, folks!

Interface Update for Terrain Demo

Interface Update for Terrain Demo

Hello folks!

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:

paint_brush_one

paint_brush_two

paint_brush_three

And the new grid overlay, which makes understanding the terrain slopes even easier:

terrain_editing_update

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!

Enjoy!

Terrain Tools Update!

Terrain Tools Update!

Hello folks!

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:

decor_tool

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:

prune_the_stuff

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:

drag_one

drag_two

drag_three

And for painting:

paint_one

paint_two

paint_three

And finally flattening:

flattener

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.)

Miles and Miles and Miles

Miles and Miles and Miles

Hello folks!

Quick update on the implementation of the new terrain for Boss Golf!

Look at this:

miles_and_miles

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.

Stay tuned!

Terrain Sculpting

Terrain Sculpting

Hello folks!

As I’ve said previously, while coming up with the concept and the systems for AI, I’ve also decided to rework a bit of the terrain features in order to make it smarter and improve performance.

So I’m almost done plugging in the new terrain system into the game. This time around, I went a bit smarter with my separation of concerns. The current system in the game features a breakdown of the mesh into tiles, quads, triangles, vertices, all controlled by a single TerrainController script which manages the actions on each tile.

It works ok, but it’s a bit overcomplicated in certain areas, and too simple in others. The point that really sticks out is when it has to update the mesh after any alteration is done to it.

Basically, it is currently rebuilding the vertice/triangle/UV list every time you do an alteration. This isn’t ideal, as it contains loops inside loops querying data that hasn’t been changed to find the ones that have been. Plus the current system is also less conducive to having multiple chunks and altering between them. It would be fine if we just stuck to one chunk and made it massive, but that’s not ideal specially if we want really massive levels and easier to manage data.

So, enter the new system! This time around, I have a SmartMesh class who holds the reference to the Mesh component itself, as well as a TerrainChunk component that holds it all together, managed by a TerrainBase class that can decide how many chunks will be spawned and the dimensions for each chunk. Reworking the input management as well means cleaner code and easier to expand. Most important is that all vertex data is held by TerrainVertice objects, which can be directly accessed either y the TerrainChunk or the SmartMesh. The SmartMesh also generates a mesh on startup of the position/index of each TerrainVertice. So what dos this mean?

It means that when a TerrainVertice is changed, it changes its position, and it tells the SmartMesh which index of the vertex list needs to be updated. This is done, and the new vertex list is assigned to the Mesh component. Hey presto; no more nasty loops within loops within loops!

Similar concept will be applied to UV and other aspects of the terrain. So the end result is a cleaner system that’s more manageable. I’ve also picked up more knowledge as I’ve progressed with development, and it has been ideal to implement it now.

Oh, and you’ll also be able to “sculpt” the terrain better, and I’m also reworking the height limitations of the course so you can have nicer features. Check out the simple demo below:

terrain_painting

You’ll be able to “paint” the heights with the new tool. (Also keeping the old options too for those who prefer them). And since the vertices are easier to manage, I’m also updating the height limitations to give you more freedom to build taller things, and smoothing out the process: if you move a vertice too far above a threshold, the neighbouring vertices will also move up, creating a more organic flow.

I should be done with this work by the weekend. At the same time, I’m also implementing the AI system, so stay tuned for that too!

Tomorrow I’ll make a post about the memory system!

Have a nice day, folks!