Tribe Of Pok: New designation system and Alpha 4

Alpha 4 is now available! This will be the last free alpha release, the basic gameplay loop/functionality is established and it’s time to move on to the next stage. Thank you to everyone who has given feedback so far, you’ve been a great help in shaping the game. There’s much more to do of course, and I will keep posting regular news updates.

Major changes:

  • New designation system – Lots of experimenting went on with the designation system. I was finding the current system for marking trees to cut, water sources to use, etc inadequate. It required too much clicking and didn’t suit the nature of the game. After a few failed attempts I went with a left-click-and-drag system, where the player can designate areas and tasks in any shape they want. To accommodate this, I had to change the previous left-click-and-drag to scroll the map to right-click-and-drag to scroll. A small annoyance, but I think it was worth it. DevUpdate20140711g
  • First step towards shaders – The day/night cycle lighting changes were previously “faked”, meaning I just drew a completely black sprite over the screen and adjusted the transparency depending on time of day. This was a problem because I couldn’t make the areas where fires were burning brighter. I’ve switched to using shaders for lighting changes now, which should allow for more flexibility in the future.
  • Pierce and slash damage – Animals now have individual pierce and slash damage values (e.g mammoths deal massive pierce damage while lions deal moderate pierce and slash damage). Clothing protection for each type of damage works properly now as well. It’s based on the body part hit so a helmet will only reduce damage if the head is struck.
  • Doubled length of 24-hour cycle – What a difference this makes! It feels like a better pacing and now when I reach winter, I am actually worried where the next meal will come from.

DevUpdate20140711i

Other changes:

  • First step towards animation – fires now flicker
  • Options menu changes now saved on game exit
  • Autosave function added to help with bug reporting (can be set to autosave every minute)
  • Fixed zooming in/out causing most UI elements to zoom as well
  • More tweaks to aggression system
  • Snare traps working – immobilises animals
  • Fixed music not looping
  • Bug fixes

I want to call the player’s tribe members something else besides “tribe members”, but not sure what… Pokkians? Pokkers? That sounds a bit rude. Open for suggestions.

By |July 11th, 2014|GameDev|4 Comments

Tribe Of Pok: Crafting overhaul and aggression mechanics

New crafting system – Using the workshop to build things was getting too clunky and confusing, so I decided to overhaul it. Now there is a crafting screen instead of a workshop menu. From the crafting screen, you can see all available materials near the meeting point, all build-able items and a list of current crafting tasks. It’s much easier to see whether you have enough materials to make something. To go with the new crafting system there are also Work Areas you can assign. These are just patches of ground where you want your people to actually do the crafting. If you don’t assign any Work Areas, they will just choose a random spot on the ground. Also you can build a tool rack where people will store unused tools, although I haven’t done the sprite for it yet and it looks just like the food pit.

DevUpdate20140607b

New aggression system – I forgot to mention this in the last update, all animals now run on a new aggression system. Previously animals would either run away or fight when faced with a threat, and would do the same thing every time. Now their decision can be influenced by different factors such as distance to threat and current health. This leads to more dynamic interactions between animals. For example a lion can start off ignoring a nearby mammoth. If the mammoth wanders close enough to be considered a threat, the lion charges at the mammoth. The mammoth might try run away at first, but if the lion gets too close, the mammoth decides to also charge at the lion. If the lion gets severely injured in the fight, it then changes its mind and starts running away. There are probably going to be weird edge cases with this new system that I’ll have to fix up as they appear.

Timeline – Surviving is nice and all, but I felt like there was no sense of progression in the game. To help keep track of the efforts of your people, I created a timeline that records any notable actions or events that happened each day. The timeline can be accessed under the “Tribe” management screen.

DevUpdate20140607c

Brains remember after saving – This one took a while to implement, I’ve been putting it off hoping it wouldn’t become an issue. Basically every time you loaded a game in the Alpha 2 version, none of the animals/humanoids would remember what they were doing and would recalculate their motives from scratch. Well the AI got too complicated for that, so now everyone remembers everything they were doing before the game was loaded.

Annual migration – On top of the usual animals wandering on and off the map, there is now also an annual migration that occurs during Autumn. Large numbers of certain animals will travel from one side of the map to the opposite side during this period (currently using Buffalo but that can easily be changed).

Snow and Ice – Snow and ice are able to form/melt based on temperature and weather rather than based on season. If your people get thirsty during Winter but all the water has frozen over, set a tree on fire and watch what happens to the nearby ice.

DevUpdate20140607g
Other minor changes – Animals produce more materials when butchered, UI tweaks, tutorial changes, camera zooming and lots of bug fixes

By |June 17th, 2014|GameDev|0 Comments

Tribe Of Pok: Alpha 2

Major changes for this version:

* New art for tiles and objects – This is the most obvious change. I haven’t found a decent way to draw non-stick humans while still being able to layer clothes on top of them and put objects in their hands, so will keep the stick humans for now. The way shallow water is drawn has also changed. Previously shallow water was a bunch of random blue dots. Now the shallow water is layered on top of the ground as a semi-transparent layer.

DevUpdate20140515Image1

* Proper day/night cycle – People will get tired faster during the night. During the day they only take naps. You’ll have to plan around this because if you give your people tasks during the night, they will wake up to complete them. It means you can chop down trees all night if you want, but the tree cutters will be taking lots of naps the next day.

DevUpdate20140515Image2
* Ambient temperature changes – Redone the way ambient temperature changes (with the old, buggy system it got to 350 degrees in winter – whoops!). Now temperature changes will match the day/night cycle properly and hover around freezing in winter.
* Water changes – I’ve tweaked the way water saturation works. Water saturation in soil now moves from higher ground to lower ground. I found that if you were unlucky enough to get torrential rain twice in a row, the whole map would flood and there was nowhere to go. Now the higher ground will generally be drier.
* Wandering nomads – Since it takes so long for children to grow into adults, I have implemented a way to get outsiders to join the tribe. Small nomadic families will wander onto the map and you can choose whether to allow them to join your tribe. It’s very basic at the moment and the nomads arrive on the map naked.
* Certain herbs and bushes cure malaria – These are indicated with a glowing aura around the plant. You can harvest them to get cuttings which your people will consume if they catch malaria.
* UI changes – Many UI changes to make events and functionality clearer based on feedback
DevUpdate20140515Image3

By |May 18th, 2014|GameDev|0 Comments

Tribe Of Pok: First Alpha Version and Profession Update

The past few weeks have been spent working on getting an Alpha version up and running. It’s easy to gloss over the little things when all you want to do is add new features! The main menu has been cleaned up, UI positioning fixed, hard-coded values moved to XML files and dozens of other uninteresting things.

The main change to gameplay is the removal of woodcutter and gatherer professions, leaving only the hunter profession. A tribe member’s ability to perform a certain task is no longer based on what profession you assign them. Instead it’s based on the tools they have available on their body. For example, let’s say you designate some trees to be cut down. Anyone who is currently carrying an axe can cut down those trees, regardless of their profession. As long as you have allowed that tribe member to carry an axe and he/she can find one, they can do any axe-related activities.

The tribe management screen

The tribe management screen

The reason I have left hunters as a profession is so the player can control which tribe members to put into harm’s way. A non-hunter will flee from an approaching lion, while a hunter will stand their ground and fight back. You can even use the tool assigning system to choose the weapons the hunter is allowed to carry, and they will decide themselves which is the best to use. This tool-based system makes sense in terms of setting as well, since people tended to be jack-of-all-trades instead of specialists in the Stone Age.

If you’re interested in trying out the first Alpha version, please register at http://pokingwatergames.com 

DevUpdate20140417Animate1

By |April 17th, 2014|GameDev|0 Comments

Tribe Of Pok: April Update Now With More Combat

Since the last update I’ve been working on the following:

Extreme weather events – The weather can now enter more extreme states. Torrential rain will cause low lying areas to flood, while heatwaves lead to raging forest fires.

Torrential rain

Torrential rain

Internal animal temperatures – An animal’s internal temperature will change depending on environmental factors. For humans, the normal internal temperature range is between about 35 and 39 degrees Celsius. Above this range they will have a chance to suffer from heatstroke. Below this range their condition will get progressively worse, going from hypothermia to coma and finally death.

Basic mineral mining/scavenging  – Your tribe will have to scavenge/dig in rocky areas to obtain raw materials such as flint. I’ve only added the basic functions for this at the moment but will give the mechanic more depth in the future.

Resource extraction – Options for only extracting trees, bushes, rocks or gravel added to user interface

Assign areas for extracting resources

Assign areas for extracting resources

Traps – Two different types of traps have been implemented. Ground traps can injure limbs and snare traps can capture any animals that step on them.

Optimization – Tweaked the way tiles are drawn and added multithreading to improve performance for large maps.

Combat mode – This is the biggest addition. In the normal game mode you can only give indirect orders that your tribe will decide how to carry out. With hunting, this means the hunters will charge a target animal and start attacking it without regard for any other factors such as attack direction or other animals in the area. I’ve added Combat Mode which allows the player direct control of hunters. While in Combat Mode, the player can now order hunters to move to a position and attack. The hunter will not do anything unless ordered while in Combat Mode. This change means I can make the environment more immersive, with mechanics such as being able to hide hunters in long grass or adding line of sight for animals. The player will be able to take these factors into account, making hunting more interesting.

Combat mode

Combat mode

By |April 4th, 2014|GameDev|0 Comments

Tribe Of Pok: Seasons, Soil and Weather

This month I’ve been busy working on visual changes based on season, terrain generation and many other smaller details. Also drawing objects to the screen has been optimized (the game runs 50% faster!). Here’s some more information on how the natural world in Tribe Of Pok functions.

Seasonal effects – Seasons are implemented and will have varying effects on your tribe. In general, fruit will grow plentifully in Summer and Spring but plants will be barren during Winter. This makes it important to consider when to harvest plants to make sure your food supplies will last the Winter. Harvest too early and all the food may decay before Spring arrives. Harvest too late and there might be nothing left to collect.

SeasonMontageLarge

Soil properties – The type of plants that can grow in a certain area is affected by factors such as soil level, fertility and humidity. Every time a new plant sprouts, it absorbs fertility from the soil beneath it. When the plant eventually dies, it will return that fertility to its surrounding soil. The net effect is that over time, forests will grow bigger if left alone. However if you cut down trees/bushes, they will not return their “stored fertility” to the soil. If the soil’s fertility level drops too low, then new trees will stop growing on it and you have a deforestation effect. Animal carcasses left to rot will also increase an area’s fertility.

Data overlay - greener areas are more fertile

Data overlay – greener areas are more fertile

Temperature variation – Each map has an ambient temperature affected by the time of day and current season. This ambient temperature is offset by current weather conditions and local map features (E.g raining will make it cooler, areas near water bodies tend to be cooler, while a fire will heat up an area). When it gets too cold, your people’s health will start falling. They may even catch hypothermia as a disease if exposed for long enough. To prevent this, keep tribe members close to a source of warmth such as a fire. Protective clothing such as fur boots and gloves will help reduce the rate of heat loss.

Winter

Winter

As a side note, a few weeks ago I heard about the recently released Banished. It’s a game that simulates the environment in a similar way to what I’m trying to achieve (your town gathers supplies to survive the Winter, but altering the environment has consequences). I’m really glad there is demand for these types of games, and it gives me all the more motivation to get Tribe Of Pok finished!

By |March 11th, 2014|GameDev|0 Comments

Tribe Of Pok: Hunger, Sleep and Predators

In this update I will discuss hunting, hunger and sleep mechanics, as well as a little about family.

To satisfy hunger, the tribe can harvest fruit from trees/bushes or hunt animals for meat. Foraging is simple, you designate trees to be harvested and tribe members will go and collect any available produce. To hunt, you designate a target animal, which your hunters will attack and attempt to kill. If they are successful, the animal dies and a carcass appears. You can either drag this carcass back to the main camp or butcher it on the spot. All food types decay and will eventually disappear, but putting the food in a pit will allow it to last much longer.

Hunting a group of deer

Hunting a group of deer

Hunting prey is the safer option, but you can also hunt down predators. Predators roam the map and may cause trouble for your tribe or kill off prey, so it’s a good idea to deal with them. The only problem is, if they’re aggressive enough, the predators may fight back…

Fighting a predator

Fighting a predator

Satisfying sleep is pretty simple at the moment. When tribe members get sleepy they will try find some bedding to rest on, but if none is available then lying on the ground will do. I plan on implementing some sort of mood mechanic, but haven’t decided how to do it yet. A tribe member’s mood would be affected by factors such as whether they had a comfortable sleep, injured a body part or had a family member die recently.

Speaking of family, that has been implemented as well. Every tribe member is part of a “family” within the tribe. If there is a male and female within the family, they may produce a child. Currently the male walks up to the female, talks to her and she becomes pregnant… I’m still working on this part. Animals can be part of a family as well, and will tend to stick together (until you start chasing them around).

OK, enough blabbering. Here is a gratuitous in-game video of lions at an all-you-can-eat buffet:

By |February 12th, 2014|GameDev|0 Comments

Tribe Of Pok: Establishing a water supply

You start the game with a small tribe on the edge of a procedurally generated map. The first thing to do is designate a meeting area for your people to hang out. Once they make their way to the meeting area, they will decide on the best thing to do next. The first complaint is that their waterskins are empty. Humans can drink directly from a water source, but prefer to drink from their waterskins if possible.

Your people need a water supply

Your people need a water supply

We need to designate a water supply for our tribespeople. One thing to watch out for are mosquitoes in humid areas (the black dots on water). If you guide your people too close to a water source infested with mosquitoes, they risk catching malaria.

Watch out for mosquitoes

Watch out for mosquitoes

Once waterskins are filled, your people will complain about their dirty water. They can still drink it at the risk of catching typhoid (or a variety of other waterborne diseases). Water can be cleaned by bringing it to a fire. To make a fire we need wood, which can be obtained by a woodcutter chopping down trees. Fire also keeps the tribe warm during winter.

A fire provides many benefits

A fire provides many benefits

As a side note, currently I’ve reduced the number of professions to two – hunter and woodcutter. Both of these need specialized tools (hunter needs a knife and woodcutter needs an axe). All other activities can be performed by any tribe member.

Also, I’ve implemented a simple scheme where objects that are being carried/worn by a human show up on their body as a replica smaller version of what they look like when placed on the ground. I thought this was pretty cool, and saves the work required to draw two sprites for every wearable/carry-able item. Hope it doesn’t look too bad.

By |January 15th, 2014|GameDev|0 Comments

Water Flow Mechanics

Water is an aspect that I spent quite a bit of time on. In the current version, above-ground water “seeps” into a cell until that cell is fully saturated. Then any remaining water runs a test on its adjacent cells, and if it finds a cell with a lower water level (taking into account cell height), the water will travel to that cell. So basically, water is designed to flow quite naturally.

In the above video I’ve set one of the cells to produce a unit of water at each update. The numbers represent the amount of unsaturated water in each cell. As you can see, water is moving towards the left side of the map, which is at a lower height. Before a water unit flows into an adjacent cell, a check is performed to determine whether the water should be used to saturate the cell. If so, then the water unit disappears and the cell gains a saturation level.

Evaporation also occurs in the game. It slows the spread of the water and causes small puddles to eventually disappear. The puddle created in the video above will eventually reach an equilibrium between the rate of water creation and the rate of evaporation. At this point it will stop expanding. Larger ponds with enough water units in each cell will be immune from evaporation, although I’m thinking of changing this in the future if it benefits gameplay.

By |June 21st, 2013|GameDev, Map Generation|0 Comments

Generating the Game Map

Ok!

As I mentioned in the last post, I’ve been working on this game for a while so I’ll introduce a different aspect of the game in each post. The whole thing is still a work in progress so anything I say could be changed eventually if I find a better way of implementing a mechanic.

The first thing I needed to do was build a map for all the game objects to live on. The game map consists of a set of 2D tiled hex cells. Each cell contains information on its level of topsoil, rock, organics, saturation, water, height and temperature. When combined, all these variables can be used to determine the type of ground currently present on a cell, which in turn will affect the types of plants that can grow and resources that can spawn there. For example, a cell with high topsoil levels will allow a tree to grow, while a rocky cell will be more likely to spawn boulders.

To determine the level of rock, organics and height in each cell, I’ve created a random map generator that uses Perlin noise. Behold the result:

080613a

As you can see, the worlds generated consist of dense forests with open rocky areas. It should be easy to generate other types of worlds by tweaking the random map generator. For example, a less forested world could be created by lowering the overall level of topsoil. I’ll get around to implementing other world types eventually, but for now this is a good foundation for the game. Next time I aim to post about the mechanics of water and water flow.

If you have any questions or would like to know more, please post in the comments!

By |June 9th, 2013|GameDev, Map Generation|0 Comments