24 Jun

Week 12 Recap

Looking Back

Once again I have mostly discarded my plans for the week. But still, the results are positive. I really wanted to get another slight visual upgrade done. Some weeks ago I changed the terrain geometry to pre-built blocks. Previously, all geometry was basically made up of unit cubes which were further split up into smaller parts, which could then be slightly offset to give the terrain some detail. Modern hardware has little trouble with this brute force approach but I required the more flexible building block method, anyway. An unsavoury consequence was a very flat and repetitive look of the ground. The current iteration uses tri-planar mapping of normal splat maps in a custom shader, which adds back some nice detail at very little cost (except some nerve-wracking wrangling of shader code).

The biggest deviation from my plan was that I decided to leave the task overview for a later time. It is not currently relevant, as there are much more pressing issues to resolve and try out. Therefore I gave the building system a shot. Check out a very early prototype, here:

It is done using uConstruct which takes a big load off of implementation time. After getting acquainted with it and writing some interaction code, the definition of a simple structure as seen in the video was pretty much done, already. I still need to beef up the system a little, especially adding variably sized walls and angled elements.

Looking Forward

Next week I will continue with the building system. For the game, it should only produce a building plan / blueprint, which settlers will then build when tasked. I would like to get in nicer looking building elements and a suitable building task.

Thanks for reading!

17 Jun

Week 11 Recap

Looking Back

Finally! NPCs can now keep a camp fire going (the “pants on fire” issue will be solved, eventually):

Basically, the task makes characters look for combustible materials (e.g. fire wood next to trees), pick it up and drop it on the fire. The task appears simple, as I can describe it in a single sentence. However, it already incorporates most of the fundamental mechanics required for any other tasks. As mentioned before, this means adding additional behaviour becomes much faster now.

I also added an outline to the player character, whenever its top half is occluded by some large object. The last half of the video snippet above demonstrates it well.

Looking Forward

Still pending: Task overview. Another tedious user interface to implement. But it is important. I also need to clean up some more code around the task system and organize text fragments into a central repository. Next week’s update is probably going to be a tad boring. But we shall see…

Thank you for reading.

10 Jun

Week 10 Recap

Looking Back

Rainy days, productive days. The general concept for a task UI has kept me back for longer than I would like to admit. Eventually, I came to the conclusion that it would make sense to put everything on one page / view. Singular tasks should not exceed my complexity target of 5 concept units per (sub-)system, anyway. Take a look at the current prototype:

The main work flow of this design is based on task assignment by conversations. The more generic work flow of open tasks can also utilize this UI. I still need to build an overview of all currently issued and accepted tasks of players. Their own tasks remain tracked on the right hand side, but may be toggled for tracking in that new view (as in e.g. World of Warcraft). The whole UI still, let us be honest, looks like shit. However, that is not a concern until it is functionally complete.

Looking Forward

The task UI is still a bit of an empty shell underneath. To make it mostly viable, I plan to add the following parts next week:

  • Add overview of tasks and display it when task menu is called from circular context menu
  • Actually create actionable character tasks from the menu

Also, I keep getting lost in dense forests. For the target picking functionality I have integrated a highlighting component which draws nice outlines around objects. I might use that to highlight the player character and some other objects when they are occluded by stuff inbetween them and the camera.

Once again, thanks for reading and until next week!

03 Jun

Week 9 Recap

Looking Back

What a slow week… Pollen attack! Fucking hay fever, lack of sleep and too many distractions. The task UI is still just a concept. It required a semi-functional conversation system beforehand, anyway, which I can claim to have implemented at least.

Prototype of conversations in game

Prototype of conversations in game

The options are already wired to actions, such as ending the conversation and triggering the currently empty task view. The selected option in the screenshot (“How are you doing?”) will at some point provide insights into settlers’ needs, which should inform a player’s priorities or even create new player tasks directly.

The task UI will be quite a beast. I have tried to imagine how it would look, but it turns out that I need to make it work for two work flows. Firstly, tasks can be given directly to settlers, as seen in the screenshot (first option). This consequently requires opening a task view where the current settler is the default and unchangeable assignee. The direct approach should be used by players for high-priority tasks which they need to have reliably completed. As a second and more commonly employed approach, tasks will be given out indirectly by posting them to the settlement at large. Any settlers willing to work for a given reward will then sign up for the task and start working on it. Thus, one way focuses on a settler, while the other emphasizes the task. At the same time, the implementation and workflow is reversed for each case. I will need to draw up an actual flow chart for this. The task UI is eventually going to be the most viewed menu within the game (probably rivalled only by the building mode), so it must be done properly.

Looking Forward

Well, this is easy: keep going on the task UI. The conversation system will also need some more work. I am still deferring the management of text strings (messages, menu labels, atc.) to a later time. I might need to get that in sooner, though, since yanking out all text into a suitable repository does not become more pleasant with time. I hope I can show off a little video sequence of the task UI in action next week. Getting one of those guys to gather some firewood is still the goal.

Thanks for reading and until next week.