Activity Summary Week 15, 2015

For the week from 6 Apr to 12 Apr I’ve been working on:

  • Increased influence expansion ability at game start
  • Meeting point can create new humans
  • Added cooldown to GoalTreatPain
  • Implement tribepanel showing effect summary for each human
  • Added querypanel viewing stored objects inside query object
  • Improved mapmenu positioning
  • Add decayrate to querypanel for anything with non-zero amt
  • Implement sound request 3
  • Fix crafting using water progress bar
  • Fix influence area shrinking not showing boundary properly
  • Mapmenu dynamic drawing priority based on context
  • Turned off symptoms list autoremove to stop it removing other effects
  • Fixed decay rates for all objects not functioning
  • Added autostore defined in XML for creating objects
  • Experimented with finer heightlevels (failed, reverted)
  • Added failchance defined in XML for creating objects
  • Refactored mapmenu, removing lots of old menus
  • Changed some UI boundary ints to floats
  • Fixed tribe panel initialisation order incorrect
  • Cleaned up xml readers and added string validation
  • Fixed FloatToString conversion for non-decimal values
  • Add functionality for one tick updating for debugging
  • Reduced injury penalties to prosperity
  • Increased prosperity value of each Pokian
  • Activated task progress saving for craft tasks
  • Added butcher to querypanel for carcass
  • Craft tasks now use adjacent materials in case they get pushed off original cell
  • Fixed progressbar texture not loading on game load
  • Fixed clicking on cell not deleting existing mapmenu and creating new one
  • Added malaria to air infection list
By |April 12th, 2015|Activity Summary|0 Comments

Activity Summary Week 14, 2015

For the week from 30 Mar to 5 Apr I’ve been working on:

  • Removed movement speed changes due to height differences
  • Split motor speed into landspeed and waterspeed
  • Implement preference of amphibious water animals to idle near water sources
  • Disabled water changing the movement cost of hex
  • Added godmode function for soaking water
  • Implemented fish as a cell effect in rivers
  • Rearranged cell effect draw order so it shows above water
  • Added fishing task designation to UI
  • Refactored taskToHuman assignment
  • Added GoalFishing for human AI
  • Added condition for fishing locations, only near running water
  • Foreign tribes also have prosperity value now
  • Display foreign tribe prosperity in Diplomacy panel
  • Foreign tribe prosperity unknown if discovery level too low
  • Implement crude win condition, when prosperity higher than all other tribes
  • Randomise tribe prosperities over normal distribution
  • If stockpile created from pit building, set default to allow edible
  • Reaching 50% of a foreign tribe’s prosperity increases discovery level
  • Decreased threshold for discovering foreign tribe name to 1
  • Changed harvest from true/false to probability of harvest
  • Probability of harvest reduced by each harvest attempt
  • Harvest successful no longer affects object’s harvest rate
By |April 6th, 2015|Activity Summary|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

Activity Summary Week 13, 2015

For the week from 23 Mar to 29 Mar I’ve been working on:

  • Fix buttonslider scrolling offset in sidesubmenu
  • Fixed various minor issues with gather and extract sidesubmenus
  • Gather task number of times to perform action implemented
  • Extract ground should auto create task to store items now
  • Fix tree not disappearing when extracted
  • Fix extracting rock destroys rock
  • Integrated extract object into goalcreate
  • Add check when harvesting so if object harvest == false, stop trying
  • Add starting fire noise
  • Fixed broken xml for extracting causing infinite loop for task
  • Integrated extract ground into goalcreate
  • Add cooldown functionality in brain
  • Clean water goal cool down added
  • Influence area only draws borders now
  • Fixed berries not being tagged as an object in xml
  • Fix sidesubmenu disappearing when something clicked
  • Stop pit autoopening stockpile panel and instead create notification event informing player
  • Shortened wordy tutorials
  • Fixed notifications incorrect positions set
  • Fixed various issues with button list positioning
  • Fix creating new stockpile making duplicate forbid/allow all buttons
  • Added many checks to prevent crashes
  • Options page resolution changes immediately when resolution selected
  • Cleaned up object drawing function
  • Implement colour changes for homos based on tribe affiliation
By |March 29th, 2015|Activity Summary|0 Comments

Activity Summary Week 12, 2015

For the week from 16 Mar to 23 Mar I’ve been working on:

  • Removed building allow/disallow objects menu
  • Integrated building allow/disallow with stockpiles
  • Autoassign stockpile to pit if built on non-stockpile cell
  • Added functionality to open different manage panel tabs depending on context
  • Amount of water that fits in cell takes into account objects in cell
  • Fixed freezewater not taken into account in height calculation
  • Fix water flowing not taking into account water already in cell
  • Added wood to item designation, query panel now activates properly
  • Fixed cook meat for fire not initialised on game load
  • Implement harvest sound effect
  • Added functionality for crafting sound effects
  • Fixed textbox backspace misaligned
  • Fixed textbox backspace being registered as character
  • Implement latest art assets
  • Destroy option added to query panel for buildings
  • Influence expansion breakdown in prosperity panel
  • All objects have durability variable
  • Put durability decay in xml
  • Combined tree and bush into plant category
  • Added functionality so any object can be harvested, not just plants
  • Ant mounds destroyed if cell becomes wet
  • Added bear to xml
By |March 22nd, 2015|Activity Summary|0 Comments

Activity Summary Week 11, 2015

For the week from 9 Mar to 15 Mar I’ve been working on:

  • Fixed task ground type not remembered when game loaded
  • Fixed crash bug when dropping task objects
  • Fixed bug with bleeding too fast
  • Added AI for injured humans seeking out healing consumables
  • Add to disease tooltip when consumables are helping body parts recover
  • Clicking extract button shows extractable cells
  • Clicking gather button shows harvestable cells
  • Expanding influence does not reduce culture rate anymore
  • Add ant mound resource to xml
  • Generalised harvestable so can be applied to non-plants
  • Made ant mounds flammable
  • Added edible ants to xml
  • Reduce noisiness of rivers
  • Fixed bug with progressbar not being deleted when object destroyed
  • Optimised getting objects around influence area
  • Removed plant and fire menu and added its functions to query panel
  • Refactored query panel
  • Implement query panel for tasks
  • Reimplement query ground
  • Stopped gathering and extracting on cells with a building
By |March 16th, 2015|Activity Summary|0 Comments

Activity Summary Week 10, 2015

For the week from 2 Mar to 8 Mar I’ve been working on:

  • Shaman creates notification when high chance of rain
  • Fixed human query panel not showing all tooltips
  • Shaman reduces duration of some sicknesses
  • Prosperity panel breakdown splits pains into sicknesses and injuries
  • Fixed prosperity calculation not done on game start
  • Created bodypart class for individial body parts
  • Wounds automatically recover over time
  • Eating herbs helps with wound recovery
  • Pregnancy progression displays in query panel
  • Fixed pains sticking in query panel when they have been cured
  • Add blunt damage type
  • Refactored code relating to damage from bipedals, animals and buildings
  • Fixed MeleeDamage not being calculated on game load
  • Cuts and bruises take into account clothing protection
  • Remove most hardcoded references to “Weapon” and “Tool”
  • Bodypart damaged over 100% is disabled permanently
  • Permanently damaged hands unable to hold objects
  • Cut and bruised legs cause humans to slow down
  • Added levels to bleeding effect
  • Pierce is more bleeding, slash is more cuts, blunt is more bruises
  • Querypanel show bleeding severity
  • Querypanel indicator if body part completely broken
  • Fixed tooltips sometimes not showing if button image cropped
By |March 9th, 2015|Activity Summary|0 Comments

Activity Summary Week 9, 2015

For the week from 23 Feb to 1 Mar I’ve been working on:

  • Lowered aggressive threshold for animals
  • Building menu tooltip shows building values
  • Fixed crash on exit when building menu open
  • Sounds for animals added to XML
  • Added object sound volume changes depending on camera view
  • Animal getting hit plays sound for jaguar, mammoth and horse
  • Extracting from trees or rocks plays sound
  • If drag scrolling in combat mode, don’t set movement of selected people
  • Refactored query panel
  • Added functionality for actions from query panel
  • Implement sound assets 2
  • Removed redundant profession variable, replaced with assigned profession
  • Added Shaman profession
  • Remove lion, add giant sloth, remove calling every animal “Mammal”
  • Changed adding general tasks area to take into account influence area
  • Ability to automatically cook food near a camp fire
  • Profession tribe panel limit selecting shaman profession to initiated only
  • Added sickness duration variable
  • Added disease duration reduction property to herbs
  • Pokians take into account nourishment amt when looking for food
  • When all symptoms discovered, show illness on human query panel
  • Fixed bug with immunity reset when loading game
  • Sick Pokians now seek disease reducing consumables where appropriate
  • Once illness shows on query panel, add progress bar for how long it lasts
  • Fixed minor memory leak in query panel
  • Fixed minor memory leak in lighting function
  • Fixed clicking on UI caused combat mode units to deselect
By |March 2nd, 2015|Activity Summary|0 Comments

Activity Summary Week 8, 2015

  • Added check for fire before human begins trying to cook meat
  • Tone down animals wandering, will only wander within a small radius if idling
  • Decrease influence threshold before it starts costing culture
  • Fixed bug causing culture rate to grow 24 times faster than normal
  • All carcasses changed to skull and crossbones for now
  • Reduced aggressiveness of jaguar and sabretooth
  • Volume changes by player saved to xml
  • If zoomed out, ambient sound plays quieter
  • Ambient sounds detect within a set radius of view centre rather than whole camera view
  • Fixed bug where item in toolbox without ability would stop items with ability from working
  • Implemented first set of sound effects
  • Created KeyMap class to handle keyboard mapping
  • Added WASD scrolling
  • Added option to change speed of WASD scrolling in menu
  • Create TribeData class to store tribe features
  • Display counter to button slider for current position
  • Only warriors will stop their current actions when entering CombatMode
  • Fix bug with cancel task call not cancelling task all the time
  • Crafting objects fail changed from alert to notification
  • When influence expanded, should update PanelSummary straight away
  • Added ForceDisplay influence area when building menu open
  • Edge map scrolling selection changed to slider bar
By |February 22nd, 2015|Activity Summary|0 Comments

Activity Summary Week 7, 2015

This week I’ve been working on:

  • Legend for Tribe panel selections
  • Crafting window multiple columns for craft tasks
  • Pits now wet when saturation is greater than 1
  • Depress tribepanel side buttons when clicking on them
  • Create GoToLeader goal for animals
  • Animals move around map when idle for too long
  • Tribe Panel Culture screen with breakdown on contributing factors
  • Streamlined Release version deployment, spritesheets in one click
  • Ability to specify starting map humidity based on map
  • Can read “amount” of each carcass materials from xml
  • Removed last/family names from all bipedals and families
  • Increased rate of geovapour loss from rain/snow
  • Reimplemented pregnancy, lasts for 18 game hours
  • Increased fire animation speed
  • Can change human names from Tribe Panel
  • Added more functionality to text boxes
  • Tweaked river flow in and out rates
  • Fixed bug with river flooding when raining before full
  • Drink water, butcher meat and cooking meat progress bar
  • Can toggle influence display on and off
By |February 16th, 2015|Activity Summary|0 Comments