Alpha 9: Huts, Objectives and Animations

New demo available!

The most exciting change in this update is the introduction of huts! You can now build huts out of wood or bone, depending on what is more readily available. Huts take many resources and a long time to build, so they are not essential to your tribe’s survival. If you want to play as if your tribe is nomadic, you can do so. However, huts have a large storage area and your Pokians will sleep in a hut if there is room.

20150914 Huts

Last update I introduced the first pass of an objectives system. In this update I’ve improved upon that. Requests can come from either your Pokians or foreign tribes (once they are discovered). If you complete the request, you gain a minor reward. This can be for example, everyone crafting faster for the next 48 hours. My favourite request at the moment is sacrificing an animal carcass at an altar.

20150914 Sacrifice

I’m always trying to think of new, fun objectives to implement. Also, I’ve changed the way fires light up the surrounding area so it’s softer and looks better. Wild fires also spread up to two hexes away, which means more FUN when things get out of control!

20150914 WildFire

Finally I’d like to mention animations! When plants spawn or die there is now a short animation that plays.

20150914 PlantAnimate

A full list of changes for Alpha 9 is below:

New Features:

  • Spawnable resources and plants is read from xml for each biome
  • Added huts and altar buildings
  • Reintroduced twigs object in wood category
  • Stockpile settings applicable to buildings
  • Tribe requests from Pokians are now in a panel under Tasks
  • Notification buttons darken when they have been viewed
  • Add tutorial for tribe requests panel
  • Added trading objective with foreign tribes
  • Added News section to the UI with various news items
  • Added option to limit framerate to 30 FPS for slow computers
  • Added news item when Pokian is fighting
  • Added functionality for rotating objects
  • Added animations for plants dying and sprouting

Gameplay

  • Humans will seek hut to sleep in if available
  • Add limit to how much huts can store
  • Allow plonking buildings without all required materials
  • Fuelling fires uses twigs now instead of logs
  • Include buildings in influence area in prosperity calculation
  • Added timer to objectives so they can expire
  • Improved resource deposit generator
  • Created herb bush for gathering edible herbs
  • Increased range of wild fire spread to 2 hexes
  • Halved flammability of plants
  • Burn carcass mission needs to be done at an altar
  • Reduced volume of carcasses by 2.0
  • Modified effective speed formula so heavy carcasses easier to carry
  • Added “Great Hunt” objective
  • Removed alert text from UI
  • Added object status ‘dead’
  • More dynamic calculation for plant deaths
  • Massively reduced tree growth in winter
  • Increased deterioration due to old age in all living things to 75%

Fixes

  • Fixed human unable to get off hut once built
  • Changed map menu button for building to yellow
  • Added image icons for query panel action buttons
  • Humans can drop objects from adjacent cells now
  • Fixed humans exiting huts from incorrect cell
  • Disable deleting ability for primary objectives
  • Refactored object statistics in xml for better organisation
  • Added extra check to prevent duplicate possible requests
  • Fixed large building selection in building menu
  • Water transitions smoother
  • Fix loading game drawing clothing for off map humans
  • Fixed cancelling task while Pokian off map makes them disappear forever
  • Fixed human returning from trade mission dropping objects on edge of map
  • Fixed loaded game not remembering task’s required materials
  • Fixed scout going off map when not even on map edge
  • Fixed animations looking the same when game loaded
  • Fixed drawing clothing on animals twice
  • Fixed secondary light sources not displaying unless first light source displayed
  • Fixed cancelling stored object task not stopping Pokian from storing object
  • Fixed bed not recognised as building
  • Fixed changing meeting point causes bits of old meeting point to be left over
  • Fixed can’t bury humanoid carcass
  • Fixed rain noise volume was scaling based on humidity
  • Fixed disease symptoms sound effects playing when zoomed out
  • Reduced animal decision making frequency by 66% to improve performance
  • Fixed snowing and raining stopping every hour in winter
  • Fixed loading game food pit with unassigned stockpile reassigning stockpile

If you would like to support development you can purchase and play the Alpha or sign up to the newsletter

Twitter – ParsleyPWG
Website – PokingWaterGames.com

By |September 15th, 2015|GameDev|0 Comments

Alpha 8 Update – Movement and Sprites

This update features smoother transitions for animal movements, changes to the way objects are displayed, an improved system for constructing buildings and a new plant generation algorithm.

The tough part in making smoother animal movements was in the way I was calculating movement. Previously if an animal decided to switch directions mid-movement, it could do that straight away. Now the animal needs to complete any movement it’s already started before it can change directions.

20150724 SmoothMoves

All objects placed out in the open now show up on screen at the same time. This makes it easier to see objects at a glance.

20150812 Objects

You can now select from multiple images for a single building where available. For example, building walls you can choose the orientation of each piece. The behaviour and underlying properties of the wall pieces will be the same.

20150803 Walls

Finally I’ve implemented a new plant generation algorithm. For each hex there is a chance of a tree or bush growing, which is checked regularly. If the check passes, then an allowable plant grows on that hex. The probability is affected by factors like amount of soil, fertility and water saturation of each hex. I’ve found this creates an interesting dynamic where plants are much more likely to grow right after it rains, when the soil is most saturated.

20150808 PlantGeneration

New Features

  • Custom mouse icon with option to turn it off
  • Items on the ground are smaller sized and randomly placed
  • Animals now move smoothly instead of jumping from one cell to another
  • Added ability to select different sprites for building walls
  • Task panel shows object sprites instead of only names
  • Added tutorial for diplomacy panel and foreign tribes
  • Tribe panel scrolling support for lots of tribe members

Gameplay

  • Added more mini-objectives
  • Animals now must complete movement to hex before starting movement to next hex
  • Removed teleporting water which was too CPU-intensive
  • Constructing walls now properly pushes other objects out of hex
  • Rebalanced water evaporation/saturation so puddles stay longer
  • Humans will not procreate unless there is enough prosperity relative to tribe size
  • Turned tree and bush growth calculation into fixed probability
  • Ground water saturation has greater effect on plant growth, massive growth after it rains

Fixes

  • Fixed bug with task progress not set properly when halfway through task
  • Fixed starting game clicks on something immediately
  • Improved layout of diplomacy panel
  • Fixed direction switches partway through movement
  • Doubled default framerate to 60FPS
  • Fixed animals with unassigned factions not attacking eachother
  • Fixed crashing from adding task with no available materials
  • Fixed trying to build when not enough materials and added tooltip
  • Fixed infinite loop when scout going off map
  • Fixed human not disappearing when going off map
  • Fixed failed build task message appearing when actually successful
  • Fixed buildings not orientated properly when game loaded
  • Major optimisation of water calculations
  • Fixed task building not unreserving materials when not all materials found

If you would like to support development you can purchase and play the Alpha or sign up to the newsletter

Twitter – ParsleyPWG
Website – PokingWaterGames.com

By |August 13th, 2015|GameDev|0 Comments

Alpha 7 Update – Tutorials and Objectives

Alpha 7 is ready and posted, with a new Demo as well as a new Gameplay Video. In this update the main focus is on improving the Tutorial and adding an Objectives System.

Thanks to feedback I received, I learned the game was a bit overwhelming to the new player with all the different systems interacting at once. It’s hard to experience your own game like a new player when you’ve worked on it for thousands of hours! On the left-hand side of the screen, it now lists the current objective based on the current active tutorial.

20150708 Camping

The update also includes the first iteration of the main objectives for the player. These are increasing Prosperity and discovering all neighbouring tribes, which now begin as “Unknown”. A new Scout profession allows you to select which Pokians can go on Scouting missions. A summarised list of changes is below. If you like more detail, weekly progress is listed here, here, here, here or here.

20150702 DriedPond

New Features

  • Implemented nomads joining your tribe event
  • Implemented achievements/objectives for tutorial
  • Added various event-related notifications
  • Added more tutorials and made the transition smoother
  • Added minimap rectangle to let player know current viewing area
  • Refactored game engine to allow for new games without restarting
  • Events panel can be moved around and position is remembered
  • Added scout task for human AI to explore surrounding area
  • Added some diplomacy-related tasks
  • Added sound effects for eating, drinking and shivering
  • Added food security and burning carcass objectives
  • Pokians won’t perform any tasks if their primary needs are too low

Gameplay

  • Nomad appearance chance based on current tribe size relative to prosperity
  • Doubled water update frequency
  • Added main objectives for discovering all tribes and becoming most prosperous tribe
  • Diplomacy panel disabled and blacked out until first main objective complete
  • Modified Career class so Pokians can have multiple professions
  • Added foreign tribe discovery stages
  • Moved scouting action from tribe-specific action to global action in diplomacy panel
  • Foreign tribe prosperity fluctuates in proportion to foreign tribe size
  • Halved day length to fit new update frequency
  • Reduced severity of hunger and thirst effects due to sickness
  • All animals eat and drink twice as fast
  • Change notification sound to achievement completion sound
  • Decreased rate of gaining symptoms from sickness
  • Increase base influence area around camp
  • Made data overlay for forbidden movement hexes clearer
  • Animal spawns are less aggressive overall
  • Change animal decision to migrate to take into account crowdedness
  • Changed animals to disengage targets if they are out of breath
  • Reduced severity of food decay

20150702 SoMuchPain

Fixes

  • Notifications now show most recent first
  • Fixed changing combat move direction not immediately removing previous move order
  • Fixed tutorial and event notifications bugs
  • Tutorial notifications now have green text
  • Fixed duplicate water supply hexes
  • Fixed crashing when closing game with human off map
  • Refactored object destruction to be more stable
  • Fixed filter broken on task query panel
  • Fixed combat mode tutorial achievement appearing even when no tutorial
  • Fixed migrating animals not being properly deleted off map
  • Minor objectives only activate when tutorial over
  • Fixed humans not using fists when no weapons to hold
  • Fixed filling water skin from river not giving clean water
  • Improved debug panel
  • Fixed move forbid cells not remembered when saving game
  • Fixed if human can’t reach extract/harvest task, performing task via telepathy
  • Fixed herbs counting towards food stockpile even though no hunger reduction
  • Fixed humans sleeping and storing objects in shallow water
  • Fixed when zoomed out, combat mode selection not scaling as well

If you would like to support development you can purchase and play the Alpha or sign up to the newsletter

Twitter – ParsleyPWG

Website – PokingWaterGames.com

By |July 9th, 2015|GameDev|0 Comments

Tribe Of Pok: Changelog for Alpha 6

This update focuses on improvements to the Combat user interface and mechanics. Although fighting is not a major focus of the game, it’s still important that combat feels solid, given how important it is for hunting animals and protecting the tribe. A full change log is listed below. Firstly, here is a screenshot of the new main menu with a beautiful background by our artist Alfonso:

20150528 mainmenupreview

Alpha 6 Changelog

New Features

  • Implement animation for mosquito and fish school
  • Added clay as a resource
  • Added clay statue and clay necklace items
  • Diseases on/off toggle on Generate World Page
  • Entering/exiting combat mode is more prominent (UI changes and music added)
  • Added battle damage reports under human thoughts query panel
  • Bipedal animals get randomly selected proper names instead of being numbers
  • Added tutorial for query panel
  • First implementation of query panel filtering (only vital statistics show up unless filter unticked)
  • Added music volume slider on options page
  • In combat mode, player units and enemies differentiated by green and red text
  • Added ability to select all Warriors from side menu in combat mode
  • Added short tutorial for entering combat mode
  • Implemented new main menu background/music
  • Added path building for increasing movement speed

20150522 Fighting

Gameplay Changes

  • Reduce frequency of fish and mosquito creation
  • Changed ant mount generation from completely random to forming in patches
  • Ant mounds no longer take up space (volume = 0)
  • All animals now have a body, not just bipedal animals
  • Damage amount of variation is dependent on strength of damage
  • Added natural pierce, slash, blunt protection for animals
  • Added damage to clothing durability when body part hit
  • Replace attacking cool down green bars with blue bars
  • Removed tribe member’s sickness/disease from prosperity calculation
  • When in combat mode and selecting Pokians, query panel now autodisplays random selected Pokian
  • Implemented variable attack speeds for different animals
  • Bow reimplemented, creates arrows automatically
  • Arrows disappear through decay after small amount of time
  • Changed sleep progress bar from zZz to blue moons
  • Combat dodge chance varies depending on stamina
  • Stamina reduced by fighting
  • Added aggression comparison to fight or flight AI to decide which animal flees
  • Tweaked plant harvest chance growth so higher in summer/spring and decreases in autumn/winter
  • Tweaked some symptoms effects for more fun

20150604 Path

Fixes

  • Fixed mini-map clicking not going to the correct location
  • Fish school image adjusted so it appears underwater
  • Fixed animal fat using fish image and fish using animal fat image
  • Fixed bubble text alignment
  • Fix tool-tip going too far left when off screen
  • Removed redundant minor/major injury designations from query panel
  • Fixed animal attacking itself after another animal begins attacking it
  • Small tweak to global enemy targeting to stop premature “No more fighting” comment
  • Fixed warriors running away when still in combat mode
  • Fixed tile map not drawing bounds correctly
  • Tweaked combat mode so Pokian doesn’t switch between attacking and running away rapidly
  • Tweaked input processor to stop camera jumping around when assigning movement in combat mode
  • Game window only edge scrolls when it’s in focus
  • When entering/exiting combat mode, close query panels and map menu
  • Fixed sprite getting stuck as explosion cloud
  • Fixed flying weapons not showing up and aligning properly
  • Fixed UI combat arrows not aligned properly for attack
  • Realigned panel summary info to be below top menu
  • Tweaked UI side menu sprites for meeting point and start fire
  • Fix exiting UI state via side menu not removing centered text
  • Slight changes to which thoughts show up on screen
  • Fix text going out of bounds in notes
  • If Pokian in middle of task and decides to do something more important, will put task back on queue for others
  • Fixed destroying animal while fighting causes winner to be stuck in loop

If you would like to support development you can purchase and play the Alpha or sign up to the newsletter

Twitter – ParsleyPWG
Website – PokingWaterGames.com

By |June 4th, 2015|GameDev|0 Comments

Tribe Of Pok: Improvements made to the combat UI

Been working on battle reporting lately. When a Pokian swings an axe, throws a spear, causes damage or gets attacked the event is recorded. Information about each hit can be found by hovering over the actions in the query panel. Damage to weapons and clothing durability are also recorded.

20150516 QueryCombat

To go with this, I made some combat mode improvements to how unit and target selection work. You can now also specify which Pokians you want to choose to move, even if there are multiple standing on the same tile. Right-click the name to de-select that Pokian.

20150520 CombatSelect

Then when you click on a hex with possible targets, a pop up appears allowing you to select which animal to attack

20150520 CombatTarget

It’s also more obvious when you’ve entered Combat Mode now. Battle music will start playing and the UI changes colour. I’ve also made some menus and panels auto-close when switching between modes to keep things clean.

20150520 CombatUI.png

Some other improvements to combat:

  • AI improvements. When you select a target for your Pokians to attack, they will keep attacking it until they are too weak, even if you exit Combat Mode. Previously if you exited Combat Mode while they were still fighting, they would run away immediately.
  • All animals now have natural slash, blunt and pierce protections, so some weapons are more effective against certain animals
  • All animals now have a body, not just bipedal animals (means front paws can be damaged separately from the head for example)
  • Damage is not fixed anymore, instead it varies around a base level. This is to overcome the 20 pierce defense clothing providing immunity from the 20 pierce attack weapon problem
By |May 20th, 2015|GameDev|0 Comments

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