Tribe Of Pok Demo and Purchase Available!

header

Greetings everyone! It’s time. Time for what? For the first proper Alpha release (to be called Alpha 5 due historical reasons)! The past month and a half has been spent play testing, fixing obvious issues, improving the user experience and setting up the deployment process for future Alpha versions. However, being a one-man studio means there are likely still problems I haven’t found, so please consider downloading the Alpha 5 Demo to see if the game works on your system. Bug reports on the forum are also appreciated. You can purchase the game via the Humble Widget on the Poking Water Games website.

20150214 New objects art

Some mechanics are bare bones and require more work to be done, for example Diplomacy. Other mechanics have undergone several iterations and work well, for example gathering/extracting resources. A road map showing the progress of each feature can be found on the demo page.

20150515 Crocodile massacre

I was hoping to get a trailer done but that would have taken another few weeks – time I would rather spend developing the actual game. I did record some footage, which I might edit and post one day.

20150509 OnFire

I look forward to future development with feedback from the community!

By |May 8th, 2015|GameDev|0 Comments

Tribe Of Pok: Iterating on the Water Mechanics

It’s been over three years since I started working on Tribe Of Pok. Over that time I’ve grown as a developer and found better ways of doing things. One example is water flow mechanics. It’s one of the first things I worked on and has undergone several iterations.

When I was a newbie programmer with barely any experience, I was creating a new object for every unit of rain that fell and then destroying it when it evaporated or soaked into the ground. If you have any experience as a programmer, you’ll know how disastrously bad of an idea it is to create/destroy hundreds of objects every second. That implementation was quickly scrapped when my frame rate dropped to 10 FPS every time it rained.

20150316Riverfill

Next, I tried storing the amount of water in each tile and performing water calculations only on the tiles. Performance was much better. All I had to do was +1 for every unit of rain that fell and -1 for every evaporation/saturation event. Simply calculate the height of each tile to determine if water can flow into it from an adjacent tile.

However when it rained, the ground would become blanketed in a layer of water. Hills would be just as saturated as valleys and there was nowhere for Pokians to hide. As a side effect, dry ponds would never completely refill since much of the water was stuck on higher ground. I fixed this by introducing movement to saturation. In effect, the water in the soil was “flowing” downhill just as the water above ground did.

Now water was flowing somewhat realistically and wasn’t hampering gameplay.

20150330 WaterDownhill

A year or so later I added rivers. Rivers form long, narrow paths that move in one direction. However with the simulation as it was, water moved in a random direction with each update. Sometimes water would flow into an adjacent hex. Then on the next update it would randomly decide to flow back into its starting hex. The result was water taking too long to go downriver. For particularly long rivers, the water evaporated before it even reached the other end of the map!

To fix this, I’m cheating by teleporting water from the high points to the low points along the river. Eventually I’ll replace teleporting water with a better method. In the meantime, I’m iterating and improving other aspects of the game.

20150319 Dam river

By |March 30th, 2015|GameDev|2 Comments

Tribe of Pok: Balancing the Human AI

Balancing the human artificial intelligence has been one of the harder parts of development. The difficulty stems from trying to make the AI do things that seem “logical” to the player. For example, consider the two possible desirable actions “harvest food” and “eat food”. We need to determine which action takes priority. If someone is hungry, the logical action would be to see if there’s any food around and eat it. OK, simple. We set the desire to eat to be higher than the desire to harvest food.

20150215 FoodDisplay

What if there isn’t anything to eat lying around? Since the desire to eat is higher, they will continually try to eat and never try to harvest food first. The player thinks, “What a stupid AI”. The logical action would be to harvest food first, and then eat the food. OK, then let’s switch it around so we set the person’s desire to harvest food to be higher than the desire to eat food.

20150215 TreeDisplay

Now what if the player creates 50 “harvest food” tasks on 50 different plants? Remember, the tribe member’s desire to harvest food is set higher than their desire to eat food. The AI thought process will be: hungry -> harvest food -> harvest food -> … -> harvest food -> STARVING -> harvest food -> harvest food -> starved to death. They will continue harvesting until they either finish all the harvest tasks or starve to death, despite being surrounded by plenty of recently harvested food. Once again the player thinks, “What a stupid AI”.

One way to work around this is having a variable desire to eat that fluctuates depending on current conditions. Firstly, add a check for food’s existence before trying to eat food. If there is nothing to eat, then set the desire to eat to be zero, no matter how hungry the person. That way the person will carry out any harvest tasks first. Secondly, if something to eat exists, make the person’s desire to eat higher the hungrier they become. With these extra rules, let’s see how the AI behaves in the above scenario with 50 harvest tasks.

20150215 FoodEverywhere

The AI thought process will be: hungry -> look for food -> find no food -> harvest food -> harvest food -> … -> harvest food -> STARVING -> look for food -> find food -> eat food. This thought process requires more calculations, but it makes the tribe member appear smarter to the player.

Now add in desires for drinking, sleeping, staying warm, fighting, fleeing, finding missing equipment, crafting and building to this equation. It’s pretty easy to end up with an AI that doesn’t always do the “logical” thing if the desires aren’t carefully balanced. Even worse is an AI whose desire fluctuates every few milliseconds, causing it to flip-flop between two different actions but not making any progress on either one. If you’ve ever seen an AI in a game move their units backward and forward over and over again, you’ll know what I mean.

20150123Bug

I’m constantly testing and tweaking the human AI in Tribe Of Pok to balance desires (and stop them burning themselves, like in the above gif). It can be time-consuming, but I think it’s worth the effort. It’s great to see your Pokians on screen running around acting the way you would expect.

By |February 15th, 2015|GameDev|2 Comments

Tribe Of Pok: New Combat Mode and Prosperity Mechanics

Firstly, there are some new ways I’ll be communicating to the community. You can now follow me on Twitter via @ParsleyPWG for more regular updates on what I’m working on. I’ll also be posting a weekly work log on the website blog. Remember, you can also sign up to be notified when new Early Access versions are available.

Combat mode

Combat Mode was something I put in a while ago, and took out when it became too confusing. When entering Combat Mode, the tribe members stop what they are doing and wait for the player to give orders. Several improvements have been made to the point where I’m happy to put it back in the game.

It works much like in an RTS game now, left-click drag to select and right-click to give move or attack orders. If someone is under attack, you can enter Combat Mode and send other tribe members to help them fight. Much more intuitive than in the previous iteration.

DevUpdate 20150110Animate1

Prosperity

Once a tribe’s food and water needs were met, I didn’t feel there was a strong enough force driving the gameplay forward. While testing the game, I got to a point where everyone was happy and thought to myself, “ok… now what?” Something was needed to tie everything together. There had to be a goal the player could aim for in addition to survival. So I did some thinking and came up with a single measure to handle all this – prosperity.

20150110Image2

Prosperity is a measure of how well your tribe is doing. Currently it is affected by factors such as the size of your tribe, amount of food available, the value of items and severity of diseases. In general, the value of items will only count if they’re located within your “circle of influence”. The circle of influence is an area around the tribe that can grow or shrink. I implemented it a while ago as a way to prevent roaming animals from constantly wandering into the player’s campsite and starting fights. I wasn’t sure whether to display this influence area or leave it as a bit of a mystery, but with the introduction of prosperity, the effect needs to be made clear. The influence area can be expanded by building additional fire poles, which need to be occasionally maintained by adding animal fat to them.

20150110Image3

The intention is to have prosperity fluctuate as the fortunes of your tribe change. I have some ideas to build on this mechanic in terms of progression and unlocking advanced crafts. It needs a bit more work though before I say any more.

By |January 10th, 2015|GameDev|0 Comments

Tribe Of Pok: Using the UI to improve feedback

This update will be about ways I’ve been improving the UI for a better player experience. Below you can see the new look for the UI.

DevUpdate20141211

Alerts system – to give a bit more direction to the player, I have added an alerts system. It’s similar to the one used in the Europa Universalis series, and a great way to inform the player about issues that need attention. When a certain trigger is activated, a little popup will appear at the top of the screen with some information. Examples of issues that will trigger an alert include lack of available food and water, being under attack and lack of a camp fire. Once these needs are taken care of, the alert should disappear. Hovering over the image also gives a description of the problem.

DevUpdate20141211ga

More immediate feedback – the player will receive immediate feedback when trying to perform an illegal action. I noticed players tended to start clicking random buttons and hexes when nothing in the game was reacting to them, so now a tool tip immediately pops up informing the player what went wrong. This should lead to less frustration.

DevUpdate20141211gb

Minimap – The minimap is more useful after some improvements. It now shows buildings, people and animals wandering around. You can also click on it to zoom the view to that location.

DevUpdate20141211gc

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

Tribe Of Pok: Harvesting system update

Food gathering works slightly differently now. Before it was too obvious which trees were fruit producing (like apple trees) and which trees weren’t. This led to a situation where the player is encouraged to cut down only the non-productive trees and leave the fruit producers. Eventually the trees would grow back, and the player could repeat the process until the entire forest was full of fruit producers.

DevUpdate20141124

This solution was too well-engineered for a game set in the Paleolithic era, and it wasn’t very fun to constantly be cutting down trees but trying to avoid/remember the fruit producers. So now, food harvesting has changed. When the harvest button is clicked in the menu, all the potential hexes that can be harvested are marked on the map.

DevUpdate20141126g

Almost every tree and bush has a chance to produce fruit or seeds when it is harvested, and the type of produce varies depending on the species of plant. Some plants will produce nothing, and others will produce a random amount of food. The player won’t know what they’ll find until the harvest action is complete. They also won’t be able to tell which hexes will be fruit-bearing, so cutting down a whole forest will mean the loss of potential harvest locations.

DevUpdate20141126gb

After a certain amount of time you can harvest the plant again, unless it’s been cut down or died of old age.

By |November 25th, 2014|GameDev|0 Comments

Tribe Of Pok: Development of tool tips

I’m going to try a new approach to news updates. Instead of a big update every month, there will be smaller updates explaining one or two changes at a time. Although I liked the consistency of updating at the same time each month, I think it was a bit all over the place and harder for new readers to understand. So to start us on these more focused updates, I’m going to talk about… tool tips!

DevUpdate20141105ga

DevUpdate20141105gb

As in most games, when you hover over a button for long enough a tool tip appears that gives information on what the button does. I’ve improved the Tribe Of Pok tool tip so it hovers near the mouse and can be used in a variety of situations. For example, in the crafting screen it will tell you what ability and materials are required to make an item, as well as give statistics on that item.

DevUpdate20141105gc

You can also set in the options menu the mouse idle time before they show up, or turn them off completely if you want to play without knowing things for some reason.

So that’s it on tool tips! Hope you all found it interesting, even though it’s not about the actual gameplay. Since this is a strategy game, having the required information available is important, and I think improving the tool tips are a step in the right direction.

By |November 5th, 2014|GameDev|0 Comments

Tribe Of Pok: Diseases and Temperature Expanded

Much time has been spent on admin lately, so not as many changes as usual for this update. The good news is I’m now working with an artist, so all the bad programmer art should disappear soon! Here are some of the new tiles:
DevUpdate20141017b

  • Object status effects – Last time I talked about items having abilities, which affected the item’s capabilities. I thought this was such a great paradigm, why not expand on it? Now all objects can have status effects such as [Wet], [Humid], [Warm] and so on. Different objects react to these effects in different ways. For example, food that is [Warm] will decay faster to simulate optimal conditions for bacterial growth. On the other hand, [Frozen] food will hardly decay at all.
  • Expanded disease system – It didn’t make much sense for Stone Age dwellers to know what disease they had and announce “I have Malaria!” to you. To cure it, you just needed the right plant lying around and it wasn’t very fun. So I’ve changed the way sicknesses work. Now a sickness is made up of a set of potential symptoms (e.g Hypothermia is made up of the symptoms Confused and Shivering). When someone catches a sickness, there will initially be no effects. Over time, the symptoms will start to show up one by one and affect the person’s ability to function. The player may never be told what the underlying illness is, and have to find a way to handle the symptoms (this part I haven’t worked out yet – maybe the treatments can be randomised each game, discovered by a shaman, we’ll see what fits).
  • Humidity and rain dynamics – I found a bug where the humidity would rise to 100% during Winter, did some more research and realised my simple model for humidity was way too simple. With my new, realistic calculations, the weather should be more balances and behave better. It should rain more often during the afternoon/night and hot, humid days are possible, depending on the amount of water vapour in the air.DevUpdate20141017c
  • Humans feel “apparent” temperature – In real life, the temperature you feel isn’t always equal to the air temperature due to the effects of humidity. High humidity can make you sweat, even when the air is only mildly warm. To reflect this, I’ve implemented “apparent” temperature, which is a calculation based on air temperature and humidity. On hot and humid days, people are much more likely to suffer heatstroke. For example, 35°C (95°F) with 80% humidity will actually feel like 57°C (134°F). For the curious, here is a taste of the calculations involved:DevUpdate20141017
  • Did a bit of work on enemy raids, if other tribes don’t like you enough, they will appear on the map and rampage through your camp
  • Graphical back-end improvements, now supports 64×64 pixel tiles and allows overlapping tiles
  • Fixed UI scaling issues when zooming in and out
  • Improved Query Panel for humansDevUpdate20141017d
By |October 16th, 2014|GameDev|0 Comments

Tribe Of Pok: Tools with abilities and other improvements

Changes

  • Tools and weapons with abilities – I’ve previously mentioned the possible actions a human can perform are based on the tools they have available, e.g. anyone with an axe can cut down a tree. I’ve expanded on this. Tools now have abilities tied to them with varying levels of effectiveness. For example, an axe has a high [chop] ability and can cut down trees quickly. A knife also has the [chop] ability, but is much less effective and takes a longer time.

    Tools and weapons can have multiple abilities attached to them, e.g a knife can [chop] as well as [slash] when used in a fight. It’s easily moddable, so you could give spears the ability to [puncture] holes for clothes-making if you wanted.

  • Improved task delegation – To complement tools with abilities, I’ve improved the way tasks are delegated to the humans. The best person for a given task is now calculated based on the abilities of their tools and distance to the task. A person further away with a better tool should be preferred over a closer person with a worse tool.

  • Lighting shaders – Fires now emit light. It’s pretty simple, no fancy shadows here. The lighting is mainly to make to nights brighter.

    DevUpdate20140913g2

  • Improved Combat Mode – I’ve re-enabled and fixed up Combat Mode, which I took out for a while since it was confusing and buggy. Now all individuals can be ordered to position/attack manually and the orders will stick even when you exit Combat Mode. It’s still a work in progress though.

  • Overhaul mineral resources – Rocks and minerals contain a set amount of resources and disappear once they are mined out.

  • Improved AI – Added desire to seek warmth when freezing, and other various improvements to AI

  • Walls – Can construct walls now, making a cell impassable and using up all the cell’s volume

    DevUpdate20140913

On a final note, I think it’s time the graphics got some attention. I’ll be looking for an artist to replace all my programmer art with proper art before doing a big promotional push. Stay tuned!

By |September 13th, 2014|GameDev|0 Comments

Tribe Of Pok: Stockpiles, piling objects, diplomacy and rivers

Since last update I’ve been working on aspects that allow the player to organise a larger tribe more easily, as well as give more choice in how to manage the tribe.

Major Changes

  • Open stockpiles – There are pits for food and racks for tools, and this worked well at the beginning. However as you your tribe progresses, raw materials such as tendons and bones tend to accumulate around the meeting point in a big mess. Open stockpiles are introduced to handle this. You can create an open stockpile from the Stockpile Panel and set what is allowed/forbidden to be stored in each pile. Then designate the hexes associated with that stockpile in any shape. This system allows for more strategic opportunities. For example, you could create a wood-only stockpile as a barrier and set it on fire to scare away predators, or suddenly melt a frozen lake to drown any animals standing on the ice.

    DevUpdate20140813

  • Hex maximum capacity – Hexes now have a volume limit, meaning you cannot store infinite objects on one hex. If too many objects are in the same position and their total volume exceeds the hex’s volume capacity, then some objects will “slide” to an adjacent hex. This effect is most obvious when butchering a large carcass with lots of parts, such as a mammoth, but you will also see the effect when piling too many objects in one cell.

    DevUpdate20140813g

  • Diplomacy – Relations can change with other tribes depending on your actions. Right now I’ve only set up the foundations for this mechanic, you can either taunt or trade with the enemy. I hope to expand it with more interesting options in future that fit well into the game.
  • Trade – To go with the new diplomacy system, I have introduced trading into the game. Trading involves bringing offered goods to a trading post, deciding what you want to receive in return, and then sending someone off the map with your goods.
  • Rivers – Rivers are working! It took a while but they’re in now. Water flows in endlessly from the river entrance and flows out from the river exit points. I’m anticipating problems with the pathfinding since locations on one side of the map can’t be reached from the other, and will deal with them as they occur.

    DevUpdate20140811

Other changes

  • Melee damage and weight of object updates each day based on age
  • Progress bars for actions such as cutting trees, constructing buildings, etc
  • Wearables such as boots merged into Clothing class
  • Food decay rate now affected by temperature / humidity
By |August 12th, 2014|GameDev|0 Comments