Skip to content

Releases: ShiJbey/neighborly

v2.5.0

25 Mar 04:28
Compare
Choose a tag to compare

[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

v2.4.1

14 Dec 21:55
079f15b
Compare
Choose a tag to compare

[2.4.1] - 2023-11-20

Fixed

  • List construction error when compiling all event considerations

v2.1.1

30 Oct 19:16
Compare
Choose a tag to compare

[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.

v2.1.0

29 Oct 16:31
c686793
Compare
Choose a tag to compare

[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

v2.0.0 - Kigambe

27 Oct 23:45
9b3263a
Compare
Choose a tag to compare

[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

Neighborly v1.0.0

16 Aug 16:31
bb5924b
Compare
Choose a tag to compare

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.

Neighborly v0.11.2

22 May 06:31
9a7aa66
Compare
Choose a tag to compare

[0.11.2]

[Fixes]

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

Neighborly 0.11

06 May 02:41
f397122
Compare
Choose a tag to compare

[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

Neighborly 0.10.0

27 Mar 21:26
8c21789
Compare
Choose a tag to compare

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

v0.9.4

16 Nov 00:00
2e3cd80
Compare
Choose a tag to compare

0.9.4 is not compatible with 0.9.3