Contracts and Objectives!

Contracts and Objectives!

Hello folks!

Today’s update on Boss Golf is again on the financial side of things: Contracts and Objectives!


Contracts are something that will be featured heavily in Boss Golf’s campaign mode. Every golf resort you get the chance to manage will come with an accompanying  contract, which sets out the duration of the term, the salary your character will receive for his job, and the Objectives by which your management performance will be measured.

In the campaign mode you will have the chance to manage multiple resorts at the same time, flying between them for the occasional changes and tweaks and important events. Keeping an eye on the contract will let you know how close you are to fulfilling the expectations of the board, in order to guarantee a renewal or an extension, continued business. As the owner of the wanna-be premier golf resort tycoon company, you’re only as good as your customer base is!

In the scenario mode, as well as for the demo of the game, your contract will become the single list of objectives to fulfill in order to achieve a victory. Think of it as a bite-sized version of the campaign mode, for when you just want to manage a single resort up to stardom, or try different ways of achieving the same objectives.

The current implementation features a struct that makes up your Contract, attached to the resort you are currently managed, and a class for Objectives, which is inherited and connected via an interface. This allows me to design a great number of objectives that can be attached to any contract, and make them as custom as I want them to be, and as easy to implement. When using the scenario editor, you’ll be able to choose the contract objectives you want, as well as tweak the parameters to what you think would be interesting values.

The current list of objectives contains:

  • Monthly Revenue: Reach and maintain a minimum monthly revenue
  • Yearly Revenue: Reach and maintain a minimum yearly revenue
  • Membership: Reach a minimum number of members for the resort
  • Daily Attendance: Reach a minimum daily attendance
  • Average Daily Attendance: Reach and maintain an average daily attendance
  • Monthly Attendance: Reach a minimum monthly attendance
  • Average Monthly Attendance: Reach and maintain an average monthly attendance

All of these can also be further customized in terms of time limits and whatnot. More objectives will be added as the ideas appear/suggestions are received!

So for 0.4, you’ll be able to play through the game with a basic contract and goal in mind. Achieving that contract means a winner is you!

Of course, there’s still many more systems to come. Last for 0.4 will be overhauling how the decorations are placed, to keep in line with the slow way of doing things. Trees will be given the option to be bought either as a sapling, growing over time, or as a full grown tree, which costs a lot more but is already done. You’ll also have more control over the placement, being able to put them exactly where you want them to be, and the little landscaper will go in and plant them for real. (until that time, they’ll be stakes placed on the ground!).

This should also make you more carefully think about removing a specific tree. Perhaps adding an option for moving a tree to a separate area instead of simply removing it could be worth investigating (later, of course!).

Stay tuned for more updates!

A Loading Screen!

A Loading Screen!

Hello folks!

Today’s update is about quality of life in Boss Golf!

One of the feedback we’ve received constantly regards the launching of the game. Since it goes pretty much from a black/white screen straight into the game, and the loading/processing of the terrain can take a while, some testers thought that the game had crashed upon loading. Which isn’t a very good impression!

To fix that, I’ve spread out the loading/generation of the terrain over more frames, which reduces the processing time by a bit and actually makes the whole thing responsive. And tucked it all away behind a nice loading screen, reminiscing of the Sim games of yore!


I’ve also decoupled the processing from the start method and put it in a proper component to manage the game state. This way, the resort can be reused whenever possible to illustrate other resorts you may visit/manage at the same time. Gives me more control over when things are supposed to load too!

Of course, no implementation is ever perfect! While implementing the new loading, I ended up forgetting a couple of functions that led to this very interesting albeit unpractical golf resort!


Walls, walls everywhere!

Though I’m certain a certain tycoon would be quite fond of this…

But that’s it for today!

Tomorrow I can finish off the contract/goal system, hopefully, then add in the new placement system for decoration, giving you more control over where you will put your trees. A couple of small tweaks here and there, and Alpha 0.4 will be ready to go!

Stay tuned for more news!

Money Money Money!

Money Money Money!

Hello folks!

Today’s update is about money!

I’ve implemented a system for tracking the finances of the resort, based on transactions and their types, and re-added the cost to placing tiles and playing the holes.

Now once the player approves a zone, the amount is charged to the bank account, and the landscaper goes to work. Players are allowed to go in debt (up to a point!), as long as they fulfill their contractual obligations!

Accordingly, players are now able to set the fee for their course. They’ll be able to choose green fees, hole fees, membership fees, and all other manners of income streams. Changing it too often might anger your regulars, though!

And for some polish, added particle effects whenever money is spent/gained:



(If you look closely on the first screenshot, you’ll see some new UI buttons!)

So now money is in, you have basic ways of earning it, plenty of ways to spend it. As I mentioned before, you can go in debt, as long as you keep to your contractual obligations. Therefore, the next step after implementing the money will be to implement goals! These are the conditions for” winning” in a scenario, and for continued work in the regular campaign mode. I plan to make them as varied as possible and easy to work with, so that creating custom scenarios will be a breeze.

This will also bring Boss Golf closer to what I envision to be the end of Alpha: when I’ll have a playable vertical feature complete slice of Boss Golf, which will serve as the demo version of the game. Still a couple of version until then, but progress is coming along well!

Stay tuned for more!

Landscaper at Work!

Landscaper at Work!

Hello folks!

As part of slowing down the pace of gameplay and integrating the management aspect of the game in Boss Golf, I’ve finalized the primary implementation of the AI for the landscaper as well as changed the system for laying down tiles to make him place them!

Until now, you’d plop down a tile, and it would immediately affect the environment. This would let you create a massive resort at a too quick a pace. There was no incentive for careful planning, and it wasn’t an action you could think twice before committing to.

All of that changes now with the Landscaper and its AI. The new implementation, which will be rolled out to the other building features in the game, delegates the act of changing the landscape to the AI, and works on a system of orders.

Players will now draw the areas like they did before; instead of immediately affecting the environment, an overlay is added and an order is created. The players can then view this order’s characteristics: price, time to finish, area etc. They can modify this overlay/order with the bulldozer tool, to trim things they ended up thinking twice over. (Editing of the height of the tiles is still free and can be performed at any time, instantly. Since this is a very vital part of finetuning your golf course, I thought it better to keep it that way)

Once they are happy, they can simply Approve the order, and the landscaper will get around to effecting it once he has the time to do so. Like in the animations below:

Player places zones for fairway and bunkers.
Doublechecking the orders, the player approves the work to be performed.
The lonely landscaper hard at work. Having more of them will get things done faster! (At a cost!)

Pausing and Resuming has also been reworked to match the new gameplay style. Time now flows at a constant rate, and can be paused whenever you wish. You can’t make time pass by faster; later, however, you’ll be able to go on “holiday”, and the Resort will autosimulate and resolve the events of the day until you come back, or while you are managing another resort. The timescale for the day still needs some tweaking, but that is simple enough! (Also, really cool to pause the game as the AI takes an awesome shot, and just seeing the ball lying in the air, waiting for time to unfreeze!)

Oh! And you are also able to set the working hours for your resort. This will impact your running costs later, but right now it controls when the landscaper will be at work, as well as when the golfers are able to be spawned on your resort!

That’s all for today, folks! Next up is connecting the money (receiving from the AI and spending on building), and adding more management. Perhaps the goals would be a fun thing to have!

Stay tuned for more!

It’s a clubhouse!

It’s a clubhouse!

Hello folks!

Happy new year as well!

Today’s update is about the clubhouse, the first building available in Boss Golf!


The main function of the building is controlling AI access to the course. It knows which AI is currently playing, the capacity for people on the course (which will be tweakable later), and decides when to spawn a new player. In the screenshot above, you can see 3 AI golfers just loitering around the clubhouse, as their idling/golfing routines haven’t kicked in yet!

For now, the clubhouse is placed randomly, and cannot be moved/removed. Accordingly, the terrain where the clubhouse is placed cannot be raised/lowered. You’ll also be able to click on it as a shortcut for the information on your golf resort, which is useful for aspiring golf tycoons.

As the gameplay systems expand, you’ll be able to tweak membership, decide on prices, course opening hours, all sorts of little things through this main building, as well as expand it, change its appearance and whatnot.

For 0.3, I’m working on the saving system and on blending the player golf gameplay with the AI golf gameplay. Your character will have to queue up for the hole like any AI character does, and you’ll get a notification letting you know when your turn is up! With the save/loading, you’ll be able to continue working on your course as the alpha progresses too!

That’s all for now, folks! Hope you have a great new year!

Look who’s playing now!

Look who’s playing now!

Hello folks!

Today’s update, is about AI gameplay!

After integrating the basic state machine for the AI, I’ve also added a function that allows it to take a very simple shot (basically, aim at the hole, hit as hard as it can inside the distance to hole) and, as a result, the AI in Boss Golf can now play golf!

For the test scene, I’ve built a course with 4 holes:


The holes are all connected by their tee at the center. Spaced them out this way to remove other potential interference. I also added two golfers: Liger Forest, and Ryu.

The holes now have an option to open or close them. Opening them tells the AI they can be used for play. The AI will then queue up for their turn at the hole, and play it when the player in front of them has finished. And it all works!

For debugging, you’ll see a yellow line which marks the path that the AI wants to take, and a purple line which marks the direction of the stroke.

Here you can see the Liger taking a basic strike:


And at another hole, Liger teeing off:


And here you can see both golfers playing on separate holes:


It’s in. Now there’s some work to be done on smoothing out movement and fixing some collision problems. But the basic skeleton of the system is there. Once I add saving/loading, I’ll update alpha to 0.3!

Stay tuned!

Pathfinding and more!

Pathfinding and more!

Hello golfers!

Today’s update for Boss Golf is about pathfinding. Well, part of it.

I’ve added a new tile type, Path, that allows you to build more scenic routes through your golf course, that the AI will use when deciding how to go from point A to point B. You can see the tile in the course below:


Next step is to add this to the pathfinding system, so that the AI actually prefers to use it. Should be done with that this week.

Under the hood I’ve also done some other improvements:

  • Created a vertex bank so that editing it is quicker, there’s no more issues of double vertexes, and is it far easier to save/load.
  • Changed the height system to one using an integer to decide the HeightStep of the vertex, and set a height modifier that I can change easily for tweaking that decides how much in Y each HeightStep is worth
  • Removed the current component for the decoration objects, which was causing some overheard when there were thousands of decoration objects on the scene. Instead, added a simpler class that pretty much works as a struct to keep information, and modified the way that the randomization of size/rotation/position is done to use integers so that I can more easily save/load the details of the decoration
  • Began reformatting a couple of things so that I can actually save and load the stuff that is being built

As such, the goal for Alpha 0.3 is:

  • Save and Load capabilities
  • Pathfinding system for the AI
  • Golf gameplay for the AI

Meaning that Alpha 0.3 will be quite a vertical slice! You’ll be able to build your course, play it, and watch the AI go around trying to score something good. The game is coming along well!

I’m getting my winter break soon as well, so expect a major rush of progress this coming week!

That’s all for now, folks! Enjoy your holidays!