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_publicfield now addsOpenToPubliccomponent to help locations appear as candidates to be frequented by characters.monthly_effectsassociated with job roles are now applied every timestep.- Relationships are deactivated when a character departs or dies.
- Characters cannot gain the
lethargicandenergetictraits at the same time. - Replaced
Eventtype hints forGlobalEventHistorywithLifeEvent.
- 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.inspectionmodule - 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=Trueto logging config to allow logging to work in Google Colab - Fixed
StartDating.instantiatemethod 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
Routinecomponent has been refactored to be a single collection of routine entries instead of a collection of DailyRoutines with individual entries. RoutineEntryinstances now track what days they apply to.RoutineEntriesnow useGoalNodesto specify behavior instead of location IDs or alias names.ActionableLifeEventhas been renamed toRandomLifeEventCreateTownhas been renamed toDefaultCreateSettlementSystem
Added
- A new
AIRoutineSystemthat 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
activeclass 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
IBusinessTypewas 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.componentsall the factories are withinneighborly.factoriesand all the default systems are withinneighborly.systems. - The default plugins under
neighborly.plugins.defaults.xxxxhave 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.allwill import all the default plugins into the simulation. - Content libraries are now static class instances.
- GameObject prefabs should now be instantiated using the
GameObjectFactoryclass rather than using the Prefab-specific libraries (CharacterLibrary, BusinessLibrary, and ResidenceLibrary).
Added
- Content authoring
neighborly.decoratorsfor use in single file simulations. py.typedstub 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
GameObjectFactorystatic 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.componentsall the factories are withinneighborly.factoriesand all the default systems are withinneighborly.systems. - The default plugins under
neighborly.plugins.defaults.xxxxhave 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.allwill import all the default plugins into the simulation. - Content libraries are now static class instances.
- GameObject prefabs should now be instantiated using the
GameObjectFactoryclass rather than using the Prefab-specific libraries (CharacterLibrary, BusinessLibrary, and ResidenceLibrary).
Added
- Content authoring
neighborly.decoratorsfor use in single file simulations. py.typedstub 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
GameObjectFactorystatic 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