Recent Releases of neighborly

neighborly - v2.5.0

[2.5.0] - 2024-03-24

This version introduces breaking changes to the content authoring pipeline. Please check your YAML and JSON files.

Changed

  • Convert content definition classes to use Pydantic

Added

  • Tag-based content selection to all authored content libraries (special thanks to @Acer-Cristea)
  • Content definition compiler that allows for variants and templates
  • Additional fields to all content definitions

Removed

  • Removed some fields from content definitions

- Python
Published by ShiJbey almost 2 years ago

neighborly - v2.4.1

[2.4.1] - 2023-11-20

Fixed

  • List construction error when compiling all event considerations

- Python
Published by ShiJbey about 2 years ago

neighborly - v2.1.1

[2.1.1] - 2023-30-10

Fixed

  • open_to_public field now adds OpenToPublic component to help locations appear as candidates to be frequented by characters.
  • monthly_effects associated with job roles are now applied every timestep.
  • Relationships are deactivated when a character departs or dies.
  • Characters cannot gain the lethargic and energetic traits at the same time.
  • Replaced Event type hints for GlobalEventHistory with LifeEvent.

- Python
Published by ShiJbey over 2 years ago

neighborly - v2.1.0

[2.1.0] - 2023-29-10

Added

  • New inspection functions to the neighborly.inspection module
  • Added back non-notebook samples to facilitate library debugging

Changed

  • Moved some of the test data to become default plugins to assist new users
  • Tweaked some considerations and probabilities to get more believable event histories

Fixed

  • Adjusted trait configurations to provide a better spread of relationship stats
  • Fixed event considerations that cause over-reproduction and unwanted polyamory
  • Added force=True to logging config to allow logging to work in Google Colab
  • Fixed StartDating.instantiate method that was missing a return statement

- Python
Published by ShiJbey over 2 years ago

neighborly - v2.0.0 - Kigambe

[2.0.0] - 2023-27-10

This release merges all the changes originally made in the kigambe repo.

This version breaks nearly all aspects of previous versions. Neighborly's internal architecture was rewritten to better support data-driven authoring workflows. While version 1.0.0 started to move away from the data-driven aspects, it made content authoring more difficult. This latest version was built with the authoring interface holding prime importance.

Added

  • New trait system
  • New skill system
  • Load entire Tracery grammars straight from JSON files
  • Simplified datetime representation
  • Reduced ECS feature set
  • Simplified simulation config

Removed

  • Support for authoring content using YAML. Now only supports JSON.
  • Grid-style world map
  • Server support
  • Commandline interface support
  • Entity prefab support
  • Sphinx docs

- Python
Published by ShiJbey over 2 years ago

neighborly - Neighborly v1.0.0

Version 1.0.0 departs significantly from previous Neighborly releases. This version emphasizes simplicity, focusing more on Neighborly's use as a data science and prototyping tool. This change reflects my evolving understanding of my research and its place in the academic universe. To match this, most samples have been converted to encourage experimentation and showcase data visualizations.

The passage of time has been greatly simplified to only simulate one year at a time. Since we no longer model more granular time steps such as hours, there is no need for character routines or operating hours. We also do not need to track the maximum capacity of a location or mark locations as eligible for travel.

Neighborly moved away from the data-driven approach of loading prefab definitions from external files. Creating characters or businesses this way required duplicate definitions and made it harder to share and modify existing prefabs. The new CharacterType and BusinessType classes are a return to using factory objects to instantiate GameObjects. The best part is that the factory is also a component that is associated with the GameObject it instantiates. So, now users can easily query by character or business type.

Please see the CHANGELOG.md for a non-exhaustive list of changes.

- Python
Published by ShiJbey over 2 years ago

neighborly - Neighborly v0.11.2

[0.11.2]

[Fixes]

  • Fixed problem with non-determinism caused by VirtuesFactory iterating sets

- Python
Published by ShiJbey almost 3 years ago

neighborly - Neighborly 0.11

[0.11.0]

This update has breaking changes from version 0.10.x

Changed

  • The Routine component has been refactored to be a single collection of routine entries instead of a collection of DailyRoutines with individual entries.
  • RoutineEntry instances now track what days they apply to.
  • RoutineEntries now use GoalNodes to specify behavior instead of location IDs or alias names.
  • ActionableLifeEvent has been renamed to RandomLifeEvent
  • CreateTown has been renamed to DefaultCreateSettlementSystem

Added

  • A new AIRoutineSystem that queries a routine for an entry at the current time and adds the goal for that entry as a potential goal to pursue.
  • Systems can now be toggled using the active class attribute. This affects all instances of a system and any child systems if it is a SystemGroup.
  • Support for loading character and business spawn tables from CSV files for DefaultCreateSettlementSystem

Removed

  • IBusinessType was removed because it added unnecessary complexity to the component definitions.

Updated

  • Type hints have been reformated to prevent duplicate description warnings from sphinx. Class attribute type definitions have been moved out of __init__ and the doc strings for attributes are placed below their type hints.
  • Updated to newer build of Tracery (tracery3)

[0.10.0]

This update has breaking changes from version 0.9.x

  • The package has been restructured again to prevent circular dependencies. Classes are now separated into subpackages/modules by function. For example, all the component classes are within neighborly.components all the factories are within neighborly.factories and all the default systems are within neighborly.systems.
  • The default plugins under neighborly.plugins.defaults.xxxx have been restructured to allow people to more easily include only the content they need. If you do not care about the specific plugins, neighborly.plugins.defaults.all will import all the default plugins into the simulation.
  • Content libraries are now static class instances.
  • GameObject prefabs should now be instantiated using the GameObjectFactory class rather than using the Prefab-specific libraries (CharacterLibrary, BusinessLibrary, and ResidenceLibrary).

Added

  • Content authoring neighborly.decorators for use in single file simulations.
  • py.typed stub file to remove PyRight warning about Neighborly missing type stubs
  • SystemGroups were added to allow better systems ordering. The simulation update loop is now separated into 4 phases (initialization, early-update, update, and late-update).
  • Utility-based behavior trees for goals
  • Event callback are called directly from GameObjects instead of via systems
  • Events are an integral part of the ECS

Updated

  • Content loading functions no longer need the world instance passed when loading assets

Removed

  • Prefab-specific libraries (CharacterLibrary, BusinessLibrary, and ResidenceLibrary) and replaced them with the GameObjectFactory static class that handles instantiating GameObjects from prefabs

- Python
Published by ShiJbey almost 3 years ago

neighborly - Neighborly 0.10.0

Neighborly is finally feature complete. After a long period of instability, this is the most stable and performant version yet.

This version is not compatible with any of the previous 0.9.x versions

  • The package has been restructured again to prevent circular dependencies. Classes are now separated into subpackages/modules by function. For example, all the component classes are within neighborly.components all the factories are within neighborly.factories and all the default systems are within neighborly.systems.
  • The default plugins under neighborly.plugins.defaults.xxxx have been restructured to allow people to more easily include only the content they need. If you do not care about the specific plugins, neighborly.plugins.defaults.all will import all the default plugins into the simulation.
  • Content libraries are now static class instances.
  • GameObject prefabs should now be instantiated using the GameObjectFactory class rather than using the Prefab-specific libraries (CharacterLibrary, BusinessLibrary, and ResidenceLibrary).

Added

  • Content authoring neighborly.decorators for use in single file simulations.
  • py.typed stub file to remove PyRight warning about Neighborly missing type stubs
  • SystemGroups were added to allow better systems ordering. The simulation update loop is now separated into 4 phases (initialization, early-update, update, and late-update).
  • Utility-based behavior trees for goals
  • Event callbacks are called directly from GameObjects instead of via systems

- Events are an integral part of the ECS

Updated

  • Content loading functions no longer need the world instance passed when loading assets

Removed

  • Prefab-specific libraries (CharacterLibrary, BusinessLibrary, and ResidenceLibrary) and replaced them with the GameObjectFactory static class that handles instantiating GameObjects from prefabs

- Python
Published by ShiJbey almost 3 years ago

neighborly - v0.9.4

0.9.4 is not compatible with 0.9.3

- Python
Published by ShiJbey over 3 years ago

neighborly - Neighborly 0.9.3

- Python
Published by ShiJbey over 3 years ago