Steady Progress

It has been a while since the last post, but don’t worry, we are still making steady progress. Bugs have been fixed, code has been rewritten, and even a few new features have been added. And the game continues to feel more like a game.

The first major change – almost every model is now an original model. Only the villager and iguana models are taken from the asset store. The world now looks consistent.

One of the major behind the scenes efforts was a change to support loading definitions from json files. The types of structures, the different items and the various plants. Almost everything in the game is defined in a json format now. We’ve also added the ability to reload these definitions at run time, which allows us to experiment with gameplay without being forced to reload the game. It also simplified a lot of the code, and will pave the way for modding.

  {
    "Type": "ItemDefinition",
    "Name": "IronPickaxe",
    "WeightPerUnit": 100,
    "ItemTypes": [ "Pickaxe" ],
    "Recipe": {
      "Type": "BasicTools",
      "WorkToComplete": 200,
      "RequiredItemTypes": [],
      "Ingredients": [
        {
          "ItemDefinition": "IronOre",
          "Quantity": 1
        },
        {
          "ItemDefinition": "WoodShaft",
          "Quantity": 1
        }
      ]
    }
  },

We also needed a system for displaying alerts to the user. “You are running low on food.” “You need more wood to build that house.” “Frank is on fire.” The alert system is in place, but only has placeholder alerts for now that allow us to test the functionally. A real user isn’t going to care if the hour is odd or even.

Growing and harvesting crops is one of the features we’ve added. A tiled area can be designed as a crop field. The field can be rotated and doesn’t have to align to the world. Your villagers will till the soil, plant and water the crops, and then harvest them when they are ready.

There is now a main menu that looks passable, and allows you to load an existing game or start a new one.

The basic versions of save/load in the game are also added.

In the from the ford universe we want summer to have long days and the winter nights to be long. The original approach to accomplish tried to model the real world, and use tilt on a rotational axis. This was way too much work. Instead we went with the flat earth model with a sun that orbits the flat earth and changes speed based on the time of year and time of day/night. Just a little bit of math.

Most of our testing originally involved a single villager. As soon as we added more to the mix, all kinds of problems came up. A reservation system was built to allow villagers to reserve a tree, a structure, an item they want to pick up. This ensures that two villagers aren’t trying to do the same thing at the same time.